Is there a tonel:// format for repos?

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
29 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Is there a tonel:// format for repos?

Tim Mackinnon
Hi - I converted my project to tonel, and am looking to hook it up to my gitlab pipeline, and for older projects I had a run.st script that did:

Metacello new
    baseline: 'WillowPagerDuty';
    repository: ‘<a href="filetree://../src'" class="">filetree://../src';
    load.

I get a not found error when I run that, is there a new repo type for tonel eg?

Metacello new
    baseline: 'WillowPagerDuty';
    repository: '<a href="tonel://../src" class="">tonel://../src';
    load.


Or is this the PR Esteban was working on earlier this month so that filetree can support tonel? If so, it would be very good to get this support as it makes it much easier to write generic scripts to run in CI projects without having to reference branch names to build things (as its simply the source in you git directory that you want to build locally )

Tim
Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Peter Uhnák
Metacello new
    baseline: 'WillowPagerDuty';
    repository: 'tonel://../src';
    load.


This should work.

You can also use SmalltalkCI instead of doing everything by hand.

Peter

Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
Hmmm - will have to try that again - I seemed to get an error - maybe this is just a Pharo 7 thing?

It had previously been simpler and more reliable to just run a simple gitlab ci pipeline - but yeah maybe I should reconsider that...

On 14 May 2018, at 16:59, Peter Uhnák <[hidden email]> wrote:

Metacello new
    baseline: 'WillowPagerDuty';
    repository: 'tonel://../src';
    load.


This should work.

You can also use SmalltalkCI instead of doing everything by hand.

Peter


Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Sean P. DeNigris
Administrator
Tim Mackinnon wrote
> to just run a simple gitlab ci pipeline

Can't you just use `gitlab://` and Iceberg/Metacello integration? IIUC it
"just works" for tones, with or without Smalltalk CI (but I haven't ported
to tonel yet, so take FWIW)



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
In reply to this post by Tim Mackinnon
Peter - thanks for getting me to retry it - it turns out that tonel:// is correct, and I had misread the error message - which was actually due to me misnaming the baselineOf project suffix.

To your point Sean - if using a CI server - if you use GitHub or GitLab:// prefixes - you need ssh key installed on our server which then becomes a real pain - so sticking to https (and public repos) and any source that is checked it with your project on build - is a big simplification.

I’ in the process of weeding out some rogue GitHub:// baselines as they fail and then cause my loading image to bomb out (I suspect Peter has weeded all of this out in SmalltalkCI).

I’m forging on - but may take another look at SmalltalkCI - the trouble is, I really don’t like Travis (I find it really hard to use - and never understood why it was successful, and equally Jenkins is a mess). I quite like the model of Gitlab’s one stop shop - and I was interested in simplifying it from what I did for PharoLambda - but its been a bit more painful than I had expected.

Tim

On 14 May 2018, at 18:09, Tim Mackinnon <[hidden email]> wrote:

Hmmm - will have to try that again - I seemed to get an error - maybe this is just a Pharo 7 thing?

It had previously been simpler and more reliable to just run a simple gitlab ci pipeline - but yeah maybe I should reconsider that...

On 14 May 2018, at 16:59, Peter Uhnák <[hidden email]> wrote:

Metacello new
    baseline: 'WillowPagerDuty';
    repository: 'tonel://../src';
    load.


This should work.

You can also use SmalltalkCI instead of doing everything by hand.

Peter



Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Sean P. DeNigris
Administrator
Tim Mackinnon wrote
> may take another look at SmalltalkCI - the trouble is, I really don’t like
> Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Smalltalk CI on Gitlab

Tim Mackinnon
Hi Sean - thanks for mentioning that - I tried it ages ago and didn’t get on well with it on Travs. But I don’t understand how it works on Gitlab - and the project readme.md seems to assume you understand how its approaching the problem (which possibly has changed over the years).

