Support #111
Backport major compatible "1.0" (master) features to 0.9.x
| Status: | Done | Start: | 11/15/2009 | |
| Priority: | High | Due date: | ||
| Assigned to: | % Done: | 0% |
||
| Category: | Core | |||
| Target version: | 0.9.2 | |||
Description
E.g. the succeeded attribute and anything else which is backwards compatible (i.e. won’t break existing fabfiles.) and which is relatively important and/or useful. I don’t want to backport everything that’s compatible, because technically I want tertiary releases to be bugfix-only. However, I do want to lessen the gap between 0.9 and 1.0 so that the “feature pressure” of 1.0 is let up a bit — I don’t want to release it too soon after 0.9.
Will need to come up with a good way of cherry picking the commits (both implementation and docs/changelog!) while changing the “added in:” notes:
- Cherry-pick original commit, followed up with modification commit.
- Plus: retains link to “original” commit in the master branch
- Minus: means that the cherry-pick shows up as its own, incorrect state of the 0.9.x branch (i.e. anybody checking it out would see the wrong docs/docstring.)
- Do a local cherry-pick + modification + rebase, so that the upstream only sees the one commit.
- Plus: atomic correctness (especially since there may be multiple commits affecting a given backported feature — e.g. 84fd8aa which affects a handful of commits, isn’t going to mesh well with cherry picking for a single change. This is why I need to be more cognizant of the docs related to feature changes!)
- Minus: loses connection to original commit (outside of the commit message, which would be left with the “cherry-picked X” message of course)
Will also need to figure out whether to do all of these at once for 0.9.1 or 0.9.2, or to spread them out over a few releases for some reason.
Finally — the 1.0 version of the code will need updating at the same time so that it now includes the “change in 0.9.1” notes instead of “changed in 1.0”. If I'm lucky, merging back in from 0.9 will do this, but I foresee conflicts, in which case I should finally learn how to tell a merge to use one side or the other, beforehand.
The following (non-merge) commits are related to this ticket but don’t have in their commit logs. Remember that you can mouse-over them to see the commit messages :)#111
In 0.9, cherry-picked or hand-copied from master:
- 4f3e4d18f2a99511dc8a179f140e6abd7e411207
- 729fba84271ccdc76cc061e73b1708ad8d695ed8
- b9554b6c3407be9e2885a351c010b31bfe885bac
- 88146a1e9f14ebb34a6f075e7945e8bee3dfdc63
- 2b6904c910a216a41f749705d55a2f684e41675f
In master, mostly just removing items from the 1.0 changelog now that they’re listed under 0.9.2 (also occasionally fixing the up-merges from 0.9 if they broke):
- b9554b6c3407be9e2885a351c010b31bfe885bac
- eeb0512c8166278713acf0171d30ba068e6ee69e
- 88146a1e9f14ebb34a6f075e7945e8bee3dfdc63
- 5c808cd5fb072ee4d54b22b489281663b2a1c06a
- 2b6904c910a216a41f749705d55a2f684e41675f
- acd5e6aee26ab84c9fece610364b0153f251d7c2
All other backports will be tagged with and should show up below this description in the usual spot.#111
Related issues
| related to Support #94 | Update master/1.0 changelog, docs with all recent work | Done | 11/09/2009 |
Associated revisions
Revision e1e2d2bf2ce08abb35eafa884b902f3d4bdc5750
Update release/development documentation re: #111
Revision 4d65ddb27e1bb39d1ee635d96772b875dd2407e3
Backport package fabfile discovery from master.
Re #111
Revision 5b26dc8b756636e5ccadd68f1f31cd437c2d7c9d
Backport package fabfiles to 0.9.
Re #111
Merge branch ‘0.9’
Conflicts:
docs/usage/fabfiles.rst
Revision 200bbf3a12f5dd9b717b03840814153acdc08352
Backport execution output lines from master.
Cherry-picks of 89265081, 5750459
Re #111
Revision 51fed3299c34a19bcd73ac271875b7e119c62dd0
Backport callable roledefs from master.
Cherry-picks of 5995463, 62856c1c
Re #111
Revision 25f14bee8a58d7437f2d5c2b3b68dcc4576d896b
Add env.local_user for easy local username access.
Backported from master. Re #111
Conflicts:
docs/changes/1.0.rst
fabric/state.py
Revision 2cb70affa97410b8ff4c818e74b69aadb18aa7cc
Backport env.local_user to 0.9; re #111
Revision e6f7e40afa8e326f4d02cf3456a1772133c00314
Re #111, update 1.0 changelog
Revision 533a9c7a2bade47347ed7e4a0c2508ed7fed7154
Update docs re #111
Revision d8300b05a9850d10f20edfd730f55d190779a613
Backport colors module from master re #111
Revision 5216bf1a562db941f305ae4a9419ebe7096f854c
Re #111, backport colors to 0.9
Revision 739336a8c0e70389d6c0c33d99474e021b8995ff
Backport host prompt env var updating from master
Re #111
Revision fbfac44c18bd6ba1e54d79c96d5f1e8bf78c8a91
Re #111, backport changelog re: PYTHONPATH bug
Revision 4b0fed4eb99e9862605b0fc985d4a132b1eed9c0
Re #111, backport PYTHONPATH bugfix to 0.9
Revision cb4ff3ab756c63a7d04a657cdae3ee1f7da0f59e
Changelog updates re #111
History
Updated by Jeff Forcier 297 days ago
- Subject changed from Backport any compatible "1.0" (master) features to 0.9.x to Backport major compatible "1.0" (master) features to 0.9.x
Updated by Jeff Forcier 104 days ago
- Priority changed from Quick to High
- Target version changed from 0.9.2 to 0.9.3
Bumping this to 0.9.3, actually — I think what'd be good is to have 0.9.2 be another round of 0.9 specific bugfixes, then 0.9.3 be the backporting, and hopefully the last significant 0.9.x release.
Updated by Jeff Forcier 10 days ago
- Target version changed from 0.9.3 to 0.9.2
Doing this for 0.9.2 after all, at least partly. Anything I feel needs more work to backport will probably still be copied into an 0.9 based branch to free up master for merging #7.
Didn’t remember this ticket until partway in; will add a list of the commits already done, in the description, and will start flagging the rest with this ticket number.
Updated by Jeff Forcier 10 days ago
Still backporting; takes more effort than expected due to fragmentation of a “feature” over the entire timeline (eg initial implementation, later tweaks, yet later doc updates, etc) not to mention the occasional less-than-ideal commit atomicity.
That aside, some of the meatier changes are even more complicated, as expected (e.g. many of the changes involving run/sudo were done after those were refactored, so pulling in said changes requires pulling in that refactoring, or reimplementing). Will finish a “first pass” to get all the low-hanging fruit and then decide whether to tackle the harder stuff or just leave it in 1.0. (“Pulling it into an 0.9 based branch” as I'd originally intended doesn’t actually make much sense — either it works or it doesn’t.)
Updated by Jeff Forcier 7 days ago
Double check the PYTHONPATH pre-emption issue (the topmost bug in the 1.0 changelog) as I think it got merged into 0.9 a while ago (or my cherry-pick just now went totally seamlessly?) and make sure that A) it is in fact fixed on 0.9, and B) the changelogs get updated accordingly.
Updated by Jeff Forcier 6 days ago
- Status changed from Assigned to Done
Ok, first pass is done. Everything left involves the refactored run/sudo, for the most part. Thinking it’s best to leave that for 1.0, I need to start pushing releases out quicker anyway, so the more work I do on 0.9 is less I'm doing to get 1.0 and 1.1 out the door faster.
So, this ticket is now done as far as I'm concerned.
Also available in: Atom