Kilon,
I don't use tags a lot in my own projects, but if someone is using your
project in a production situation, then using tags is a good idea (if
you follow semantic versioning) so that the users can tell when and if
you have made api-breaking changes...
Since the Smacc project looks like it is on github you have two options
for doing a "project reference": reference the configuration or
reference the baseline.
To reference a configuration-based project do something like the
following (in a baseline):
spec
configuration: 'SmaCC'
with: [
spec
versionString: '2.0.4';
repository: 'http://.....' ].
spec
package: 'PackageThatDependsUponSmacc'
with: [ spec requires: #('Smacc') ].
Note that you might want to use a symbolic version (if they are defined
in the project) so that you can always get the #stable version which
presumably changes over time ...
To reference a baseline-based project do something like the following
(in a baseline):
spec
baseline: 'SmaCC'
with: [ spec repository: 'github://ThierryGoubier/SmaCC:master' ].
spec
package: 'PackageThatDependsUponSmacc'
with: [ spec requires: #('Smacc') ]
Note that you can use the tag wild cards to achieve a similar effect of
using symbolic versions with configurations.
Did this answer your question?
Dale
On 01/27/2015 07:21 AM, kilon alios wrote:
No I have not used git tags so far, so I am not familiar with them.
But I will keep in mind, I am considering not having versions at all,
I find it a curious concept.
Dale there is one thing I wanted to ask you , would it possible put in
my github repo installation instructions for installing prerequisites ?
For example I may use Thierry's SmaCC which I currently study to
figure out how it works.
I could add that to my ConfigurationOfEphestos that I have saved to
Meta Repo of Pharo 4. But I dont want to touch that repo, ideally I
would like to do this from the BaselineOfEphestos which is stored in
my Ephestos github repo. Is that possible ? Can the baseline handle
installation of dependencies and trigger other configurations ? Or is
that a job only for Configurations ?
I want not to have to maintain also meta repo 4, I just want to only
to do all things in my github repo.
On Tue, Jan 27, 2015 at 4:57 PM, Dale Henrichs
<dale.henri...@gemtalksystems.com
<mailto:dale.henri...@gemtalksystems.com>> wrote:
Kilon,
One more point that you might find useful ... If you use tags
(i.e., v1.0.0, v1.0.1, v1.1.0), you can specify tag wildcards in
the branch field of the github repository description.
Using Thierry's example the following resolves the latest commit
on the master branch (bleeding edge):
github://ThierryGoubier/SmaCC:master
Using a tag name, you can match the tagged commit:
github://ThierryGoubier/SmaCC:v1.0.0
github://ThierryGoubier/SmaCC:v1.1.0
Using a tag wildcard you can specify the latest tag 1.0.*:
github://ThierryGoubier/SmaCC:v1.0.*
which matches v1.0.1, v1.0.2, whichever is latest, but not v1.0.2.1.
To match the latest tag in the 1.0 family use 1.0.?:
github://ThierryGoubier/SmaCC:v1.0.?
which matches v1.0.1, v1.0.2 and v1.0.2.1.
There are more examples here[1].
This feature was introduced in Metacello 1.0.0-beta.32.16[2].
Dale
[1]
https://github.com/dalehenrich/metacello-work/issues/277#issuecomment-58970696
[2]
https://github.com/dalehenrich/metacello-work/issues?q=milestone%3A1.0.0-beta.32.16+is%3Aclosed
On 1/27/15 1:52 AM, kilon alios wrote:
beautiful it worked like a charm following your instructions , I
now can brake my project to smaller ones, each one with each own
github repo and use Baselines to load each one and still allow
the user to load my Project in one single click from
Configuration Browser. Love it how Pharo make this all this so
easy, with python it was a nightmare. Brilliant just Brilliant ! :)
On Tue, Jan 27, 2015 at 11:19 AM, Thierry Goubier
<thierry.goub...@gmail.com <mailto:thierry.goub...@gmail.com>> wrote:
Hi Kilon,
a simple way to do that is to change your configuration so
that it uses the baseline in your github. The SmaCC
configuration for Pharo 4.0 is written in this way for the
stable version.
version204: spec
<version: '2.0.4' imports: #('2.0-baseline')>
spec
for: #'pharo4.x'
do: [
spec
blessing: #stable;
author: 'ThierryGoubier';
description: 'SmaCC Smalltalk Compiler
Compiler for Pharo 4.0'.
spec
baseline: 'SmaCC' with: [ spec repository:
'github://ThierryGoubier/SmaCC:master' ];
import: 'SmaCC' ]
Thierry
2015-01-27 10:08 GMT+01:00 kilon alios <kilon.al...@gmail.com
<mailto:kilon.al...@gmail.com>>:
So I have a Configuration in the Meta repo of pharo 4 and
3 that loads the latest version of my project Ephestos.
However I have moved my development to github since I am
very happy with the workflow and since I discovered
loading github repos via a baseline I have little use for
smalltalkhub.
So my plan is this, keep the configuration in the meta
repo so people and me can install my project easily with
one click via the wonderful simple configuration browser
, but I dont want anymore to load any versions with it.
Instead I want to tell the configuration "load the github
baseline" which means it will fetch the code from my
github account master branch which is the stable branch
anyway (and the only branch so far) .
That will allow me to never have to update that
configuration again since it will just load the latest
code from github repo.
The question is how to do this the easiest and cleanest
way possible ?