Loading a Baseline of a Private Project

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

Loading a Baseline of a Private Project

sean.p.denigris
I'm posting this because I ran into this problem a few times and keep
forgetting what's wrong! Hopefully, it will save someone else a headache :)

In MyMainProject's baseline, I have:
   baseline: 'MyPrivateDependentProject' with: [
                spec
                    repository:
'bitbucket://SeanDeNigris/my-private-dependent-project:master/repository' ].

Loading MyMainProject via:
   Metacello new
    repository: 'filetree://', (repoFolder / 'repository') fullName;
    baseline: 'MyMainProject';
    onConflict: [ :ex | ex allow ];
    load.

Produces: 'Error: can''t find EOCD position', because the zip archive has
not been downloaded. As a sanity check, I replaced the bitbucket URL with
one of a public bitbucket project, and the source downloaded successfully.

So, the moral of the story, I think, is that if you want to depend on a
private project, for which you use SSH keys to authenticate, you must use a
filetree URL in your baesline and manage the cloning yourself. This is
probably usually what you want anyway for two projects under development
which you both control, so not a huge deal AFAICT.

HTH!

--
You received this message because you are subscribed to the Google Groups "Metacello" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.
Reply | Threaded
Open this post in threaded view
|

Re: Loading a Baseline of a Private Project

Dale Henrichs-3


On 10/07/2015 06:16 PM, Sean DeNigris wrote:

> I'm posting this because I ran into this problem a few times and keep
> forgetting what's wrong! Hopefully, it will save someone else a
> headache :)
>
> In MyMainProject's baseline, I have:
>    baseline: 'MyPrivateDependentProject' with: [
>                 spec
>                     repository:
> 'bitbucket://SeanDeNigris/my-private-dependent-project:master/repository'
> ].
>
> Loading MyMainProject via:
>    Metacello new
>     repository: 'filetree://', (repoFolder / 'repository') fullName;
>     baseline: 'MyMainProject';
>     onConflict: [ :ex | ex allow ];
>     load.
>
> Produces: 'Error: can''t find EOCD position', because the zip archive has
> not been downloaded. As a sanity check, I replaced the bitbucket URL with
> one of a public bitbucket project, and the source downloaded successfully.
>
> So, the moral of the story, I think, is that if you want to depend on a
> private project, for which you use SSH keys to authenticate, you must
> use a
> filetree URL in your baesline and manage the cloning yourself. This is
> probably usually what you want anyway for two projects under development
> which you both control, so not a huge deal AFAICT.

Hey Sean,

Is this related to the credential issues and the open PR[1]?

FWIW, even the public bitbucket zip downloads seem to fail a bit more
frequently than zip downloads from github ...

I agree with your final conclusion ... if you are directly developing or
simply using a project that is on github or bitbucket, you should be in
the habit of making a local clone for all of the projects you use for
several reasons:

- with local git clones, you can do full system builds without having to
be connected to the internet

- with local git clones, you tightly manage the version of the project
that you are using and can decide to upgrade/update at your discretion
with an explicit pull request

- when you hit the point where you want to contribute to the project,
you can create a topic branch and do you your work without breaking
stride, because you already have a local clone

Dale

[1] https://github.com/dalehenrich/metacello-work/pull/368

--
You received this message because you are subscribed to the Google Groups "Metacello" group.
To unsubscribe from this group and stop receiving emails from it, send an email to [hidden email].
For more options, visit https://groups.google.com/d/optout.