-
-
Notifications
You must be signed in to change notification settings - Fork 18.5k
ADMIN: backports branch #14352
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
Comments
Thanks for raising this Jeff. I think we should start a "Needs backport" label, or maybe version that like "Backport 0.19" for all PRs that should be backported. I don't think anything changes from the contributors POV, right? All PRs should still go against master. Release notes are the bit I'm not sure about. Will the 0.20 notes be as if it's 0.19 -> 0.20, or 0.19.x -> 0.20? Some links
|
One other thing, will we need the doc build script to only push if it's a PR against master? Don't want http://pandas-docs.github.io/pandas-docs-travis/ to jump between 0.20 and 0.19.1 depending on the latest PR merged. |
Well, I was looking how other project do this:
Matplotlib has a different approach according to [their wiki](https://github.com/matplotlib/matplotlib/wiki#developer-info, but I don't know if that is up to date with their actual workflow): bug fixes go in 1.5.x and regularly 1.5.x is merged in 2.0.x and then 2.0.x in master. This seems a lot more complex to me (and if you forget a backport, then it is master that is not up to date, while in the "everything is first merged in master" approach, it is the maintenance branch that can miss something, which seems less serious to me)
I don't think we need a "Backport 0.19" label, as we have a 0.19.1 Milestone to indicate if a PR is supposed to be included in the maintenance branch. A "need backport" label can of course help to track the ones that still needs to be backported.
One option would go with the approach of putting it directly in the 0.19.1 file. So if we decide that a PR is suited for 0.19.1, we tag it like that, and the whatsnew note is added to the 0.19.1 file. It is then merged like this to master. The advantage is a) you don't need to adapt the commit when backporting (changing the whatsnew location) and b) the master docs are already up to date with when a bug fix was released.
This is indeed not a problem I think, travis already tests other branches than master. |
To summarize my above long comment, I would propose we try the following workflow:
The last step could be automated (similar to the |
The astropy docs seem useful as well (similar workflow).
Sounds good. It's too bad we can't assign multiple milestones to an issue / PR, but I'm guessing almost all bug fixes will apply to both 0.19.x and 0.20, so this won't be a big deal in practice. |
Any other feedback or comments on the proposed workflow? (#14352 (comment)) |
This seems fine to me. I don't think having additional backport PRs is necessary right now unless we have issues with failing builds after cherry-pick. |
@jorisvandenbossche did you document this procedure anywhere (on wiki)? |
To summarize how the procedure went for 0.19.x:
I also had a script that could automate this a little bit, but in practice it didn't give much value above using the cherry-pick (you could give the PR number instead of the commit sha). But in theory, we could write a script that gets all PRs, check that they were tagged with the specific release, and cherry-pick them in order, to automate this (supposing all changes went through PRs). But not sure this is worth the effort. What I used then is here: https://gist.github.com/jorisvandenbossche/e97c22f7176180a5548f767e520586bb#file-backport-pr-py-L113-L126 |
@jorisvandenbossche added your text to: https://github.com/pandas-dev/pandas/wiki/Backporting thanks! |
Due to branch for bugfix releases, we have the issue that master version is smaller than released version: #15156 Proposed solution (from discussion in https://gitter.im/pydata/pandas?at=58e6b4610e4137042aee7e86): after branching the bugfix release branch (eg 0.20.x), tag master with the 0.21.0.dev (or 0.20.dev) tag. |
documented nicely by @jorisvandenbossche and @TomAugspurger |
As discussed on the mailing list, we should outline how we are going to do backports. Goals would be to provide a 0.19.1 bug-fix only release and at the same time allow master to proceed as 0.20/1.0 with all bug-fixes and API changes.
This issue is for how to do this, as we are ready to merge some 0.19.1 fixes. So need to put some machinery in place ASAP.
scripts/merge-py.py
merges to masterSome questions
would be nice to link some examples of how other projects do this. We have quite a lot of activity and don't want this to become a burden.
The text was updated successfully, but these errors were encountered: