Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Monorepo migration #923

Open
das7pad opened this issue Aug 6, 2021 · 2 comments
Open

Monorepo migration #923

das7pad opened this issue Aug 6, 2021 · 2 comments

Comments

@das7pad
Copy link
Member

das7pad commented Aug 6, 2021

Overleaf has migrated all of its active repositories into a monorepo to ease
the developer experience when making changes in multiple places for a new
feature.

We used this opportunity to change our default branch from master to main as
well.

The new home of the public code will be overleaf/overleaf on GitHub.

The existing repositories will get archived on GitHub. This will retain
read-only access to pull-requests, issues and code (with old git SHAs).

Services like chat or web will be located in monorepo/services/chat/
monorepo/services/web, libraries like o-error in
monorepo/libraries/o-error and server-ce on top-level monorepo/server-ce.

The integration of all the repositories required rewriting the history for a
proper git-log experience in individual files/directories.
This in turn changes all the git-hashes of commits.

Unfortunately the community will not be able to pull new changes or merge
our main branch into forks.
Instead a new/forced checkout of the repository is needed, and changes to code
will need to be rebased.

In most cases a rebase can get changes into the new home and git will detect
that files have been moved. Example for migrating a web branch.

     web$ git checkout BRANCH-NAME
     web$ git fetch origin master
     web$ git rebase origin/master
monorepo$ git remote add import-web /path/to/web
monorepo$ git fetch import-web BRANCH-NAME
monorepo$ git fetch import-web master
monorepo$ git checkout BRANCH-NAME
monorepo$ git rebase --onto main import-web/master
monorepo$ git remote remove import-web

This will migrate the changes to existing files to the files in their new
location.
However it will not be able to move newly created files to the new directories.
These will need to moved explicitly, e.g. as part of an interactive rebase
(add --interactive to the second rebase command and pause when a commit added
a new file, move it to the new place, git stage everything and resume
rebasing).

@das7pad das7pad pinned this issue Aug 6, 2021
This was referenced Aug 6, 2021
This was referenced Aug 6, 2021
@cmprmsd
Copy link

cmprmsd commented Mar 30, 2022

Since this announcement no changes to the docker container have been made. It's fairly outdated by now when I compare it with the many commits this repository has.
Do you plan on releasing future open source updates or are we out of luck?
Thanks in advance.

@jdleesmiller
Copy link
Member

New Docker release is in progress right now!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants