Task #4444
Updated by bmbouter over 5 years ago
h2. Problems
Having the pulp/pulp store the pulpcore code creates a few issues:
Confusion. The pulp/pulp repo holds both pulp2 and pulp3 on different branches. This means that pull requests are mixed which causes us to need a lot of labels to distinguish the two at PR review time.
Tags and Releases issues. We want the repo forpulp3 to cleanly show the releases (even the pre-releases). If you look at the Pulp releases page it has 1891 releases (a crazy unbelievable number). https://github.com/pulp/pulp/releases We should leave all these old tags from pulp2 behind and only have the pulp3 tags in the source tree
Naming convention isues. The pulpcore-plugin is the PyPI package name and the repo name is pulp/pulpcore-plugin. For consistency the pulpcore PyPI package name is expected to live at pulp/pulpcore.
h2. Solution
Create a new repo called pulp/pulpcore and make pulp/pulpcore:master contain the HEAD of pulp/pulp:master. Also push all pulp3 tags which should all reference commits in the history of pulp/pulpcore:master.
h2. What about pulp2?
The pulp/pulp:2-master branch is left undisturbed so that release engineering can continue to build from it, and the open PRs against 2-master can remain undisturbed.
h2. the plan
On Thursday Feb 28th at 5pm UTC the cutover will happen. Specifically bmbouter will do the following steps:
1. create a new repo at pulp/pulpcore
2. fetch the latest HEAD from pulp/pulp:master (the refs of pulp3) and push to the pulp/pulpcore:master branch
3. Move the tags starting with 3.0.0b* from the pulp/pulp repo to the pulp/pulpcore repo
4. Confirm with another developer that the refs and tags are moved to the new repo
5. delete pulp/pulp:master and make the default branch for pulp2 2-master.
6. Handle moving PRs (see below)
7. Send a notification to pulp-dev and irc with info that users can update their forks.
h2. Moving PRs
It's a 3 step process done by bmbouter. You can't 'move' PRs between repos. You can open a PR from any repo to any repo. I tested this for the Pulp repos just now. Here are the steps:
1. The Pulp3 PRs on https://github.com/pulp/pulp/pulls that target master branch will be manually closed.
2. A PR will manually be opened for each closed PR to redirect those code contributions to the new repo.
3. A note will be left on the old one with a link to the new one so everyone can see
h2. Fixing forks and checkouts
It should be these steps:
1. Delete your fork on github ( https://help.github.com/en/articles/deleting-a-repository )
2. Fork it fresh from github but now from pulp/pulpcore
3. delete your local clone and reclone from your fork