Re: branching stable/2.22?
Han-Wen Nienhuys writes: > On Sat, Sep 12, 2020 at 11:28 AM Jonas Hahnfeld wrote: >> >> > >> Similarly, if I change a documentation string in an SCM file like >> > >> `define-markup-commands.scm`, the documentation doesn't get >> > >> rebuilt, either. >> > > >> > > I can look at reintroducing the SCM -> texi dependencies. >> > >> > Please do so. Due to the auto-generation process, it is far from >> > trivial to find out which command has to be called. >> >> Actually, I value faster incremental builds that sometimes does less >> over wasting my time always regenerating the internals manual whenever >> I happen to touch an SCM file. Just doing >> $ rm Documentation/out*/en/internals.texi >> will update it, no need to remember any command. > > I see the value of faster builds, but I think being correct is more > important than being fast. > > What annoys me is that the default build creates the info docs, which > aren't necessary for developing lilypond. This checks, for example, music function comments for correct Texinfo syntax (even if it does not test embedded LilyPond for validity). -- David Kastrup
Re: branching stable/2.22?
On Sep 13, 2020, at 12:57, Jonas Hahnfeld wrote: > Am Sonntag, den 13.09.2020, 11:59 +0200 schrieb Han-Wen Nienhuys: ... >> What annoys me is that the default build creates the info docs, which >> aren't necessary for developing lilypond. > > I guess that has to stay because we want distributions building from > the tarball to ship the info files to their users… The default target should give you something correct and complete, and "make check" should build on it. But it is annoying to wait for those docs to build when your goal is to debug a specific issue. I usually run "make -C lily out/lilypond" to speed it up, but I don't think it properly deals with all prerequisites. It would be nice if there were a target ("make lilypond"?) that would update everything required to run out/bin/lilypond without rebuilding the docs. — Dan
Re: branching stable/2.22?
Am Sonntag, den 13.09.2020, 11:59 +0200 schrieb Han-Wen Nienhuys: > On Sat, Sep 12, 2020 at 11:28 AM Jonas Hahnfeld wrote: > > > > > Similarly, if I change a documentation string in an SCM file like > > > > > `define-markup-commands.scm`, the documentation doesn't get > > > > > rebuilt, either. > > > > > > > > I can look at reintroducing the SCM -> texi dependencies. > > > > > > Please do so. Due to the auto-generation process, it is far from > > > trivial to find out which command has to be called. > > > > Actually, I value faster incremental builds that sometimes does less > > over wasting my time always regenerating the internals manual whenever > > I happen to touch an SCM file. Just doing > > $ rm Documentation/out*/en/internals.texi > > will update it, no need to remember any command. > > I see the value of faster builds, but I think being correct is more > important than being fast. Being fully correct here means generating internals.itexi whenever *something* in the lilypond binary changes - Scheme functions defined in C++ also end up in there. That's basically on touching any file. Ideally, we could make internals.itexi depend on the result of $(top-build-dir)/lily/$(outdir)/lilypond and only generate a temporary copy. If that is the same as before, nothing has to be updated. I've seen this realized with some move-if-changed for other projects, but it looked very hacky back then... > What annoys me is that the default build creates the info docs, which > aren't necessary for developing lilypond. I guess that has to stay because we want distributions building from the tarball to ship the info files to their users... Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On Sat, Sep 12, 2020 at 11:28 AM Jonas Hahnfeld wrote: > > > >> Similarly, if I change a documentation string in an SCM file like > > >> `define-markup-commands.scm`, the documentation doesn't get > > >> rebuilt, either. > > > > > > I can look at reintroducing the SCM -> texi dependencies. > > > > Please do so. Due to the auto-generation process, it is far from > > trivial to find out which command has to be called. > > Actually, I value faster incremental builds that sometimes does less > over wasting my time always regenerating the internals manual whenever > I happen to touch an SCM file. Just doing > $ rm Documentation/out*/en/internals.texi > will update it, no need to remember any command. I see the value of faster builds, but I think being correct is more important than being fast. What annoys me is that the default build creates the info docs, which aren't necessary for developing lilypond. > Jonas -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
Am Freitag, den 11.09.2020, 19:10 +0200 schrieb Werner LEMBERG: > >> This is not my proposal anymore to just branch, but Han-Wen's idea > >> of having a freeze of 3-4 weeks before branching. > > > > For me, a freeze can only start if we agree that nothing fundamental > > has to be changed or added. IMHO, we are far away from such a > > state. > > What we can start, however, is a feature freeze, especially > syntax-wise. So if you mean exactly that, I support that idea. Looks like that is the minimum thing we can agree on, even though it means there's still a chance to regress via innocent looking cleanups and refactoring. Everybody ok with this? I like James' idea of letting all patches go through the usual cycle if they have already been posted. Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Am Samstag, den 12.09.2020, 14:21 +0200 schrieb Werner LEMBERG: > >> > make out=www out-www/en/notation.pdf > >> > >> Aah, I tried without `out=www`. This incantation is good enough for > >> me, thanks. No further action needed. > > > > Actually that's the same as before, no? > > No. Previously, `notation.pdf` was a first-class target: If you > deleted it, a call to `make doc` rebuilt it. This is no longer the > case: Today, creating this PDF file is a side effect only. Right, that one is on me: commit f427a26e3d238af25cd4a8fe385be5faebd0c59f Author: Jonas Hahnfeld Date: Mon Aug 31 22:01:01 2020 +0200 doc: Use real target for result of build-doc-tree Avoid rebuilding the tree when recursing into Documentation/ multiple times during 'make doc' which can take a considerable amount of time. While at it, give 'make website' the same treatment and clean up some variables and their uses or remove if not referenced anymore. See https://gitlab.com/lilypond/lilypond/-/merge_requests/402 for a possible fix, correctly handling webdoc requires another recursion. > > Actually, I value faster incremental builds that sometimes does less > > over wasting my time always regenerating the internals manual > > whenever I happen to touch an SCM file. Just doing > > > > $ rm Documentation/out*/en/internals.texi > > > > will update it, no need to remember any command. > > What about making this a Makefile target, to be mentioned in `make > help`? Documenting might be worth it, not sure we need a target. Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
>> > make out=www out-www/en/notation.pdf >> >> Aah, I tried without `out=www`. This incantation is good enough for >> me, thanks. No further action needed. > > Actually that's the same as before, no? No. Previously, `notation.pdf` was a first-class target: If you deleted it, a call to `make doc` rebuilt it. This is no longer the case: Today, creating this PDF file is a side effect only. > Actually, I value faster incremental builds that sometimes does less > over wasting my time always regenerating the internals manual > whenever I happen to touch an SCM file. Just doing > > $ rm Documentation/out*/en/internals.texi > > will update it, no need to remember any command. What about making this a Makefile target, to be mentioned in `make help`? Werner
Re: branching stable/2.22?
Am Samstag, den 12.09.2020, 06:42 +0200 schrieb Werner LEMBERG: > >> [...] if I delete a PDF file, say, `notation.pdf`, right now it > >> gets *not* rebuilt! > > > > The new documentation build has much more accurate dependency > > tracking, so if you want to rebuild notation.pdf, you can just say > > so: > > > > make out=www out-www/en/notation.pdf > > Aah, I tried without `out=www`. This incantation is good enough for > me, thanks. No further action needed. Actually that's the same as before, no? Deleting from offline-root and such will not get the file rebuilt, but I think that's not different from the previous scheme. > >> Similarly, if I change a documentation string in an SCM file like > >> `define-markup-commands.scm`, the documentation doesn't get > >> rebuilt, either. > > > > I can look at reintroducing the SCM -> texi dependencies. > > Please do so. Due to the auto-generation process, it is far from > trivial to find out which command has to be called. Actually, I value faster incremental builds that sometimes does less over wasting my time always regenerating the internals manual whenever I happen to touch an SCM file. Just doing $ rm Documentation/out*/en/internals.texi will update it, no need to remember any command. Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
>> [...] if I delete a PDF file, say, `notation.pdf`, right now it >> gets *not* rebuilt! > > The new documentation build has much more accurate dependency > tracking, so if you want to rebuild notation.pdf, you can just say > so: > > make out=www out-www/en/notation.pdf Aah, I tried without `out=www`. This incantation is good enough for me, thanks. No further action needed. >> Similarly, if I change a documentation string in an SCM file like >> `define-markup-commands.scm`, the documentation doesn't get >> rebuilt, either. > > I can look at reintroducing the SCM -> texi dependencies. Please do so. Due to the auto-generation process, it is far from trivial to find out which command has to be called. >> I consider this fundamental flaws. > > I disagree. These flaws might be a bother for developers, but > branching stable/2.22 is about not having user-visible regressions > of lilypond itself, relative to 2.20, which has nothing to do with > how developers experience working on lilypond. OK. >> For me, a freeze can only start if we agree that nothing >> fundamental has to be changed or added. IMHO, we are far away from >> such a state. > > Could you enumerate the issues you think are fundamental? Well, I referred mainly to the build problems. Since your goal to cut stable/2.22 is a bit different my arguments are moot. Werner
Re: branching stable/2.22?
On Sep 11, 2020, at 15:19, James Lowe wrote: > > On 11/09/2020 20:13, Han-Wen Nienhuys wrote: >>> I consider this fundamental flaws. >> I disagree. These flaws might be a bother for developers, but >> branching stable/2.22 is about not having user-visible regressions of >> lilypond itself, relative to 2.20, which has nothing to do with how >> developers experience working on lilypond. >> > I'm with Han-Wen on this. > > PDF building has nothing whatsoever to do with what most users need. This is > the 'build' stuff that frankly can wait until we have fixed the > regressions/documentation of features. I lean toward letting the people who want to freeze/stabilize/release get on with it. I would hold back my \volta changes for the month or so that it takes to do this, work on related new features on my own, and contribute bug fixes as I find them. — Dan
Re: branching stable/2.22?
On 11/09/2020 20:13, Han-Wen Nienhuys wrote: I consider this fundamental flaws. I disagree. These flaws might be a bother for developers, but branching stable/2.22 is about not having user-visible regressions of lilypond itself, relative to 2.20, which has nothing to do with how developers experience working on lilypond. I'm with Han-Wen on this. PDF building has nothing whatsoever to do with what most users need. This is the 'build' stuff that frankly can wait until we have fixed the regressions/documentation of features. James
Re: branching stable/2.22?
On Fri, Sep 11, 2020 at 7:08 PM Werner LEMBERG wrote: > > > >> > I don't see that in the current stage of upheaval of both > >> > internals and build system and infrastructure, there is a point > >> > in freezing off some half-baked intermediate state that hasn't > >> > seen significant exposure to extensive testing. > >> > >> +1 It's too early IMHO. Let's wait at laest a month. > > > > To be clear here: You mean at least one month before starting a > > freeze? > > Yes. The build infrastructure is still not ok. For example, if I > delete a PDF file, say, `notation.pdf`, right now it gets *not* > rebuilt! There is a comment about this: # Do not specify phony targets (pdf, html) as dependencies to avoid building the # webdoc tree every time. We can make this accurate so your pdf file gets rebuilt, but it comes at the cost of always building the webdoc tree even if there is no work to do. This adds 5 to 10 seconds to a null-build, so I think it's not a good tradeoff. The new documentation build has much more accurate dependency tracking, so if you want to rebuild notation.pdf, you can just say so: make out=www out-www/en/notation.pdf > Similarly, if I change a documentation string in an SCM file > like `define-markup-commands.scm`, the documentation doesn't get > rebuilt, either. I can look at reintroducing the SCM -> texi dependencies. > I consider this fundamental flaws. I disagree. These flaws might be a bother for developers, but branching stable/2.22 is about not having user-visible regressions of lilypond itself, relative to 2.20, which has nothing to do with how developers experience working on lilypond. > > This is not my proposal anymore to just branch, but Han-Wen's idea of > > having a freeze of 3-4 weeks before branching. > > For me, a freeze can only start if we agree that nothing fundamental > has to be changed or added. IMHO, we are far away from such a state. Could you enumerate the issues you think are fundamental? -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
>> This is not my proposal anymore to just branch, but Han-Wen's idea >> of having a freeze of 3-4 weeks before branching. > > For me, a freeze can only start if we agree that nothing fundamental > has to be changed or added. IMHO, we are far away from such a > state. What we can start, however, is a feature freeze, especially syntax-wise. So if you mean exactly that, I support that idea. Werner
Re: branching stable/2.22?
>> > I don't see that in the current stage of upheaval of both >> > internals and build system and infrastructure, there is a point >> > in freezing off some half-baked intermediate state that hasn't >> > seen significant exposure to extensive testing. >> >> +1 It's too early IMHO. Let's wait at laest a month. > > To be clear here: You mean at least one month before starting a > freeze? Yes. The build infrastructure is still not ok. For example, if I delete a PDF file, say, `notation.pdf`, right now it gets *not* rebuilt! Similarly, if I change a documentation string in an SCM file like `define-markup-commands.scm`, the documentation doesn't get rebuilt, either. I consider this fundamental flaws. > This is not my proposal anymore to just branch, but Han-Wen's idea of > having a freeze of 3-4 weeks before branching. For me, a freeze can only start if we agree that nothing fundamental has to be changed or added. IMHO, we are far away from such a state. Werner
Re: branching stable/2.22?
Am Freitag, den 11.09.2020, 16:18 +0100 schrieb James Lowe: > On 11/09/2020 15:22, David Kastrup wrote: > > Jonas Hahnfeld writes: > > > > > Am Sonntag, den 06.09.2020, 13:40 +0200 schrieb Jonas Hahnfeld: > > > > Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: > > > > > Here is my proposal for how to go ahead: > > > > > > > > > > * we build a 2.21.6 from master, and announce it widely as a 2.22 > > > > > pre-release version. > > > > > > > > Adding Phil. I did a full test build of current master yesterday and it > > > > worked fine with https://github.com/gperciva/gub/pull/80 in place. > > > > With respect to wording, every 2.21.x is some kind of pre-release for > > > > 2.22. If this proposal gets consensus, I'd emphasize that feature > > > > development is over, but I'll leave that to native speakers > > > > > > > > > * we institute a X week freeze; during the freeze, we only merge > > > > >- fixes for regressions > > > > >- updates to the documentation > > > > >- cleanups with no functional changes, with little risk (ie. > > > > > refrain > > > > > from build system changes, for example). > > > > > * after the X week freeze, if we still have open regressions, we tack > > > > > on another few weeks of freeze to fix them. > > > > > * if there are no regressions left, we branch stable/2.22, and release > > > > > a new pre-release. > > > > > > > > > > X could be up for discussion, but 3 or 4 weeks seems long enough to > > > > > gather some feedback, but short enough that experimental/feature work > > > > > should not be affected. > > > > > > > > > > The objective of the freeze is to focus developer energy on fixing > > > > > regressions rather than causing new regressions. > > > > > > > > Sounds good to me. > > > > > > To arrive at a decision, what do others think about this? Having a > > > large silent mass is not really helpful for this kind of discussion (as > > > it wasn't for the switch to GitLab). > > > > Frankly I don't see the point in repeating points I already made and > > call that "discussion". > > > > I don't see that in the current stage of upheaval of both internals and > > build system and infrastructure, there is a point in freezing off some > > half-baked intermediate state that hasn't seen significant exposure to > > extensive testing. > > > > I cannot comment on 'Internals' but 'build system' and 'infrastructure' > are not, I think, issues that really concern 'average Joe User' who > wants to download and install a version of LP that works. That doesn't > mean they don't matter but I don't see us getting all our proverbial > waterfowl in a row any time soon with all the mix of MRs I am seeing of > build/Infra and LP-specific. So we have to draw a line in the sand > somewhere if only for those developers that just want to do 'build > system and infrastructure' stuff so unless anything is broken 'now' for > the build, why not just stop accepting any more MRs for it at this time? > > In effect I agree with Jonas' plan To keep things together, it was Han-Wen's proposal that I just happened to quote. (My original question didn't have a freeze). > but slightly modified, I suggest that > unless anything is really broken with the build system 'today' (and I am > not getting that vibe from the conversations I read) we have one more > countdown for 'anything' build-related to get in the patch countdown and > after that, we only focus on Regressions and docs, anything currently in > the patch countdown that is build related gets counted down normally (if > it gets pulled/needs more changes it cannot come back in) and eventually > the countdown should only contain LP/Doc MRs and possibly even peter out > to nothing which would be a good indicator of when to revisit a 'when > shall we freeze'. > > I don't do any development so feel a bit brash saying all this but > personally I don't think we will need 'weeks' to decide a freeze date, I > think it might become very obvious, very quickly once we prohibit > build/infra MRs and focus on regressions/docs. And until someone 'says' > an actual date - and gets feed back on that - I think we may keep on > procrastinating. > > As for 'extensive testing' well all that I can see we can do here I > think is announce this to the user group and ask for help testing - even > just running 'a build' on some big and/or complex scores and ask for > feedback (perhaps put something on the website). I don't know what else > we can do for testing. Other than that, I fully agree with all you say (which was the reason I didn't have a freeze initially and would have just picked whatever necessary into the created branch, but that's off the table now). Basically everything that gives an actable plan with consensus is fine for me, I just want to avoid doing nothing until it's urgent. Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Am Freitag, den 11.09.2020, 17:14 +0200 schrieb Werner LEMBERG: > > I don't see that in the current stage of upheaval of both internals and > > build system and infrastructure, there is a point in freezing off some > > half-baked intermediate state that hasn't seen significant exposure to > > extensive testing. > > +1 It's too early IMHO. Let's wait at laest a month. To be clear here: You mean at least one month before starting a freeze? This is not my proposal anymore to just branch, but Han-Wen's idea of having a freeze of 3-4 weeks before branching. signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On 11/09/2020 15:22, David Kastrup wrote: Jonas Hahnfeld writes: Am Sonntag, den 06.09.2020, 13:40 +0200 schrieb Jonas Hahnfeld: Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: Here is my proposal for how to go ahead: * we build a 2.21.6 from master, and announce it widely as a 2.22 pre-release version. Adding Phil. I did a full test build of current master yesterday and it worked fine with https://github.com/gperciva/gub/pull/80 in place. With respect to wording, every 2.21.x is some kind of pre-release for 2.22. If this proposal gets consensus, I'd emphasize that feature development is over, but I'll leave that to native speakers * we institute a X week freeze; during the freeze, we only merge - fixes for regressions - updates to the documentation - cleanups with no functional changes, with little risk (ie. refrain from build system changes, for example). * after the X week freeze, if we still have open regressions, we tack on another few weeks of freeze to fix them. * if there are no regressions left, we branch stable/2.22, and release a new pre-release. X could be up for discussion, but 3 or 4 weeks seems long enough to gather some feedback, but short enough that experimental/feature work should not be affected. The objective of the freeze is to focus developer energy on fixing regressions rather than causing new regressions. Sounds good to me. To arrive at a decision, what do others think about this? Having a large silent mass is not really helpful for this kind of discussion (as it wasn't for the switch to GitLab). Frankly I don't see the point in repeating points I already made and call that "discussion". I don't see that in the current stage of upheaval of both internals and build system and infrastructure, there is a point in freezing off some half-baked intermediate state that hasn't seen significant exposure to extensive testing. I cannot comment on 'Internals' but 'build system' and 'infrastructure' are not, I think, issues that really concern 'average Joe User' who wants to download and install a version of LP that works. That doesn't mean they don't matter but I don't see us getting all our proverbial waterfowl in a row any time soon with all the mix of MRs I am seeing of build/Infra and LP-specific. So we have to draw a line in the sand somewhere if only for those developers that just want to do 'build system and infrastructure' stuff so unless anything is broken 'now' for the build, why not just stop accepting any more MRs for it at this time? In effect I agree with Jonas' plan but slightly modified, I suggest that unless anything is really broken with the build system 'today' (and I am not getting that vibe from the conversations I read) we have one more countdown for 'anything' build-related to get in the patch countdown and after that, we only focus on Regressions and docs, anything currently in the patch countdown that is build related gets counted down normally (if it gets pulled/needs more changes it cannot come back in) and eventually the countdown should only contain LP/Doc MRs and possibly even peter out to nothing which would be a good indicator of when to revisit a 'when shall we freeze'. I don't do any development so feel a bit brash saying all this but personally I don't think we will need 'weeks' to decide a freeze date, I think it might become very obvious, very quickly once we prohibit build/infra MRs and focus on regressions/docs. And until someone 'says' an actual date - and gets feed back on that - I think we may keep on procrastinating. As for 'extensive testing' well all that I can see we can do here I think is announce this to the user group and ask for help testing - even just running 'a build' on some big and/or complex scores and ask for feedback (perhaps put something on the website). I don't know what else we can do for testing. Thanks for listening. James
Re: branching stable/2.22?
> I don't see that in the current stage of upheaval of both internals and > build system and infrastructure, there is a point in freezing off some > half-baked intermediate state that hasn't seen significant exposure to > extensive testing. +1 It's too early IMHO. Let's wait at laest a month. Werner
Re: branching stable/2.22?
Jonas Hahnfeld writes: > Am Sonntag, den 06.09.2020, 13:40 +0200 schrieb Jonas Hahnfeld: >> Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: >> > Here is my proposal for how to go ahead: >> > >> > * we build a 2.21.6 from master, and announce it widely as a 2.22 >> > pre-release version. >> >> Adding Phil. I did a full test build of current master yesterday and it >> worked fine with https://github.com/gperciva/gub/pull/80 in place. >> With respect to wording, every 2.21.x is some kind of pre-release for >> 2.22. If this proposal gets consensus, I'd emphasize that feature >> development is over, but I'll leave that to native speakers >> >> > * we institute a X week freeze; during the freeze, we only merge >> > - fixes for regressions >> > - updates to the documentation >> > - cleanups with no functional changes, with little risk (ie. refrain >> > from build system changes, for example). >> > * after the X week freeze, if we still have open regressions, we tack >> > on another few weeks of freeze to fix them. >> > * if there are no regressions left, we branch stable/2.22, and release >> > a new pre-release. >> > >> > X could be up for discussion, but 3 or 4 weeks seems long enough to >> > gather some feedback, but short enough that experimental/feature work >> > should not be affected. >> > >> > The objective of the freeze is to focus developer energy on fixing >> > regressions rather than causing new regressions. >> >> Sounds good to me. > > To arrive at a decision, what do others think about this? Having a > large silent mass is not really helpful for this kind of discussion (as > it wasn't for the switch to GitLab). Frankly I don't see the point in repeating points I already made and call that "discussion". I don't see that in the current stage of upheaval of both internals and build system and infrastructure, there is a point in freezing off some half-baked intermediate state that hasn't seen significant exposure to extensive testing. -- David Kastrup
Re: branching stable/2.22?
Am Sonntag, den 06.09.2020, 13:40 +0200 schrieb Jonas Hahnfeld: > Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: > > Here is my proposal for how to go ahead: > > > > * we build a 2.21.6 from master, and announce it widely as a 2.22 > > pre-release version. > > Adding Phil. I did a full test build of current master yesterday and it > worked fine with https://github.com/gperciva/gub/pull/80 in place. > With respect to wording, every 2.21.x is some kind of pre-release for > 2.22. If this proposal gets consensus, I'd emphasize that feature > development is over, but I'll leave that to native speakers > > > * we institute a X week freeze; during the freeze, we only merge > > - fixes for regressions > > - updates to the documentation > > - cleanups with no functional changes, with little risk (ie. refrain > > from build system changes, for example). > > * after the X week freeze, if we still have open regressions, we tack > > on another few weeks of freeze to fix them. > > * if there are no regressions left, we branch stable/2.22, and release > > a new pre-release. > > > > X could be up for discussion, but 3 or 4 weeks seems long enough to > > gather some feedback, but short enough that experimental/feature work > > should not be affected. > > > > The objective of the freeze is to focus developer energy on fixing > > regressions rather than causing new regressions. > > Sounds good to me. To arrive at a decision, what do others think about this? Having a large silent mass is not really helpful for this kind of discussion (as it wasn't for the switch to GitLab). Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On Sun, Sep 6, 2020 at 1:40 PM Jonas Hahnfeld wrote: > > Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: > > On Sat, Sep 5, 2020 at 10:52 AM Jonas Hahnfeld wrote: > > > > I think the real problem is that we don't know exactly how many > > > > problems there are that would be unacceptable in a stable release. So > > > > we need a way to coax people normally on stable releases to try out > > > > our current master, so we know where we are. Could we rename the > > > > current 2.21 as 2.22-RC1 or 2.21.90 and hopefully get some feedback? > > > > > > Well yes, that's the point of the whole thread, but I don't think we'll > > > get much feedback when continuing to break core functionality by usual > > > development. IMHO the bump to 2.21.90 (or some other high value) should > > > happen after branching, ie when it's really a release candidate. > > > We could of course have some smaller bump to advertise as alpha while > > > still working on master, but I doubt that would help much without some > > > kind of freeze... > > > > > > To reiterate the initial question: What would it take to get there? In > > > my opinion, that's equivalent to asking about critical issues that need > > > large changes to fix them. > > > > I am not aware of critical issues at the moment. (While the doc build > > refactoring has been disruptive, and still hasn't completely > > stabilized, it doesn't affect end-users directly.) > > > > I read over the commits with potential end-user impact since branching > > 2.21, > > Did you mean to say "branching stable/2.20" (commit 0712559601)? While Yes. I browsed through at a lot of commits. -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
Am So., 6. Sept. 2020 um 12:33 Uhr schrieb Han-Wen Nienhuys : > I am not aware of critical issues at the moment. At least https://gitlab.com/lilypond/lilypond/-/issues?scope=all=%E2%9C%93=opened_name[]=Critical returns empty. Some issues are labeled "crash" though: https://gitlab.com/lilypond/lilypond/-/issues?scope=all=%E2%9C%93=opened_name[]=Crash I did not check whether those issues are still valid, though. Cheers, Harm
Re: branching stable/2.22?
Am Sonntag, den 06.09.2020, 12:33 +0200 schrieb Han-Wen Nienhuys: > On Sat, Sep 5, 2020 at 10:52 AM Jonas Hahnfeld wrote: > > > I think the real problem is that we don't know exactly how many > > > problems there are that would be unacceptable in a stable release. So > > > we need a way to coax people normally on stable releases to try out > > > our current master, so we know where we are. Could we rename the > > > current 2.21 as 2.22-RC1 or 2.21.90 and hopefully get some feedback? > > > > Well yes, that's the point of the whole thread, but I don't think we'll > > get much feedback when continuing to break core functionality by usual > > development. IMHO the bump to 2.21.90 (or some other high value) should > > happen after branching, ie when it's really a release candidate. > > We could of course have some smaller bump to advertise as alpha while > > still working on master, but I doubt that would help much without some > > kind of freeze... > > > > To reiterate the initial question: What would it take to get there? In > > my opinion, that's equivalent to asking about critical issues that need > > large changes to fix them. > > I am not aware of critical issues at the moment. (While the doc build > refactoring has been disruptive, and still hasn't completely > stabilized, it doesn't affect end-users directly.) > > I read over the commits with potential end-user impact since branching > 2.21, Did you mean to say "branching stable/2.20" (commit 0712559601)? While some later commits might have made it into 2.20, I think there's still more than the last few months. > and got the following list of things to consider: > > * lots of changes to GS calling conventions updated; changes to default fonts? > This has lots of area for unexpected interactions between platforms > (windows!) and GS versions. At the same time, we control the GS > version through GUB, right? Yes, calling conventions and atomic replacement resulted in some breakage, but the fixes in 2.21.4 and 2.21.5 seem to work (at least no new complaints and reports on the mailing list that functionality has been restored). > * General: C++ changes triggering segfault due to optimized out GC > references. We are probably well covered, though, because we run GL CI > often; we haven't seen flakes recently, have we? > > * New output backend calling conventions may break user-supplied > stencil expressions. This should probably be documented better in > changes.tely. Also, I would like to hear from Scorio about the new > backend API (ly:make-paper-outputter) before we commit to it in a > stable version. > > * We have a lot of coverage for the Python3 migration for > lilypond-book, musicxml2ly, and midi2ly, but what about other scripts? > > * Doc build rewrite: is the translation tooling working correctly now? I fixed one wrongly referenced variable (TRANSLATION_FILES instead of CHECKED_FILES) when updating the German web pages, but other than that the instructions worked for me (who never did this before). > * Move to gitlab: did all docs get updated? Probably most, but maybe good to do another pass. One thing to consider is issue verification (which hasn't happened for 2.21.2 and later versions yet), but I'll start a separate thread about this. > Here is my proposal for how to go ahead: > > * we build a 2.21.6 from master, and announce it widely as a 2.22 > pre-release version. Adding Phil. I did a full test build of current master yesterday and it worked fine with https://github.com/gperciva/gub/pull/80 in place. With respect to wording, every 2.21.x is some kind of pre-release for 2.22. If this proposal gets consensus, I'd emphasize that feature development is over, but I'll leave that to native speakers > * we institute a X week freeze; during the freeze, we only merge > - fixes for regressions > - updates to the documentation > - cleanups with no functional changes, with little risk (ie. refrain > from build system changes, for example). > * after the X week freeze, if we still have open regressions, we tack > on another few weeks of freeze to fix them. > * if there are no regressions left, we branch stable/2.22, and release > a new pre-release. > > X could be up for discussion, but 3 or 4 weeks seems long enough to > gather some feedback, but short enough that experimental/feature work > should not be affected. > > The objective of the freeze is to focus developer energy on fixing > regressions rather than causing new regressions. Sounds good to me. signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On Sat, Sep 5, 2020 at 10:52 AM Jonas Hahnfeld wrote: > > I think the real problem is that we don't know exactly how many > > problems there are that would be unacceptable in a stable release. So > > we need a way to coax people normally on stable releases to try out > > our current master, so we know where we are. Could we rename the > > current 2.21 as 2.22-RC1 or 2.21.90 and hopefully get some feedback? > > Well yes, that's the point of the whole thread, but I don't think we'll > get much feedback when continuing to break core functionality by usual > development. IMHO the bump to 2.21.90 (or some other high value) should > happen after branching, ie when it's really a release candidate. > We could of course have some smaller bump to advertise as alpha while > still working on master, but I doubt that would help much without some > kind of freeze... > > To reiterate the initial question: What would it take to get there? In > my opinion, that's equivalent to asking about critical issues that need > large changes to fix them. I am not aware of critical issues at the moment. (While the doc build refactoring has been disruptive, and still hasn't completely stabilized, it doesn't affect end-users directly.) I read over the commits with potential end-user impact since branching 2.21, and got the following list of things to consider: * lots of changes to GS calling conventions updated; changes to default fonts? This has lots of area for unexpected interactions between platforms (windows!) and GS versions. At the same time, we control the GS version through GUB, right? * General: C++ changes triggering segfault due to optimized out GC references. We are probably well covered, though, because we run GL CI often; we haven't seen flakes recently, have we? * New output backend calling conventions may break user-supplied stencil expressions. This should probably be documented better in changes.tely. Also, I would like to hear from Scorio about the new backend API (ly:make-paper-outputter) before we commit to it in a stable version. * We have a lot of coverage for the Python3 migration for lilypond-book, musicxml2ly, and midi2ly, but what about other scripts? * Doc build rewrite: is the translation tooling working correctly now? * Move to gitlab: did all docs get updated? Here is my proposal for how to go ahead: * we build a 2.21.6 from master, and announce it widely as a 2.22 pre-release version. * we institute a X week freeze; during the freeze, we only merge - fixes for regressions - updates to the documentation - cleanups with no functional changes, with little risk (ie. refrain from build system changes, for example). * after the X week freeze, if we still have open regressions, we tack on another few weeks of freeze to fix them. * if there are no regressions left, we branch stable/2.22, and release a new pre-release. X could be up for discussion, but 3 or 4 weeks seems long enough to gather some feedback, but short enough that experimental/feature work should not be affected. The objective of the freeze is to focus developer energy on fixing regressions rather than causing new regressions. -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
Am Freitag, den 04.09.2020, 22:49 +0200 schrieb Han-Wen Nienhuys: > On Thu, Sep 3, 2020 at 11:16 AM Jonas Hahnfeld wrote: > > Am Mittwoch, den 26.08.2020, 00:05 +0200 schrieb Han-Wen Nienhuys: > > > On Tue, Aug 25, 2020 at 11:17 PM Jonas Hahnfeld wrote: > > > > > I think the stabilization effort could be a joint effort by the entire > > > > > dev team, by agreeing with the team to hold off on new features and > > > > > invasive changes for a period of time (say, 1 to 2 months). > > > > > > > > My feeling is that we should prioritize on bug fixes, but not actively > > > > block the development of features. > > > > > > Right - but we should refrain from changes that will make the > > > backporting process more difficult, so it is still a freeze of sorts. > > > > So what do we do here? > > 0) Do nothing and continue to break things > > 1) Prioritize fixes over features > > 2) Agree on some sort of freeze > > 3) Branch off stable/2.22 and cherry-pick only fixes > > I think the real problem is that we don't know exactly how many > problems there are that would be unacceptable in a stable release. So > we need a way to coax people normally on stable releases to try out > our current master, so we know where we are. Could we rename the > current 2.21 as 2.22-RC1 or 2.21.90 and hopefully get some feedback? Well yes, that's the point of the whole thread, but I don't think we'll get much feedback when continuing to break core functionality by usual development. IMHO the bump to 2.21.90 (or some other high value) should happen after branching, ie when it's really a release candidate. We could of course have some smaller bump to advertise as alpha while still working on master, but I doubt that would help much without some kind of freeze... To reiterate the initial question: What would it take to get there? In my opinion, that's equivalent to asking about critical issues that need large changes to fix them. signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On Thu, Sep 3, 2020 at 11:16 AM Jonas Hahnfeld wrote: > > Am Mittwoch, den 26.08.2020, 00:05 +0200 schrieb Han-Wen Nienhuys: > > On Tue, Aug 25, 2020 at 11:17 PM Jonas Hahnfeld wrote: > > > > I think the stabilization effort could be a joint effort by the entire > > > > dev team, by agreeing with the team to hold off on new features and > > > > invasive changes for a period of time (say, 1 to 2 months). > > > > > > My feeling is that we should prioritize on bug fixes, but not actively > > > block the development of features. > > > > Right - but we should refrain from changes that will make the > > backporting process more difficult, so it is still a freeze of sorts. > > So what do we do here? > 0) Do nothing and continue to break things > 1) Prioritize fixes over features > 2) Agree on some sort of freeze > 3) Branch off stable/2.22 and cherry-pick only fixes I think the real problem is that we don't know exactly how many problems there are that would be unacceptable in a stable release. So we need a way to coax people normally on stable releases to try out our current master, so we know where we are. Could we rename the current 2.21 as 2.22-RC1 or 2.21.90 and hopefully get some feedback? -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
Jonas Hahnfeld writes: > Am Mittwoch, den 26.08.2020, 00:05 +0200 schrieb Han-Wen Nienhuys: >> On Tue, Aug 25, 2020 at 11:17 PM Jonas Hahnfeld wrote: >> > > I think the stabilization effort could be a joint effort by the entire >> > > dev team, by agreeing with the team to hold off on new features and >> > > invasive changes for a period of time (say, 1 to 2 months). >> > >> > My feeling is that we should prioritize on bug fixes, but not actively >> > block the development of features. >> >> Right - but we should refrain from changes that will make the >> backporting process more difficult, so it is still a freeze of sorts. > > So what do we do here? > 0) Do nothing and continue to break things > 1) Prioritize fixes over features The breakage we currently get was not because of features. Mainly it was because of overhauling code base and build system. There is very little payoff for the end user, apart from moderate performance improvements. And of course a higher likelihood that their distribution will not discontinue distribution of LilyPond. > 2) Agree on some sort of freeze > 3) Branch off stable/2.22 and cherry-pick only fixes I think that "some sort of freeze" makes sense only in light of defining goals to achieve for the next stable release. As long as those goals still necessitate disruptive/extensive changes, there is not much of a point in branching. -- David Kastrup
Re: branching stable/2.22?
Am Mittwoch, den 26.08.2020, 00:05 +0200 schrieb Han-Wen Nienhuys: > On Tue, Aug 25, 2020 at 11:17 PM Jonas Hahnfeld wrote: > > > I think the stabilization effort could be a joint effort by the entire > > > dev team, by agreeing with the team to hold off on new features and > > > invasive changes for a period of time (say, 1 to 2 months). > > > > My feeling is that we should prioritize on bug fixes, but not actively > > block the development of features. > > Right - but we should refrain from changes that will make the > backporting process more difficult, so it is still a freeze of sorts. So what do we do here? 0) Do nothing and continue to break things 1) Prioritize fixes over features 2) Agree on some sort of freeze 3) Branch off stable/2.22 and cherry-pick only fixes Am Dienstag, den 25.08.2020, 07:51 -0600 schrieb Carl Sorensen: > Rather than a date, I'd prefer a criterion. > > [...] > > I recommend against creating a stable branch too soon. In my experience, > we get much more testing on the unstable branch than on the stable branch. > People are likely to use the most recent unstable release as a matter of > course; they are much less likely to go check out the most recent stable > (but not yet released) branch. Note that some more unstable releases would follow from the stable branch, and that's likely what end-users test. Developers will continue to build master, but any problem seen in the stable branch should initially also occur in master, right? (unless there's some magical fix or the issue disappears with some refactoring) Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Jonas Hahnfeld writes: > Am Dienstag, den 25.08.2020, 07:51 -0600 schrieb Carl Sorensen: >> On Tue, Aug 25, 2020 at 7:13 AM Jonas Hahnfeld wrote: >> > I know I'll regret it because I still don't know what objective >> > criteria others have, but as you really insist on a statement: >> > in the week of 14th of September (this year, 2020, just to be clear) >> > or put differently: right after 2.21.7, from that very tag >> > As said before, I wouldn't make any commitment on the date of the final >> > release. >> >> Rather than a date, I'd prefer a criterion. >> >> Once we have an unstable release with the build system in good shape >> (all the auxiliary scripts work well, the website builds correctly, >> the MacOS build is functional at least on MacPorts), I'd be in favor >> of creating a pre-release candidate (which in the past has *not* >> been a stable branch, but a big bump in the version number; the CG >> refers to this as an alpha) and implementing the Build-frozen state >> listed in the CG. > > Are you sure this is what happened in the past? I mean I didn't > participate, so all I can rely on is git and the mailing list archives. > > For 2.18, I see > - release/2.17.29-1 tagged on 20 October 2013 > - > https://lists.gnu.org/archive/html/lilypond-devel/2013-10/msg00189.html > on 22 October 2013 > - release/2.17.95-1 tagged on 04 November 2013 > - > https://lists.gnu.org/archive/html/lilypond-devel/2013-11/msg00077.html > on 05 November 2013 > As far as I understand, stable/2.18 was created before 2.17.95 (which > was incorrectly released from master, see above). The merge base > between current master and stable/2.18 points to April 2014 which is > probably due to a partial merge? Certainly after 2.18.0 had been > released in December 2013. > > For 2.20, I see > - considerations in December 2016: > https://lists.gnu.org/archive/html/lilypond-devel/2016-12/msg00348.html > - > https://lists.gnu.org/archive/html/lilypond-devel/2017-06/msg00030.html > on 06 June 2017 > - release/2.19.65-1 tagged on 06 August 2017 > - merge-base HEAD stable/2.20: 0712559601, committed 08 August 2017 > and merged into stable/2.20 on 16 August 2017 > - > https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00068.html > on 16 August 2017 > - release/2.19.80-1 tagged on 16 October 2017 > > This looks like the release candidates (coinciding with the big bump) > have (or should have been) released from the stable/ branches? Yes. > That said, I'm not opposed to doing a pre-release candidate from > master and git history tells little about possible freezes. The freezes mostly consisted in telling people to _please_ stop making life harder for the stable release manager, with moderate success. However, as release stoppers were accumulating and the release process got stuck up, the "don't do development" appeals stopped making a whole lot of sense. > Just trying to understand what might have worked in the past... I sure wished I had been able to get an understanding about what might have worked... -- David Kastrup
Re: branching stable/2.22?
Am Dienstag, den 25.08.2020, 07:51 -0600 schrieb Carl Sorensen: > On Tue, Aug 25, 2020 at 7:13 AM Jonas Hahnfeld wrote: > > I know I'll regret it because I still don't know what objective > > criteria others have, but as you really insist on a statement: > > in the week of 14th of September (this year, 2020, just to be clear) > > or put differently: right after 2.21.7, from that very tag > > As said before, I wouldn't make any commitment on the date of the final > > release. > > Rather than a date, I'd prefer a criterion. > > Once we have an unstable release with the build system in good shape (all the > auxiliary scripts work well, the website builds correctly, the MacOS build is > functional at least on MacPorts), I'd be in favor of creating a pre-release > candidate (which in the past has *not* been a stable branch, but a big bump > in the version number; the CG refers to this as an alpha) and implementing > the Build-frozen state listed in the CG. Are you sure this is what happened in the past? I mean I didn't participate, so all I can rely on is git and the mailing list archives. For 2.18, I see - release/2.17.29-1 tagged on 20 October 2013 - https://lists.gnu.org/archive/html/lilypond-devel/2013-10/msg00189.html on 22 October 2013 - release/2.17.95-1 tagged on 04 November 2013 - https://lists.gnu.org/archive/html/lilypond-devel/2013-11/msg00077.html on 05 November 2013 As far as I understand, stable/2.18 was created before 2.17.95 (which was incorrectly released from master, see above). The merge base between current master and stable/2.18 points to April 2014 which is probably due to a partial merge? Certainly after 2.18.0 had been released in December 2013. For 2.20, I see - considerations in December 2016: https://lists.gnu.org/archive/html/lilypond-devel/2016-12/msg00348.html - https://lists.gnu.org/archive/html/lilypond-devel/2017-06/msg00030.html on 06 June 2017 - release/2.19.65-1 tagged on 06 August 2017 - merge-base HEAD stable/2.20: 0712559601, committed 08 August 2017 and merged into stable/2.20 on 16 August 2017 - https://lists.gnu.org/archive/html/lilypond-devel/2017-08/msg00068.html on 16 August 2017 - release/2.19.80-1 tagged on 16 October 2017 This looks like the release candidates (coinciding with the big bump) have (or should have been) released from the stable/ branches? That said, I'm not opposed to doing a pre-release candidate from master and git history tells little about possible freezes. Just trying to understand what might have worked in the past... > After we've had some time to get the alpha release tested, we announce a beta > release and branch stable. > > I concur with the idea that a properly functioning full conversion to Python > 3 and workable (though not required) Guile 2 constitutes sufficient change > for the next stable version. No other features are needed. > > I recommend against creating a stable branch too soon. In my experience, we > get much more testing on the unstable branch than on the stable branch. > People are likely to use the most recent unstable release as a matter of > course; they are much less likely to go check out the most recent stable (but > not yet released) branch. > > THanks, > > Carl > > signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Am Dienstag, den 25.08.2020, 22:56 +0200 schrieb Han-Wen Nienhuys: > On Tue, Aug 25, 2020 at 8:31 AM Jonas Hahnfeld wrote: > > I don't understand why you would want to backport features? IMO that's > > got nothing to do with how far the stable branch diverges. > > > > > Whatever the option, we will need people to manage the release (yes, I > > > could possibly help next summer ... though I'm afraid I'd be NOT_SMART). > > > > If it's just missing people to do the work, I obviously volunteer and > > am willing to cherry-pick fixes from master as needed. > > I am happy to help with fixing bugs for the stable release. > > > From my experience in the LLVM project, there is no such thing as > > "naturally stabilizing code". Either you create a branch and pick fixes > > or you have a strict policy that allows only fixes to master before > > branching. > > That's basically the model GCC is using, and I don't think > > it fits the community. > > I agree that we have to do something, either branching and > cherry-picking, or holding off on work that destabilizes the > situation. > > I don't understand why you think the GCC model doesn't fit, though? If followed strictly, it means no feature commits in master during the freeze which leaves two options: Either features build up in private and it'll be serious work to integrate them after the freeze ends, or they're not developed at all which is also bad. > I think the branching model has the problem that someone has to do the > work of backporting, which is probably less fun to do. If in parallel > cowboys like me keep submitting experimental things to master, > backporting the fixes is made all the more difficult. Right, that is the trade-off. So really no easy solution to the problem. > I think the stabilization effort could be a joint effort by the entire > dev team, by agreeing with the team to hold off on new features and > invasive changes for a period of time (say, 1 to 2 months). My feeling is that we should prioritize on bug fixes, but not actively block the development of features. Jonas > BTW- aside from GUILE 2 and Python 3 support, I think users will also > be happy with the speedups that I've been working on in this cycle. signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
On Tue, Aug 25, 2020 at 8:31 AM Jonas Hahnfeld wrote: > I don't understand why you would want to backport features? IMO that's > got nothing to do with how far the stable branch diverges. > > > Whatever the option, we will need people to manage the release (yes, I > > could possibly help next summer ... though I'm afraid I'd be NOT_SMART). > > If it's just missing people to do the work, I obviously volunteer and > am willing to cherry-pick fixes from master as needed. I am happy to help with fixing bugs for the stable release. > From my experience in the LLVM project, there is no such thing as > "naturally stabilizing code". Either you create a branch and pick fixes > or you have a strict policy that allows only fixes to master before > branching. > That's basically the model GCC is using, and I don't think > it fits the community. I agree that we have to do something, either branching and cherry-picking, or holding off on work that destabilizes the situation. I don't understand why you think the GCC model doesn't fit, though? I think the branching model has the problem that someone has to do the work of backporting, which is probably less fun to do. If in parallel cowboys like me keep submitting experimental things to master, backporting the fixes is made all the more difficult. I think the stabilization effort could be a joint effort by the entire dev team, by agreeing with the team to hold off on new features and invasive changes for a period of time (say, 1 to 2 months). BTW- aside from GUILE 2 and Python 3 support, I think users will also be happy with the speedups that I've been working on in this cycle. -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
> I concur with the idea that a properly functioning full conversion to > Python 3 and workable (though not required) Guile 2 constitutes sufficient > change for the next stable version. No other features are needed. I agree with this. Kevin
Re: branching stable/2.22?
On Aug 25, 2020, at 09:51, Carl Sorensen wrote: > > Once we have an unstable release with the build system in good shape (all > the auxiliary scripts work well, the website builds correctly, the MacOS > build is functional at least on MacPorts), I'd be in favor of creating a > pre-release candidate (which in the past has *not* been a stable branch, > but a big bump in the version number; the CG refers to this as an alpha) > and implementing the Build-frozen state listed in the CG. > > After we've had some time to get the alpha release tested, we announce a > beta release and branch stable. > > I concur with the idea that a properly functioning full conversion to > Python 3 and workable (though not required) Guile 2 constitutes sufficient > change for the next stable version. No other features are needed. > > I recommend against creating a stable branch too soon. In my experience, > we get much more testing on the unstable branch than on the stable branch. > People are likely to use the most recent unstable release as a matter of > course; they are much less likely to go check out the most recent stable > (but not yet released) branch. I could get behind all of this. — Dan
Re: branching stable/2.22?
> Now go off tearing me apart. That one was a blow in my stomach.(In fact, I was about to write something similar in my last message.) Taking stock on the thread, my reactions were not appropriate, especially the fourth one which is rubbish. I should have anticipated that personal issues wouldn't help either. Jonas and other readers, I sincerely apologize for the harm caused. As I currently appear unable to express my views in an actionable manner that is not offensive or annoying to others, I am going to step down from this discussion. I simply shouldn't have joined it in the first place. Cheers, Jean
Re: branching stable/2.22?
On Tue, Aug 25, 2020 at 7:13 AM Jonas Hahnfeld wrote: > > I know I'll regret it because I still don't know what objective > criteria others have, but as you really insist on a statement: > in the week of 14th of September (this year, 2020, just to be clear) > or put differently: right after 2.21.7, from that very tag > As said before, I wouldn't make any commitment on the date of the final > release. > > > Rather than a date, I'd prefer a criterion. Once we have an unstable release with the build system in good shape (all the auxiliary scripts work well, the website builds correctly, the MacOS build is functional at least on MacPorts), I'd be in favor of creating a pre-release candidate (which in the past has *not* been a stable branch, but a big bump in the version number; the CG refers to this as an alpha) and implementing the Build-frozen state listed in the CG. After we've had some time to get the alpha release tested, we announce a beta release and branch stable. I concur with the idea that a properly functioning full conversion to Python 3 and workable (though not required) Guile 2 constitutes sufficient change for the next stable version. No other features are needed. I recommend against creating a stable branch too soon. In my experience, we get much more testing on the unstable branch than on the stable branch. People are likely to use the most recent unstable release as a matter of course; they are much less likely to go check out the most recent stable (but not yet released) branch. THanks, Carl
Re: branching stable/2.22?
Am Dienstag, den 25.08.2020, 14:43 +0200 schrieb Jean Abou Samra: > > Le 25 août 2020 à 12:29, Jonas Hahnfeld a écrit : > > > > Am Dienstag, den 25.08.2020, 12:06 +0200 schrieb Jean Abou Samra: > > > > Le 25 août 2020 à 08:30, Jonas Hahnfeld a écrit : > > > > For me, creating the branch is nothing more than saying "feature > > > > development is over and the current set is worth making stable". Which > > > > I'm arguing is already there with Python 3 and the possibility to use > > > > Guile 2. See my very initial message. > > > > > > At the same time, you're saying that branching is not going to happen > > > next week. Please elaborate on your mind: when should that happen? > > > > After below points have happened and after gathering agreement that > > there are no open blockers to branching. IMO that would be something > > fundamentally broken which can be expected to hit every user. AFAICT > > that's not the case. Other problems can be addressed by picking fixes > > into the branch. > > That can happen in a week, can't it? It could, but discussion takes time. Only because I don't see open blockers doesn't mean it's true and others agree right away, as evidenced here. > I can't follow your mind anymore. You previously agreed with David that the > code base was in too much of a destabilized state for branching soon. I said "in the next week" (note the singular form) which is basically proven by this discussion. "soon" for me would be anything within the next month. > We're talking about bugs that we don't yet know but could pop up in the > months to come given this state. > > > (It probably makes sense to branch right after making some future > > unstable release, which implies that GUB is mostly happy, but that's > > some minor detail I would say.) > > > > > > On the administrative side, I think > > > > * there should be another reformatting for all C++ and Scheme > > > > * docs should be updated, including authors.itexi > > > > Everything else can and should be picked as needed. > > > > > > [...] > > > > > > We're having, in fact, similar views. You say that we need to stabilize > > > the code base through branching, which I entirely agree with -- except > > > that right now is not the right time. > > > > So what objective function would you use to set an agreeable date? Just > > time, > > Yes, that is basically the idea. I think schedules help people work together > even if later deviated from. > > > January 2021 being a shot in the dark? > > Do speak up about what you would consider a more reasonable time. I know I'll regret it because I still don't know what objective criteria others have, but as you really insist on a statement: in the week of 14th of September (this year, 2020, just to be clear) or put differently: right after 2.21.7, from that very tag As said before, I wouldn't make any commitment on the date of the final release. Now go off tearing me apart. Jonas > Also, I value the actual date less than I value agreement on the date. > > Best regards. > Jean signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Am Dienstag, den 25.08.2020, 12:06 +0200 schrieb Jean Abou Samra: > > Le 25 août 2020 à 08:30, Jonas Hahnfeld a écrit : > > > > Am Montag, den 24.08.2020, 22:10 +0200 schrieb Jean Abou Samra: > > > > > > > As sort of a shot in the dark, how about planning the 2.22 > > > > > > > release for May 2021, for example? > > > > > > > > > > > > Do you mean branching stable/2.22 or releasing 2.22.0 in May 2021? > > > > > > In > > > > > > my understanding, the past process includes the release of beta > > > > > > versions from the branch. That makes it close to impossible to > > > > > > predict > > > > > > the final date of the stable version, and that's not the purpose of > > > > > > this thread. > > > > > > > > > > I mean releasing 2.22.0 in May 2021. This is not about predictions, > > > > > but objectives. I think that instead of planning each small step on > > > > > the fly with no idea how the future looks like, we should settle an > > > > > expected date for the release and plan backwards accordingly. Sure, > > > > > there could be critical bugs that delay the actual release, but > > > > > setting the expectation enables more resources to focus on the > > > > > release by the time it is due to happen. In my opinion, this is the > > > > > way we can avoid things like the 2.14 release that is documented in > > > > > the CG. > > > > > > > > > > So, an expected release in May 2021 would mean branching release/2.20 > > > > > around January (?) and beta releases at a monthly cadence until the > > > > > release is out. > > > > > > > > > > I'm curious about what others think of that. In fact it looks like > > > > > you already proposed something along these lines: > > > > > https://www.mail-archive.com/lilypond-devel@gnu.org/msg72997.html > > > > > > > > > > > > > And it didn't get much support. Which is why I don't see what's > > > > different today. Asking what it would take to branch is really the only > > > > sensible thing I think we could possibly agree on. > > > > > > As I see it, you're asking something nobody, apparently, can give you. We > > > need to create the process instead of finding it out: what do you think > > > it should take to branch? > > > > For me, creating the branch is nothing more than saying "feature > > development is over and the current set is worth making stable". Which > > I'm arguing is already there with Python 3 and the possibility to use > > Guile 2. See my very initial message. > > At the same time, you're saying that branching is not going to happen next > week. Please elaborate on your mind: when should that happen? After below points have happened and after gathering agreement that there are no open blockers to branching. IMO that would be something fundamentally broken which can be expected to hit every user. AFAICT that's not the case. Other problems can be addressed by picking fixes into the branch. (It probably makes sense to branch right after making some future unstable release, which implies that GUB is mostly happy, but that's some minor detail I would say.) > > On the administrative side, I think > > * there should be another reformatting for all C++ and Scheme > > * docs should be updated, including authors.itexi > > Everything else can and should be picked as needed. > > [...] > > We're having, in fact, similar views. You say that we need to stabilize the > code base through branching, which I entirely agree with -- except that > right now is not the right time. So what objective function would you use to set an agreeable date? Just time, January 2021 being a shot in the dark? > What I'm trying to convey here is that postponing decisions on the ground of > them being controversial is damaging to team members' morale. > > To me, for the above-mentioned reasons, settling a date for branching 2.22 > amounts to scheduling the 2.22 release, which is why I think we should > explicitely discuss that schedule, instead of making short-term decisions > that only have consensus because the consequences weren't discussed, with no > longer term perspectives. The contrary would let the community split into > small groups of like-minded persons that avoid each other because don't want > to go the trouble of convincing each other. Given that you're ready to > endorse the release manager role and responsibility, I no longer see any > blocker to scheduling 2.20, except getting agreement about the schedule. > > So we better start arguing about the schedule. > > Cheers, > Jean > signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
> Le 25 août 2020 à 08:30, Jonas Hahnfeld a écrit : > > Am Montag, den 24.08.2020, 22:10 +0200 schrieb Jean Abou Samra: >> As sort of a shot in the dark, how about planning the 2.22 release for >> May 2021, for example? > > Do you mean branching stable/2.22 or releasing 2.22.0 in May 2021? In > my understanding, the past process includes the release of beta > versions from the branch. That makes it close to impossible to predict > the final date of the stable version, and that's not the purpose of > this thread. I mean releasing 2.22.0 in May 2021. This is not about predictions, but objectives. I think that instead of planning each small step on the fly with no idea how the future looks like, we should settle an expected date for the release and plan backwards accordingly. Sure, there could be critical bugs that delay the actual release, but setting the expectation enables more resources to focus on the release by the time it is due to happen. In my opinion, this is the way we can avoid things like the 2.14 release that is documented in the CG. So, an expected release in May 2021 would mean branching release/2.20 around January (?) and beta releases at a monthly cadence until the release is out. I'm curious about what others think of that. In fact it looks like you already proposed something along these lines: https://www.mail-archive.com/lilypond-devel@gnu.org/msg72997.html >>> >>> And it didn't get much support. Which is why I don't see what's >>> different today. Asking what it would take to branch is really the only >>> sensible thing I think we could possibly agree on. >> >> As I see it, you're asking something nobody, apparently, can give you. We >> need to create the process instead of finding it out: what do you think it >> should take to branch? > > For me, creating the branch is nothing more than saying "feature > development is over and the current set is worth making stable". Which > I'm arguing is already there with Python 3 and the possibility to use > Guile 2. See my very initial message. At the same time, you're saying that branching is not going to happen next week. Please elaborate on your mind: when should that happen? > On the administrative side, I think > * there should be another reformatting for all C++ and Scheme > * docs should be updated, including authors.itexi > Everything else can and should be picked as needed. > >> Branching means collectively commiting to creating a stable release a >> handful of months later, otherwise we get to the situation that David >> described in his last reply: the stable branch comes so far from master that >> features need to be ported to it; clearly, that's not a desirable workflow. > > I don't understand why you would want to backport features? IMO that's > got nothing to do with how far the stable branch diverges. I was talking about what happened in 2.20: > It's worth stressing that the 2.20 branch persisted much longer before > the 2.20 release than planned. So there were also some feature > cherry-picks in order to avoid the situation that the 2.20 release would > be "outdated from the start" with regard to some "must-have" features > that would be expected to be common in suggested code on the mailing > lists. Now, you might say that if we do more frequent releases, the problem will disappear. This means, however, that we're planning to make releases more often, which is a decision that extends far beyond simply planning the branching time. >> Whatever the option, we will need people to manage the release (yes, I could >> possibly help next summer ... though I'm afraid I'd be NOT_SMART). > > If it's just missing people to do the work, I obviously volunteer and > am willing to cherry-pick fixes from master as needed. Nice! >> So, I think the question is essentially wether we try to plan the release >> now or just wait for the essential features we'd like in it to be >> implemented, e.g., full Guile 2 support. Personally, I think it's better to >> plan it so hopefully developers will naturally organize their respective >> works accordingly. In this perspective, if full Guile 2 support is not >> implemented by the deadline, it just waits for another release. But that's >> just my opinion. > > From my experience in the LLVM project, there is no such thing as > "naturally stabilizing code". Either you create a branch and pick fixes > or you have a strict policy that allows only fixes to master before > branching. That's basically the model GCC is using, and I don't think > it fits the community. I was not meaning that the code base would naturally stabilize but instead that developers would be able to plan what features they can implement in the time that runs from now to branching. Predictability makes people happy. We're having, in fact, similar views. You say that we
Re: branching stable/2.22?
Am Montag, den 24.08.2020, 22:10 +0200 schrieb Jean Abou Samra: > > > > > As sort of a shot in the dark, how about planning the 2.22 release > > > > > for May 2021, for example? > > > > > > > > Do you mean branching stable/2.22 or releasing 2.22.0 in May 2021? In > > > > my understanding, the past process includes the release of beta > > > > versions from the branch. That makes it close to impossible to predict > > > > the final date of the stable version, and that's not the purpose of > > > > this thread. > > > > > > I mean releasing 2.22.0 in May 2021. This is not about predictions, but > > > objectives. I think that instead of planning each small step on the fly > > > with no idea how the future looks like, we should settle an expected date > > > for the release and plan backwards accordingly. Sure, there could be > > > critical bugs that delay the actual release, but setting the expectation > > > enables more resources to focus on the release by the time it is due to > > > happen. In my opinion, this is the way we can avoid things like the 2.14 > > > release that is documented in the CG. > > > > > > So, an expected release in May 2021 would mean branching release/2.20 > > > around January (?) and beta releases at a monthly cadence until the > > > release is out. > > > > > > I'm curious about what others think of that. In fact it looks like you > > > already proposed something along these lines: > > > https://www.mail-archive.com/lilypond-devel@gnu.org/msg72997.html > > > > And it didn't get much support. Which is why I don't see what's > > different today. Asking what it would take to branch is really the only > > sensible thing I think we could possibly agree on. > > As I see it, you're asking something nobody, apparently, can give you. We > need to create the process instead of finding it out: what do you think it > should take to branch? For me, creating the branch is nothing more than saying "feature development is over and the current set is worth making stable". Which I'm arguing is already there with Python 3 and the possibility to use Guile 2. See my very initial message. On the administrative side, I think * there should be another reformatting for all C++ and Scheme * docs should be updated, including authors.itexi Everything else can and should be picked as needed. > Branching means collectively commiting to creating a stable release a handful > of months later, otherwise we get to the situation that David described in > his last reply: the stable branch comes so far from master that features need > to be ported to it; clearly, that's not a desirable workflow. I don't understand why you would want to backport features? IMO that's got nothing to do with how far the stable branch diverges. > Whatever the option, we will need people to manage the release (yes, I could > possibly help next summer ... though I'm afraid I'd be NOT_SMART). If it's just missing people to do the work, I obviously volunteer and am willing to cherry-pick fixes from master as needed. > So, I think the question is essentially wether we try to plan the release now > or just wait for the essential features we'd like in it to be implemented, > e.g., full Guile 2 support. Personally, I think it's better to plan it so > hopefully developers will naturally organize their respective works > accordingly. In this perspective, if full Guile 2 support is not implemented > by the deadline, it just waits for another release. But that's just my > opinion. From my experience in the LLVM project, there is no such thing as "naturally stabilizing code". Either you create a branch and pick fixes or you have a strict policy that allows only fixes to master before branching. That's basically the model GCC is using, and I don't think it fits the community. Jonas signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Hi, > Le 24 août 2020 à 13:46, Jonas Hahnfeld a écrit : > > Am Montag, den 24.08.2020, 12:56 +0200 schrieb Jean Abou Samra: >> Hi, >> >>> Le 24 août 2020 à 08:30, Jonas Hahnfeld a écrit : >>> >>> Am Sonntag, den 23.08.2020, 23:44 +0200 schrieb Jean Abou Samra: Maybe we could try to release 2.20.1 with Python 3? >>> >>> That would mean porting 50+ commits which sounds like a bad idea and >>> even gets worse because of the reformatting in master. The latter >>> implies that any bug fix made in master will result in merge conflicts. >>> Plus I don't understand the proposal if you're at the same time saying >>> that the scripts are fragile. By that logic, why would we backport such >>> extensive changes and claim they're stable? >> >> Right, I was oblique: the scripts are fragile at present, so branching >> release/2.22 now is no good in my opinion, but hopefully we can stabilize >> them faster than we stabilize LilyPond as a whole, and have that in 2.20.1 >> or 2.20.2. >> >> Can you explain why porting 50 commits from master to 2.20 is a bad idea? > > I think it's a bad idea because it goes against my basic understanding > that only bug fixes should be ported a stable branch. This situation is special anyway: we did a release that is from the start outdated with respect to Python support. All I'm saying is that porting this to 2.20 would be better than releasing 2.22 in a hurry, for the reasons that David and I mentioned. So... > Here's the total > number of commits in stable/2.20 since branching: > [...] >> If we port all Python related-commits (including the reformatting), there >> won't be any merge conflicts, or am I being dense somehow? > > [...] > Being the individual with the most commits in there during the cycle, I > strongly advise against taking all of this for a minor stable release. ... so since that appears unpossible, I guess we'd just let distros drop LilyPond. >> I do understand that having LilyPond 2.20.0 support exclusively Python 2 but >> 2.20.1 be Python 3 only feels weird. However, I value the interest of the >> average user more than that of packagers. Neither Python 3 nor Guile 2 is a >> breaking change from the user's point of view. If having LilyPond 2.20.1 (or >> 2.20.2) support Python 3 is not feasible, I think we should just let >> distributions drop LilyPond (see below). I'm not happy about it, but this >> is, in my opinion, preferable to making a stable release, in a hurry, that >> will contain more bugs and few user-facing changes. >> Why Guile 2? If it's still imperfect and slower, we don't want to make it the default in the binaries at lilypond.org, do we? So how will the situation be different from 2.20? Sorry, I must be missing something obvious here... I don't understand you. >>> >>> At least in my book, it's not about changing the default but at least >>> making it possible for distributions to compile with Guile 2.x instead >>> of just throwing LilyPond out. >> >> Does this mean that we'll receive bug reports that won't be reproducible by >> others because they'll actually be related to Guile 2? In my opinion, the >> distributions just throwing out LilyPond is better. >> >> Additionally, the sh installers are recommended by the official website over >> distribution package managers. >>> I don't think we'll get testing from distributions until we declare a >>> way to stabilize. >> >> We're speaking from different points of view here: in my book, our main >> source of testing is our development and beta releases brought to users >> through installers. I mean that LilyPond 2.22 should introduce full support >> for Guile 2 with byte compilation, probably dropping Guile 1 support too, >> and we get Guile 2 testing from those who try out the betas. > > I seriously doubt you'll get that for 2.22 next year. That date was a shot in the dark intended at starting the discussion. See also below. Am Sonntag, den 23.08.2020, 14:59 +0200 schrieb David Kastrup: >> I'd like to ask what it would take in principle to branch stable/2.22 >> and what others think about this. > > I don't see that this is a good point of time. > There has been an influx of badly tested changes to the build system and > directory setup and the web pages that has to stabilise and result in a > workable version of LilyPond. I don't see the point in branching a > "stable" branch if there is so much in a destabilised state: you'd have > to cherry-pick loads of stuff from the unstable branch as it comes in. [Jonas] I fully agree ... and so do I (for what my opinion's worth, really) ... [Jonas] and I should have been more clear that I don't expect the branch to happen in the next week. The point was to find out what it would take because just waiting for some unspoken condition to become true is not exactly going to happen without some effort.
Re: branching stable/2.22?
Jonas Hahnfeld writes: > Am Montag, den 24.08.2020, 12:56 +0200 schrieb Jean Abou Samra: >> >> Right, I was oblique: the scripts are fragile at present, so >> branching release/2.22 now is no good in my opinion, but hopefully >> we can stabilize them faster than we stabilize LilyPond as a whole, >> and have that in 2.20.1 or 2.20.2. >> >> Can you explain why porting 50 commits from master to 2.20 is a bad idea? > > I think it's a bad idea because it goes against my basic understanding > that only bug fixes should be ported a stable branch. Here's the total > number of commits in stable/2.20 since branching: > $ git log --oneline release/2.20.0-1...release/2.19.65-1 | wc -l > 588 > > Sounds high at first, but most of that was translations, ie > $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- $(ls | > grep -vE "Documentation|po") | wc -l > 268 > If only focusing on actual code changes: > $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- flower/ > lily/ ly/ python/ scm/ scripts/ | wc -l > 198 > with the majority in "core" LilyPond: > $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- lily/ ly/ scm/ | > wc -l > 148 It's worth stressing that the 2.20 branch persisted much longer before the 2.20 release than planned. So there were also some feature cherry-picks in order to avoid the situation that the 2.20 release would be "outdated from the start" with regard to some "must-have" features that would be expected to be common in suggested code on the mailing lists. So 2.20's history in some way reflects how to muddle through in a situation that became a lot different from planning. It's not really a template for how things should work. -- David Kastrup
Re: branching stable/2.22?
Am Montag, den 24.08.2020, 12:56 +0200 schrieb Jean Abou Samra: > Hi, > > > Le 24 août 2020 à 08:30, Jonas Hahnfeld a écrit : > > > > Am Sonntag, den 23.08.2020, 23:44 +0200 schrieb Jean Abou Samra: > > > Hi, > > > > > > (Sorry about the strange reply style.) > > > > > > > On Sun, Aug 23, 2020 at 1:58 PM Jonas Hahnfeld wrote: > > > > I'd like to ask what it would take in principle to branch stable/2.22 > > > > and what others think about this. > > > > > > > > Personally I'm convinced that creating the branch and only picking bug > > > > fixes from master is the only guaranteed way to stabilize. Now you > > > > might say that there were only few unstable releases (AFAICT there was > > > > 2.19.65 before branching stable/2.20). However, I think there are > > > > already quite some user-facing changes and also the switch to Python 3. > > > > With Python 2.x being EOL since January, it's only a matter of time > > > > until Linux distributions and BSDs want to drop that, and it > > > > would be > > > > unfortunate if that put a (temporary) end to providing LilyPond for > > > > their users. If we had release candidates or even a stable version > > > > until then, it would definitely help. > > > > > > Maybe we could try to release 2.20.1 with Python 3? > > > > That would mean porting 50+ commits which sounds like a bad idea and > > even gets worse because of the reformatting in master. The latter > > implies that any bug fix made in master will result in merge conflicts. > > Plus I don't understand the proposal if you're at the same time saying > > that the scripts are fragile. By that logic, why would we backport such > > extensive changes and claim they're stable? > > Right, I was oblique: the scripts are fragile at present, so branching > release/2.22 now is no good in my opinion, but hopefully we can stabilize > them faster than we stabilize LilyPond as a whole, and have that in 2.20.1 or > 2.20.2. > > Can you explain why porting 50 commits from master to 2.20 is a bad idea? I think it's a bad idea because it goes against my basic understanding that only bug fixes should be ported a stable branch. Here's the total number of commits in stable/2.20 since branching: $ git log --oneline release/2.20.0-1...release/2.19.65-1 | wc -l 588 Sounds high at first, but most of that was translations, ie $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- $(ls | grep -vE "Documentation|po") | wc -l 268 If only focusing on actual code changes: $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- flower/ lily/ ly/ python/ scm/ scripts/ | wc -l 198 with the majority in "core" LilyPond: $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- lily/ ly/ scm/ | wc -l 148 > If we port all Python related-commits (including the reformatting), there > won't be any merge conflicts, or am I being dense somehow? Consider: $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- python/ | wc -l 22 vs $ git log --oneline HEAD...release/2.19.65-1 -- python/ | wc -l 115 and $ git log --oneline release/2.20.0-1...release/2.19.65-1 -- scripts/*.py | wc -l 5 vs $ git log --oneline HEAD...release/2.19.65-1 -- scripts/*.py | wc -l 67 Being the individual with the most commits in there during the cycle, I strongly advise against taking all of this for a minor stable release. > I do understand that having LilyPond 2.20.0 support exclusively Python 2 but > 2.20.1 be Python 3 only feels weird. However, I value the interest of the > average user more than that of packagers. Neither Python 3 nor Guile 2 is a > breaking change from the user's point of view. If having LilyPond 2.20.1 (or > 2.20.2) support Python 3 is not feasible, I think we should just let > distributions drop LilyPond (see below). I'm not happy about it, but this is, > in my opinion, preferable to making a stable release, in a hurry, that will > contain more bugs and few user-facing changes. > > > > > The same can of course happen with Guile, but that situation has been > > > > going on for years. Furthermore, it's at least possible to compile and > > > > use current master with Guile 2.x, even if slower. In my understanding, > > > > things are getting better but properly integrating byte compilation is > > > > still a good amount of work that nobody could give a deadline on. > > > > > > > > WDYT? > > > > > > [Han-Wen] I think that both Python 3 support and usable (if imperfect) > > > GUILE 2 support is a strong argument for releasing a new stable version > > > soon. > > > > > > Why Guile 2? If it's still imperfect and slower, we don't want to make it > > > the default in the binaries at lilypond.org, do we? So how will the > > > situation be different from 2.20? Sorry, I must be missing something > > > obvious here... I don't understand you. > > > > At least in my book, it's not about changing the default but at least > > making it possible for distributions to compile with Guile 2.x instead > > of just throwing
Re: branching stable/2.22?
Hi, > Le 24 août 2020 à 08:30, Jonas Hahnfeld a écrit : > > Am Sonntag, den 23.08.2020, 23:44 +0200 schrieb Jean Abou Samra: >> Hi, >> >> (Sorry about the strange reply style.) >> >>> On Sun, Aug 23, 2020 at 1:58 PM Jonas Hahnfeld wrote: >>> I'd like to ask what it would take in principle to branch stable/2.22 >>> and what others think about this. >>> >>> Personally I'm convinced that creating the branch and only picking bug >>> fixes from master is the only guaranteed way to stabilize. Now you >>> might say that there were only few unstable releases (AFAICT there was >>> 2.19.65 before branching stable/2.20). However, I think there are >>> already quite some user-facing changes and also the switch to Python 3. >>> With Python 2.x being EOL since January, it's only a matter of time >>> until Linux distributions and BSDs want to drop that, and it would be >>> unfortunate if that put a (temporary) end to providing LilyPond for >>> their users. If we had release candidates or even a stable version >>> until then, it would definitely help. >> >> Maybe we could try to release 2.20.1 with Python 3? > > That would mean porting 50+ commits which sounds like a bad idea and > even gets worse because of the reformatting in master. The latter > implies that any bug fix made in master will result in merge conflicts. > Plus I don't understand the proposal if you're at the same time saying > that the scripts are fragile. By that logic, why would we backport such > extensive changes and claim they're stable? Right, I was oblique: the scripts are fragile at present, so branching release/2.22 now is no good in my opinion, but hopefully we can stabilize them faster than we stabilize LilyPond as a whole, and have that in 2.20.1 or 2.20.2. Can you explain why porting 50 commits from master to 2.20 is a bad idea? If we port all Python related-commits (including the reformatting), there won't be any merge conflicts, or am I being dense somehow? I do understand that having LilyPond 2.20.0 support exclusively Python 2 but 2.20.1 be Python 3 only feels weird. However, I value the interest of the average user more than that of packagers. Neither Python 3 nor Guile 2 is a breaking change from the user's point of view. If having LilyPond 2.20.1 (or 2.20.2) support Python 3 is not feasible, I think we should just let distributions drop LilyPond (see below). I'm not happy about it, but this is, in my opinion, preferable to making a stable release, in a hurry, that will contain more bugs and few user-facing changes. >>> The same can of course happen with Guile, but that situation has been >>> going on for years. Furthermore, it's at least possible to compile and >>> use current master with Guile 2.x, even if slower. In my understanding, >>> things are getting better but properly integrating byte compilation is >>> still a good amount of work that nobody could give a deadline on. >>> >>> WDYT? >> >> [Han-Wen] I think that both Python 3 support and usable (if imperfect) GUILE >> 2 support is a strong argument for releasing a new stable version soon. >> >> Why Guile 2? If it's still imperfect and slower, we don't want to make it >> the default in the binaries at lilypond.org, do we? So how will the >> situation be different from 2.20? Sorry, I must be missing something obvious >> here... I don't understand you. > > At least in my book, it's not about changing the default but at least > making it possible for distributions to compile with Guile 2.x instead > of just throwing LilyPond out. Does this mean that we'll receive bug reports that won't be reproducible by others because they'll actually be related to Guile 2? In my opinion, the distributions just throwing out LilyPond is better. Additionally, the sh installers are recommended by the official website over distribution package managers. >> At any rate, Python 3 support is great, but the scripts are fragile at the >> moment. This is clear from the tracker and the bug-lilypond list. Our Python >> scripts still need fixes in the way we distribute them, plus >> encoding-related issues (I'm planning on tackling the latter point in a >> short period at the end of August, but who knows what that will reveal). > > Could you please point to concrete issues? The distribution of scripts > hasn't changed, so it basically still works the same it did for years > (decades?). I'm writing this with a browser that is too old to view gitlab.com. There is at least https://www.mail-archive.com/bug-lilypond@gnu.org/msg43376.html which looks serious at first sight. >> [Han-Wen] I've been working on the build system (obviously), with in the >> back of my mind having a build that is no longer recursive, but that work >> could be paused for a bit while we prepare for releasing a 2.22. Is there a >> list of problems in the current master that have to be resolved? >> >> Problems are basically popping every week (e.g., info installation, >> translation tools,
Re: branching stable/2.22?
Am Sonntag, den 23.08.2020, 23:44 +0200 schrieb Jean Abou Samra: > Hi, > > (Sorry about the strange reply style.) > > On Sun, Aug 23, 2020 at 1:58 PM Jonas Hahnfeld wrote: > > I'd like to ask what it would take in principle to branch stable/2.22 > > and what others think about this. > > > > Personally I'm convinced that creating the branch and only picking bug > > fixes from master is the only guaranteed way to stabilize. Now you > > might say that there were only few unstable releases (AFAICT there was > > 2.19.65 before branching stable/2.20). However, I think there are > > already quite some user-facing changes and also the switch to Python 3. > > With Python 2.x being EOL since January, it's only a matter of time > > until Linux distributions and BSDs want to drop that, and it would be > > unfortunate if that put a (temporary) end to providing LilyPond for > > their users. If we had release candidates or even a stable version > > until then, it would definitely help. > > Maybe we could try to release 2.20.1 with Python 3? That would mean porting 50+ commits which sounds like a bad idea and even gets worse because of the reformatting in master. The latter implies that any bug fix made in master will result in merge conflicts. Plus I don't understand the proposal if you're at the same time saying that the scripts are fragile. By that logic, why would we backport such extensive changes and claim they're stable? > > The same can of course happen with Guile, but that situation has been > > going on for years. Furthermore, it's at least possible to compile and > > use current master with Guile 2.x, even if slower. In my understanding, > > things are getting better but properly integrating byte compilation is > > still a good amount of work that nobody could give a deadline on. > > > > WDYT? > > [Han-Wen] I think that both Python 3 support and usable (if imperfect) GUILE > 2 support is a strong argument for releasing a new stable version soon. > > Why Guile 2? If it's still imperfect and slower, we don't want to make it the > default in the binaries at lilypond.org, do we? So how will the situation be > different from 2.20? Sorry, I must be missing something obvious here... I > don't understand you. At least in my book, it's not about changing the default but at least making it possible for distributions to compile with Guile 2.x instead of just throwing LilyPond out. > At any rate, Python 3 support is great, but the scripts are fragile at the > moment. This is clear from the tracker and the bug-lilypond list. Our Python > scripts still need fixes in the way we distribute them, plus encoding-related > issues (I'm planning on tackling the latter point in a short period at the > end of August, but who knows what that will reveal). Could you please point to concrete issues? The distribution of scripts hasn't changed, so it basically still works the same it did for years (decades?). > [Han-Wen] I've been working on the build system (obviously), with in the back > of my mind having a build that is no longer recursive, but that work could be > paused for a bit while we prepare for releasing a 2.22. Is there a list of > problems in the current master that have to be resolved? > > Problems are basically popping every week (e.g., info installation, > translation tools, etc.). You're fixing them every week, which is really > great, but before creating a release branch that is devoted to stability, I > think we need a couple months to see what new problems appear, don't we? > > We have unstable releases to publish new features and get testing. In my > opinion, stable releases should really focus on stability, there's no need to > rush because of Python 3 and Guile 2. I don't think we'll get testing from distributions until we declare a way to stabilize. > At least four areas are currently under flux: Python scripts, the build > system, Guile 2 support, and fonts (Owen's project), and I don't see that > master is coming any close to stability. I think we are better with focusing > on these areas as long as they still require substantial attention, so as to > get a stable and nice LilyPond 2.22 in a timely manner. You derecursify the > build, David completes his stack of rather extensive purportive changes, Owen > merges the GSoC branch, etc., and only then it'll be time to care about > LilyPond 2.22. And that's my point: If we just sit and wait, the next stable release might happen after all major distributions threw LilyPond out - simply because it cannot be built in a world of Python 3. > Am Sonntag, den 23.08.2020, 14:59 +0200 schrieb David Kastrup: > > > I'd like to ask what it would take in principle to branch stable/2.22 > > > and what others think about this. > > I don't see that this is a good point of time. > > There has been an influx of badly tested changes to the build system and > > directory setup and the web pages that has to stabilise and result in a > >
Re: branching stable/2.22?
On Aug 23, 2020, at 17:44, Jean Abou Samra wrote: > > At least four areas are currently under flux: Python scripts, the build > system, Guile 2 support, and fonts (Owen's project), and I don't see that > master is coming any close to stability. I think we are better with focusing > on these areas as long as they still require substantial attention, so as to > get a stable and nice LilyPond 2.22 in a timely manner. You derecursify the > build, David completes his stack of rather extensive purportive changes, Owen > merges the GSoC branch, etc., and only then it'll be time to care about > LilyPond 2.22. ... Dan submits his work on Simultaneous Alternatives, of which Unfoldable Lyrics are a special case ... — Dan
Re: branching stable/2.22?
Hi, (Sorry about the strange reply style.) On Sun, Aug 23, 2020 at 1:58 PM Jonas Hahnfeld wrote: > I'd like to ask what it would take in principle to branch stable/2.22 > and what others think about this. > > Personally I'm convinced that creating the branch and only picking bug > fixes from master is the only guaranteed way to stabilize. Now you > might say that there were only few unstable releases (AFAICT there was > 2.19.65 before branching stable/2.20). However, I think there are > already quite some user-facing changes and also the switch to Python 3. > With Python 2.x being EOL since January, it's only a matter of time > until Linux distributions and BSDs want to drop that, and it would be > unfortunate if that put a (temporary) end to providing LilyPond for > their users. If we had release candidates or even a stable version > until then, it would definitely help. Maybe we could try to release 2.20.1 with Python 3? > The same can of course happen with Guile, but that situation has been > going on for years. Furthermore, it's at least possible to compile and > use current master with Guile 2.x, even if slower. In my understanding, > things are getting better but properly integrating byte compilation is > still a good amount of work that nobody could give a deadline on. > > WDYT? [Han-Wen] I think that both Python 3 support and usable (if imperfect) GUILE 2 support is a strong argument for releasing a new stable version soon. Why Guile 2? If it's still imperfect and slower, we don't want to make it the default in the binaries at lilypond.org, do we? So how will the situation be different from 2.20? Sorry, I must be missing something obvious here... I don't understand you. At any rate, Python 3 support is great, but the scripts are fragile at the moment. This is clear from the tracker and the bug-lilypond list. Our Python scripts still need fixes in the way we distribute them, plus encoding-related issues (I'm planning on tackling the latter point in a short period at the end of August, but who knows what that will reveal). [Han-Wen] I've been working on the build system (obviously), with in the back of my mind having a build that is no longer recursive, but that work could be paused for a bit while we prepare for releasing a 2.22. Is there a list of problems in the current master that have to be resolved? Problems are basically popping every week (e.g., info installation, translation tools, etc.). You're fixing them every week, which is really great, but before creating a release branch that is devoted to stability, I think we need a couple months to see what new problems appear, don't we? We have unstable releases to publish new features and get testing. In my opinion, stable releases should really focus on stability, there's no need to rush because of Python 3 and Guile 2. At least four areas are currently under flux: Python scripts, the build system, Guile 2 support, and fonts (Owen's project), and I don't see that master is coming any close to stability. I think we are better with focusing on these areas as long as they still require substantial attention, so as to get a stable and nice LilyPond 2.22 in a timely manner. You derecursify the build, David completes his stack of rather extensive purportive changes, Owen merges the GSoC branch, etc., and only then it'll be time to care about LilyPond 2.22. Am Sonntag, den 23.08.2020, 14:59 +0200 schrieb David Kastrup: > > I'd like to ask what it would take in principle to branch stable/2.22 > > and what others think about this. > I don't see that this is a good point of time. > There has been an influx of badly tested changes to the build system and > directory setup and the web pages that has to stabilise and result in a > workable version of LilyPond. I don't see the point in branching a > "stable" branch if there is so much in a destabilised state: you'd have > to cherry-pick loads of stuff from the unstable branch as it comes in. [Jonas] I fully agree ... and so do I (for what my opinion's worth, really) ... [Jonas] and I should have been more clear that I don't expect the branch to happen in the next week. The point was to find out what it would take because just waiting for some unspoken condition to become true is not exactly going to happen without some effort. What about scheduling the release? While I do know that "Grass doesn't grow faster when you pull on it.", I would definitely like having a defined point in time where the stable release is to happen, so that everyone can focus on bug fixes before it happens. Sure, we aren't going to get agreement in a second about the date (even if not more precise than a month), but to me, having this talk now is preferable so as to give LilyPond development a tempo. To say it with other words, we've got a score to play; arguing about the tempo is better than starting the piece with different tempi. As sort of a shot in the dark, how about planning
Re: branching stable/2.22?
On Sun, Aug 23, 2020 at 1:58 PM Jonas Hahnfeld wrote: > I'd like to ask what it would take in principle to branch stable/2.22 > and what others think about this. > > Personally I'm convinced that creating the branch and only picking bug > fixes from master is the only guaranteed way to stabilize. Now you > might say that there were only few unstable releases (AFAICT there was > 2.19.65 before branching stable/2.20). However, I think there are > already quite some user-facing changes and also the switch to Python 3. > With Python 2.x being EOL since January, it's only a matter of time > until Linux distributions and BSDs want to drop that, and it would be > unfortunate if that put a (temporary) end to providing LilyPond for > their users. If we had release candidates or even a stable version > until then, it would definitely help. > The same can of course happen with Guile, but that situation has been > going on for years. Furthermore, it's at least possible to compile and > use current master with Guile 2.x, even if slower. In my understanding, > things are getting better but properly integrating byte compilation is > still a good amount of work that nobody could give a deadline on. > > WDYT? I think that both Python 3 support and usable (if imperfect) GUILE 2 support is a strong argument for releasing a new stable version soon. I've been working on the build system (obviously), with in the back of my mind having a build that is no longer recursive, but that work could be paused for a bit while we prepare for releasing a 2.22. Is there a list of problems in the current master that have to be resolved? We could also consider a freeze for some time period (eg. 1-2 months), to allow the master branch to stabilize, before we cut 2.22. -- Han-Wen Nienhuys - hanw...@gmail.com - http://www.xs4all.nl/~hanwen
Re: branching stable/2.22?
Am Sonntag, den 23.08.2020, 14:59 +0200 schrieb David Kastrup: > Jonas Hahnfeld writes: > > Hi all, > > > > I'd like to ask what it would take in principle to branch stable/2.22 > > and what others think about this. > > I don't see that this is a good point of time. > > There has been an influx of badly tested changes to the build system and > directory setup and the web pages that has to stabilise and result in a > workable version of LilyPond. I don't see the point in branching a > "stable" branch if there is so much in a destabilised state: you'd have > to cherry-pick loads of stuff from the unstable branch as it comes in. I fully agree and I should have been more clear that I don't expect the branch to happen in the next week. The point was to find out what it would take because just waiting for some unspoken condition to become true is not exactly going to happen without some effort. > > Personally I'm convinced that creating the branch and only picking bug > > fixes from master is the only guaranteed way to stabilize. > > Taking a look at Documentation/en/changes.tely, there has not exactly > been a deluge of new features. > > > Now you might say that there were only few unstable releases (AFAICT > > there was 2.19.65 before branching stable/2.20). However, I think > > there are already quite some user-facing changes and also the switch > > to Python 3. With Python 2.x being EOL since January, it's only a > > matter of time until Linux distributions and BSDs want to drop that, > > and it would be unfortunate if that put a (temporary) end to providing > > LilyPond for their users. If we had release candidates or even a > > stable version until then, it would definitely help. > > At the current point of time, I see far too much focus on destabilising > the code base that I consider a single-person(?) project of making a > reasonably stable branch while the unstable branch is getting pounded on > something that would work well. Right, which makes discussion and a direction even more important. > > The same can of course happen with Guile, but that situation has been > > going on for years. Furthermore, it's at least possible to compile and > > use current master with Guile 2.x, even if slower. In my > > understanding, things are getting better but properly integrating byte > > compilation is still a good amount of work that nobody could give a > > deadline on. > > > > WDYT? > > While I see little point in making the quality of Guile-2+ support a > showstopper, I don't see that the current pace of revamping the code > base makes branching off a "stable" branch at this point of time a > sensible proposition. There just would be too much paralleled work in > trying to get "stable" a sensible moniker. The stable branch tends to > see only rather superficial testing, and a large divergence from master > would make its stability more a matter of wishful thinking than release > engineering. signature.asc Description: This is a digitally signed message part
Re: branching stable/2.22?
Jonas Hahnfeld writes: > Hi all, > > I'd like to ask what it would take in principle to branch stable/2.22 > and what others think about this. I don't see that this is a good point of time. There has been an influx of badly tested changes to the build system and directory setup and the web pages that has to stabilise and result in a workable version of LilyPond. I don't see the point in branching a "stable" branch if there is so much in a destabilised state: you'd have to cherry-pick loads of stuff from the unstable branch as it comes in. > Personally I'm convinced that creating the branch and only picking bug > fixes from master is the only guaranteed way to stabilize. Taking a look at Documentation/en/changes.tely, there has not exactly been a deluge of new features. > Now you might say that there were only few unstable releases (AFAICT > there was 2.19.65 before branching stable/2.20). However, I think > there are already quite some user-facing changes and also the switch > to Python 3. With Python 2.x being EOL since January, it's only a > matter of time until Linux distributions and BSDs want to drop that, > and it would be unfortunate if that put a (temporary) end to providing > LilyPond for their users. If we had release candidates or even a > stable version until then, it would definitely help. At the current point of time, I see far too much focus on destabilising the code base that I consider a single-person(?) project of making a reasonably stable branch while the unstable branch is getting pounded on something that would work well. > The same can of course happen with Guile, but that situation has been > going on for years. Furthermore, it's at least possible to compile and > use current master with Guile 2.x, even if slower. In my > understanding, things are getting better but properly integrating byte > compilation is still a good amount of work that nobody could give a > deadline on. > > WDYT? While I see little point in making the quality of Guile-2+ support a showstopper, I don't see that the current pace of revamping the code base makes branching off a "stable" branch at this point of time a sensible proposition. There just would be too much paralleled work in trying to get "stable" a sensible moniker. The stable branch tends to see only rather superficial testing, and a large divergence from master would make its stability more a matter of wishful thinking than release engineering. -- David Kastrup
Re: branching
Mike Solomon m...@mikesolomon.org writes: I had coffee with a developer a year or so ago who told me that he dropped out of the project because of commutation problems with David. Last night I wrote to him to share some of these frustrations and he wrote back: “as long as David is leading up the team, it’s a lost cause, nothing has changed and his way of acting is too problematic, independently of his technical excellence.” I tend to conceive of problems in terms of one, two, or many. The problem here has reached the “many level and I think we need to find a solution that goes beyond the individual. List-etiquette policies, branching policies - I’m open to trying anything. [...] What I’d like to see is a situation where David can blow off steam however he needs to, he doesn’t feel like people are ignoring him, You are aware that the above are mutually exclusive? If people consider any negative feedback as blowing off steam, that exactly implies suggesting to ignore it. If you take a look at the communications with you that escalated, the escalation happened _exactly_ because you did not take seriously what I said. So I stated my point more strongly. and LilyPond can be a dynamic, multiplayer environment without people getting offended and leaving the project. We are currently taking a look at how to create regions of LilyPond that can be worked on independently and without affecting the overall quality of LilyPond. If we manage to do this successfully, we'll be able to create a community work area where the quality of the individual project does not impact anybody but the active users of such a project. I think that a buffer area between core or nothing will broaden the base of people casually working on or with LilyPond and exchanging their experiences. It will also help with people who say feature xxx has to be in LilyPond in order to let me work with application yyy: they or their tool provider can just drop appropriate files into appropriate parts of the user- or tool- designated search paths. If we can get to a consensus that it's best for the project if I'm thrown out, of course that is perfectly possible. I would suggest the end of 2014 as a suitable date, simply because I received forward-going contributions that I'd prefer to spend as they were intended. But if people wish for an earlier date, I'd just pay back a corresponding amount. Now regardless of whether I continue participation with the LilyPond project or not, I definitely think that the code base needs to be changed to accommodate more independent work. While tools like git facilitate work based on separate branches and merges and rebasing, this is essentially negated by a code base where significant changes will tend to happen all over the place. This causes merge conflicts, or even worse, produces inconsistent code since conflicting changes not touching the same text lines are merged. So while the fundamental problem with participating with LilyPond can be circumscribed as David does not react gracefully when people step on his and LilyPond's toes, it does seem to make sense to work towards more generally available toe room anyway. In our current developer base, I don't see much more than a theoretical interest in modularity and usability: many of the developers have become settled in the status quo which works for them. Most contributions are rather focused about creating new functionality rather than making existing functionality more accessible or even consolidate what we already have. There are changes like commit 38a4081efa4a8ee2f5da780ca0ed2991627afc46 Author: David Kastrup d...@gnu.org Date: Sun Sep 30 02:21:00 2012 +0200 Issue 2869: Regularize lyrics lexer mode That makes lyrics mode rather similar to markup mode regarding how words are formed. {} are never considered part of words unless enclosed in quotes. Unquoted words do not contain whitespace, braces, quotes, backslashes, numbers or Scheme expressions. In addition, they cannot start with * . = and | since that would mess with duration, assignment and barcheck syntax. This removes some remaining TeX-oriented cruft in the lexer. The set of word-non-starters might need revisiting, but at least the regtests seem to pass. where a similar change in syntax happened for markups in 2004 if I read this correctly: commit 3d04206a83222e89d99ddf1a0766b6b74f158967 Author: Nicolas Sceaux nicolas.sce...@free.fr Date: Sun Nov 28 17:50:32 2004 + * lily/parser.yy: get rid off in markups by treating { } as real lists. * lily/lexer.ll: remove from markup lexer mode. This change was cited as a typical nuisance for newcomers on a list counted off the head of one user recently (he was surprised that it was actually fixed by now, now meaning 2.17.4). There are a number of other long-standing problems and awkwardnesses that I occasionally stumble upon: why haven't things like
Re: branching
On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: Mike Solomon m...@mikesolomon.org writes: I had coffee with a developer a year or so ago who told me that he dropped out of the project because of commutation problems with David. Last night I wrote to him to share some of these frustrations and he wrote back: “as long as David is leading up the team, it’s a lost cause, nothing has changed and his way of acting is too problematic, independently of his technical excellence.” I tend to conceive of problems in terms of one, two, or many. The problem here has reached the “many level and I think we need to find a solution that goes beyond the individual. List-etiquette policies, branching policies - I’m open to trying anything. [...] What I’d like to see is a situation where David can blow off steam however he needs to, he doesn’t feel like people are ignoring him, You are aware that the above are mutually exclusive? If people consider any negative feedback as blowing off steam, that exactly implies suggesting to ignore it. If you take a look at the communications with you that escalated, the escalation happened _exactly_ because you did not take seriously what I said. So I stated my point more strongly. Your e-mail merits a thorough response, but I should state immediately a corollary to this. I get negative feedback all the time from the community (we all do). What I mean is that there is the component not to ignore (the content) and the component to ignore (any abrasiveness used in the transmission of the content). Blowing off steam refers to the latter. That said, the more abrasive communication gets, the more difficult it is to determine its content. I always take what you say seriously - as seriously as any other developer. I certainly don’t claim to always get it, and sometimes you may need to restate things because I don’t get them. This restating may be frustrating for you, but it does not ever necessitate communication that would make people want to leave the project. More to come after I read through your e-mail. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: Mike Solomon m...@mikesolomon.org writes: We are currently taking a look at how to create regions of LilyPond that can be worked on independently and without affecting the overall quality of LilyPond. If we manage to do this successfully, we'll be able to create a community work area where the quality of the individual project does not impact anybody but the active users of such a project. I think this is an excellent goal. I think that a buffer area between core or nothing will broaden the base of people casually working on or with LilyPond and exchanging their experiences. It will also help with people who say feature xxx has to be in LilyPond in order to let me work with application yyy: they or their tool provider can just drop appropriate files into appropriate parts of the user- or tool- designated search paths. I agree. If we can get to a consensus that it's best for the project if I'm thrown out, of course that is perfectly possible. I would suggest the end of 2014 as a suitable date, simply because I received forward-going contributions that I'd prefer to spend as they were intended. But if people wish for an earlier date, I'd just pay back a corresponding amount. This seems like a rather extreme, all-or-nothing solution. What I’d like is people reacting gracefully when they feel that their toes are stepped on. There was one time when I started with the project where I blew up at Han Wen for pushing a major change with minimal review on a large scale beam collision project that I was working on. I flipped out - it was 80ish hours of my work down the toilet. I was not at all considerate in what I said and Han Wen dropped out of the project for a while. I’m not sure if the two were linked, but I felt _terrible_ about this - I realized that this is _never_ appropriate or useful for LilyPond, or for anything, to have communication like this. Now regardless of whether I continue participation with the LilyPond project or not, I definitely think that the code base needs to be changed to accommodate more independent work. I completely agree. While tools like git facilitate work based on separate branches and merges and rebasing, this is essentially negated by a code base where significant changes will tend to happen all over the place. This causes merge conflicts, or even worse, produces inconsistent code since conflicting changes not touching the same text lines are merged. So while the fundamental problem with participating with LilyPond can be circumscribed as David does not react gracefully when people step on his and LilyPond's toes, it does seem to make sense to work towards more generally available toe room anyway. Stepping on LilyPond’s toes is in the eye of the developer - what you consider stepping on LilyPond’s toes may not be for someone else and vice-versa. All of us are LilyPond’s toes. I agree that it makes sens to work towards more toe room. I don’t think this alone will make LilyPond viable in the long run. In our current developer base, I don't see much more than a theoretical interest in modularity and usability: many of the developers have become settled in the status quo which works for them. Most contributions are rather focused about creating new functionality rather than making existing functionality more accessible or even consolidate what we already have. There are changes like commit 38a4081efa4a8ee2f5da780ca0ed2991627afc46 Author: David Kastrup d...@gnu.org Date: Sun Sep 30 02:21:00 2012 +0200 Issue 2869: Regularize lyrics lexer mode That makes lyrics mode rather similar to markup mode regarding how words are formed. {} are never considered part of words unless enclosed in quotes. Unquoted words do not contain whitespace, braces, quotes, backslashes, numbers or Scheme expressions. In addition, they cannot start with * . = and | since that would mess with duration, assignment and barcheck syntax. This removes some remaining TeX-oriented cruft in the lexer. The set of word-non-starters might need revisiting, but at least the regtests seem to pass. where a similar change in syntax happened for markups in 2004 if I read this correctly: commit 3d04206a83222e89d99ddf1a0766b6b74f158967 Author: Nicolas Sceaux nicolas.sce...@free.fr Date: Sun Nov 28 17:50:32 2004 + * lily/parser.yy: get rid off in markups by treating { } as real lists. * lily/lexer.ll: remove from markup lexer mode. This change was cited as a typical nuisance for newcomers on a list counted off the head of one user recently (he was surprised that it was actually fixed by now, now meaning 2.17.4). There are a number of other long-standing problems and awkwardnesses that I occasionally stumble upon: why haven't things like the \tuplet command not been provided years ago?
Re: branching
Mike Solomon wrote Wednesday, December 11, 2013 10:22 AM On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: As opposed to me, Graham excelled at organizing and maintaining community efforts like this which makes his leaving an even larger loss. His leaving is a huge loss, and as he has stated several times, one big reason is the lack of sense of community. devel-list quarrels and the thaws that come from them have real impacts on LilyPond - I can’t emphasize enough that we need to stop marginalizing this issue and tackle it head on. Modularity, while perhaps a good long term solution, is a long ways away. How are we going to deal with this in 2014? Actually, I think there is a great sense of community within the LilyPond project. Why else would people comment so favourably on the responses they receive on the various mailing lists; why else would people on the bug squad, Phil on releases, James on managing reviews, etc devote their time to mundane tasks? Why else would people, even those no longer active in LilyPond development, continue to read the lists? No, we are a great community and it is greatly enjoyable to belong to it! Also we are extremely fortunate to have so many brilliant developers willing to spend their time augmenting, fixing and improving our baby. That differences arise from time-to-time is inevitable - from the nature of this project our community includes people covering a wide range of temperament. Artists, artisans and engineers all figure prominently. They have different viewpoints and approaches, but this is an advantage not a problem - providing we can find a way to live and work together without stress levels getting too high. How are we going to deal with this in 2014? I would recommend Mike and David both consider privately what they might have done differently to avoid this situation arising. Not what the other should have done, but what they themselves might have done. If they'd like to share those thoughts with the list that would be good, but that is not essential. But they must share them with each other and try to culture a mutual respect and understanding for the other's position. Trevor ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 11, 2013, at 2:18 PM, Trevor Daniels t.dani...@treda.co.uk wrote: Mike Solomon wrote Wednesday, December 11, 2013 10:22 AM On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: As opposed to me, Graham excelled at organizing and maintaining community efforts like this which makes his leaving an even larger loss. His leaving is a huge loss, and as he has stated several times, one big reason is the lack of sense of community. devel-list quarrels and the thaws that come from them have real impacts on LilyPond - I can’t emphasize enough that we need to stop marginalizing this issue and tackle it head on. Modularity, while perhaps a good long term solution, is a long ways away. How are we going to deal with this in 2014? Actually, I think there is a great sense of community within the LilyPond project. Why else would people comment so favourably on the responses they receive on the various mailing lists; why else would people on the bug squad, Phil on releases, James on managing reviews, etc devote their time to mundane tasks? Why else would people, even those no longer active in LilyPond development, continue to read the lists? No, we are a great community and it is greatly enjoyable to belong to it! I agree that this part of the community is great. Reading the communication between these people is a pleasure - it is professional, courteous and fun. Also we are extremely fortunate to have so many brilliant developers willing to spend their time augmenting, fixing and improving our baby. That differences arise from time-to-time is inevitable - from the nature of this project our community includes people covering a wide range of temperament. Artists, artisans and engineers all figure prominently. They have different viewpoints and approaches, but this is an advantage not a problem - providing we can find a way to live and work together without stress levels getting too high. I agree. How are we going to deal with this in 2014? I would recommend Mike and David both consider privately what they might have done differently to avoid this situation arising. Not what the other should have done, but what they themselves might have done. If they'd like to share those thoughts with the list that would be good, but that is not essential. But they must share them with each other and try to culture a mutual respect and understanding for the other's position. David and I have already been back and forth privately a lot about these issues. I value David’s criticisms and have learned a lot from his insistance on commenting, code quality, and design. To address issues that David has brought up, I have read cover to cover two books on programming, one of which is on code refactoring and design. I think these have led to tangible improvements in my work on LilyPond. I look forward to learning more. It’d be a great goal in 2014 to see people who left the project because of communication difficulties come back because of a sincere effort on the part of everyone to communicate with mutual respect, irrespective of what the differences are in their positions. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
Mike Solomon m...@mikesolomon.org writes: On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: [...] But that’s no good - we have to find a solution. Modularity, while perhaps a good long term solution, is a long ways away. How are we going to deal with this in 2014? By making headway and not be defeatist about it? is a long ways away is terribly close to somebody else's problem and let's think about this the year after next year. And I see no-one in the current developer base who would work in that direction. One of my major projects - eliminating calls to translate_axis, was moving exactly towards this (https://codereview.appspot.com/7185044/). It's called Caches the interior skylines of vertical axis groups and systems. and there is no obvious reason why cached skylines would not be translatable. Of course, there is the non-obvious reason that a translation might lead to a violation of skyline invariants due to numerical effects, but that's nothing that can't be caught in-place. In other words: there are several different issues that are conflated here in a single patch. There is no inherent reason why not being able to use translate_axis will lead to more modular code. It seems actually more likely that having to track offsets separately is going to make stuff more complex. More modular does _not_ mean eliminate functions doing a common task because of restructuring data in a manner incompatible with using a common function on it. Most graphic subsystems deal with this kind of thing by including a current transform matrix in their data sets so that transforms do not need to be performed until the final operation (actually, since PostScript also has the concept of a current transform, it's easy to pass this job to the backend). Of course, many skyline operators require a common coordinate system for the involved skylines, so there are points where one needs to normalize. The less we’re calling translate_axis (the Defense Against the Dark Arts function of LilyPond) in the backend, the more we can isolate functionality to certain places and the less surprises there are. I don't see the connection. The net effect for the user, according to the Changes file, appears to be that outside-staff-priority stops working unless special callbacks or special commands (\tupletOutsideStaffPriority) are used, regardless of whether the grobs have the side-position-interface or not. As a result, it is not all that surprising that there were several grobs overlooked. Does this have anything to do with caching the interior skylines of vertical axis groups and systems? Not apparently. Does it have anything to do with Removes the translate_axis call from axis-group-interface outside-staff positioning? Not obviously. There is no explanation in the review or patches for that. I've taken a look at the current patch: URL:https://codereview.appspot.com/7185044/#msg53 rather suggests that there is considerable work needed to get this into commit quality. There is also no explanation of the great plan behind this anywhere, and since this is a whole lot of stuff muddled in one review, it appears unlikely that the work will be split into a sequence of commits that give some overall direction (it would be quite untypical for you to split the material in a review, however involved, into separate commits). You say that there is plenty of followup work. I’ve for the time being dropped it until we can work out these community problems. The respective comments are in URL:http://code.google.com/p/lilypond/issues/detail?id=3134#c64 and the following. They have nothing whatsoever to do with community problems. What they _have_ to do with is release timing. Yes, the time frame I estimated for getting 2.18 was too optimistic. However, if this code would have been pushed at that stage and/or I would have been required to review it until it was of stable release quality, the time for getting every kink ironed out would have been much much larger. You stated that the bug fixes of previous patches were mostly done by Keith since you were removing yourself from development due to bad communication of mine. That does not really fit the time frames: your respective announcement came after most of the fixes. What figured in in your lack of time and/or concentration at that time, as it very well should, is you getting married, and working a whole lot with your ensemble to boot. The actually sad thing about the whole thing is that your withdrawal from active development (based on the feedback on a different issue) gave 2.18 and me as its warden the breathing room that was required for it to get into releasable state. So while you paint it as a loss for LilyPond, the _direct_ consequence of your withdrawal regarding those patches was a net win for getting the release done. The indirect consequences, namely you stopping also fixes necessary for getting to a release and, as you claim, others
Re: branching
On Dec 11, 2013, at 3:56 PM, David Kastrup d...@gnu.org wrote: Mike Solomon m...@mikesolomon.org writes: On Dec 11, 2013, at 11:36 AM, David Kastrup d...@gnu.org wrote: [...] But that’s no good - we have to find a solution. Modularity, while perhaps a good long term solution, is a long ways away. How are we going to deal with this in 2014? By making headway and not be defeatist about it? is a long ways away is terribly close to somebody else's problem and let's think about this the year after next year. And I see no-one in the current developer base who would work in that direction. One of my major projects - eliminating calls to translate_axis, was moving exactly towards this (https://codereview.appspot.com/7185044/). It's called Caches the interior skylines of vertical axis groups and systems. and there is no obvious reason why cached skylines would not be translatable. Of course, there is the non-obvious reason that a translation might lead to a violation of skyline invariants due to numerical effects, but that's nothing that can't be caught in-place. The title for this is pretty terrible, I agree. It was in sketch phase a few months ago before I stopped working on it. In other words: there are several different issues that are conflated here in a single patch. There is no inherent reason why not being able to use translate_axis will lead to more modular code. It seems actually more likely that having to track offsets separately is going to make stuff more complex. In most of LilyPond, grob properties are calculated via callbacks, which themselves trigger the calculations of other properties they need a cascading sort of way. This means that we can swap out the default function Script.Y-offset with another callback or a number. When translate_axis is used in the code, it means that while looking up a property of grob A, the offsets of B, C, and D will be set internally. This means that if a user sets the Y-offset of grob B to 2 and it is actually 4 because translate_axis has been called somewhere deep in the code, it is counterintuitive how this happened and how to change it. Furthermore, if the user overrides the callback that triggered translate axis, customary grob movements won’t happen anymore and the user won’t know why. In this way, translate_axis impedes modularity: it makes us less able to plug in different callback functions for different grobs and get expected results. My goal is to put all offset calculations in the callback function so that if I set TextScript.Y-offset to #0.1, I am positive that its Y offset with respect to its parent will be #0.1. This is currently not the case. The less we’re calling translate_axis (the Defense Against the Dark Arts function of LilyPond) in the backend, the more we can isolate functionality to certain places and the less surprises there are. I don't see the connection. The net effect for the user, according to the Changes file, appears to be that outside-staff-priority stops working unless special callbacks or special commands (\tupletOutsideStaffPriority) are used, regardless of whether the grobs have the side-position-interface or not. As a result, it is not all that surprising that there were several grobs overlooked. Does this have anything to do with caching the interior skylines of vertical axis groups and systems? Not apparently. Does it have anything to do with Removes the translate_axis call from axis-group-interface outside-staff positioning? Not obviously. There is no explanation in the review or patches for that. I've taken a look at the current patch: URL:https://codereview.appspot.com/7185044/#msg53 rather suggests that there is considerable work needed to get this into commit quality. There is a lot of work ahead of it, and if I get back to it, I’ll be splitting it up into smaller commits. There is also no explanation of the great plan behind this anywhere, The great plan is: Remove as many calls to translate_axis as possible. Create pure versions of the offset callbacks, which now calculate actual offsets without translate_axis tacked on. Now that these pure versions are used, pure estimates of staff height will be more accurate because they’ll finally take into consideration outside-staff grobs. That means that spacing stubs for cross staff grobs that need to user pure staff height calculations will be closer to the actual spacing. This means that scores with lots of cross-staff grobs will have better vertical spacing. Currently, vertical spacing of these scores is too airy because there is no good way to estimate outside-staff grobs, so LilyPond overestimates. and since this is a whole lot of stuff muddled in one review, it appears unlikely that the work will be split into a sequence of commits that give some overall direction (it would be quite untypical for you to split the material in a review, however
Re: branching
On Tue, Dec 10, 2013 at 02:42:45PM +0200, Mike Solomon wrote: On the website, we would offer _all_ of these development branches, including the one built off of staging, as GUB builds. A few years ago, we were asked to cut our downloads down to 5 GB. I deleted a bunch of devel stuff and got it down to 7 or 8, but we're probably back to 15 GB now. I don't think we should fill up the server with that many builds, nor do I think we should ask James to do all that building. We would also contain a tracker showing number of downloads and encouraging users to download the branches that have been downloaded the _least_. I don't like the idea of treating users as guinea pigs. If somebody wants to test out devel stuff, it's not unreasonable for them to compile it themselves (inside lilydev if necessary). - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 10, 2013, at 2:58 PM, Graham Percival gra...@percival-music.ca wrote: On Tue, Dec 10, 2013 at 02:42:45PM +0200, Mike Solomon wrote: On the website, we would offer _all_ of these development branches, including the one built off of staging, as GUB builds. A few years ago, we were asked to cut our downloads down to 5 GB. I deleted a bunch of devel stuff and got it down to 7 or 8, but we're probably back to 15 GB now. I don't think we should fill up the server with that many builds, nor do I think we should ask James to do all that building. I agree about the not asking James part - this should be split up (different gubs making different builds). As for the filling the server part, this seems like something that can be solved with alternate hosting sites for the download links. We would also contain a tracker showing number of downloads and encouraging users to download the branches that have been downloaded the _least_. I don't like the idea of treating users as guinea pigs. If somebody wants to test out devel stuff, it's not unreasonable for them to compile it themselves (inside lilydev if necessary). I don’t either, but I do like the idea of asking them to be guinea pigs. To this end, I’ll send an e-mai to the users list about this. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
Mike Solomon m...@mikesolomon.org writes: Hey all, As 2.18 draws near, I’d like to work with everyone to establish a system of branching for LilyPond development. After several rounds of discussing things with David K, this emerged as the best way to avoid arguments about integrating work into the development branch that have led several contributors, including myself, to significantly reduce time on the project. [1] It will take me considerable time to address this more thoroughly, but in the mean time I want to have on record that what Mike writes here under this emerged as the best way _not_ in _any_ way summarizing our discussion. Instead it is his _personal_ idea how to address topics we covered. Writing something like this emerged as the best way when we did not even talk about it wrongly insinuates that it presents a common understanding of how to address problems covered in the discussion. Feel free to quote passages or complete mails from me in the course of that discussion: there is nothing in there that I would not have equally said in public. -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 10, 2013, at 4:23 PM, David Kastrup d...@gnu.org wrote: Mike Solomon m...@mikesolomon.org writes: Hey all, As 2.18 draws near, I’d like to work with everyone to establish a system of branching for LilyPond development. After several rounds of discussing things with David K, this emerged as the best way to avoid arguments about integrating work into the development branch that have led several contributors, including myself, to significantly reduce time on the project. [1] It will take me considerable time to address this more thoroughly, but in the mean time I want to have on record that what Mike writes here under this emerged as the best way _not_ in _any_ way summarizing our discussion. Instead it is his _personal_ idea how to address topics we covered. Writing something like this emerged as the best way when we did not even talk about it wrongly insinuates that it presents a common understanding of how to address problems covered in the discussion. Sorry, I in no way mean to apply that this is a proposition on David’s behalf. This is a proposition from me that it is a response to our discussion, not a summary of it. Feel free to quote passages or complete mails from me in the course of that discussion: there is nothing in there that I would not have equally said in public. (quotes from David) The basic idea behind that is not to make confrontations nicer but reduce the necessity for them by establishing playing fields with different authorities. So that people can get work done without endangering the release, and I can get releases done without pissing people off as a prerequisite. We won't be able to completely separate the two, but both our current code base and our current development model are quite bad for getting this under control. … As I said: there are certainly decisions where a vote does make sense: mostly when there is a choice between alternatives. For go ahead or not kind of decisions, the answer should likely be go ahead in a sandbox, and with enough exposure of the sandbox to testers and end users, we'll be better equipped to make an informed decision. That's how it tends to work with the Linux kernel, but both our code base as well as our infrastructure is not really diverse enough to make this easy. It _would_ be easier in a Scheme universe, or with loadable C++ modules. But either case requires that enough of the internals are implemented through exchangeable interfaces that swapping out key parts for user-written code can be done without disrupting too many unrelated parts in the process. … My proposal is a first-pass at starting a dialogue about this that people can respond to - I expect some or all of it to be rejected, but the important thing is to start talking about it now. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Tue, Dec 10, 2013 at 04:30:32PM +0200, Mike Solomon wrote: (quotes from David) The basic idea behind that is not to make confrontations nicer but reduce the necessity for them by establishing playing fields with different authorities. So that people can get work done without endangering the release, and I can get releases done without pissing people off as a prerequisite. I agree with this idea, but I feel like I'm missing something. How would regular git branches be insufficient for this? Is it simply the lack of GUB for branches? I mean, is the problem a technical or social one? My gut feeling is that this is a social issue, so any technical wish-lists are a red herring. That said, I admit that I haven't even skimmed the patch countdowns in the past few months, let alone read any arguments on -devel. - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
Graham Percival gra...@percival-music.ca writes: On Tue, Dec 10, 2013 at 04:30:32PM +0200, Mike Solomon wrote: (quotes from David) The basic idea behind that is not to make confrontations nicer but reduce the necessity for them by establishing playing fields with different authorities. So that people can get work done without endangering the release, and I can get releases done without pissing people off as a prerequisite. I agree with this idea, but I feel like I'm missing something. How would regular git branches be insufficient for this? Is it simply the lack of GUB for branches? I mean, is the problem a technical or social one? My gut feeling is that this is a social issue, so any technical wish-lists are a red herring. We won't make social issues go away by creating policies. Basically we have limited possibilities to change how amicably people react when they are stepping on each others' toes. Creating more room is a technical measure. It will not change the kind of social interaction we perceive as problematic, but it will still serve to reduce the opportunities for it to occur and cause problems. That said, I admit that I haven't even skimmed the patch countdowns in the past few months, let alone read any arguments on -devel. Mike frequently referenced a Rietveld review as an example in his last mails to the list. -- David Kastrup ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 12/10/13 5:42 AM, Mike Solomon m...@mikesolomon.org wrote: Hey all, As 2.18 draws near, I¹d like to work with everyone to establish a system of branching for LilyPond development. After several rounds of discussing things with David K, this emerged as the best way to avoid arguments about integrating work into the development branch that have led several contributors, including myself, to significantly reduce time on the project. I can see how the proposed mechanism avoids arguments about work that is going into individual developers branches, but I don't see how this avoids arguments about what goes into the development branch. As far as I can see, this proposal supports the creation of multiple forks of the lilypond development branch, one for each of the privileged developers, plus one for the accepted features. And then lilypond.org should support all of those forks. This seems like a nightmare to me. It is good for somebody who wants to get their features out the the user base. But this just makes the decisions about what to include in the development branch more emotionally charged. I'll present a hypothetical exchange between two caricatures: the creative developer who is only concerned about adding a really neat feature, and doesn't care how it affects the code base; and the consistent developer who is only concerned about the consistency of the code base, and would rather have no new features added than have a new feature added that requires contortions in the syntax, the parser/lexer, or the code base. Note that both of these are caricatures, drawn for the purpose of highlighting the conflict, not for the purpose of illustrating the behavior of any real developer. Creative developer: See how many people like this feature? It's so positive that we absolutely have to include it. Consistent developer: See how badly this would destroy the current code base? It's just an ugly hack. If we accept features like this, our code base will soon consist of nothing but ugly hacks. I don't care how many people like the feature; it's disastrous as currently implemented, so I won't accept it. And now, in addition to the different points of view of these developers, we have the added pressure of users clamoring for a feature. Personally, I want *both* the creative developer and the consistent developer to be satisfied. I want ugly hacks in the codebase to be decreasing, not increasing. I want new features that make the engraving better. If we can't implement new features without ugly hacks, I don't think they should be added to the codebase. But I don't want stasis in the codebase to prevent the addition of new features. Developers already have branches on the main repository. So this proposal is not really to add branches. The real issue in the proposal is about how to get users using these branches. I have a very hard time thinking that it's in the best interest of lilypond as a project to have multiple official development branches. Instead, I think that developers who create a branch that provides some new functionality should invite users to test the branch (which probably means that the developer needs to get GUB running on his or her branch and then make the binaries available). [1] I feel that this reduction in commit diversity is the biggest obstacle to LilyPond¹s future evolution, which is why I¹m calling on everyone to make a concerted effort to think this through. I have made a concerted effort to think this through. I believe that a reduction in commit diversity is a serious problem. I think the community was greatly weakened when Mike felt that it was no longer worth putting up with the hassles to make his contributions. However, I think that a fractured development branch (up to 6 different branches) would be an even bigger obstacle to future evolution. I think it would lead to a balkanization of LilyPond. Of course, given my participation in development over the last couple of years, my input may not be worth much. Thanks, Carl S. ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 10, 2013, at 9:32 PM, Carl Sorensen c_soren...@byu.edu wrote: On 12/10/13 5:42 AM, Mike Solomon m...@mikesolomon.org wrote: Hey all, As 2.18 draws near, I¹d like to work with everyone to establish a system of branching for LilyPond development. After several rounds of discussing things with David K, this emerged as the best way to avoid arguments about integrating work into the development branch that have led several contributors, including myself, to significantly reduce time on the project. This seems like a nightmare to me. It is good for somebody who wants to get their features out the the user base. But this just makes the decisions about what to include in the development branch more emotionally charged. It seems like everyone agrees, so this is definitely not the way to go. I'll present a hypothetical exchange between two caricatures: the creative developer who is only concerned about adding a really neat feature, and doesn't care how it affects the code base; and the consistent developer who is only concerned about the consistency of the code base, and would rather have no new features added than have a new feature added that requires contortions in the syntax, the parser/lexer, or the code base. This is a fantastic hypothetical exchange. [1] I feel that this reduction in commit diversity is the biggest obstacle to LilyPond¹s future evolution, which is why I¹m calling on everyone to make a concerted effort to think this through. I have made a concerted effort to think this through. I believe that a reduction in commit diversity is a serious problem. I think the community was greatly weakened when Mike felt that it was no longer worth putting up with the hassles to make his contributions. However, I think that a fractured development branch (up to 6 different branches) would be an even bigger obstacle to future evolution. I think it would lead to a balkanization of LilyPond. Of course, given my participation in development over the last couple of years, my input may not be worth much. After seeing people’s responses, I agree. It is obvious from everyone’s reflections (especially yours, which is very thorough) that if branches become an institutionalized feature of development, they will hurt LilyPond. I rescind my idea. The only hassle for me, which I did not run up against when I started with the project, is David’s way of communicating. I’m not claiming this is all on him, but I’m also pretty sure that I’m not the only one who has peaced out because of this. I am looking for ways for this to no longer be an issue. I was hoping that branches would go a way towards making this happen for myself and hopefully other developers, but it’s clear that this is not a good idea. In my two day jobs, director of the ensemble 101 and developer for the Guido project, I work with two (very different) teams of people on projects that require creativity, consistency, and tons of communication. Neither of them has any of this friction resulting from communication issues, both of them enjoy a diversity in major contributions, and both are evolving rapidly and stably in several interesting ways at the same time. I truly hope that LilyPond can be like that. Thank you for taking the time to think this over and for your response. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.org wrote: The only hassle for me, which I did not run up against when I started with the project, is David’s way of communicating. I’m not claiming this is all on him, but I’m also pretty sure that I’m not the only one who has peaced out because of this. I am looking for ways for this to no longer be an issue. I was hoping that branches would go a way towards making this happen for myself and hopefully other developers, but it’s clear that this is not a good idea. In my two day jobs, director of the ensemble 101 and developer for the Guido project, I work with two (very different) teams of people on projects that require creativity, consistency, and tons of communication. Neither of them has any of this friction resulting from communication issues, both of them enjoy a diversity in major contributions, and both are evolving rapidly and stably in several interesting ways at the same time. I truly hope that LilyPond can be like that. I don't know how you communicate with your other two teams, but the simple fact is that email is a terrible method of communication, when it comes to the things that you appear to be seeking. An amused or straightforward comment can across as harsh or sarcastic when visual and aural cues are absent (citing the studies that show that 90% of communication is nonverbal, i.e., not connected to the actual words). Some people's manners of speech translate into text-only communication better than others', and some don't translate at all. I had a boss a couple of years back who could be very friendly and personable face-to-face, but unless she was obvious happy about something, always came across as stern and upset with the way things were done. It happens. But you may already be well aware of all this. It is regrettable that you would let such things interfere with your contributions to LilyPond. Ultimately, it is about the project, not the people. Perhaps counter-intuitively, the answer to the problem you perceive is not to reduce participation, but to increase participation. In my own case, my interactions with David had the effect of getting me more involved in the behind the scenes workings of the code. Why? So that eventually, David won't be able to criticize me for not being willing to get my hands dirty. I haven't made a commit yet, but that's probably a matter of weeks or days (whenever I get git-cl set up on my dev machine). In the meantime, instead of complaining about this feature or that feature, or going Oh, poor, pitiful me, someone give me a code snippet to do x, I've tried to dig into things to make them work. Now the thing I'm trying to figure out is how to make what I'm doing usable for others who do the same things so that LilyPond is an easier environment to use. Will I ever get to where I'm wrangling the underlying C++ code? Probably not. But I'm working on what I can. Cheers, Carl P. ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
Hi, On Tue, Dec 10, 2013 at 2:46 PM, Carl Peterson carlopeter...@gmail.comwrote: On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.orgwrote: The only hassle for me, which I did not run up against when I started with the project, is David’s way of communicating. I’m not claiming this is all on him, but I’m also pretty sure that I’m not the only one who has peaced out because of this. I am looking for ways for this to no longer be an issue. I was hoping that branches would go a way towards making this happen for myself and hopefully other developers, but it’s clear that this is not a good idea. In my two day jobs, director of the ensemble 101 and developer for the Guido project, I work with two (very different) teams of people on projects that require creativity, consistency, and tons of communication. Neither of them has any of this friction resulting from communication issues, both of them enjoy a diversity in major contributions, and both are evolving rapidly and stably in several interesting ways at the same time. I truly hope that LilyPond can be like that. I don't know how you communicate with your other two teams, but the simple fact is that email is a terrible method of communication, when it comes to the things that you appear to be seeking. An amused or straightforward comment can across as harsh or sarcastic when visual and aural cues are absent (citing the studies that show that 90% of communication is nonverbal, i.e., not connected to the actual words). Some people's manners of speech translate into text-only communication better than others', and some don't translate at all. I had a boss a couple of years back who could be very friendly and personable face-to-face, but unless she was obvious happy about something, always came across as stern and upset with the way things were done. It happens. But you may already be well aware of all this. I always feel a bit silly writing emoticons and exclamation points, but they are nice to see(!) It is regrettable that you would let such things interfere with your contributions to LilyPond. Exactly. Both you and David are invaluable to this project. I watched the paralysis set in, the deadlock, and wondered a bit about the future of the project. I think there has to be some compromise in this Apollonian/Dionysian test of wills (to throw in a little pretentiousness). Ultimately, it is about the project, not the people. Perhaps counter-intuitively, the answer to the problem you perceive is not to reduce participation, but to increase participation. In my own case, my interactions with David had the effect of getting me more involved in the behind the scenes workings of the code. Why? So that eventually, David won't be able to criticize me for not being willing to get my hands dirty. Well, I ordinarily have a bit of a thin skin, and I remember reading somewhere on the lists that you have to have some nerve to contribute. My personal response to the possibility of brutally honest criticism--which is a necessary thing if this project isn't going to go to hell--is to make sure I've got everything as polished as I can make it before I make it public. And accepting that I've got a lot to learn, (This is about me, and is in no way directed at you, Mike.) However, when the standstill happens, something has to be done. I'm sorry that I don't have any solution to offer, other than to try to work together for the sake of LilyPond, (Emoticons! Kidding.) --David ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Dec 11, 2013, at 12:03 AM, David Nalesnik david.nales...@gmail.com wrote: Hi, On Tue, Dec 10, 2013 at 2:46 PM, Carl Peterson carlopeter...@gmail.com wrote: On Tue, Dec 10, 2013 at 3:21 PM, Mike Solomon m...@mikesolomon.org wrote: The only hassle for me, which I did not run up against when I started with the project, is David’s way of communicating. I’m not claiming this is all on him, but I’m also pretty sure that I’m not the only one who has peaced out because of this. I am looking for ways for this to no longer be an issue. I was hoping that branches would go a way towards making this happen for myself and hopefully other developers, but it’s clear that this is not a good idea. In my two day jobs, director of the ensemble 101 and developer for the Guido project, I work with two (very different) teams of people on projects that require creativity, consistency, and tons of communication. Neither of them has any of this friction resulting from communication issues, both of them enjoy a diversity in major contributions, and both are evolving rapidly and stably in several interesting ways at the same time. I truly hope that LilyPond can be like that. I don't know how you communicate with your other two teams, Face-to-face communication for one, e-mail for another. I always feel a bit silly writing emoticons and exclamation points, but they are nice to see(!) It is regrettable that you would let such things interfere with your contributions to LilyPond. Exactly. Both you and David are invaluable to this project. I watched the paralysis set in, the deadlock, and wondered a bit about the future of the project. I think there has to be some compromise in this Apollonian/Dionysian test of wills (to throw in a little pretentiousness). See: http://lilypond.1069038.n5.nabble.com/Allows-minimum-length-to-work-for-end-of-line-spanners-issue-7453046-td141952.html#a142870 as one of several examples. There is truth in anything David says, meaning that I (like him (and most of us on this list)) have caused bugs that I did not find or fix before someone else. How, does this warrant this communication style? This chain of e-mails was the single determinant that ruled LilyPond out of a government funded, multi-national European typesetting project I’m organizing in which the team will need to extend aspects of the software. I imagined the score of man hours that goes into all the projects I do and how important team morale is over the long term. I don’t want anyone on my team to lose time feeling bad from e-mail confrontations - it’s not worth it for many reasons. Ultimately, it is about the project, not the people. Perhaps counter-intuitively, the answer to the problem you perceive is not to reduce participation, but to increase participation. In my own case, my interactions with David had the effect of getting me more involved in the behind the scenes workings of the code. Why? So that eventually, David won't be able to criticize me for not being willing to get my hands dirty. Well, I ordinarily have a bit of a thin skin, and I remember reading somewhere on the lists that you have to have some nerve to contribute. My personal response to the possibility of brutally honest criticism--which is a necessary thing if this project isn't going to go to hell--is to make sure I've got everything as polished as I can make it before I make it public. And accepting that I've got a lot to learn, (This is about me, and is in no way directed at you, Mike.) Of course I have a lot to learn, too. I release things in various states of polished-ness to the list, often because its their unpolished-ness that I need comments or opinions on. This in and of itself is valuable information. Imagining a hypothetical scenario where I sent a patch that someone wants to see restructured into several commits before they can review it. One developer responds: It’s difficult for me to understand what you’re doing - please split it up. and another responds: Please act like a member of the community, start taking other people into consideration and split up your patches. The information is the same, but (A) makes me want to stay in the project a lot more than (B). A lot of (B) causes me to lose interest. How does one proceed? Should one gloss over the way (B) is written and get (A) out of it? Should one respond to (B) on its own terms? How does one let these things not interfere with one’s contributions? I currently have a boss who is an industry-expert in typesetting that decided not to get involved with LilyPond development 3 or 4 years ago because of feuds he saw on the devel list. This is not good. By old developers not contributing as much and new ones not wanting to join, our community has dwindled down to one where 40% of commits are made by one person, and this is including documentation, meaning that
Re: branching
One thing that is important to restate is that I realize that, unlike my bad-but-getting-better commenting style, _all_ of this is out of David’s control in that it stems from a medical issue. Which means that the communication problems won’t go away - they’re going to be a fixture of LilyPond development so long as he’s involved. As a group of humans, it is _everyone’s_ responsibility to find creative ways to get past handicaps because _no one_ wants to have them. What I’d like to see is a situation where David can blow off steam however he needs to, he doesn’t feel like people are ignoring him, and LilyPond can be a dynamic, multiplayer environment without people getting offended and leaving the project. I fully agree. I got into the habit of contacting apparently offended people off-list to explain the very reasons why communication on this list can be tedious sometimes. And please remember the most important thing: There is *never* an intention, as far as I can see, to offend people. The more factual the discussion, the better it works. Werner ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 04/29/2011 07:15 PM, Carl Sorensen wrote: This might work, but fails to meet the major criterion of the proposed branching scheme. The proposal is to make 2.14 stable. Yes, that's why my proposal was to apply every BUGFIX to 2.14 first, not every patch. :-) (Of course, by bugfix, I mean fix for a bug in 2.14. Bugs in dev only should get fixed in dev only.) Actually, I think your final comment is backwards. Every patch is applicable to dev, but only some are applicable to 2.14. Backwards for patches in general; not for bugfixes. The idea is that bugfixes get applied to 2.14 first and then merged into dev (minimal cherrypicking here); while other patches (new features etc.) get applied to dev and never go near 2.14. dev still gets everything, 2.14 gets just what it needs, and in the best case scenario, you should _never have to cherrypick_, just merge from 2.14 to dev every time there is a bugfix. Is the idea clearer now? By the way, sorry for not following up on this sooner. Busy time in the office. :-( Thanks best wishes, -- Joe ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 04/15/2011 07:05 PM, Carl Sorensen wrote: Just to be sure I understand correctly, the only things I will cherry-pick into stable/2.14 will be bugfixes for critical bugs. Just as a remark, I wonder if you may find it easier to adopt an alternative workflow: -- bugfix gets applied first in 2.14 branch -- bugfix gets merged into master dev branch since that probably reduces the amount of cherry-picking that's needed -- I expect that probably almost every patch applied to 2.14 is also applicable to dev, but not vice versa. Best wishes, -- Joe ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/29/11 9:55 AM, Joseph Wakeling joseph.wakel...@webdrake.net wrote: On 04/15/2011 07:05 PM, Carl Sorensen wrote: Just to be sure I understand correctly, the only things I will cherry-pick into stable/2.14 will be bugfixes for critical bugs. Just as a remark, I wonder if you may find it easier to adopt an alternative workflow: -- bugfix gets applied first in 2.14 branch -- bugfix gets merged into master dev branch since that probably reduces the amount of cherry-picking that's needed -- I expect that probably almost every patch applied to 2.14 is also applicable to dev, but not vice versa. This might work, but fails to meet the major criterion of the proposed branching scheme. The proposal is to make 2.14 stable. Actually, I think your final comment is backwards. Every patch is applicable to dev, but only some are applicable to 2.14. Thanks, Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching isn't working
Graham Percival graham at percival-music.ca writes: On Thu, Apr 28, 2011 at 02:45:07PM +0100, Graham Percival wrote: We can't just change VERSION in git master, because that's used to generate the website, oh wait, I just remembered that we have a separate MINOR_VERSION from VERSION_DEVEL. I encourage you to implement your branching plan ... somehow. I don't know exactly how, but it seems there is plenty of possibilities if you are willing to shepherd the build. Given that the branch labeled 'stable/2.14' will generate the next few builds, with version numbers 2.13.61 etc., I had imagined it might generate the website as well for a while. ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching isn't working
On Thu, Apr 28, 2011 at 02:45:07PM +0100, Graham Percival wrote: We can't just change VERSION in git master, because that's used to generate the website, oh wait, I just remembered that we have a separate MINOR_VERSION from VERSION_DEVEL. ha, a badly designed almost-duplicate of information might be useful after all! ok, this is no longer a valid reason for dumping the branching idea -- master could have a VERSION (from MAJOR_ MINOR_ PATCH_LEVEL) of 2.15.0, but a VERSION_DEVEL of 2.13.60 or .61. That said, I still believe that: This doesn't seem to be working. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org https://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Sat, Apr 16, 2011 at 01:04:16PM -0600, Carl Sorensen wrote: On 4/16/11 12:50 PM, Han-Wen Nienhuys hanw...@gmail.com wrote: My proposal is that ready-to-release still is not strict enough for stable, so 2.14 version should be coming from something which moves slower than the master branch. So does this mean we need three branches? stable (currently 2.12.x) stable beta (currently stable/2.14) development (currently 2.13.x) Well, we already have more than three branches. In your scheme, they'd be stable/2.12, stable/2.14, and master. It seems to me that we ought to have three releases available: stable -- demonstrated to work properly stable beta -- all syntax from stable works, passes regtests, but not demonstrated to be critical regression free. Should be acceptable for general release, but not for production work. development -- passes regtests. Recommended for developers and adventurous users, but possibility exists for syntax changes. Does this seem feasible? I'm not going to make three releases, because it's too confusing for users. We'll have two releases: stable and unstable. At the moment, we only have unstable releases happening. They happen from stable/2.14. Anybody wanting to play with git master right now needs to compile from source. Once 2.14 is out, we'll have stable releases happening from stable/2.14 and unstable releases happening from git master. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
Carl Sorensen wrote Friday, April 15, 2011 8:40 PM How do we define the difference between stable development and unstable development? It seems to me that stable development means we pass the regtests -- we've been doing that for at least a couple of years. But we still end up with regressions when users test the code beyond what the developers have tested. As long as we have a policy that any regression will delay a stable release for two weeks, it seems to me that we *must* stop adding features in order to get a stable release. We can't prevent unintended regressions. +1 OTOH, if the standard for ready-to-release were make check succeeds and no segfaults have been identified, then we've been ready to release a stable version for a long time now. There is an alternative. Look back through git history and choose a point earlier than any recent iffy development and branch out from there. Cherrypick more recent good bugfixes and apply them. Also cherrypick any more recent developments which have not caused user problems. With care that will give a good stable release, and permit the master branch to continue with development unimpeded. This process can be repeated at any time to enable stable releases to be issued more frequently. Trevor ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 16 April 2011 01:11, m...@apollinemike.com m...@apollinemike.com wrote: I agree - it is for this reason that I feel the only two solutions are to: (1) Freeze pushes to the master branch save ones that are explicitly authorized by Graham. (2) Keep working at our normal pace, but split off stable versions to which only bug fixes will be applied. Translations and some doc updates could also benefit of (2), isn't it? Right now it happens that some doc are not fully translated for a stable release. Then we should wait for a new stable release to have the new translations available, but right now stable release does not appear often (more than 15 month between 2.12.3 and upcoming-2.14). Cheers, Xavier -- Xavier Scheuer x.sche...@gmail.com ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 09:30:06PM +0200, Valentin Villenave wrote: I'm not entirely sure everything can be implemented using small steps (e.g. spacing code overhaul, as has happened in the past). Umm, the spacing code overhaul *did* start off on a separate branch. IIRC Joe worked on it there for 3 or 4 months before it was merged. As I suggested this summer, the new Fedora branching model looks pretty interesting to me: https://fedoraproject.org/wiki/Releases/Branched I skimmed the article, but I didn't see anything interesting. Are you talking about freezes? Freezes are nothing new. Of course, it does require some resources. But (as always) I do trust Carl to be exactly the person we need :-) Yes, Carl is excellent. I'm certain that he will do a fine job of cherry-picking patches, taking 2-5 hours a week of his time. That's time that he's not writing code, review patches, helping new contributors, or doing other things like his actual day job or spending time with his family. I don't feel at all good about dumping this task on him. I seriously think that most people are underestimating the amount of work it will be. Hopefully I'm wrong. I still haven't spent the time to understand the git branching/merging stuff, so maybe it will be a breeze. - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 11:29 AM, Graham Percival gra...@percival-music.ca wrote: The beauty of branching off is that nobody needs to hold off anything. You just continue to put stuff in master (2.15.0), and cherry-pick whatever needs to go to 2.14. I am pessimistic about this, but let's ask for volunteers. Who wants to cherry-pick stuff? The reason that I'm pessimistic is that we racked up a huge amount of technical debt (i.e. bugs) during 2.11 and the early phase of 2.13. I'm concerned that if we don't have regular releases, the unstable branch is going to accumilate bugs. I am also too tired to fight over it right now, but I also think that this is the wrong model of branching. There's basically two ways: 1. keep master in a ready-to-release mode at all times; any serious bug gets reverted or fixed ASAP. Unstable development happens on separate branches, which are merged to master when they're ready. We are doing this, with the ready-to-release criterion being the regtest passing. I propose we stick to this schema. My proposal is that ready-to-release still is not strict enough for stable, so 2.14 version should be coming from something which moves slower than the master branch. -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 8:23 PM, Graham Percival gra...@percival-music.ca wrote: (2) Keep working at our normal pace, but split off stable versions to which only bug fixes will be applied. (3) any big change -- say, any patch that takes longer than 6 hours to write -- is done on a separate branch, and only merged with master once we have good reason to believe that it's finished. This won't work. The reason we keep finding regressions is that we release packaged binaries of 2.13 to the general public. These releases widens the amount of testers (ie. users). Any development happening in a side branch will not get the same exposition. I recommend using developer branches only for work that is known to break the regtest if it is merged. -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/16/11 12:50 PM, Han-Wen Nienhuys hanw...@gmail.com wrote: On Fri, Apr 15, 2011 at 11:29 AM, Graham Percival gra...@percival-music.ca wrote: The beauty of branching off is that nobody needs to hold off anything. You just continue to put stuff in master (2.15.0), and cherry-pick whatever needs to go to 2.14. I am pessimistic about this, but let's ask for volunteers. Who wants to cherry-pick stuff? The reason that I'm pessimistic is that we racked up a huge amount of technical debt (i.e. bugs) during 2.11 and the early phase of 2.13. I'm concerned that if we don't have regular releases, the unstable branch is going to accumilate bugs. I am also too tired to fight over it right now, but I also think that this is the wrong model of branching. There's basically two ways: 1. keep master in a ready-to-release mode at all times; any serious bug gets reverted or fixed ASAP. Unstable development happens on separate branches, which are merged to master when they're ready. We are doing this, with the ready-to-release criterion being the regtest passing. I propose we stick to this schema. My proposal is that ready-to-release still is not strict enough for stable, so 2.14 version should be coming from something which moves slower than the master branch. So does this mean we need three branches? stable (currently 2.12.x) stable beta (currently stable/2.14) development (currently 2.13.x) stable beta and development should pass regtests. stable beta will be ready-to-release when there are no critical bugs left. After some publishing of stable beta with no new critical issues, stable beta will become stable. At this point, stable beta will be the release candidate for the next stable version. Any patches that don't eliminate old syntax and don't break regtests can be cherry-picked onto stable beta. It seems to me that we ought to have three releases available: stable -- demonstrated to work properly stable beta -- all syntax from stable works, passes regtests, but not demonstrated to be critical regression free. Should be acceptable for general release, but not for production work. development -- passes regtests. Recommended for developers and adventurous users, but possibility exists for syntax changes. Does this seem feasible? Carl -- Han-Wen Nienhuys - han...@xs4all.nl - http://www.xs4all.nl/~hanwen ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/15/11 8:29 AM, Graham Percival gra...@percival-music.ca wrote: On Fri, Apr 15, 2011 at 11:08:08AM -0300, Han-Wen Nienhuys wrote: On Fri, Apr 15, 2011 at 7:30 AM, m...@apollinemike.com m...@apollinemike.com wrote: this issue was exposed due to a (seemingly innocuous) one-line change by Mike. Can I ask that you branch off the 2.14 branch so the release candidate does not get disturbed by other one-liners with unintended effects? If you don't branch off a stable branch, 2.14 will never get finished. The beauty of branching off is that nobody needs to hold off anything. You just continue to put stuff in master (2.15.0), and cherry-pick whatever needs to go to 2.14. But I suppose we can come back to that debate later. For now, who is volunteering to handle the cherry-picking? I will cherry pick. Thanks, Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 08:33:20AM -0600, Carl Sorensen wrote: On 4/15/11 8:29 AM, Graham Percival gra...@percival-music.ca wrote: But I suppose we can come back to that debate later. For now, who is volunteering to handle the cherry-picking? I will cherry pick. Great! I'll make another unstable release tomorrow and merge it into stable/2.14, and thereafter you can cherry-pick at will. I'll make all future 2.13 releases from stable/2.14. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/15/11 9:23 AM, Graham Percival gra...@percival-music.ca wrote: On Fri, Apr 15, 2011 at 08:33:20AM -0600, Carl Sorensen wrote: On 4/15/11 8:29 AM, Graham Percival gra...@percival-music.ca wrote: But I suppose we can come back to that debate later. For now, who is volunteering to handle the cherry-picking? I will cherry pick. Great! I'll make another unstable release tomorrow and merge it into stable/2.14, and thereafter you can cherry-pick at will. I'll make all future 2.13 releases from stable/2.14. Just to be sure I understand correctly, the only things I will cherry-pick into stable/2.14 will be bugfixes for critical bugs. Let me know if this isn't right. Thanks, Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/15/11 9:23 AM, Graham Percival gra...@percival-music.ca wrote: On Fri, Apr 15, 2011 at 08:33:20AM -0600, Carl Sorensen wrote: On 4/15/11 8:29 AM, Graham Percival gra...@percival-music.ca wrote: But I suppose we can come back to that debate later. For now, who is volunteering to handle the cherry-picking? I will cherry pick. Great! I'll make another unstable release tomorrow and merge it into stable/2.14, and thereafter you can cherry-pick at will. I'll make all future 2.13 releases from stable/2.14. How shall we report issues with the unstable development version? I think that's the major problem I see with branching stable. Should a bug report be filed with a tag unstable, and a commit instead of a version? Thanks, Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 11:19:12AM -0600, Carl Sorensen wrote: On 4/15/11 9:23 AM, Graham Percival gra...@percival-music.ca wrote: Great! I'll make another unstable release tomorrow and merge it into stable/2.14, and thereafter you can cherry-pick at will. I'll make all future 2.13 releases from stable/2.14. How shall we report issues with the unstable development version? We won't. The Bug Squad will ignore (well, reply to say that they're not handling them) any bug reports about unstable. They will only deal with reports about official GUB releases. I think that's the major problem I see with branching stable. Should a bug report be filed with a tag unstable, and a commit instead of a version? If a developer wants to add an issue to the tracker, then sure, he can include the commit revision rather than a version in the issue. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
[random notes from soneone who is *not* actively hacking on LilyPond, so feel free to ignore it ;-)] On Fri, Apr 15, 2011 at 03:29:52PM +0100, Graham Percival wrote: The reason that I'm pessimistic is that we racked up a huge amount of technical debt (i.e. bugs) during 2.11 and the early phase of 2.13. I'm concerned that if we don't have regular releases, the unstable branch is going to accumilate bugs. Well, I think I've written this a few months ago: (stable) releases *must* happen more often (at least one or two times a year) if you want to be able to cope with stable and unstable. I am also too tired to fight over it right now, but I also think that this is the wrong model of branching. There's basically two ways: 1. keep master in a ready-to-release mode at all times; any serious bug gets reverted or fixed ASAP. Unstable development happens on separate branches, which are merged to master when they're ready. 2. toss whatever garbage you want onto master, and make a stable branch where a bunch of poor suckers cleans up the branch until it's ready for a release. 1. is the way to go. Sure, it would put some pressure on people working on big changes, which kind of sucks (it could even slow down implementing cool new stuff). On the other hand, it enforces smaller steps towards new features, which is good (easier to track down regressions, easier to *understand* what's going on). For maintaining a stable branch and cherry picking: the more stable and master diverge, and the bigger the changes in master are, the more difficult merges will be. I'm note sure wether something like an unstable branch make sense at all, because it may encourage to do big changes diverging from master over a period too long to be mergable without problems later. Just my 2p. Ciao, Kili ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 8:32 PM, Matthias Kilian k...@outback.escape.de wrote: 1. is the way to go. Sure, it would put some pressure on people working on big changes, which kind of sucks (it could even slow down implementing cool new stuff). On the other hand, it enforces smaller steps towards new features, which is good (easier to track down regressions, easier to *understand* what's going on). I'm not entirely sure everything can be implemented using small steps (e.g. spacing code overhaul, as has happened in the past). As I suggested this summer, the new Fedora branching model looks pretty interesting to me: https://fedoraproject.org/wiki/Releases/Branched (then again, developing a whole distribution is certainly very different from developing a relatively specialized project such as Lily). Of course, it does require some resources. But (as always) I do trust Carl to be exactly the person we need :-) Cheers, Valentin. ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On 4/15/11 12:32 PM, Matthias Kilian k...@outback.escape.de wrote: [random notes from soneone who is *not* actively hacking on LilyPond, so feel free to ignore it ;-)] On Fri, Apr 15, 2011 at 03:29:52PM +0100, Graham Percival wrote: The reason that I'm pessimistic is that we racked up a huge amount of technical debt (i.e. bugs) during 2.11 and the early phase of 2.13. I'm concerned that if we don't have regular releases, the unstable branch is going to accumilate bugs. Well, I think I've written this a few months ago: (stable) releases *must* happen more often (at least one or two times a year) if you want to be able to cope with stable and unstable. I am also too tired to fight over it right now, but I also think that this is the wrong model of branching. There's basically two ways: 1. keep master in a ready-to-release mode at all times; any serious bug gets reverted or fixed ASAP. Unstable development happens on separate branches, which are merged to master when they're ready. 2. toss whatever garbage you want onto master, and make a stable branch where a bunch of poor suckers cleans up the branch until it's ready for a release. 1. is the way to go. Sure, it would put some pressure on people working on big changes, which kind of sucks (it could even slow down implementing cool new stuff). On the other hand, it enforces smaller steps towards new features, which is good (easier to track down regressions, easier to *understand* what's going on). This is what we've been doing for the past 4 months or more. How do we define the difference between stable development and unstable development? It seems to me that stable development means we pass the regtests -- we've been doing that for at least a couple of years. But we still end up with regressions when users test the code beyond what the developers have tested. As long as we have a policy that any regression will delay a stable release for two weeks, it seems to me that we *must* stop adding features in order to get a stable release. We can't prevent unintended regressions. OTOH, if the standard for ready-to-release were make check succeeds and no segfaults have been identified, then we've been ready to release a stable version for a long time now. Thanks, Carl ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Fri, Apr 15, 2011 at 07:11:21PM -0400, m...@apollinemike.com wrote: I agree - it is for this reason that I feel the only two solutions are to: (1) Freeze pushes to the master branch save ones that are explicitly authorized by Graham. Oh god no. (2) Keep working at our normal pace, but split off stable versions to which only bug fixes will be applied. (3) any big change -- say, any patch that takes longer than 6 hours to write -- is done on a separate branch, and only merged with master once we have good reason to believe that it's finished. Git is designed to handle tons of branches. Painless branching and merging is pretty much the biggest feature point of git! In our recent history, I'd say that the MIDI rewrite and beam avoidance code rewrite are ideal candidates for being worked on separate branches. NB: I'm not talking about a single development branch. I'm talking about having a dozen separate branches, one for each feature. You and Han-Wen could have work on the dev/beaming branch. Jan and anybody interested could have worked on the dev/midi branch. You and Reinhold could have worked on the dev/footnotes branch. Etc. Yes, there will probably still be unexpected problems when we finally merge one of those feature branches with master... but by isolating the new feature development work from master, we'll have a more stable central branch, and we can test a specific new features after merging in a much more focused way. Cheers, - Graham ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel
Re: branching
On Apr 15, 2011, at 3:40 PM, Carl Sorensen wrote: On 4/15/11 12:32 PM, Matthias Kilian k...@outback.escape.de wrote: [random notes from soneone who is *not* actively hacking on LilyPond, so feel free to ignore it ;-)] On Fri, Apr 15, 2011 at 03:29:52PM +0100, Graham Percival wrote: The reason that I'm pessimistic is that we racked up a huge amount of technical debt (i.e. bugs) during 2.11 and the early phase of 2.13. I'm concerned that if we don't have regular releases, the unstable branch is going to accumilate bugs. Well, I think I've written this a few months ago: (stable) releases *must* happen more often (at least one or two times a year) if you want to be able to cope with stable and unstable. I am also too tired to fight over it right now, but I also think that this is the wrong model of branching. There's basically two ways: 1. keep master in a ready-to-release mode at all times; any serious bug gets reverted or fixed ASAP. Unstable development happens on separate branches, which are merged to master when they're ready. 2. toss whatever garbage you want onto master, and make a stable branch where a bunch of poor suckers cleans up the branch until it's ready for a release. 1. is the way to go. Sure, it would put some pressure on people working on big changes, which kind of sucks (it could even slow down implementing cool new stuff). On the other hand, it enforces smaller steps towards new features, which is good (easier to track down regressions, easier to *understand* what's going on). This is what we've been doing for the past 4 months or more. How do we define the difference between stable development and unstable development? It seems to me that stable development means we pass the regtests -- we've been doing that for at least a couple of years. But we still end up with regressions when users test the code beyond what the developers have tested. I agree - it is for this reason that I feel the only two solutions are to: (1) Freeze pushes to the master branch save ones that are explicitly authorized by Graham. (2) Keep working at our normal pace, but split off stable versions to which only bug fixes will be applied. The idea that an unstable version should turn into the default new stable version has always appeared problematic to me. I know nothing about how large computer projects work, but as a performance artist, I always freeze my shows a week before the show and only fix things that technically don't work. I'm always developing new material, but I don't ever do anything less than a week old because I don't have the critical distance from it to know if it's good or not (save my 24-hour show binges, for which anything goes!). In the same vein, I think that if we split off a new release candidate and then cherry picked critical bugfixes into it, it would prevent the type of bugs that arise from continued work on making LilyPond great (like the beam-collision problem through which we're currently wading). As long as we have a policy that any regression will delay a stable release for two weeks, it seems to me that we *must* stop adding features in order to get a stable release. We can't prevent unintended regressions. Agreed - irrespective of the policy we choose, I will not be adding any new features before 2.14.0 and will only do bug fixes. OTOH, if the standard for ready-to-release were make check succeeds and no segfaults have been identified, then we've been ready to release a stable version for a long time now. I think the nature of LilyPond is such that no number of regtests can adequately encapsulate the potential failures of the program. Furthermore, some of the most problematic bugs cannot be anticipated by developers because it is hard to take stock of the regtests before pushing a patch and say what eventualities do all of these regtests combined fail to cover? Having a new branch incubating somewhere between stable and unstable seems to be a way to mitigate the effects of this uncertainty by freezing LilyPond's evolution save certain critical situations. Cheers, MS ___ lilypond-devel mailing list lilypond-devel@gnu.org http://lists.gnu.org/mailman/listinfo/lilypond-devel