| I do not understand what is loads:
| in add: 'Anncounement' project: 'misc' version '0.233' load
| { 'Gemestone-Release}
|
| Is it require?
You've transcribed the example incorrectly, so here is the actual line:
add: 'Announcements'
project: 'Misc Project'
version: '0.233'
loads: { 'Announcements'. };
As you know, I have sometimes struggled with names, so this is obviously another case.
The project reference statment should be interpreted as the following:
"The name 'Announcements' is an alias for loading the package named
'Announcements' from version '0.233' of the required project named
'Misc Project'."
The required project 'Misc Project' is specified as follows:
^self projectSpec
name: 'Misc Project';
className: 'GsMiscMetacelloProject';
operator: #>=;
projectPackage:
(self packageSpec
name: 'GsMisc-MetacelloProject';
repositoryName: 'http://seaside.gemstone.com/ss/GLASSproject';
yourself);
yourself
and you find that the Metacello project class is GsMiscMetacelloProject. So the above project reference is equivalent to executing the following expression:
(GsMiscMetacelloProject version: '0.233') load: { 'Announcements'. }
So I used #loads: in the selector. The project reference is more of a load declaration than a requires: declaration. The name arguments in #requires: are looked up in the context of the current project, whereas the name arguments in a #loads: are looked up in the context of the referenced project. In fact a project reference can have a #requires: component:
add: 'Announcements'
project: 'Misc Project'
version: '0.233'
loads: { 'Announcements'. }
requires: { 'Core'. };
Dale