I have a baselineOfGrace that has been working fine for some time:
> baseline: spec
> <baseline>
>
> spec for: #'common' do: [
> spec
> baseline: 'SmaCC'
> with: [ spec repository:
> 'github://apblack/SmaCC:working' ].
> spec
> baseline: 'FileDialog'
> with: [ spec repository:
> 'github://peteruhnak/file-dialog/repository' ].
> spec package: 'Grace-Scope'.
> spec package: 'Grace-Names' with: [ spec requires:
> {'Grace-Parser' . 'Grace-Scope'} ].
> spec package: 'Grace-Parser' with: [
> spec requires: {'SmaCC' . 'Grace-Scope'} ].
> spec package: 'Grace-HValidator' with: [ spec requires:
> {'SmaCC' } ].
> spec package: 'Grace-IDE' with: [
> spec requires: {'FileDialog' . 'Grace-Compiler'} ].
> spec package: 'Grace-Compiler' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names'} ].
> spec package: 'Grace-Tests' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-HValidator'} ].
> spec package: 'Grace-Types' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-Scope'} ].
> spec package: 'Grace-TypeTests' with: [
> spec requires: {'Grace-Tests' . 'Grace-Types' } ].
> spec package: 'Grace-Ast' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-Scope' . 'Grace-Types'} ].
> spec package: 'Grace-AstTests' with: [
> spec requires: {'Grace-Tests' . 'Grace-Ast'} ].
> ]
Now I have added a dependency from the package ‘Grace-Parser’ on the package
'SmaCC-Reification’. The latter exists only within the branch SmaCC called
‘fglr’. So I have changed my
baseline to the following:
> baseline: spec
> <baseline>
>
> spec for: #'common' do: [
> spec
> baseline: 'SmaCC'
> with: [ spec repository: 'github://apblack/SmaCC:fglr'
> ].
> spec
> baseline: 'FileDialog'
> with: [ spec repository:
> 'github://peteruhnak/file-dialog/repository' ].
> spec package: 'Grace-Scope'.
> spec package: 'Grace-Names' with: [ spec requires:
> {'Grace-Parser' . 'Grace-Scope'} ].
> spec package: 'Grace-Parser' with: [
> spec requires: {'SmaCC' . 'SmaCC-Reification'.
> 'Grace-Scope'} ].
> spec package: 'Grace-HValidator' with: [ spec requires:
> {'SmaCC' } ].
> spec package: 'Grace-IDE' with: [
> spec requires: {'FileDialog' . 'Grace-Compiler'} ].
> spec package: 'Grace-Compiler' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names'} ].
> spec package: 'Grace-Tests' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-HValidator'} ].
> spec package: 'Grace-Types' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-Scope'} ].
> spec package: 'Grace-TypeTests' with: [
> spec requires: {'Grace-Tests' . 'Grace-Types' } ].
> spec package: 'Grace-Ast' with: [
> spec requires: {'Grace-Parser' . 'Grace-Names' .
> 'Grace-Scope' . 'Grace-Types'} ].
> spec package: 'Grace-AstTests' with: [
> spec requires: {'Grace-Tests' . 'Grace-Ast'} ].
> spec package: 'SmaCC-Reification'.
> ]
Notice that I have changed the branch of SmaCC, added the dependency to
‘Grace-Parser’, and added a spec package" statement for ‘SmaCC-Reification’
This does not work. I get a MetacelloPackageSpecResolutionError:
> 'Could not resolve: SmaCC-Reification [SmaCC-Reification] in
> /Users/black/Development/Pharo/images/Pharo 7.0 SmallGrace
> 0.34/pharo-local/package-cache
> https://github.com/apblack/GraceInPharo.git[master]'
> <https://github.com/apblack/GraceInPharo.git%5Bmaster%5D'>
This is not surprising, because there is nothing in that package-cache. I
have configured iceberg to use a shared directory (~/iceberg), and SmaCC has
been cloned there — including the 'SmaCC-Reification’ package
> Sylvanite: ~/iceberg/apblack/SmaCC$ ls -d *Reif*
> SmaCC-Reification.package
> Sylvanite: ~/iceberg/apblack/SmaCC$
What is going wrong, and how can I get this configured to work correctly?
Thanks to all!
Andrew