Hi Esteban, Thanks for the reply, I will test all this as soon as I can and report back.
However, in your final script, are you sure the host (or port) can be specified (so no defaulting to GitHub.com). Also, I was reading the implementation (hard), and it seemed as if the only real solution would be to make a new type (scheme), for this case, like githttps://user1:[email protected]/scm/bla/foo-pharo.git which would then preserve the username/password/host/port and do the proper thing directly. IIUC, https git URLs are described as the most common ones. It might be that there is then still a problem with branches/tags, but maybe they are not needed. Sven > On 29 Oct 2019, at 11:07, Esteban Lorenzano <[email protected]> wrote: > > Hi Sven, > > You are facing two different problems at the same time :) > 1) a problem with Metacello api. There is a mismatch between git and > metacello because the apis are not equivalent (specially having iceberg in > the middle). > If you want to use HTTPS in metacello you have to explicit you want to use > HTTPS, but you still has to use the GitHub:// identifier. > > If you execute first: > > ./pharo build.image eval --save "Iceberg remoteTypeSelector: #httpsUrl” > > Then your execution: > > ./pharo build.image metacello install github://svenvc/ztimestamp > BaselineOfZTimestamp > > Will work without warnings. > > Now, you have another problem: > 2) You cannot use an url as this with iceberg/metacello: > https://deploy:secret@.../scm/xyz/xyz-pharo.git > And yes, we could do a parse of it and use it (also solving your metacello > command problem), but this is not easily doable and it would take time. > The usual way of doing this is not using HTTPS but distributing > public/private keys (then you use the regular SSH protocol). > But if you still want/need to use HTTPS, then you need to provide your > plaintext credentials. > For iceberg, your credentials are stored in your preferences directory, at > credentials.fuel (so you could add them to your CI server, if you have them). > To add them programatically you need to do something like this: > > ./pharo build.image eval --save "IceCredentialStore current > storeCredential: (IcePlaintextCredentials new > username: 'esteban'; > password: 'secret'; > yourself) > forHostname: ‘github.com’" > > Then you full script will be like this: > > ./pharo build.image eval --save “ > Iceberg remoteTypeSelector: #httpsUrl”. > IceCredentialStore current > storeCredential: (IcePlaintextCredentials new > username: 'esteban'; > password: 'secret'; > yourself) > forHostname: 'github.com' > “ > ./pharo build.image metacello install github://svenvc/ztimestamp > BaselineOfZTimestamp > > I hope this solves your problem :) > > Esteban > > On Mon, Oct 28, 2019 at 11:58 AM Sven Van Caekenberghe <[email protected]> wrote: > I am still at a loss with this issue. > > When loading from github://svenvc/ztimestamp using Metacello (see original > mail) the code in > MCGitBasedNetworkRepository>>#createIcebergRepositoryWithFallbackFor:url: > clearly switches to using https://github.com/svenvc/ztimestamp.git - I traced > it. > > So obviously, Pharo 7 is capable of accessing it. > > However, starting directly with https://github.com/svenvc/ztimestamp.git I > end up in a totally different place. Why ? > > This code is so complex... > > > On 25 Oct 2019, at 14:49, Sven Van Caekenberghe <[email protected]> wrote: > > > > Hi, > > > > I asked this before, but I still have trouble with this. > > > > What I ultimately want is what I used for years now: use the zero config > > tools to point to my private repo and install my code and all its > > dependencies from a single Metacello config. > > > > Basically, > > > > $vm $image config _CONFIG_REPO_ _CONFIG_NAME_ --username=_CONFIG_USER_ > > --password=_CONFIG_PASS_ --install=_CONFIG_VERSION_ --group=_CONFIG_GROUP_ > > > > towards a private server. > > > > In the new world of git(hub)/tonel/iceberg I am trying the following (not > > using the 'config' but the new 'metacello' command line handler): > > > > $ uname -a > > Linux audio359 4.15.0-39-generic #42-Ubuntu SMP Tue Oct 23 15:48:01 UTC > > 2018 x86_64 x86_64 x86_64 GNU/Linux > > > > $ curl get.pharo.org/64/70+vm | bash > > % Total % Received % Xferd Average Speed Time Time Time > > Current > > Dload Upload Total Spent Left Speed > > 100 3054 100 3054 0 0 57622 0 --:--:-- --:--:-- --:--:-- > > 57622 > > Downloading the latest 70 Image: > > http://files.pharo.org/get-files/70/pharo64.zip > > Pharo.image > > Downloading the latest pharoVM: > > http://files.pharo.org/get-files/70/pharo64-linux-stable.zip > > pharo-vm/pharo > > Creating starter scripts pharo and pharo-ui > > > > $ ./pharo Pharo.image printVersion > > [version] 'Pharo7.0.4' > > 'Pharo-7.0.4+build.168.sha.ccd1f6489120f58ddeacb2cac77cd3a0f0dcfbe6 (64 > > Bit)' > > > > $ ./pharo Pharo.image save build > > > > $ ./pharo build.image metacello install github://svenvc/ztimestamp > > BaselineOfZTimestamp > > > > 3. using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I > > will try to clone the HTTPS variant. > > Fetched -> BaselineOfZTimestamp-CompatibleUserName.1554735117 --- > > https://github.com/svenvc/ztimestamp.git[master] --- > > https://github.com/svenvc/ztimestamp.git[master] > > Loaded -> BaselineOfZTimestamp-CompatibleUserName.1554735117 --- > > https://github.com/svenvc/ztimestamp.git[master] --- > > https://github.com/svenvc/ztimestamp.git[master] > > Loading baseline of BaselineOfZTimestamp... > > Fetched -> ZTimestamp-CompatibleUserName.1554735117 --- > > https://github.com/svenvc/ztimestamp.git[master] --- > > https://github.com/svenvc/ztimestamp.git[master] > > Loaded -> ZTimestamp-CompatibleUserName.1554735117 --- > > https://github.com/svenvc/ztimestamp.git[master] --- cache > > ...finished baseline > > > > $ ./pharo build.image eval ZTimestamp now > > 2019-10-25T12:28:34Z > > > > So although it gave a warning, it worked fine. > > > > The warning said, > > > > using HTTPS instead SSH (Just use an url in the form HTTPS://etc.git). I > > will try to clone the HTTPS variant. > > > > so let's try that after cleaning everything: > > > > $ rm -rf pharo-local/ build.* > > > > $ ./pharo Pharo.image save build > > > > $ ./pharo build.image metacello install > > https://github.com/svenvc/ztimestamp.git BaselineOfZTimestamp > > > > ...RETRY->BaselineOfZTimestamp > > ...RETRY->BaselineOfZTimestamp > > ...FAILED->BaselineOfZTimestampCould not resolve: BaselineOfZTimestamp > > [BaselineOfZTimestamp] in /home/sven/pharo7/pharo-local/package-cache > > https://github.com/svenvc/ztimestamp.git > > MetacelloFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>retryingResolvePackageSpecReferences:gofer: > > > > WTF ? Why does this not work (I can perfectly git clone that URL) ? > > > > Of course, this would just be the first step, eventually I want to use my > > own private server with a URL like > > > > https://deploy:[email protected]/scm/xyz/xyz-pharo.git > > > > How do you build/deploy non-public production code using the command line ? > > > > Help would be much appreciated. > > > > Sven > > > >
