All that sounds good to me Alan Regarding the naming - well that is not so important to me as everything else and it sounds like there are options if we need them.
Phil On 28 May 2015 at 00:33, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote: > On 2015-05-26 22:13+0100 Phil Rosenberg wrote: > >> On 24 May 2015 at 23:01, Alan W. Irwin <ir...@beluga.phys.uvic.ca> wrote: >>> >>> [...] I just skimmed an interesting paper called "Fighting >>> regressions with git bisect" by Christian Couder which I highly >>> recommend to others here. (You can probably find it with a google >>> search, but for Debian wheezy it appears as >>> <file:///usr/share/doc/git/html/git-bisect-lk2009.html>.) > > >> Yeah I used git bisect a few times and it was useful. I haven't >> thought about how it would work with merges, but I can imagine how >> life would be easier with a linear workflow. Although presumably with >> merges, git bisect would simply fork down each branch? > > > Read that paper to see what happens for complicated history topology. > >> As I said with just me using 3 computers I could not get a >> system that worked. With more of us I can guarantee it won't. Don't >> forget also that there are likely to be a number of developments that >> aren't quite ready in time for release so even a final rebase will >> stuff up all of these. > > > See below. >> >> >>> >>>> >>>> So perhaps some general points now >>>> >>>> In the last development cycle I tried to work simultaneously on my >>>> Windows machine and two Linux machines to test my personal branches on >>>> all three. The rebase only workflow made this essentially impossible. >>>> I continually ended up in situations where I broke my repos because I >>>> rebased some work that existed in another repo and this caused massive >>>> issues. This was one person with three checked out versions of the >>>> code and it was a nightmare. If we have more than one person then I >>>> can guarantee we will break people's repos with almost every rebase. >>> >>> >>> >>> I think this is an illustration of the point I made previously in this >>> thread that pushing between multiple servers is virtually a guarantee >>> of merge commits which are prohibited under the rebase-only workflow. >>> >>> However, I think you could have made the above work quite simply as >>> follows (or at least I would like to see you try this method next >>> time): >>> >>> 1. Always keep master on each server exactly the same as master on >>> our official SF server. >>> >>> 2. Always rebase your topic branch on each server on that (common) >>> master branch. >> >> >> This doesn't work. Lets say I have my topic branch on PC1 and PC2. If >> I rebase my topic branch on PC1 then history gets rewritten and all my >> commits get a new guid. > > > I am not going to argue with you further here except that with care I > am positive the "git format-patch"/"git am" method will work, but I > have had a further thought that makes that argument irrelevant. > > You do have to be careful synchronizing local and remote public > branches which appears to me to be exactly what you were trying to do > amongst your various git servers. Think of all the extra steps we go > through to do that correctly for the master branch according to our > current workflow. So to do the same thing for a public topic branch I > think you have to go through exactly the same procedures, i.e., work > on a local private topic branch for plplot6 called private_plplot6, > git fetch to update the public branch origin/plplot6, merge --ff-only > that with local plplot6, rebase private_plplot6 on plplot6, merge > --ff-only private_plplot6 onto plplot6, then push plplot6 back to get > all your changes in local plplot6 changes published to the rest of > your servers. But to make this all work, it is clear you could not > rebase plplot6 on (say) the ongoing PLplot 5 development occurring in > master until there was absolutely no work left on plplot6. You have > made this point before about rebasing public topic branches so it > appears I have arrived at the same conclusion by a different route. > Note, however, that the above steps do use rebase properly and are > consistent with our rebase workflow! > >> [...]So I think I agree with most stuff up to here apart from rebasing >> during 6.0 development and maybe what happens at the "end". See below >> >>> If we follow that model it should be possible in theory to go smoothly >>> from the last PLplot 5.x release (where x < 99) to the release of >>> 6.0.0 with no overlap in support between PLplot 6 and 5, but we should >>> definitely tag the last PLplot 5 commit (as I stated in the details >>> above), and subsequently (if needed) use that tag as the origin of a >>> semi-permanent public plplot5 branch if we need to do further PLplot >>> 5.x bug-fix releases. Obviously in this case the plplot5 branch would >>> never be rebased or merged with the master branch since PLplot 5 would >>> be a dead-end branch of development (only devoted to minimal bug >>> fixing) by design. >> >> >> So I am now rather out of my depth here. this should definitely be >> considered discussive opinion and I would love feedback on this. Many >> projects seem to have some form of bugfix support for old versions or >> at the very least the option to install older versions. For example I >> canstile go to my package manager and install GTK2 and wxWidgets 2.8, >> despite the fact that GTK3 and wxWidgets 3.0 exist. The reasons are >> clear. If someone has code that uses an old API then they may not want >> to rewrite for the new API, or if someone has written another package >> which depends on plplot then we change our API and the version that >> exists in the repos then we break all those builds. I can therefore >> see a big advantage to simply leaving plplot5 frozen, and create a >> "new" library/package called plplot6 which moved forward with the api. > > > Agreed (since I have mentioned this same idea before.) We do not have > the developer resources to work on or support two different major > versions of PLplot. So the idea would be the first priority of PLplot > 6 would be to finish the backwards-incompatible stuff and pass all > tests as well as PLplot 5 currently does without introducing many (if > any) new features. Once such an initial release of PLplot 6 was made, > then we could go on from there adding new features as desired. And > PLplot 5 development would be severely limited to just fixing the most > egregious bugs. > >> That way apt-get install plplot still gives me a package compatible >> with the other binaries as expected and when ready a user can choose >> to upgrade to plplot6. As jim mentioned in an email. PLPlot 5 might be >> around for some time to come. > > > Yes, as the current PLplot-5.11.0, imminent 5.11.1 (and future? > 5.11.2) tarball releases which the PLplot 5 packagers could use for > years to come. > >> [...] If at the end we >> do want to merge plplot 5 and plplot 6, then I think that is exactly >> what we should do. In this one single instance to save us a lot of >> pain I think we should do a merge. I think that one single merge only >> at the changeover of major versions would be entirely acceptable even >> to most rebase advocates and I am sure this would be better than a >> rebase of a public branch. > > > As you might expect I am completely against breaking our workflow > unless and until we decide to permanently adopt another workflow model. > > That said, I think we are now agreed that once PLplot 6 development > starts, PLplot 5 development will continue on master and PLplot 6 > development will be done on a public branch plplot6 with no rebasing > of plplot6 on master. (Instead, fixes on master will have to be > propagated to plplot6 in other ways such as "git format-patch"/"git > am".) So if enthusiasm for PLplot 6 wanesm there are several false > starts, or the final product doesn't work very well, our ongoing > development of PLplot 5 will be unaffected. > > So really the only point of contention left is _if_ PLplot 6 development > is a complete success, how to reach the end goal of > ongoing PLplot 6 development and releases occurring on a branch called > master and ongoing PLplot 5 development (if there is any) should occur > on a branch called plplot5? One idea that I have mentioned before > which might work is to simply rename the two branches. See > <http://stackoverflow.com/questions/4753888/git-renaming-branches-remotely> > for further discussion. There was no mention there of problems for > other users (other than to rename their local branches consistently). > For example, if there was some chance of other users losing their > work, I think it would have been mentioned. > > However, at this stage I don't think we have enough information to > make a final decision now about how to implement if/when PLplot 6 is a > success. In other words, let's cross that bridge when we come to it > and not argue about it now. After all, PLplot 6 right now is a dream > in everyone's mind, but the fundamental decisions about how that > should be implemented (i.e., C++ based or C based?) have not even been > agreed on yet. And our group experience with the current workflow is > still painfully inadequate in my mind, and we will have a lot more > experience with it (for example, I hope you will be quite experienced > and comfortable with it for your 3 servers) by the time that we are > ready to release PLplot 6. > > > Alan > __________________________ > Alan W. Irwin > > Astronomical research affiliation with Department of Physics and Astronomy, > University of Victoria (astrowww.phys.uvic.ca). > > Programming affiliations with the FreeEOS equation-of-state > implementation for stellar interiors (freeeos.sf.net); the Time > Ephemerides project (timeephem.sf.net); PLplot scientific plotting > software package (plplot.sf.net); the libLASi project > (unifont.org/lasi); the Loads of Linux Links project (loll.sf.net); > and the Linux Brochure Project (lbproject.sf.net). > __________________________ > > Linux-powered Science > __________________________ ------------------------------------------------------------------------------ _______________________________________________ Plplot-devel mailing list Plplot-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/plplot-devel