Hi all,
I like moose a lot, but I have a problem with the way the moose configurations are used.
So I would like to discuss this on the developers list. I would like to know if more
people experience these problems.
First of all, I like the way the development works out. All development configurations
simply do not use any version numbers, and therefor return the latest version. Maybe we
should create an actual development version, that is empty, except for the packages we
want to be a fixed version. But this is a minor point.
But once moose is released, a snapshot is taken, it is no longer a proper configuration.
Main drawback is that all groups and such are removed. But also referred configurations
are no longer used.
I believe it should be possible to upgrade to the stable version of a configuration in the
place where a development version was used. Especially when the development version is
released. Taking snapshots prevents this, since it no longer contains groups.
Also I think that bug fixes of used configurations should be imported automatically.
Taking snapshots prevents this, since they do not use used configurations.
Finally there is a scenario that actually breaks configurations downstream. When I load
version 1.6-baseline of PetitParser and sub sequentially ask for the current version, it
returns 1.7-snapshot. But since I try to load the 'Core' group of PetitParser, I
can no longer use my configuration. It simply halts on the error that the group
'Core' could not be found.
I have two suggestions to improve the process:
We either choose to stick to snapshots for the
releases, since this is a very reliable way to reproduce a build (with all known bugs).
But for this we create a class SnapshotOf<projectname>, for each project, with all
the methods needed, to indicate it is not a configuration. We could add previous releases
to this class.
We create a proper stable version, in the way
configurations are meant to be. We bless these methods with release and only update
versions if it is a bug fix. We also create a new development version at the moment we
make the release, so we can continue development, without breaking the release
For the last suggestion I have updated my Metaceller tool (part of GToolkit). It is still
beta, but it produces proper release version for a single configuration, based on the
current state of the image.
Regards,
Diego