Looking at your url - how is that running a project that you have in a different repo? Is there some web hook that causes it to then trigger a build cycle? I can see you edited a BaselineOfGitLabCI and added a BabyPhexample - which seems a bit inside out to me - but I’m hanging in there (so do you add other projects in this same file?).

I also don’t understand the pipeline model - there seems to be just one pipeline (and gitlab has great pipeline support)?

And then - when it all builds successfully - how does it deploy (hence my pipeline question).

I’m lost - but curious, as maybe I can save time on what I’m doing (writing more apps vs pissing around with missing infrastructure).

Tim

On 14 May 2018, at 22:38, Sean P. DeNigris <[hidden email]> wrote:

Tim Mackinnon wrote
may take another look at SmalltalkCI - the trouble is, I really don’t like
Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
In reply to this post by Sean P. DeNigris
I’ve created a new thread on Smalltalk CI - but back to tonel - having got my local project to start reading - its now failing when it then starts processing my BaselineOf and hits my willow dependency - which was initially things like:

spec
baseline: 'WillowBootstrap'
with: [ spec
repository: '<a href="github://ba-st/Willow-Bootstrap:v8/source" class="">github://ba-st/Willow-Bootstrap:v8/source';
loads: #('Deployment') ];
import: 'WillowBootstrap'.

The trouble being that the use of GitHub:// causes it to barf as it then wants ssh keys and crashes when trying to flip to https automatically.  I figured I could just specify 'https://github.com/ba-st/Willow-Boostrap/tree/v8/source’ but this doesn’t work either - as then I get a retry error:

Fetched -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...The method Integer>>#asBytesDescription called from ZnUtils class>>#signalProgress:total: has been deprecated.
Please use #humanReadableSIByteSize instead

...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/ba-st/Willow-Bootstrap/tree/v8/source
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:

Its very weird - and much harder than I was expecting it all to be (hence the renewed interest in Smalltalk CI). Saying this - what I’m trying to do should be dead easy.

Tim

On 14 May 2018, at 22:38, Sean P. DeNigris <[hidden email]> wrote:

Tim Mackinnon wrote
may take another look at SmalltalkCI - the trouble is, I really don’t like
Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html


Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Guillermo Polito
Hey!

On Tue, May 15, 2018 at 12:46 AM, Tim Mackinnon <[hidden email]> wrote:
I’ve created a new thread on Smalltalk CI - but back to tonel - having got my local project to start reading - its now failing when it then starts processing my BaselineOf and hits my willow dependency - which was initially things like:

spec
baseline: 'WillowBootstrap'
with: [ spec
repository: 'github://ba-st/Willow-Bootstrap:v8/source';
loads: #('Deployment') ];
import: 'WillowBootstrap'.

The trouble being that the use of GitHub:// causes it to barf as it then wants ssh keys and crashes when trying to flip to https automatically.

Can you share the log of this? I'd like to know why https fails (as it shouldn't!).
 
 I figured I could just specify 'https://github.com/ba-st/Willow-Boostrap/tree/v8/source’ but this doesn’t work either - as then I get a retry error:

Fetched -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...The method Integer>>#asBytesDescription called from ZnUtils class>>#signalProgress:total: has been deprecated.
Please use #humanReadableSIByteSize instead

...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/ba-st/Willow-Bootstrap/tree/v8/source
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:

Its very weird - and much harder than I was expecting it all to be (hence the renewed interest in Smalltalk CI). Saying this - what I’m trying to do should be dead easy.

Tim

On 14 May 2018, at 22:38, Sean P. DeNigris <[hidden email]> wrote:

Tim Mackinnon wrote
may take another look at SmalltalkCI - the trouble is, I really don’t like
Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html





--

   

Guille Polito

Research Engineer

Centre de Recherche en Informatique, Signal et Automatique de Lille

CRIStAL - UMR 9189

French National Center for Scientific Research - http://www.cnrs.fr


Web: http://guillep.github.io

Phone: +33 06 52 70 66 13

Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Guillermo Polito
Also, are you in Pharo6 or 7?
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk CI on Gitlab

fniephaus
In reply to this post by Tim Mackinnon
Hi Tim,

It should be relatively straightforward to use smalltalkCI on Gitlab CI.
All you have to take care of is to ensure the Linux container has all Pharo dependencies [1] installed correctly. If you append smalltalkCI's `bin` directory to your $PATH, you can simply call `smalltalkci -s Pharo-6.0` in your project's root directory to test against Pharo-6.0.

Hope this helps. And if you work out a simple and generic way of using smalltalkCI on Gitlab, please feel free to open a PR against smalltalkCI and contribute a template :)

