We are adding the idea of projects to iceberg in the release 1.2 ;)
The idea so far is that an iceberg project will remember at first what is the code subdirectory (so people don't have to type it all over!).
But this opens the idea to have composite projects in the future.
��
Well, yes and no. That does not quite solve the issue.
Reifying projects add some flexibility, but it does not handle inter git-repository dependencies.
The case is the following:
- pharo is stored in pharo-project/pharo.git
- calypso is stored in pharo-contributions/calypso.git
Regardless how you show them in the UI, let's suppose now that you want to do a change that involves both.
Scenario 1)��That is, you have:
pharo v1
calypso v1
And you want to
pharo v2
calypso v2
If the change in either is dependent on the other, and/or for example breaks backwards compatibility, this means there is an implicit dependency between pharo and calypso.
��
But, next time you build pharo, you load v2, and then you find yourself with:
And everything breaks :)
Scenario 2) This could be solved by first doing a calypso release marking v2, and once that release is finished and public, doing a new pharo v2 release with the proper calypso version. But now, all this "administrative cost" means that there is a time gap between the release of calypso v2 and the release of pharo v2.
In this moment, if you just load bleeding edge version, you may have a build with:
Which may also break if proper care with backwards compatibility was not taken!
Nowadays, both calypso and Iceberg are managed like in scenario 2.
This adds some��some safety and order at the cost of��bureaucracy (partial releases, care for backwards compatibility).
Generally speaking, I'd like in the future a solution where there is a good tradeoff between safety and flexibility/speed.
Guille