Stef,
I tend to agree, but you want it fairly obvious to the end user that they are wandering onto the bleeding edge when using nano versions:)
For example, by default, Metacello would filter out nano versions...
Dale
----- "stephane ducasse" stephane.ducasse@gmail.com wrote:
| 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@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 | > | > | >