simon my gut feeling is telling me that four level is too complex.
Stef
On Dec 5, 2009, at 5:07 PM, Simon Denier wrote:
Thinking again about the dev process specifically in Moose (not subprojects such as
CAnalyzer, Mondrian...), branches for developer should be 'nano' releases
actually, that is:
- 4 is a major release of Moose
- 4.1 is a minor release, but still something consistent
- 4.2.x should be for release in the main trunk, i.e. mostly dev and beta version before
releasing a minor release (would be 4.2)
- 4.2.x.y is a branch of one developer (something short-lived, typically for a task
resolution, once finished should be merged in main trunk)
We could also follow the linux rule:
- 4.1, 4.1.1, 4.1.1.1 are the dev versions for the future 4.2 stable releases
- 4.2, 4.2.1 etc are minor and micro releases but stable, with bug fixes
i.e. minor is odd -> dev version, minor is even -> stable version
This does not mean we work on two versions in parallel (we dont have the manpower), but
it just to help distinguish between dev and stable versions
I'm just pushing ideas out of my head. Now, with this process, we have three main
requirements for Moose:
- making it easy for anybody to retrieve (and identify it) the latest stable version
- making integration in the main dev trunk the priority (we have limited resources, so
each developer should take care to merge its changes in the main trunk, and start over
from the main trunk for a new task, NOT always working in the same branches)
- managing micro/nano releases from each developer
I'm sorry if this feels too complicated and overly complex, it is not. I'm just
playing with different schemas and see what could work best.
-----------------------------------------------------------------------------------------------------------------------------
Now of course Metacello should not care about conventions (minor, micro...) of each
project. Your proposition seems reasonable and flexible enough.
But then, how can I ask for a version with a specific blessing?
On 4 déc. 2009, at 18:48, Dale Henrichs wrote:
Thinking off the top of my head, would it be work to supply a pattern of some sort as an
arg? Something like:
ConfigurationOfXXX project lastVersion: '*.*'
Not a real regex (because of the periods would need to be escaped, but mainly because
reading regex for me is like trying to read russian:).
Maybe best is a special purpose character like '#' in addition to the standard(?)
smalltalk patterns '*' and '?':
ConfigurationOfXXX project lastVersion: '#.#' ---> matches all major.minor
ConfigurationOfXXX project lastVersion: '1.#' ---> matches all 1.minor
ConfigurationOfXXX project lastVersion: '*' ---> is current algorithm
ConfigurationOfXXX project lastVersion: '*.0' ---> matches versions with
trailing .0
ConfigurationOfXXX project lastVersion: '?.#' ---> matches single character
major.minor
I dont see what is the use of this one?
ConfigurationOfXXX project lastVersion:
'1.#.3' ---> is invalid
This one seems to the right approach ... I can add a #match: method to
MetacelloVersionNumber to implement the pattern matching.
What do you think?
Dale
----- "Simon Denier" <Simon.Denier(a)inria.fr> wrote:
| Suppose I have versions like this:
| 1.3.2 #development --> branch by a developer
| 1.3.1 #development --> branch by a developer
| 1.3 #development --> main trunk, last dev
| 1.2 #stable --> main trunk, last stable
|
| When I perform a ConfigurationOfXXX project lastVersion, I would like
|
| to retrieve the config for the last dev version common to everybody,
|
| and I would like this to be 1.3, not 1.3.2 which is the work of one
| guy not yet merged in the main trunk.
|
| Right now, I get 1.3.2
|
| Perhaps we could have something like this:
| 1.3.2 #branch --> branch by a developer
| 1.3.1 #branch --> branch by a developer
| 1.3 #development --> main trunk, last dev
| 1.2 #stable --> main trunk, last stable
|
| and branch would be an 'unstable' tag ignored by the loader when
| asking for latestVersion or lastVersion (and veryLastVersion could
| retrieve the latest version, be it a branch, dev, or stable).
|
| I have no special requirements here, I'm just playing with the idea
| and process of how to manage micro releases with Metacello.
|
| --
| Simon
--
Simon