Best,
Fabio

[1] https://github.com/travis-ci/travis-build/blob/51ebd738f537a82874b03cb964ecabc042e83aac/lib/travis/build/script/smalltalk.rb#L15-L16

On Tue, May 15, 2018 at 12:40 AM Tim Mackinnon <[hidden email]> wrote:
Hi Sean - thanks for mentioning that - I tried it ages ago and didn’t get on well with it on Travs. But I don’t understand how it works on Gitlab - and the project readme.md seems to assume you understand how its approaching the problem (which possibly has changed over the years).

Looking at your url - how is that running a project that you have in a different repo? Is there some web hook that causes it to then trigger a build cycle? I can see you edited a BaselineOfGitLabCI and added a BabyPhexample - which seems a bit inside out to me - but I’m hanging in there (so do you add other projects in this same file?).

I also don’t understand the pipeline model - there seems to be just one pipeline (and gitlab has great pipeline support)?

And then - when it all builds successfully - how does it deploy (hence my pipeline question).

I’m lost - but curious, as maybe I can save time on what I’m doing (writing more apps vs pissing around with missing infrastructure).

Tim

On 14 May 2018, at 22:38, Sean P. DeNigris <[hidden email]> wrote:

Tim Mackinnon wrote
may take another look at SmalltalkCI - the trouble is, I really don’t like
Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
In reply to this post by Guillermo Polito
Hi - I’ll extract the log files when I’m at my desk
I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
> Configure Load caches...
> Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- tonel:///builds/macta/WillowPagerDuty/src --- tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer.    "look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

> On 15 May 2018, at 06:51, Guillermo Polito <[hidden email]> wrote:
>
> Also, are you in Pharo6 or 7?


Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk CI on Gitlab

Tim Mackinnon
In reply to this post by fniephaus
Thanks Fabio - it sounds like Sean already has figured something out - but I haven’t fully grok’d how it hangs together. From your description, it sounds like you expect SmalltalkCI to be like a submodule of your project - and you can then invoke it from your normal projects build script? However peeking at what Sean pointed at - it seemed like he expected you to intermingle your project with the SmalltalkCI one - so I’m not really clear on how he uses it.

It sounds like all the right pieces are there - just not quite sure what the concept is - particularly given that Gitlab Pipelines already is a CI with the concept of jobs - just not Smalltalk ones.

At its best - how does SmalltalkCI function - I never quite understood the pipeline when checked years ago.

Tim



On 15 May 2018, at 09:09, Fabio Niephaus <[hidden email]> wrote:

Hi Tim,

It should be relatively straightforward to use smalltalkCI on Gitlab CI.
All you have to take care of is to ensure the Linux container has all Pharo dependencies [1] installed correctly. If you append smalltalkCI's `bin` directory to your $PATH, you can simply call `smalltalkci -s Pharo-6.0` in your project's root directory to test against Pharo-6.0.

Hope this helps. And if you work out a simple and generic way of using smalltalkCI on Gitlab, please feel free to open a PR against smalltalkCI and contribute a template :)

Best,
Fabio

[1] https://github.com/travis-ci/travis-build/blob/51ebd738f537a82874b03cb964ecabc042e83aac/lib/travis/build/script/smalltalk.rb#L15-L16

