Login  Register

Re: 2 questions around gitlab, gitfiletree, BaselineOf

Posted by Sabine M. on Jul 07, 2017; 7:32pm
URL: https://forum.world.st/2-questions-around-gitlab-gitfiletree-BaselineOf-tp4953877p4953938.html

Hi Thierry, Gabriel and Peter,

thank you very much. First I had a look at this because it would be nice to load directly from Gitlab (with then generating a local repository automatically):

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

I did not manage to use it because I would need to give a port as parameter (we do  not use port 22). I chatted in discord with Peter Uhnak. 

It seemed that this is not yet possible because of my case that i do not use port 22 and I use a config file.

On the command line, this command succeeds with cloning my repository from gitlab:

git clone git@SPF_GITLAB:SPF/Spesenfuchs.git


There is a config file which defines my host:

host SPF_GITLAB
HostName 192.168.1.61
Port 30001

I try to write my baseline with this 

spec repository: 'gitfiletree://SPF_GITLAB:SPF/Spesenfuchs.git'.


This did not work in the beginning.

I played around and found out that there are 2 points where I had to change the system to make this work:

1) ZnUrl>>parseHostPort:
stream atEnd
ifFalse: ["portNumber := Integer readFrom: stream ifFail: [ ZnPortNotANumber signal ].
(portNumber between: 1 and: 65535) ifFalse: [ DomainError signalFrom: 1 to: 65535 ]."
self port: 30001 "portNumber" ] ]
->> here, it is assumed that there is always a port integer after the :
If i set it hard to my port I skip this problem

2) MCFileTreeGitRepository>>basicFromUrl: aZnUrl
here I changed the code also hard from

repo remoteUrl: 'git@' , aZnUrl host , ':' , path
to
repo remoteUrl: 'git@SPF_GITLAB:SPF/Spesenfuchs.git' 

->> here, aUZnUrl host is in lowercase but my name is in uppercase
:SPF is missing

the existing code would make this:
git@spf_gitlab:Spesenfuchs.git
instead of 
git@SPF_GITLAB:SPF/Spesenfuchs.git

With this 2 changes, my code could load.

So my question: Are this 2 points issues to fix or should I create my own workaround (create my own loader, not making THIS changes )?

Regards
Sabine





2017-07-07 16:06 GMT+02:00 gcotelli [via Smalltalk] <[hidden email]>:
Hi Sabine,
for your own baseline you don't need to specify a repository. Just load it with something like:

Metacello new
baseline: 'RLA24';
repository: 'filetree://disklocation/repository';
load: 'Group To Load'

Also you can have local copies of your dependencies in case you don't want to use an internet connection for dowloading, just use the lock command of Metacello to "overwrite" the repository definitions. For example take a look at:

https://gist.github.com/gcotelli/d4521656358786ae2aca12a70478980f

Regards,
Gabriel


On Fri, Jul 7, 2017 at 10:48 AM, Sabine Manaa <[hidden email]> wrote:
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.





If you reply to this email, your message will be added to the discussion below:
http://forum.world.st/2-questions-around-gitlab-gitfiletree-BaselineOf-tp4953877p4953880.html
To start a new topic under Pharo Smalltalk Users, email [hidden email]
To unsubscribe from Pharo Smalltalk Users, click here.
NAML