On 3 déc. 2009, at 19:00, Stéphane Ducasse wrote:



So I saved my changes in a new version which I called:

dev131: spec
<version: '1.3.1' imports: #('1.3')>

spec for: #common do: [
spec author: 'simondenier'.
spec timestamp: '12/3/2009 18:01'.
spec blessing: #development.
spec
package: 'CAnalyzer' with: 'CAnalyzer-simondenier.166';
package: 'XML-Parser' with: 'XML-Parser-Alexandre_Bergel.19';
package: 'Pastell' with: 'Pastell-Alexandre_Bergel.17';
package: 'Filesystem' with: 'Filesystem-cwp.51'.].

As you can, it is blessed as development with a micro number (1.3.1)

So we can have three levels of release with Metacello:
- baseline for the architecture
- version for major and minor release, which can be stable, beta, or the main trunk of development
- dev for micro release for developers, which we can see as branches, and which serves as history of development as Stef wishes

Sounds good to me.

I called it dev, but maybe branch is a better name. Also a different blessing could be used, I dont know. Any idea?
Note that Metacello handles well the numbering of version at major, minor, or micro level.

Now about the process itself:
- *update the configuration* so that you get other micro releases and you dont override one by accident :)
- spawn new version from the minor or micro release you want to derive
- save packages
we have to do step  that manually or this is a menu (publish all dirty package of that configuration)?

This is in the menu. 

Now there is issue #3 which dates back from september and in which apparently, new packages are not saved this way, only dirty.

Also I dont know if this works with nested configurations (but perhaps it's less important, we can make two separate commits in this case, one for each project).


- you are prompted to update package methods, which means update your new version method with the package info
- then you are prompted to save the configuration

It means that actually you need to do two commits: one for the packages, one for the configuration. Maybe we could improve the process and making the whole thing works seamlessly
(save new version: spawn new version (prompt for version) -> save packages (prompt for comment) -> update version -> save configuration (reuse earlier comment).

For now it can be what we need and if we should do two commits this is ok.

The first 3 steps you have to click in the contextual menu of the Configuration, then the last two follows the 'save packages'. But all are options in the menu
http://code.google.com/p/metacello/wiki/MetacelloTools   (5 out of 8 actions, good shooting)

--
 Simon