To me, major version numbers means no more nor less than a marker pointing to a stable, consistent release that can be easily referred to consistently by everyone. It doesn't mean that there can't be major, breaking changes for 2.0 (or even 1.5, whatever). I don't even care what features are in that release, as long as it's stable and useful.
But I'd like a release of Clojure 1.0 so I can say to people "this works with version X", with 100% certainty that we're talking about the exact same feature set. It's hard for new people to get working with Clojure, as it is, because everything is in a constant state of flux and you never know when an upgrade will break Slime, ect. Coherent versioning eliminates this worry. To me, a 1.0 release is all about reducing barriers for newcomers by saying "this is definitely safe to use." The only reason NOT to release 1.0 immediately, imho, is if a major change is just around the corner. Thanks, -Luke On Apr 16, 12:53 pm, Rich Hickey <richhic...@gmail.com> wrote: > People (and not just book authors :) often ask - whither 1.0? [Ok, > maybe they don't use 'whither']. The fact remains, some people want a > 1.0 designation, and I'm not unwilling, providing we as a community > can come to an understanding as to what that means, the process it > implies, and the work it will require (and who will do it). Here are > some of the relevant issues, IMO: > > - Stability/completeness/robustness > > This is mostly about - does it work? Is it relatively free of bugs? Is > it free of gaping holes in core functionality? I think Clojure is in a > pretty good place right now, but am obviously biased. This in no way > implies there isn't room for improvement. > > - API stability > > With the semantic changes of fully lazy sequences behind us, I think > the syntax and semantics of existing functions is largely stable. > > - Development process stability > > Currently all new work (fixes and enhancements) occurs in trunk. > There's no way to get fixes without also getting enhancements. I think > this is the major missing piece in offering stable numbered releases. > While I've cut a branch for each of the prior two releases, no one has > ever submitted a bugfix patch for either. If people are going to want > to work with a particular release version for an extended period of > time, someone (other than me) will have to produce patches of (only!) > fixes from the trunk for the release branch, and occasionally produce > point releases (1.0.x) from that branch. I'd like to continue to do > the bulk of my work in trunk, without messing anyone up or forcing > everyone to follow along. > > - Freedom from change > > Numbered releases are most definitely not about absence of change in > general. There are more things I want to add and change, and there > will be for some time. That will keep Clojure a living language. 1.0 > or any numbered release can't and won't constitute a promise of no > further change. But there are different kinds of change, changes that > fix bugs and changes that add new capabilities or break existing code. > People need to be able to choose the type of change they can tolerate, > and when to incur it. > > - Perception > > Obviously, a 1.0 designation impacts perception. I am not interested > in pursuing it just to influence perception, but rather to > (collectively) acknowledge a milestone in usability and stability. > However there may be other perceptions, good/bad or simply wrong (e.g. > that Clojure is "finished"). Will the general perception engendered > by 1.0 be met in the large, or a mismatch? > > What does 1.0 mean to you? Are we there yet? Any recommendations for > the organization of the release branches, patch policy etc? > > Feedback welcome, > > Rich --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en -~----------~----~----~----~------~----~------~--~---