I did not follow the whole discussion, but I'd like to share a few thougts nevertheless. From a users point of view, it is important to have an understandable versioning and release scheme. IMHO the current numbering is very good: Easy to understand, and with some background at http://www.lyx.org/VersioningSystem. Four-digit numbers are overkill, and some interwoven scheme is too difficult IMHO.
Pavel Sanda wrote: > Julien Rioux wrote: > >>>> a) make new code available early > > i have been thinking about the proposed changes last couple of days > and from many small things the main issue occuring to me again and > again is that the new model of each 6 months release is going to be > harmful for the overall stability of the stable lyx releases in general. > > 6 months mean 2 corrective releases (in current counting) and i think > that if we end with 2.0.2/3 there is not enough time to even catch > problematic bugs so the final 2.0.x release will be steep drop in > quality compared to the previous releases. > > to my taste such price for pushing new features out quickly is inadequate. Yes. I would suggest two simple things to speed up the release cycle: 1) Develop in incremental steps and keep the development branch as usable as possible. 2) Close trunk for new features much earlier. This will lead to a much shorter alpha->release phase. >> I'm also glad that my only objection with the above list is c) develop >> new features in branches. I don't think it's necessary for most features, >> only for largish ones that are likely to take time and break the normal >> bug-free level in the main dev branch. > > my fear is also that while the extensive branch usage is superior from > the geeky point of view, its hindrance for people not so technically > skilled. do we want only geeks to be around? For casual contributors or curious users it should be possible to work without branches, as it is possible now. Another important point that was already mentioned by somebody, but can't be overestimated, are merge conflicts: No matter how good your VCS is, if you use branches extensively for parallel development, you will have merge conflicts that need manual resolving (or you need agreements such as "don't touch area xxx for the next month", but then the branch usage has no real advantage). Resolving merge conflicts is a boring task with high potential for mistakes, so it should be avoided if possible. In my experience the best way to avoid complex merge conflicts is to develop in small steps, and commit often to the main branch. This requires some disclipine, but overall it is less work than one big merge that most likely causes some breakage. Of course this does not mean that branches are bad. It only means that you need to be very careful how you use them, especially with the low number of developers. > ideas to keep development active during rc stages is imho next nail in > the coffin of the next major release besides short branch afterlife. Definitely. The alpha->beta->rc-release phase for 2.0 was far too long. The key is to keep this phase as short as possible, then it is less likely that you absolutely need to include this super-important new feature one day before release... Georg