Not sure what you mean by "separating concepts and unneeded complexity". I provided a picture of some of the abstractions that I am using in tODE ... these abstractions are used in a number of commands, but I also tried to provide you with the basic implementation used in tODE in case you were interested in the fact that tODE includes the BaselineOf package in the list of packages for a project...Hi Dale,
2016-01-27 15:41 GMT+01:00 Dale Henrichs <dale.henrichs@gemtalksystems.com>:
On 1/27/16 12:03 AM, Thierry Goubier wrote:
Hi Dale,Thierry,
then a question: how does one query a baselineOf or a configOf to retrieve the current project state (i.e. packages) loaded in the image?
Thierry
Good question:)
To start with in tODE I have a class TDMetacelloProjectRegistrationDefinition which is part of the following hierarchy:
Object
��TDDefinition
�� TDPackageBasedDefinition
�� ��TDAbstractProjectRegistrationDefinition
�� �� TDGitProjectRegistrationDefinition
�� �� TDMetacelloProjectRegistrationDefinition
�� �� ��TDMetacelloRegistrationDefinition
�� �� �� TDMetacelloBaselineRegistrationDefinition
�� �� �� TDMetacelloConfigurationRegistrationDefinition
�� �� �� TDMetacelloHybridRegistrationDefinition
�� �� ��TDMetacelloUnloadedProjectRegistrationDefinition
The method TDMetacelloProjectRegistrationDefinition>>workingCopies[1] calculates the list of MCWorkingCopy instances for the loaded packages associated with a project (including the configurationof or baselineof... or both).
The key Metacello methods called include:
�� MetacelloProjectRegistration>>projectVersion[2]
�� MetacelloMCVersion>>packages[3]
�� MetacelloPackageSpec>>workingCopy[4]
�� MetacelloMCProjectSpec>>projectPackage[5]
This is really the key information for doing all of the other operations for a "Project Browser" like "save all dirty packages and commit" and "give me diffs for all dirty packages in project"...
I was just asking that because I'd like to see that information merged as much as possible; separating concepts just strikes me as unneeded complexity, at least for baselines.
I'm not sure what you are talking about here.Configurations are a bit different, since a configuration can snapshot multiple versions. But I'd really like to make it simple and obvious how to setup a project.