Project

Profile

Help

Task #4444

Updated by bmbouter about 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. 
 8. Ensure Travis is enabled and running on the new repo. 
 9. Fixup any other Pulp organization repos that were using source checkouts. 
 10. Update the pulp/pulpcore PyPI encrypted publish credentials to match the public key of the new repo 

 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

Back