BaselineOf vs ConfigurationOf
Hi, can anybody tell me the difference between BaselineOfX and ConfigurationOfX? The only thing I've gathered is that BaselineOf is used for Git projects, while ConfigurationOf for Monticello projects; but usage-wise they seem identical. Thanks, Peter
Thierry or Dale will confirm, but basically that's the gist of it. For git projects, you can specify dependencies to all things that refer to commits in git. So you can depend on a particular commit, on a tag, the tip of a branch⦠Therefore the release/version management part of metacello in ConfigurationOf⦠becomes mostly irrelevant, since you can encode it in how you organize and use your git repo. On 25 February 2015 at 13:47, Peter Uhnák <i.uhnak@gmail.com> wrote:
Hi,
can anybody tell me the difference between BaselineOfX and ConfigurationOfX? The only thing I've gathered is that BaselineOf is used for Git projects, while ConfigurationOf for Monticello projects; but usage-wise they seem identical.
Thanks, Peter
I'm sure Dale will precise this, but... BaselineOf is the same as a #baseline: in a ConfigurationOf. It describes dependencies, packages and groups for a project, without versions. On loading, a BaselineOf will behave as a #development version in a ConfigurationOf which is to load the latest versions of the packages listed (and whatever dependencies listed). BaselineOf becomes very convenient when you combine that with a repository which understand branches, such as git. Then, you say which branch or release tag you want through the repository url, say it's a baseline, and, et voilà , you have it (it loads the latest version on that branch or tag). Repositories urls which support branches and tags are github:// and bitbucket:// urls; which support branches (and not tags) are gitfiletree:// urls. Really, really makes things a lot easier than configurations. Took me a while to start using it, now, can't do without. These days, I'm just using Metacello scripts to load stuff out of baselines instead of configurations for allmost all my stuff. Thierry 2015-02-25 15:25 GMT+01:00 Damien Pollet <damien.pollet+pharo@gmail.com>:
Thierry or Dale will confirm, but basically that's the gist of it.
For git projects, you can specify dependencies to all things that refer to commits in git. So you can depend on a particular commit, on a tag, the tip of a branch... Therefore the release/version management part of metacello in ConfigurationOf... becomes mostly irrelevant, since you can encode it in how you organize and use your git repo.
On 25 February 2015 at 13:47, Peter Uhnák <i.uhnak@gmail.com> wrote:
Hi,
can anybody tell me the difference between BaselineOfX and ConfigurationOfX? The only thing I've gathered is that BaselineOf is used for Git projects, while ConfigurationOf for Monticello projects; but usage-wise they seem identical.
Thanks, Peter
Excerpts from Thierry Goubier's message of 2015-02-25 15:43:39 +0100:
BaselineOf is the same as a #baseline: in a ConfigurationOf. It describes dependencies, packages and groups for a project, without versions. On loading, a BaselineOf will behave as a #development version in a ConfigurationOf which is to load the latest versions of the packages listed (and whatever dependencies listed).
sounds to me like one should use branches for baseline (since they update) and tags for versions in configuration (since they stay on the same commit)
Repositories urls which support branches and tags are github:// and bitbucket:// urls; which support branches (and not tags) are gitfiletree:// urls.
oh, any particular reason, or just work in progress? greetings, martin. -- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.se caudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.org realss.com unix sysadmin Martin Bähr working in china http://societyserver.org/mbaehr/
Just a random query (especially since I haven't played with BaselineOf and I might misunderstand something)... should #baseline: be moved out of the ConfigurationOf class so that we consistently have a BaselineOf class in both cases: git & monticello. That is, the ConfigurationOfXxx.mcz package will contain two classes: ConfigurationOfXxx and BaselineOfXxx. cheers -ben On Wed, Feb 25, 2015 at 11:05 PM, Martin Bähr < mbaehr@email.archlab.tuwien.ac.at> wrote:
Excerpts from Thierry Goubier's message of 2015-02-25 15:43:39 +0100:
BaselineOf is the same as a #baseline: in a ConfigurationOf. It describes dependencies, packages and groups for a project, without versions. On loading, a BaselineOf will behave as a #development version in a ConfigurationOf which is to load the latest versions of the packages listed (and whatever dependencies listed).
sounds to me like one should use branches for baseline (since they update) and tags for versions in configuration (since they stay on the same commit)
Repositories urls which support branches and tags are github:// and bitbucket:// urls; which support branches (and not tags) are gitfiletree:// urls.
oh, any particular reason, or just work in progress?
greetings, martin.
-- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.se caudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.org realss.com unix sysadmin Martin Bähr working in china http://societyserver.org/mbaehr/
2015-02-26 13:41 GMT+01:00 Ben Coman <btc@openinworld.com>:
Just a random query (especially since I haven't played with BaselineOf and I might misunderstand something)... should #baseline: be moved out of the ConfigurationOf class so that we consistently have a BaselineOf class in both cases: git & monticello.
There is some elegance in having the same scheme, yes.
That is, the ConfigurationOfXxx.mcz package will contain two classes: ConfigurationOfXxx and BaselineOfXxx.
Hum, I'm not sure it will work. I'm under the feeling that Metacello expects the baseline to be in a package of the same name (BaselineOf) and that it wouldn't work. Dale? Thierry
cheers -ben
On Wed, Feb 25, 2015 at 11:05 PM, Martin Bähr < mbaehr@email.archlab.tuwien.ac.at> wrote:
Excerpts from Thierry Goubier's message of 2015-02-25 15:43:39 +0100:
BaselineOf is the same as a #baseline: in a ConfigurationOf. It describes dependencies, packages and groups for a project, without versions. On loading, a BaselineOf will behave as a #development version in a ConfigurationOf which is to load the latest versions of the packages listed (and whatever dependencies listed).
sounds to me like one should use branches for baseline (since they update) and tags for versions in configuration (since they stay on the same commit)
Repositories urls which support branches and tags are github:// and bitbucket:// urls; which support branches (and not tags) are gitfiletree:// urls.
oh, any particular reason, or just work in progress?
greetings, martin.
-- eKita - the online platform for your entire academic life -- chief engineer eKita.co pike programmer pike.lysator.liu.se caudium.net societyserver.org secretary beijinglug.org mentor fossasia.org foresight developer foresightlinux.org realss.com unix sysadmin Martin Bähr working in china http://societyserver.org/mbaehr/
On 2/26/15 4:41 AM, Ben Coman wrote:
Just a random query (especially since I haven't played with BaselineOf and I might misunderstand something)... should #baseline: be moved out of the ConfigurationOf class so that we consistently have a BaselineOf class in both cases: git & monticello. Haha, you are misunderstanding ... the two classes are separate because they are independent classes. One should use one or the other for managing a project.
If you have a git-based project then I recommend that you use a BaselineOf to manage the packages and dependent projects. If you are using a Monticello repository (mcz files) then you must use a ConfigurationOf ...
That is, the ConfigurationOfXxx.mcz package will contain two classes: ConfigurationOfXxx and BaselineOfXxx.
This will not work as you expect:) Dale
Thank you! If the BaselineOf is independent maybe we could repurpose Versioner - because even if tags and branches are handled by git, the load order and dependencies are still required and doing that by hand is too much work. :) Also maybe the docs (which I found just now⦠so shame on me for not looking harder) should be updated to recommend people to use BaselineOf always https://github.com/dalehenrich/metacello-work/tree/master/docs Peter On Thu, Feb 26, 2015 at 8:23 PM, Dale Henrichs < dale.henrichs@gemtalksystems.com> wrote:
On 2/26/15 4:41 AM, Ben Coman wrote:
Just a random query (especially since I haven't played with BaselineOf and I might misunderstand something)... should #baseline: be moved out of the ConfigurationOf class so that we consistently have a BaselineOf class in both cases: git & monticello.
Haha, you are misunderstanding ... the two classes are separate because they are independent classes. One should use one or the other for managing a project.
If you have a git-based project then I recommend that you use a BaselineOf to manage the packages and dependent projects.
If you are using a Monticello repository (mcz files) then you must use a ConfigurationOf ...
That is, the ConfigurationOfXxx.mcz package will contain two classes: ConfigurationOfXxx and BaselineOfXxx.
This will not work as you expect:)
Dale
Martin, In my work I am moving entirely away from ConfigurationOf ... ConfigurationOf was invented because Monticello lacks the ability to reason about multi-file versions so virtually all of the meta data in a ConfigurationOf is making up for this lack. Of course, the ConfigurationOf only partially fills the gap ... Git handles multi-file versions as well as branches so all of the extra meta data in the ConfigurationOf is totally unnecessary once you start using git. The BaselineOf manages the meta data that is still required in the presence of git: - package load order - project dependencies One can use tags directly in a project reference so configurations can be completely eliminated. Dale On 2/25/15 7:05 AM, Martin Bähr wrote:
Excerpts from Thierry Goubier's message of 2015-02-25 15:43:39 +0100:
BaselineOf is the same as a #baseline: in a ConfigurationOf. It describes dependencies, packages and groups for a project, without versions. On loading, a BaselineOf will behave as a #development version in a ConfigurationOf which is to load the latest versions of the packages listed (and whatever dependencies listed). sounds to me like one should use branches for baseline (since they update) and tags for versions in configuration (since they stay on the same commit)
Repositories urls which support branches and tags are github:// and bitbucket:// urls; which support branches (and not tags) are gitfiletree:// urls. oh, any particular reason, or just work in progress?
greetings, martin.
participants (6)
-
Ben Coman -
Dale Henrichs -
Damien Pollet -
Martin Bähr -
Peter Uhnák -
Thierry Goubier