Login  Register

Re: 2 questions around gitlab, gitfiletree, BaselineOf

Posted by Thierry Goubier on Jul 07, 2017; 2:05pm
URL: https://forum.world.st/2-questions-around-gitlab-gitfiletree-BaselineOf-tp4953877p4953879.html

Hi Sabine,

I have makefiles to do the sort of thing you describe automatically (build an image from local, git managed repositories) and a baseline: I write stuff like

./pharo-cli pharo/Pharo.image --no-default-preferences eval --save Metacello new baseline: \'MyProject\'\; repository:\'gitfiletree://`pwd`/../src/\'\; load

(works once gitfiletree has been loaded)

notice the `pwd` embedded in there which allows you to put your local git clone anywhere you like.

One thing I can't do, however, is having a dependency in BaselineOfMyProject to a locally hosted project (say BaselineOfANiceLib stored in ~/Project2017/ClientX/) because when I write the baseline, I can't be sure where it will be on-disk.

If you're ok with gitfiletree doing the clone from gitlab on its own, one could still write a direct access to your internal gitlab server, in the baseline of MyProject, like that:

spec repository: 'gitfiletree://gitlab.intra.example.com/ANiceLib:master/placeWhereAreThePackages';

The oldest such scripts I have are for Pharo3.

Does that answer your questions ?

Thierry

2017-07-07 15:48 GMT+02:00 Sabine Manaa <[hidden email]>:
Hi,

we have our own gitlab running now and I succeeded to move our code from
sthub to it.
I can push my new code into it from Pharo. All fine.
I also created a Baseline (based on my former configurationOf).
Loading the code from others (e.g. seaside) with this baseline is also fine.

There are 2 Points where I am sure it could be better (it is worse)
1) For loading my own code, I currently have a bad solution
It is in the postLoadBaseline and does this:

        | gitRepository |
        gitRepository := MCFileTreeRepository new
                directory:
'/Applications/Pharo5.0-7.app/Contents/Resources/spf-gitlab/repository'
asFileReference.
        {'RKA24-Model' . 'RKA24-System' . 'RKA24-Translator' . 'RKA24-View' .
'RKA24-Test' . 'RKA24-Report' . 'RKA24-Overwrites'}
                do: [ :each |
                        Gofer it
                                repository: gitRepository;
                                package: each;
                                load ].

I would like to load it within my baseline like this below but I dont know
what to write in the fileTreeRepository method...

baseline: spec
        <baseline>
        spec
                for: #common
                do: [ spec blessing: #baseline.
                        spec repository: ##self fileTreeRepository##.
                        "here I load all the the oher stuff"
                        spec
                                package: 'RKA24-Model';
                                package: 'RKA24-System';
                                package: 'RKA24-Translator';
                                package: 'RKA24-View';
                                package: 'RKA24-Test';
                                package: 'RKA24-Report';
                                package: 'RKA24-Overwrites' ]

2) Also, when I take a new Image, I have to do several steps

load gitfiletree from catalog
add/open my gitfiletree repository from Monticello
load BaselineOfRKA24 manually with
(BaselineOfRKA24   project map at: 'baseline') load

I think this is not the best way, I would like to make it right.

Can anyone give me some hints how to improve this two steps?
I use Pharo 5 and I don't want to go to Pharo 6 right now.
I develop on mac and production server is on windows.

Regards
Sabine





--
View this message in context: http://forum.world.st/2-questions-around-gitlab-gitfiletree-BaselineOf-tp4953877.html
Sent from the Pharo Smalltalk Users mailing list archive at Nabble.com.