Dale taught me something helpful (and maybe a little obscure) while fixing ConfigurationOfXtreams... Problem: Say you have a platform attribute #pharo4.x, and a #customProjectAttribute #FileSystem. The problem is that the FileSystem-related packages required for #pharo4.x are different than those for the default cases. spec for: #'pharo4.x' do: [ spec package: 'Xtreams-TerminalsFileSystem' with: 'Xtreams-TerminalsFileSystem.pharo40-SeanDeNigris.4' ]. ... spec for: #FileSystem do: [ spec package: 'Xtreams-TerminalsFileSystem' with: 'Xtreams-TerminalsFileSystem-nice.1'. ] Solution: Nest a "spec for: #FileSystem do:" inside the "spec for: #pharo4.x do:" declaring the #pharo4.x-specifics spec for: #'pharo4.x' do: [ spec for: #'FileSystem' do: [ spec package: 'Xtreams-TerminalsFileSystem' with: 'Xtreams-TerminalsFileSystem.pharo40-SeanDeNigris.4' ]. Why it works: Per Dale, "The spec:for:do: blocks are evaluated in attribute order (ConfigurationOfX project attributes) with top-level blocks evaluated before nested blocks ... second level blocks are evaluated in top-level block order after the first level block evaluation ... so having #FileSystem nested inside of #pharo4.x and given that #FileSystem follows #pharo4.x in attribute order means that the nested #FileSystem block inside of #pharo4.x is evaluated after to top-level #FileSystem block allowing you to do #pharo4.x specific overrides" ----- Cheers, Sean -- View this message in context: http://forum.world.st/Metacello-Resolving-Conflicting-Attributes-tp4817683.h... Sent from the Pharo Smalltalk Developers mailing list archive at Nabble.com.