Christophe,

I still don't have a lot of time to read the paper and try to understand what you are trying to accomplish, but I am curious how you think "package dependencies" will play with git-based projects?

In git-based repositories I don't think you have the same type of dependency issues that one might have with monticello repositories --- In a monticello repository you have a whole range of possible package versions to pick from, but in a git-based repository the range of package versions is fixed to those that are committed together so the packages that are meant to work together are committed together.

In the bootstrap scenario, you would only have one version per package to choose from, so the packages that are meant to work together are committed together ....

I guess I don't know what you mean when you say:
we want to decouple a released version of a package from the working copy of the package version description (implies the creation of a package repository + a web interface on top of it to promote/search packages).
Perhaps a description of the problem being solved would help me understand.

Dale


On 10/6/15 11:47 PM, Christophe Demarey wrote:
Hi Dale,

Le 6 oct. 2015 à 20:23, Dale Henrichs a écrit :


On 10/6/15 5:10 AM, stepharo wrote:

Le 6/10/15 11:40, Stephan Eggermont a écrit :
On 06-10-15 11:11, stepharo wrote:
I will do a separate configuration of magritte seaside.
You need to load the correct groups. Separate configurations are a bad practice 
and should be eliminated, not encouraged.
I totally disagree.
And groups are not supported by the configurationBrowser
The configuration has a lot of essential complexity, as many different 
combinations of components are needed in different situations. We need tools 
that recognize that essential complexity and support it, not tools that try to 
hide it and then have no practical usability.
Well I disagree. And all the effort of christophe for the new dependencies 
declarations at the package level just goes in that direction.
I will do a MagritteSeaside Configuration that I will maintain and I will also 
do a MagritteTutorial one.

Stef,

I hope you and Christophe are considering cross platform considerations when implementing "new 
dependencies declarations at the package level" ... MonticelloConfigurations had "package level 
dependencies" and the implementation was extremely rigid to the point where it wasn't possible to 
substitute an alternate (platform-speicific) package in the package graph without creating new package 
versions of all packages in the graph ... Of course I am not aware of the approach that Christophe, but be 
aware that "there be dragons there":)
Thanks for the warning. cross-platform packages are integrated into this new 
approach by allowing to express dependencies to virtual packages (idea from 
debian OS: 
http://www.debian.org/doc/debian-policy/ch-binary.html#s-virtual_pkg). It 
allows low-coupling and is very flexible.
You will find more information in the paper published at IWST'14: 
https://hal.inria.fr/hal-01086083/document (by the way, you should already have 
it, I sent it to you last year but you were very busy at this time ;) )

To summarize in a few words, we want dependencies expressed at the package 
level (and we want more meta-data on packages), we want to decouple a released 
version of a package from the working copy of the package version description 
(implies the creation of a package repository + a web interface on top of it to 
promote/search packages).
We also want to detect dependencies automatically as much as possible to avoid 
missing or not-used dependencies (dependency analyser tool). All together, it 
will allow to define architectural rules and layers in Pharo. I now 
experimenting all that with the Pharo bootstrap.

If you have any question or remark, do not hesitate to ask or to give feedback.

Christophe.


Reply via email to