Iceberg and new failure of Metacello github:// URLs

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

Iceberg and new failure of Metacello github:// URLs

Martin McClure-2
I have a project that depends on OSSubprocess. In the Pharo 7 of a week
ago I could load this by putting in my baseline:

project: 'OSSubprocess'
                    with: [ spec
                        className: #ConfigurationOfOSSubprocess;
                        versionString: #stable;
                        repository:
'github://marianopeck/OSSubprocess:master/repository]


but today in build 781 32-bit (my first time trying the new Iceberg GUI)
this no longer works. It fails with

LGit_GIT_ERROR: error authenticating: no auth sock variable

It appears to be attempting to clone
'[hidden email]:marianopeck/OSSubprocess.git' which looks like it
*would* be right if it were *my* Github project. But it's not, so it
would want an SSH key to be able to clone that, I guess?

Normally, if doing a manual clone of this repo, I'd use
'https://github.com/marianopeck/OSSubprocess.git'.

Is this a bug? Or is my usage incorrect? What's the approved way of
doing this?

Thanks,

-Martin


Stack of error in case it helps someone:



LGitReturnCodeEnum>>handleLGitReturnCode
LGitRepository(LGitExternalObject)>>withReturnHandlerDo:
LGitRepository>>clone:options:to:
LGitRepository>>clone:options:
IceGitScpRemote(IceGitRemote)>>cloneIn:subdirectory:
IceRepositoryCreator>>cloneRepository
[ self validate.
self isCloning
    ifTrue: [ self cloneRepository ]
    ifFalse: [ self addLocalRepository ] ] in
IceRepositoryCreator>>createRepository in Block: [ self validate....
BlockClosure>>on:do:
IceRepositoryCreator>>createRepository
[ repository := builder createRepository ] in
MCGitHubRepository(MCGitBasedNetworkRepository)>>createIcebergRepositoryFor:
in Block: [ repository := builder createRepository ]
BlockClosure>>on:do:
MCGitHubRepository(MCGitBasedNetworkRepository)>>createIcebergRepositoryFor:
[ self createIcebergRepositoryFor: remoteUrl ] in
MCGitHubRepository(MCGitBasedNetworkRepository)>>getOrCreateIcebergRepository
in Block: [ self createIcebergRepositoryFor: remoteUrl ]
OrderedCollection(Collection)>>detect:ifFound:ifNone:
OrderedCollection(Collection)>>detect:ifNone:
MCGitHubRepository(MCGitBasedNetworkRepository)>>getOrCreateIcebergRepository
IceGithubRepositoryType>>mcRepository
Iceberg class>>mcRepositoryFor:
IceMetacelloPharoPlatform>>createRepository:
MetacelloMCBaselineProject(MetacelloMCProject)>>createRepository:
MetacelloRepositorySpec>>createRepository
[ aSpec createRepository ] in [ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
    detect: [ :rep | rep description = description ]
    ifNone: [ aSpec createRepository ]) ~~ nil
    ifTrue: [ repos add: repo ] ] in
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
in Block: [ aSpec createRepository ]
Array(Collection)>>detect:ifFound:ifNone:
Array(Collection)>>detect:ifNone:
[ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
    detect: [ :rep | rep description = description ]
    ifNone: [ aSpec createRepository ]) ~~ nil
    ifTrue: [ repos add: repo ] ] in
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
in Block: [ :aSpec | ...
Array(SequenceableCollection)>>do:
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>ensureLoadUsing:


Reply | Threaded
Open this post in threaded view
|

Re: Iceberg and new failure of Metacello github:// URLs

EstebanLM


On 19 Apr 2018, at 08:03, Martin McClure <[hidden email]> wrote:

I have a project that depends on OSSubprocess. In the Pharo 7 of a week
ago I could load this by putting in my baseline:

project: 'OSSubprocess'
                    with: [ spec
                        className: #ConfigurationOfOSSubprocess;
                        versionString: #stable;
                        repository:
'<a href="github://marianopeck/OSSubprocess:master/repository" class="">github://marianopeck/OSSubprocess:master/repository]


but today in build 781 32-bit (my first time trying the new Iceberg GUI)
this no longer works. It fails with

LGit_GIT_ERROR: error authenticating: no auth sock variable

It appears to be attempting to clone
'[hidden email]:marianopeck/OSSubprocess.git' which looks like it
*would* be right if it were *my* Github project. But it's not, so it
would want an SSH key to be able to clone that, I guess?

Normally, if doing a manual clone of this repo, I'd use
'https://github.com/marianopeck/OSSubprocess.git'.

Is this a bug? Or is my usage incorrect? What's the approved way of
doing this?

yes, metacello should have fallbacked to use HTTPS after failing with SSH (this was working on old version and seems to be lost in current one)

cheers, 
Esteban


Thanks,

-Martin


Stack of error in case it helps someone:



LGitReturnCodeEnum>>handleLGitReturnCode
LGitRepository(LGitExternalObject)>>withReturnHandlerDo:
LGitRepository>>clone:options:to:
LGitRepository>>clone:options:
IceGitScpRemote(IceGitRemote)>>cloneIn:subdirectory:
IceRepositoryCreator>>cloneRepository
[ self validate.
self isCloning
    ifTrue: [ self cloneRepository ]
    ifFalse: [ self addLocalRepository ] ] in
IceRepositoryCreator>>createRepository in Block: [ self validate....
BlockClosure>>on:do:
IceRepositoryCreator>>createRepository
[ repository := builder createRepository ] in
MCGitHubRepository(MCGitBasedNetworkRepository)>>createIcebergRepositoryFor:
in Block: [ repository := builder createRepository ]
BlockClosure>>on:do:
MCGitHubRepository(MCGitBasedNetworkRepository)>>createIcebergRepositoryFor:
[ self createIcebergRepositoryFor: remoteUrl ] in
MCGitHubRepository(MCGitBasedNetworkRepository)>>getOrCreateIcebergRepository
in Block: [ self createIcebergRepositoryFor: remoteUrl ]
OrderedCollection(Collection)>>detect:ifFound:ifNone:
OrderedCollection(Collection)>>detect:ifNone:
MCGitHubRepository(MCGitBasedNetworkRepository)>>getOrCreateIcebergRepository
IceGithubRepositoryType>>mcRepository
Iceberg class>>mcRepositoryFor:
IceMetacelloPharoPlatform>>createRepository:
MetacelloMCBaselineProject(MetacelloMCProject)>>createRepository:
MetacelloRepositorySpec>>createRepository
[ aSpec createRepository ] in [ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
    detect: [ :rep | rep description = description ]
    ifNone: [ aSpec createRepository ]) ~~ nil
    ifTrue: [ repos add: repo ] ] in
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
in Block: [ aSpec createRepository ]
Array(Collection)>>detect:ifFound:ifNone:
Array(Collection)>>detect:ifNone:
[ :aSpec |
| description repo |
description := aSpec description.
(repo := repositories
    detect: [ :rep | rep description = description ]
    ifNone: [ aSpec createRepository ]) ~~ nil
    ifTrue: [ repos add: repo ] ] in
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
in Block: [ :aSpec | ...
Array(SequenceableCollection)>>do:
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:ignoreOverrides:
MetacelloEnsureFetchingMCSpecLoader(MetacelloCommonMCSpecLoader)>>repositoriesFrom:
MetacelloPackageSpec>>explicitLoadUsing:
MetacelloPackageSpec>>ensureLoadUsing: