Iceberg and new failure of Metacello github:// URLs
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 'git@github.com: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:
On 19 Apr 2018, at 08:03, Martin McClure <martin@hand2mouse.com> 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: '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 'git@github.com: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) problem is reported here: https://github.com/pharo-vcs/iceberg/issues/643 <https://github.com/pharo-vcs/iceberg/issues/643> 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:
participants (2)
-
Esteban Lorenzano -
Martin McClure