Dale,
Thank you for the response.  So the simple answer to my question is 'yes, it is supported'.  The longer answer is Yes, depending how you want to use it.



On Wed, Apr 17, 2013 at 2:21 PM, Dale Henrichs <dhenrich@vmware.com> wrote:


----- Original Message -----
| From: "Chris Cunningham" <cunningham.cb@gmail.com>
| To: "Moose-related development" <moose-dev@iam.unibe.ch>
| Sent: Wednesday, April 17, 2013 10:36:38 AM
| Subject: [Moose-dev] #stable and Metacello (was Re:   ConfigurationOfGlamourSeaside)
|
| Interesting. Does Metacello allow us to associate #stable with a version of a
| platform (for instance, #stable for Moose 4.7)? Because #stable isn't always
| stable, as you have pointed out.

Chris,

A symbolic version is basically a tag for a given attribute (#common, #squeak, #pharo2.x, etc.) and version (1.7, 3.5, 4.8, etc.).

#stable is a name that is used by convention to denote the version that _should_ be used on a particular platform, i.e., we could have used another name like #'recommended_version' or #'as_stable_as_it_gets'.

In practice, there is no guarantee that the release is actually stable on the given platform. The platform itself may not be stable ... or in this particular case it appears that the root cause was an instability in a dependent project ...

Metacello "allows" developers to declare attribute/version pairs as #stable in the same way that Squeak allows one to write code with bugs in it:) and as with Squeak, the bug isn't always in your own code...

When it comes to platform and dependency management one can have tight coupling and loose coupling ...

In systems that are under constant development tight coupling is completely impractical, because one must change all of the project configurations for projects that depend upon your project when you make a bugfix release. With lots of projects undergoing constant bugfixing this can quickly turn into a nightmare.

Using symbolic versions gives a bit of wiggle room. When you make a bugfix release, you can declare that the new version is #stable and any projects that depend upon your project will automatically pick up your bugfix ...

Unfortunately, the additional wiggle room means that I can make what I consider a bugfix release and _introduce_ bugs in a project that depends upon my project ....

The only defense against this is to use tight coupling which may hinder progress ...

So in the end developers must make a decision as to which direction they want to go ... and Metacello gives the developers the freedom to make that choice...

Dale
_______________________________________________
Moose-dev mailing list
Moose-dev@iam.unibe.ch
https://www.iam.unibe.ch/mailman/listinfo/moose-dev