I think that it's a bit naive to think that stable and unstable will remain that close to each other such that merging them every so often is going to be an even remotely easy task.
Mark - you recommend that we look at other projects and how it's done there. Well, I don't know too many open source projects, but I've participated in several products development. From my experience there, after a release is cut, a new branch is created (for that release). All new development happens on the next release's branch (trunk in our case) and usually only bug fixes are developed on the previous branch (and often on several such branches). Sometimes, a new feature/enhancement which is being developed on trunk is pulled to the previous branch on demand. Now, backward compatibility on trunk is a must, but at a slightly different level than we know it. The customer must be able to upgrade his env. to the newest release w/o losing functionality. Exceptions are allowed, but they have to be well documented. >From what I see, we behave very much like a product. The new release is always bw compatible, exceptions are allowed when they are well documented, and no one makes any decisions lightly around here. This is not very open sourcy :). No one here gets paid, we don't share Lucene dividents w/ the committers and contributors ... I'm not saying that we should throw back compat out the door entirely, but some relaxation must be allowed … today, trunk is already back compat w/ exceptions. Can't we decide instead of developing on two branches that we will sometimes allow for larger bw breaks, when it makes sense? Why are we trying to have an "all or nothing" here? And Mark, as soon as we allow trunk to break loose, it won't be like merging flex and trunk today - both were developed w/ bw support in mind … One other option - let's adopt the way of projects like Java. You don't see every 1.6 feature being ported to 1.5 right? Not every 7 gets to 6 … rather, developmen happens in parallel on several branches. Each is fully managed on its own and at some point some versions are simply not supported anymore… it would make a lot of sense to declare flex as 4.0, along w/ analyzers, parallel indexing and even incremental field updates. It doesn't mean though that every new feature that is contributed to trunk MUST be backported to 3.x. It can be done on demand, on a volunteering basis or simply an interest. We may also want to prevent such a thing from happening for several features … Just tossing ideas … Shai On Sunday, April 25, 2010, Mark Miller <markrmil...@gmail.com> wrote: > On 4/25/10 9:55 AM, Robert Muir wrote: > > > > On Sun, Apr 25, 2010 at 9:30 AM, Mark Miller <markrmil...@gmail.com > <mailto:markrmil...@gmail.com>> wrote: > > > Could you elaborate on "it doesn't help anything"? That's an > interesting argument, but not very persuasive :) "It doesn't help > anything other than easing Mark's paranoia" :) > > > The only "advantage" to this idea is it seems to try to enforce putting > features in stable, but thats stupid. At the end you still have two > branches, you can call whichever one trunk you want, it doesn't really > matter. if someone doesn't want to do the work to backport something to > stable, they just aren't going to do it. > > > I may be misunderstanding, but this sounds like a call for "free for all" > because everyone will do what they want anyway. But that's not generally how > things work. Devs don't do whatever they want. They largely stick to some > common practices (largely back compat). Not everyone has always agreed with > how things have worked, but most have, and it has framed development. > > I think you take policy too seriously. From what I was told, our back compat > policy was simply extracted from an email from Doug when in the early days of > Lucene. It's just happened to have made its way to the wiki, and enough devs > have tried to stick to what it says. It's not some all powerful policy - we > have subverted it all the time - but it has framed development and created a > lot of really good Lucene releases that where pretty easy to migrate across. > People have generally agreed on the back compat policy due to a large amount > of discussion in the past. Its been argued back and forth, but to a large > extent we have stuck with it for whatever reason. There is no doubt its had a > powerful affect on Lucene over the years, whether positive or negative is up > for debate, but I've been pretty happy with how Lucene has progressed myself. > Now it looks like its time to change how we frame development, but I don't > find myself thinking, "who cares how we do it - devs will do whatever they > want anyway". Because they won't. They will do what the majority of others > are doing - so as we talk about making this change its important to learn > which way the other devs are leaning, and hammer out some common goals. > Figure out a little consensus. If I'm the only one that's "paranoid" about > this, doesn't seem you have much to worry about. > > It would be easy to see different results from this change - we could go the > way some are talking about and do very few back ports to stable, and > essentially every release breaks back compat as it wants. Or we could > concentrate more on stable releases, while doing more radical dev on trunk. > It almost sounds to me that you think that it doesn't matter which way people > prefer, because everyone will do what they want anyway. Well I disagree. I > think its important to discuss which way we may end up with, because I think > one of the ways is better for Lucene - and I don't think devs do whatever > they want. The general common agreement about how things are done largely > drives what devs do. We are talking about changing that agreement - I don't > have paranoia - I want to discuss where we will end up because I think its an > important change to Lucene, and its important to try and see how different > devs feel, and what frame of mind they are going to go into this with. That > will help guide what actually happens. I know you don't think that's > important, and I apologize for disagreeing with you. > > i'm waiting for the proposal > > that adds some "policy" about this, that would be very lucene-like. > > > Yeah, because Lucene has so many polices. The backcompat policy is called > 'policy' for convenience - its never been voted in, its not an 'official' > policy, we break that policy all the time. Its more consensus on how things > are done than policy - you've seen that by now I hope. This discussion is > also about coming up with consensus. I''m going to call you paranoid about > policies in a minute :) > > > > and for any feature where someone is willing to do the work for it to be > in stable or unstable, its gonna have to be committed twice, by someone, > somewhere. > > > Yeah, well sounds like right now we have a couple options to talk about - > consensus that we generally commit to both at the same time, or consenus that > we merge occasionally instead. The models actually have a lot of differences. > And likely there would be some mergers that did it often (like with flex), so > that fewer devs might be backporting. The other way you would generally be > counted on to back port all your own stuff. > > > > > > > > -- > Robert Muir > rcm...@gmail.com <mailto:rcm...@gmail.com> > > > > > -- > - Mark > > http://www.lucidimagination.com > > --------------------------------------------------------------------- > To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org > For additional commands, e-mail: dev-h...@lucene.apache.org > > --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@lucene.apache.org For additional commands, e-mail: dev-h...@lucene.apache.org