On Tue, May 15, 2018 at 12:40 AM Tim Mackinnon <[hidden email]> wrote:
Hi Sean - thanks for mentioning that - I tried it ages ago and didn’t get on well with it on Travs. But I don’t understand how it works on Gitlab - and the project readme.md seems to assume you understand how its approaching the problem (which possibly has changed over the years).

Looking at your url - how is that running a project that you have in a different repo? Is there some web hook that causes it to then trigger a build cycle? I can see you edited a BaselineOfGitLabCI and added a BabyPhexample - which seems a bit inside out to me - but I’m hanging in there (so do you add other projects in this same file?).

I also don’t understand the pipeline model - there seems to be just one pipeline (and gitlab has great pipeline support)?

And then - when it all builds successfully - how does it deploy (hence my pipeline question).

I’m lost - but curious, as maybe I can save time on what I’m doing (writing more apps vs pissing around with missing infrastructure).

Tim

On 14 May 2018, at 22:38, Sean P. DeNigris <[hidden email]> wrote:

Tim Mackinnon wrote
may take another look at SmalltalkCI - the trouble is, I really don’t like
Travis… I quite like the model of Gitlab’s one stop shop

I use SmalltalkCI on Gitlab
(https://gitlab.com/SeanDeNigris/gitlab-smalltalk-ci)



-----
Cheers,
Sean

Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
In reply to this post by Tim Mackinnon
Hi Guillermo - so here are the actual log files and the .st I’m running with build.sh (its a normal pharo command line execution). Its running on Ubuntu 17.10,  with Pharo 6.1 64 bit.

I got Pharo like this:

VM_STRATEGY="vmI61";
curl http://get.pharo.org/64/$VM_STRATEGY | bash;
curl get.pharo.org/64/61 | bash;

The error at the top of the log is:
LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
15 May 2018 3:01:38.976377 am

And a few lines down you see it has translated the github:// url (in the baseline package) to https but then it seems to fail… although is that https translation correct? I have also tried specifying https repos in the baseline myself (but you can’t easily control the baselines it in turn refers to) but that didn’t work either.

LGitRepository>>clone:options:to:
Receiver: a LGitRepository (<not initialized>)
Arguments and temporary variables: 
cloneOptions: a LGitCloneOptions ()
aFileReference: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
Receiver's instance variables: 
handle: @ 16r00000000
repositoryPath: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
isOpen: nil
workingDirectory: nil



I was successfully doing something like this months ago with PharoLambda - but I suspect if I rerun that pipeline it may also fail like this.

Tim










On 15 May 2018, at 09:36, Tim Mackinnon <[hidden email]> wrote:

Hi - I’ll extract the log files when I’m at my desk
I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
Configure Load caches...
Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer.    "look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

On 15 May 2018, at 06:51, Guillermo Polito <[hidden email]> wrote:

Also, are you in Pharo6 or 7?




PharoDebug.log (51K) Download Attachment
loadProject.st (921 bytes) Download Attachment
LoadProject.log (7K) Download Attachment
build.sh (1K) Download Attachment
BaselineOfPagerDuty.class.st (1K) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

EstebanLM
hi Tim, 

you cannot use vm “I” (for Itimer) with iceberg. This timer will kill the SSH sockets.
you need the “threaded” VM (which is the default, for obvious reasons :P).

cheers,
Esteban

On 15 May 2018, at 12:18, Tim Mackinnon <[hidden email]> wrote:

Hi Guillermo - so here are the actual log files and the .st I’m running with build.sh (its a normal pharo command line execution). Its running on Ubuntu 17.10,  with Pharo 6.1 64 bit.

I got Pharo like this:

VM_STRATEGY="vmI61";
curl http://get.pharo.org/64/$VM_STRATEGY | bash;
curl get.pharo.org/64/61 | bash;

The error at the top of the log is:
LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
15 May 2018 3:01:38.976377 am

And a few lines down you see it has translated the github:// url (in the baseline package) to https but then it seems to fail… although is that https translation correct? I have also tried specifying https repos in the baseline myself (but you can’t easily control the baselines it in turn refers to) but that didn’t work either.

LGitRepository>>clone:options:to:
Receiver: a LGitRepository (<not initialized>)
Arguments and temporary variables: 
cloneOptions: a LGitCloneOptions ()
aFileReference: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
Receiver's instance variables: 
handle: @ 16r00000000
repositoryPath: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
isOpen: nil
workingDirectory: nil



I was successfully doing something like this months ago with PharoLambda - but I suspect if I rerun that pipeline it may also fail like this.

Tim



<PharoDebug.log>
<loadProject.st>
<LoadProject.log>
<build.sh>
<BaselineOfPagerDuty.class.st>


On 15 May 2018, at 09:36, Tim Mackinnon <[hidden email]> wrote:

Hi - I’ll extract the log files when I’m at my desk
I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
Configure Load caches...
Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer.    "look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

On 15 May 2018, at 06:51, Guillermo Polito <[hidden email]> wrote:

Also, are you in Pharo6 or 7?




Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Tim Mackinnon
Ah - well that would be one problem then - I was using that to avoid that warning message you get as I didn’t think I had privileges to do what it said - however it seems it would be better to have a proper docker container to run my CI builds in, and so I can probably solve it that way (the iTimer VM was something I picked up from PharoLambda - as you really can’t control that environment at all - but it doesn’t run Iceberg).

I’ll make that correction and try again.

Thanks,

Tim

On 15 May 2018, at 12:28, Esteban Lorenzano <[hidden email]> wrote:

hi Tim, 

you cannot use vm “I” (for Itimer) with iceberg. This timer will kill the SSH sockets.
you need the “threaded” VM (which is the default, for obvious reasons :P).

cheers,
Esteban

On 15 May 2018, at 12:18, Tim Mackinnon <[hidden email]> wrote:

Hi Guillermo - so here are the actual log files and the .st I’m running with build.sh (its a normal pharo command line execution). Its running on Ubuntu 17.10,  with Pharo 6.1 64 bit.

I got Pharo like this:

VM_STRATEGY="vmI61";
curl http://get.pharo.org/64/$VM_STRATEGY | bash;
curl get.pharo.org/64/61 | bash;

The error at the top of the log is:
LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
15 May 2018 3:01:38.976377 am

And a few lines down you see it has translated the github:// url (in the baseline package) to https but then it seems to fail… although is that https translation correct? I have also tried specifying https repos in the baseline myself (but you can’t easily control the baselines it in turn refers to) but that didn’t work either.

LGitRepository>>clone:options:to:
Receiver: a LGitRepository (<not initialized>)
Arguments and temporary variables: 
cloneOptions: a LGitCloneOptions ()
aFileReference: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
Receiver's instance variables: 
handle: @ 16r00000000
repositoryPath: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
isOpen: nil
workingDirectory: nil



I was successfully doing something like this months ago with PharoLambda - but I suspect if I rerun that pipeline it may also fail like this.

Tim



<PharoDebug.log>
<loadProject.st>
<LoadProject.log>
<build.sh>
<BaselineOfPagerDuty.class.st>


On 15 May 2018, at 09:36, Tim Mackinnon <[hidden email]> wrote:

Hi - I’ll extract the log files when I’m at my desk
I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
Configure Load caches...
Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer.    "look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

On 15 May 2018, at 06:51, Guillermo Polito <[hidden email]> wrote:

Also, are you in Pharo6 or 7?





Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

EstebanLM
you can safely ignore that warning in most cases (in fact, I was thinking on removing it and replace for a small log or even nothing).

cheers,
Esteban

On 15 May 2018, at 14:42, Tim Mackinnon <[hidden email]> wrote:

Ah - well that would be one problem then - I was using that to avoid that warning message you get as I didn’t think I had privileges to do what it said - however it seems it would be better to have a proper docker container to run my CI builds in, and so I can probably solve it that way (the iTimer VM was something I picked up from PharoLambda - as you really can’t control that environment at all - but it doesn’t run Iceberg).

I’ll make that correction and try again.

Thanks,

Tim

On 15 May 2018, at 12:28, Esteban Lorenzano <[hidden email]> wrote:

hi Tim, 

you cannot use vm “I” (for Itimer) with iceberg. This timer will kill the SSH sockets.
you need the “threaded” VM (which is the default, for obvious reasons :P).

cheers,
Esteban

On 15 May 2018, at 12:18, Tim Mackinnon <[hidden email]> wrote:

Hi Guillermo - so here are the actual log files and the .st I’m running with build.sh (its a normal pharo command line execution). Its running on Ubuntu 17.10,  with Pharo 6.1 64 bit.

I got Pharo like this:

VM_STRATEGY="vmI61";
curl http://get.pharo.org/64/$VM_STRATEGY | bash;
curl get.pharo.org/64/61 | bash;

The error at the top of the log is:
LGit_GIT_ERROR: SSL error: error:140E0197:SSL routines:SSL_shutdown:shutdown while in init
15 May 2018 3:01:38.976377 am

And a few lines down you see it has translated the github:// url (in the baseline package) to https but then it seems to fail… although is that https translation correct? I have also tried specifying https repos in the baseline myself (but you can’t easily control the baselines it in turn refers to) but that didn’t work either.

LGitRepository>>clone:options:to:
Receiver: a LGitRepository (<not initialized>)
Arguments and temporary variables: 
cloneOptions: a LGitCloneOptions ()
aFileReference: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
Receiver's instance variables: 
handle: @ 16r00000000
repositoryPath: File @ pharo-local/iceberg/ba-st/Willow-Bootstrap
isOpen: nil
workingDirectory: nil



I was successfully doing something like this months ago with PharoLambda - but I suspect if I rerun that pipeline it may also fail like this.

Tim



<PharoDebug.log>
<loadProject.st>
<LoadProject.log>
<build.sh>
<BaselineOfPagerDuty.class.st>


On 15 May 2018, at 09:36, Tim Mackinnon <[hidden email]> wrote:

Hi - I’ll extract the log files when I’m at my desk
I can possibly make the pipeline public so you can better see it - and it’s a relatively simple app so maybe it can shed some light (although I’m still not ruling out my own stupidity yet).

It’s a Pharo 6.1 64 bit image - download on build, applied to Ubuntu 17.10 (the same happens with 16.04).

Tim

The initial error is:

Starting Load Script...
Configure Load caches...
Loading Projects...

Fetched -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loaded -> BaselineOfPagerDuty-tonel.1 --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src --- <a href="tonel:///builds/macta/WillowPagerDuty/src" class="">tonel:///builds/macta/WillowPagerDuty/src
Loading baseline of BaselineOfPagerDuty...
...RETRY->BaselineOfWillowBootstrap
...RETRY->BaselineOfWillowBootstrap
gofer repository error: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'...ignoring
...FAILED->BaselineOfWillowBootstrap'Errors in script loaded from /builds/macta/WillowPagerDuty/build/loadProject.st'
Could not resolve: BaselineOfWillowBootstrap [BaselineOfWillowBootstrap] in /builds/macta/WillowPagerDuty/build/pharo-local/package-cache https://github.com/github/ba-st/Willow-Bootstrap:v8/source ERROR: 'GoferRepositoryError: Could not access https://github.com/github/ba-st/Willow-Bootstrap:v8/source: ZnHttpUnsuccessful: 404 Not Found'
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer:
[ | references nearestReference cachedReference externalReference mcVersion loadedVersionInfos |
cachedReference := nil.
packageSpec
searchCacheRepositoryForPackage: [ "check to see if mcz file is already in cacheRepository"
cachedReference := self
resolvePackageSpec: packageSpec
cachedGofer: self loaderPolicy cacheGofer.
(cachedReference ~~ nil and: [ packageSpec getFile ~~ nil ])
ifTrue: [ cachedReference name = packageSpec file
ifTrue:
[ "exact match between packageSpec file and cache" ^ self scheduleFetchFor: packageSpec cachedReference: cachedReference ] ] ].
references := self
retryingResolvePackageSpecReferences: packageSpec
gofer: gofer.    "look up mcz file"
nearestReference := references last
asMetacelloCachingResolvedReference.
(cachedReference ~~ nil
and: [ cachedReference name = nearestReference name ])
ifTrue: [ "latest reference in repository matches cachedReference ... "
^ self


Sent from my iPhone

On 15 May 2018, at 06:51, Guillermo Polito <[hidden email]> wrote:

Also, are you in Pharo6 or 7?






Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

CyrilFerlicot
Le 15/05/2018 à 14:45, Esteban Lorenzano a écrit :
> you can safely ignore that warning in most cases (in fact, I was
> thinking on removing it and replace for a small log or even nothing).
>

It would be great!

Most of the time it just makes noise in the CI logs :(

There is a PR to remove this warning in the VM repo
(https://github.com/OpenSmalltalk/opensmalltalk-vm/pull/144)

But there is no review. It dates from July 2017.

> cheers,
> Esteban
>
>


--
Cyril Ferlicot
https://ferlicot.fr


signature.asc (836 bytes) Download Attachment
Reply | Threaded
Open this post in threaded view
|

Re: Is there a tonel:// format for repos?

Sean P. DeNigris
Administrator
In reply to this post by EstebanLM
EstebanLM wrote
> you cannot use vm “I” (for Itimer) with iceberg.

I was guessing VM as well, or 64 bit, because those were the obvious
differences between my setup and yours. The only part I found hard at all on
Gitlab was loading other private projects from Gitlab, which require a bit
of infrastructure with SSH keys and secret variables (let me know if you
ever run into this!).



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
Reply | Threaded
Open this post in threaded view
|

Re: Smalltalk CI on Gitlab

Sean P. DeNigris
Administrator
In reply to this post by Tim Mackinnon
Tim Mackinnon wrote
> But I don’t understand how it works on Gitlab

The gitlab-smalltalk-ci project performs three roles:
1. The glue which connects Gitlab and smalltalkCI. As a bonus, it does all
the necessary in-container work to setup SSH for private Gitlab projects, so
you'd just have to create/enable the deploy key in the Gitlab web UI.
2. A Pharo library to create/modify CI artifacts like configuration files.
This let's you write Smalltalk like this `GitLabCIConfiguration new
smalltalkImageTemplateFor: 'Pharo-6.1'` instead of being forced to remember
and write:
```yaml
.pharo61_template: &pharo61
  variables:
    SMALLTALK_IMAGE: "Pharo-6.1"
```
3. An example to adapt for your own project, since it eats its own dog food
and is handling its own CI.

Also, note that the initial setup is simplified from smalltalkCI because it
uses a Docker image preloaded with all the Pharo dependencies.

1. First, you would create a `.gitlab-ci.yml`. I'm guessing you already know
that it is the equivalent to Travis' `.travis.yml`, which is the main hook
that the CI system picks up to run whatever you tell it to. If you read it,
you will see that it's main job is to install the glue scripts and run the
downloaded scripts/build.sh. The bottom ~half is the workaround for matrix
builds (for Pharo 6 & 7) in GitlabCI, which are not directly supported.
2. Next, create a `.smalltalk.ston`. This is the main config hook for
smalltalkCI. I added some links to the docs in the README.

That's really it I think. All this has been tested extensively with real
projects, but only on Pharo 6/7 and Ubuntu 32 bit. PRs welcome and feel free
to ask more questions!



-----
Cheers,
Sean
--
Sent from: http://forum.world.st/Pharo-Smalltalk-Users-f1310670.html

Cheers,
Sean
12