On Wed, May 26, 2010 at 5:06 PM, Tim Daly <d...@axiom-developer.org> wrote:
>
>
> William Stein wrote:
>>
>> On Wed, May 26, 2010 at 3:08 PM, Tim Daly <d...@axiom-developer.org>
>> wrote:
>>
>>>
>>> The Axiom project had a long debate about releases
>>> and version numbers which I see is about to happen here.
>>>
>>> Axiom decided that a reasonable balance was to make 2 decisions,
>>> one about releases and one about versions.
>>>
>>> RELEASES
>>>
>>> There is a choice between releasing often and releasing,
>>> say, yearly. Sage releases about every week or two at the
>>> moment. The upside of this strategy is that people get the
>>> latest version immediately. The downside of this strategy
>>> is that people are ALWAYS in update mode and big changes
>>> are very hard to manage in a small window (2 days?)
>>>
>>> First, there would be a "silver" and a "gold" releases. The
>>> silver version is updated continuously and available from
>>> most of the sites with a git pull or git clone. The "gold"
>>> release would be a time-boxed release every 2 months.
>>>
>>> This gives people who care about a particular change a way to
>>> get the latest release immediately. It allows others who just
>>> want "the system", a way to update at a more reasonable pace,
>>> maximally, every 2 months. The "gold" release is maintained
>>> on github, the "silver" is on all other sites.
>>>
>>> VERSIONS
>>>
>>> Version numbers get religious really fast and the debate is
>>> not very productive. Essentially, a single number is not
>>> sufficient to carry all of the information about what might
>>> have changed, especially if you have a component system.
>>>
>>> Since git maintains a 40-digit SHA1 hash for every commit
>>> it is sufficient for a version number. Any reference to a
>>> single hash number gives all of the required information.
>>> This is sufficient for "silver" releases.
>>>
>>> Since the time-boxed "gold" releases are 2 months apart it
>>> is sufficient to use the form "May 2010" as the unique
>>> "release number". This is easy to distinguish from "March 2010".
>>>
>>> I'm sure that the Sage list will find this method "not right"
>>> for a variety of reasons but I can tell you that there is no
>>> perfect solution. The Axiom debate raged on for about a year.
>>> Time-boxing isn't perfect but it allows big changes to
>>> occur without breaking everyone and little changes to occur
>>> without annoying everyone.
>>>
>>> Every project seems to have this debate. Good luck with it.
>>>
>>
>> Thanks for sharing the above.
>>
>> 1. How do you think your choice of releases and version numbers
>> impacted the number of Axiom users?  Developers?
>>
>
> I have no way to track the number of users so I can't say.
>
> Axiom forked (twice) and the forks have their own version numbering schemes,
> each one different and neither one is clear, at least to me.
>
> Developers will track whatever scheme you use and they won't like it :-)
>
> It is very difficult to introduce large changes to the system if the updates
> are too
> frequent. I'm introducing a new package that includes over 50 new pieces of
> algebra in this next release. The developer "silver" version has seen each
> new
> piece of algebra as it was introduced, with updates happening several times
> a
> day all month long but each new piece is useless standalone.
> The "gold" version will have a fully implemented and tested piece so users
> won't see the intermediate states.
>
> At the rate you are currently releasing I don't know how you can introduce
> fundamental changes like a reorganization of the categories. If there is a

Just a remark -- we do not release as frequently as you think.   There have been
10 releases in the last 6 months.

> mistake
> the whole user community gets hit. And if it takes a couple weeks to debug
> then
> you'll have the world at your throat. The "silver" releases give your
> developers
> a chance to play before it goes out to the general public. I make NO
> guarantees
> about silver releases. They might not even build (although breaking the
> build
> is on my list of major sins).
>
> If you "succeed" wildly then you'll have thousands of universities
> downloading
> versions,

I think we have around 8000 downloads per month, last time I checked.

>  students will each have a different version depending on the day
> of
> the week they decided to download.  A "gold" version would give professors
> something concrete to point at.... e.g. the "September 2010" version.
>
>
>> 2. Now that you've had the above version/release schedule for a few
>> years, is there anything you would change?
>>
>>
>
> Well you'd be amazed at how quickly 8 weeks goes by....
>
> The pace of 8 weeks between releases leaves  7 weeks of work and a week of
> deep test, binary builds, etc. Fedora always seems to break things on every
> release so it just takes a lot of time. I see you have the same breakage
> happening
> on certain platforms. It is very frustrating.

Yes, Fedora is indeed annoying that way.

>
> Having done the silver/gold release mechanism for about 4 years now I think
> it is
> "just about right". It gives lots of pressure to "hit the timebox" but
> enough time
> to plan for a major change.
>
> Timeboxing also allows estimates of when to stop adding new features ("a
> freeze")
> and start cleaning up the little details. This subtle side-effect forces
> fixing the little
> annoying things that nobody notices but make it cleaner and more
> professional.
>
>
>> 3. How did your debate about the above end?  Was their some definitive
>> argument, or?
>>
>
> Originally the development was released every 2 months with no public
> repository
> which made it hard to track changes. The debate ranged from "every day" (for
> the
> heavy developers who want to see everything) to "every 12 months" (for those
> who
> really didn't want to spend their life tracking a software tool). The debate
> ended with
> the "gold" 2 month timebox and the "silver" up-to-the-minute scheme. It
> works well.
>
> Curiously, the developers who wanted really frequent updates (and eventually
> created their own forks) don't seem to have imposed any kind of schedule.
> It is always easier to propose a schedule if you don't have to do the work.
>
>
>
> The debate about "version numbers" was never settled to anyone's
> satisfaction.
> Since Axiom is timeboxed, the "Month Year" number is sufficiently unique.
> Using git automatically versions the silver releases by SHA1 hash numbers.
>
> People keep wanting to Godel-number the version numbers (I guess this is
> git's scheme :-) ). They want to have major-minor-annoying-whocares-eh
> kind of magic numbers. This leads to pointless debates about whether a
> release is major or minor. Its an angels-on-the-head-of-a-pin debate.
>
> I'm not able to say that something is a "major" release. That whole idea is
> relative to the user's viewpoint. Open heart surgery isn't major if you're
> the doctor but it is if you're the patient. I dropped the whole "numbers
> are good" scheme and went with the "Month Year" scheme. The M/Y
> "numbering" scheme has no semantics attached to it so there is no room
> for debate.
>
> I have seen this debate before and it can get very religious. Every project
> seems to have the same debate. I'm not suggesting that Axiom's scheme
> is the best idea for Sage but I thought you might find my experience useful.
>
> Tim Daly

I really appreciate you taking the time to write the above email and share your
experiences.  Thanks!

The debate is happening right now, but I don't see this going to
religious proportions.  The fact is, we're using the major-minor
versioning scheme, and we'll be sticking to  that for the foreseeable
future.       But it is useful to hear people's experiences and
concerns.  I think this discussion is very healthy.

 -- William

-- 
William Stein
Professor of Mathematics
University of Washington
http://wstein.org

-- 
To post to this group, send an email to sage-devel@googlegroups.com
To unsubscribe from this group, send an email to 
sage-devel+unsubscr...@googlegroups.com
For more options, visit this group at http://groups.google.com/group/sage-devel
URL: http://www.sagemath.org

Reply via email to