Repository and release numbering changes

"Grzegorz B. Prokopski" <[email protected]> Fri, 11 Mar 2005 15:24:37 -0500
Newsgroups gmane.comp.java.vm.sablevm.devel
Message-ID <[email protected]>
Hi everybody,

Since some time we've been discussing how our development model and
especially repository management should work.  The sandbox->staging
->bugfree->trunk does not quite reflect the way our actual development
happens.  It looks like after over a year of using this model there's
time for some refinement.

Changes proposed:
1. staging becomes trunk, bugfree disappears (so we only have trunk),
2. "branches" directory becomes writable for all developers,
3. releases will basically use two-number versions ie. 1.10, with
   possibility of making "bugfix" releases ie. 1.10.1 when necessary.

ad 1. We observed that bugfree pretty much always was simply a snapshot
  of staging, therefore release tags on bugfree could have actually be
  made directly on staging.  There also were no rules, nor pressure
  for migration of the code from bugfree to super-stable trunk, so
  the trunk was unused.  This change allows us to shorten the way code
  has to make to get into a release.

ad 2. There have always been discussions about when and how we should
  revert staging in case it was found broken.  Reverting code from
  staging means, among other things, that there is no longer a shared
  place where the broken code can be improved (ie. last time Etienne 
  made a copy of reverted code in his sandbox).

  After the change we will be able to copy current trunk (=staging)
  into ie. /sablevm/branches/trunk-broken-20050314 and continue to
  work on fixing the problems introduced supposedly during classpath
  merge.

  Any developer will also be able to create another shared branch
  in branches directory when he wants to more easily cooperate on
  it with other developers, while the code developed is not ready
  for inclusion into trunk yet.
  
ad 3. Along with staging->bugfree->trunk idea we had an idea of using
  even and odd middle numbers to distinguish development and stable
  releases.  This does not work with our development model, where we
  pretty much only have snapshots of our main development trunk.  OTOH
  having two-number releases seems to better ressemble the reality of
  continuously appearing development releases.

  Additionally we will be able to make small "bugfix" releases, ie.
  now we would release 1.10.1, for which we would not make an official
  release, but which would be mentioned on our web sites as the latest
  released version, and which would not contain serious bugs that 1.10
  (=1.1.10) had, but would contain an older class library.

I believe this new schema would give us more flexibility and ability to
cooperate on code (via shared read-write branches directory), while also
making it easier to actully keep trunk free of regressions.  And, what
probably the most important, it seems to be more in line with how our
development actually works.

If there's no objections, we'll implement the changes ASAP, especially
that we have a serious regression in staging that we should get rid of.

Comments?

				Grzegorz B. Prokopski
--
Grzegorz B. Prokopski <[email protected]>
Debian GNU/Linux      http://www.debian.org
SableVM - LGPLed JVM  http://www.sablevm.org
Why SableVM ?!?       http://devel.sablevm.org/wiki/Features