Hi,
In Synectique's case, we had several problems working with Bleeding edge of Moose:
1/ changes to the API
2/ changes that lead to performance problems
3/ when depending on bleeding edge of Pharo always testing the combo Pharo + Moose
The first one is important because one does not want to spend resources adapting to inadvertent changes. And it is easy to handle as one can always depend on a given version number (not a stable because it is moving and may create surprises that are less frequent than the bleeding edge).
Regarding changes that lead to performance issues, someone must test with real cases and evaluate. Depending on the version number works fine here too.
We would not have needed to create our own configuration if we could downgrade PetitParser but apparently, that is not possible and hence the easier solution was to create our own configuration.
The ConfigurationOfSynectiqueMoose is just an assembly of existing versions of the components in Moose (these versions are published publicly). We just loading by hand:
-> SmallDude because it has a dependency on ConfigurationOfMoose
-> GT-Toolkit and PetitSQL because there were paths leading to PetitParser #development.
As for Moose depending on the bleeding edge of Pharo, it is risky business because when demoing or delivering a new version to a client, the red square of death is difficult to justify. With the stable version, we at least know where not to click :p. But one is not testing new combinations (coming from Pharo + Moose) in production.
But if there are alternate solutions in our eco-system that enable the use of bleeding edge in production that shield the users from inadvertent changes, it'll be nice to know.
regards,
Usman