krfkeith / metacello

Automatically exported from code.google.com/p/metacello
0 stars 0 forks source link

empty package spec wipes required specification #144

Closed GoogleCodeExporter closed 9 years ago

GoogleCodeExporter commented 9 years ago
In working through the issues related to 
http://code.google.com/p/pharo/issues/detail?id=4337, I discovered that in the 
spec for OmniBrowser 1.2.4-baseline the spec in #squeakCommon for OB-Shout was:

  spec for: #squeakCommon do: [
...

    spec 
      package: 'OB-Shout' with: [ 
        spec requires: #('OB-Standard' 'OB-Morphic'). ];
...
  ].

And then in the #pharo section there was an empty spec for 'OB-Shout' as 
follows:

  spec for: #pharo do: [
...

    spec 
      package: 'OB-Shout';
...
  ].

The effect in Metacello 1.0-beta.28.3.3 was to cause the earlier required spec 
to be dropped ...

Now technically I think that this is the 'expected behavior' but this case 
demonstrates that 'expected behavior' isn't the same as 'correct behavior' ...

This change was introduced in 
ConfigurationOfOmniBrowser-MarianoMartinezPeck.118 (on the 15th of April), so 
it is a bit surprising that it took until recently to have the problem exposed 
... or perhaps folks have been fighting this problem for awhile?

I'm not ready to change the behavior of Metacello at this point in time , but I 
am going to take a close look.

Original issue reported on code.google.com by henrichs...@gmail.com on 7 Jun 2011 at 6:15

GoogleCodeExporter commented 9 years ago
ConfigurationOfOmniBrowser-dkh.143 is the version that should be used to 
reproduce this problem in conjunction with Build #339 (Jun 7, 2011 8:06:25 AM) 
and ConfigurationOfPharo-dkh.177

Original comment by henrichs...@gmail.com on 7 Jun 2011 at 6:17

GoogleCodeExporter commented 9 years ago

Original comment by henrichs...@gmail.com on 18 Jan 2012 at 6:29

GoogleCodeExporter commented 9 years ago
After further review, this is the correct behavior ... it is important that a 
developer be allowed to override the complete specification allowing one to 
work from scratch. 

  spec package: 'OB-Shout'.

Overrides any previously spec'ed information. To preserve previous information, 
one can do the following:

 spec package: 'OB-Shout' with: [].

which does a merge ... of course, normally when you are trying to override 
something you are adding something new to the spec, but the above will work if 
you are trying to strip the spec to it's bare minimum ...

So, this should be classed as 'pilot error' ... 

Original comment by henrichs...@gmail.com on 25 Jan 2012 at 1:05