Hi,
ConfigurationOfFuelMooseExtensions has the following baseline and version definitions and I am not sure whether they are correct. The problem is that the baseline defines a package only in a group, and then the version defines the version for it. Loading seems to load just fine. If I simply load the version, it loads the two packages defined in the Core group as expected. However, my problem is that when I query version 1.1 for packages, it retrieves the extra FuelMooseExtensionBenchmarks package. Could someone look into this? baseline11: spec <version: '1.1-baseline'> spec for: #common do: [ spec blessing: #baseline. spec repository: 'http://www.squeaksource.com/Fuel'. spec package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. spec group: 'default' with: #('Core'); group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' 'FuelMooseExtensionBenchmarks'). spec project: 'Fuel' with: [ spec className: 'ConfigurationOfFuel'; loads: #('CoreWithProgressBar' ); file: 'ConfigurationOfFuel'; repository: 'http://www.squeaksource.com/Fuel' ] ]. version11: spec <version: '1.1' imports: #('1.1-baseline') > spec for: #common do: [ spec blessing: #release. spec project: 'Fuel' with: '1.1'; package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; package: 'FuelMooseExtensionBenchmarks' with: 'FuelMooseExtensionBenchmarks-MartinDias.2']. Cheers, Doru |
Doru,
When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. But when you "query version 1.1 for packages" you'd like only the loaded packages? Is that the issue? Dale On 04/29/2011 11:17 AM, Tudor Girba wrote: > Hi, > > ConfigurationOfFuelMooseExtensions has the following baseline and > version definitions and I am not sure whether they are correct. The > problem is that the baseline defines a package only in a group, and then > the version defines the version for it. > > Loading seems to load just fine. If I simply load the version, it loads > the two packages defined in the Core group as expected. However, my > problem is that when I query version 1.1 for packages, it retrieves the > extra *FuelMooseExtensionBenchmarks *package. > > Could someone look into this? > > > baseline11: spec > <version: '1.1-baseline'> > > spec for: #common do: [ > spec blessing: #baseline. > spec repository: 'http://www.squeaksource.com/Fuel'. > spec > package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; > package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. > spec > group: 'default' with: #('Core'); > group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); > group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); > *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' > 'FuelMooseExtensionBenchmarks'*). > spec > project: 'Fuel' with: [ > spec > className: 'ConfigurationOfFuel'; > loads: #('CoreWithProgressBar' ); > file: 'ConfigurationOfFuel'; > repository: 'http://www.squeaksource.com/Fuel' ] ]. > > version11: spec > <version: '1.1' imports: #('1.1-baseline') > > > spec for: #common do: [ > spec blessing: #release. > spec > project: 'Fuel' with: '1.1'; > package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; > package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; > *package: 'FuelMooseExtensionBenchmarks' with: > 'FuelMooseExtensionBenchmarks-MartinDias.2'].* > > > Cheers, > Doru > > > -- > www.tudorgirba.com <http://www.tudorgirba.com> > > "Some battles are better lost than fought." > > > |
THanks Tudor. We are working on it. We will let you know.
Cheers Mariano On Fri, Apr 29, 2011 at 8:38 PM, Dale Henrichs <[hidden email]> wrote: Doru, -- Mariano http://marianopeck.wordpress.com |
In reply to this post by Dale Henrichs
Hi,
Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. Cheers, Doru On 29 Apr 2011, at 20:38, Dale Henrichs wrote: > Doru, > > When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. > > But when you "query version 1.1 for packages" you'd like only the loaded packages? > > Is that the issue? > > Dale > On 04/29/2011 11:17 AM, Tudor Girba wrote: >> Hi, >> >> ConfigurationOfFuelMooseExtensions has the following baseline and >> version definitions and I am not sure whether they are correct. The >> problem is that the baseline defines a package only in a group, and then >> the version defines the version for it. >> >> Loading seems to load just fine. If I simply load the version, it loads >> the two packages defined in the Core group as expected. However, my >> problem is that when I query version 1.1 for packages, it retrieves the >> extra *FuelMooseExtensionBenchmarks *package. >> >> Could someone look into this? >> >> >> baseline11: spec >> <version: '1.1-baseline'> >> >> spec for: #common do: [ >> spec blessing: #baseline. >> spec repository: 'http://www.squeaksource.com/Fuel'. >> spec >> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >> spec >> group: 'default' with: #('Core'); >> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >> 'FuelMooseExtensionBenchmarks'*). >> spec >> project: 'Fuel' with: [ >> spec >> className: 'ConfigurationOfFuel'; >> loads: #('CoreWithProgressBar' ); >> file: 'ConfigurationOfFuel'; >> repository: 'http://www.squeaksource.com/Fuel' ] ]. >> >> version11: spec >> <version: '1.1' imports: #('1.1-baseline') > >> >> spec for: #common do: [ >> spec blessing: #release. >> spec >> project: 'Fuel' with: '1.1'; >> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >> *package: 'FuelMooseExtensionBenchmarks' with: >> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >> >> >> Cheers, >> Doru >> >> >> -- >> www.tudorgirba.com <http://www.tudorgirba.com> >> >> "Some battles are better lost than fought." >> >> >> > -- www.tudorgirba.com "In a world where everything is moving ever faster, one might have better chances to win by moving slower." |
Doru,
Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? Some sample code and expected values might help? Dale On 04/29/2011 11:44 AM, Tudor Girba wrote: > Hi, > > Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. > > Cheers, > Doru > > > On 29 Apr 2011, at 20:38, Dale Henrichs wrote: > >> Doru, >> >> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >> >> But when you "query version 1.1 for packages" you'd like only the loaded packages? >> >> Is that the issue? >> >> Dale >> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>> Hi, >>> >>> ConfigurationOfFuelMooseExtensions has the following baseline and >>> version definitions and I am not sure whether they are correct. The >>> problem is that the baseline defines a package only in a group, and then >>> the version defines the version for it. >>> >>> Loading seems to load just fine. If I simply load the version, it loads >>> the two packages defined in the Core group as expected. However, my >>> problem is that when I query version 1.1 for packages, it retrieves the >>> extra *FuelMooseExtensionBenchmarks *package. >>> >>> Could someone look into this? >>> >>> >>> baseline11: spec >>> <version: '1.1-baseline'> >>> >>> spec for: #common do: [ >>> spec blessing: #baseline. >>> spec repository: 'http://www.squeaksource.com/Fuel'. >>> spec >>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>> spec >>> group: 'default' with: #('Core'); >>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>> 'FuelMooseExtensionBenchmarks'*). >>> spec >>> project: 'Fuel' with: [ >>> spec >>> className: 'ConfigurationOfFuel'; >>> loads: #('CoreWithProgressBar' ); >>> file: 'ConfigurationOfFuel'; >>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>> >>> version11: spec >>> <version: '1.1' imports: #('1.1-baseline')> >>> >>> spec for: #common do: [ >>> spec blessing: #release. >>> spec >>> project: 'Fuel' with: '1.1'; >>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>> *package: 'FuelMooseExtensionBenchmarks' with: >>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>> >>> >>> Cheers, >>> Doru >>> >>> >>> -- >>> www.tudorgirba.com<http://www.tudorgirba.com> >>> >>> "Some battles are better lost than fought." >>> >>> >>> >> > > -- > www.tudorgirba.com > > "In a world where everything is moving ever faster, > one might have better chances to win by moving slower." > > > |
Hi,
Sorry for not being clear. I am doing this: ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] ==> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. Cheers, Doru On 29 Apr 2011, at 20:45, Dale Henrichs wrote: > Doru, > > Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? > > Some sample code and expected values might help? > > Dale > > On 04/29/2011 11:44 AM, Tudor Girba wrote: >> Hi, >> >> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >> >> Cheers, >> Doru >> >> >> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >> >>> Doru, >>> >>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>> >>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>> >>> Is that the issue? >>> >>> Dale >>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>> Hi, >>>> >>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>> version definitions and I am not sure whether they are correct. The >>>> problem is that the baseline defines a package only in a group, and then >>>> the version defines the version for it. >>>> >>>> Loading seems to load just fine. If I simply load the version, it loads >>>> the two packages defined in the Core group as expected. However, my >>>> problem is that when I query version 1.1 for packages, it retrieves the >>>> extra *FuelMooseExtensionBenchmarks *package. >>>> >>>> Could someone look into this? >>>> >>>> >>>> baseline11: spec >>>> <version: '1.1-baseline'> >>>> >>>> spec for: #common do: [ >>>> spec blessing: #baseline. >>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>> spec >>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>> spec >>>> group: 'default' with: #('Core'); >>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>> 'FuelMooseExtensionBenchmarks'*). >>>> spec >>>> project: 'Fuel' with: [ >>>> spec >>>> className: 'ConfigurationOfFuel'; >>>> loads: #('CoreWithProgressBar' ); >>>> file: 'ConfigurationOfFuel'; >>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>> >>>> version11: spec >>>> <version: '1.1' imports: #('1.1-baseline')> >>>> >>>> spec for: #common do: [ >>>> spec blessing: #release. >>>> spec >>>> project: 'Fuel' with: '1.1'; >>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>> >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>> -- >>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>> >>>> "Some battles are better lost than fought." >>>> >>>> >>>> >>> >> >> -- >> www.tudorgirba.com >> >> "In a world where everything is moving ever faster, >> one might have better chances to win by moving slower." >> >> >> > -- www.tudorgirba.com "Being happy is a matter of choice." |
Okay,
What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... Dale On 04/29/2011 12:02 PM, Tudor Girba wrote: > Hi, > > Sorry for not being clear. > > I am doing this: > ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] > ==> > an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') > > I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. > > Cheers, > Doru > > > > On 29 Apr 2011, at 20:45, Dale Henrichs wrote: > >> Doru, >> >> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >> >> Some sample code and expected values might help? >> >> Dale >> >> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>> Hi, >>> >>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>> >>> Cheers, >>> Doru >>> >>> >>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>> >>>> Doru, >>>> >>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>> >>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>> >>>> Is that the issue? >>>> >>>> Dale >>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>> Hi, >>>>> >>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>> version definitions and I am not sure whether they are correct. The >>>>> problem is that the baseline defines a package only in a group, and then >>>>> the version defines the version for it. >>>>> >>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>> the two packages defined in the Core group as expected. However, my >>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>> >>>>> Could someone look into this? >>>>> >>>>> >>>>> baseline11: spec >>>>> <version: '1.1-baseline'> >>>>> >>>>> spec for: #common do: [ >>>>> spec blessing: #baseline. >>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>> spec >>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>> spec >>>>> group: 'default' with: #('Core'); >>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>> 'FuelMooseExtensionBenchmarks'*). >>>>> spec >>>>> project: 'Fuel' with: [ >>>>> spec >>>>> className: 'ConfigurationOfFuel'; >>>>> loads: #('CoreWithProgressBar' ); >>>>> file: 'ConfigurationOfFuel'; >>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>> >>>>> version11: spec >>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>> >>>>> spec for: #common do: [ >>>>> spec blessing: #release. >>>>> spec >>>>> project: 'Fuel' with: '1.1'; >>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>> >>>>> >>>>> Cheers, >>>>> Doru >>>>> >>>>> >>>>> -- >>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>> >>>>> "Some battles are better lost than fought." >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> www.tudorgirba.com >>> >>> "In a world where everything is moving ever faster, >>> one might have better chances to win by moving slower." >>> >>> >>> >> > > -- > www.tudorgirba.com > > "Being happy is a matter of choice." > > > |
Hi Dale,
On 29 Apr 2011, at 21:47, Dale Henrichs wrote: > Okay, > > What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? > > You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... > > Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: - I load the code with a configuration - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them Cheers, Doru > Dale > > On 04/29/2011 12:02 PM, Tudor Girba wrote: >> Hi, >> >> Sorry for not being clear. >> >> I am doing this: >> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >> ==> >> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >> >> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >> >> Cheers, >> Doru >> >> >> >> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >> >>> Doru, >>> >>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>> >>> Some sample code and expected values might help? >>> >>> Dale >>> >>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>> Hi, >>>> >>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>> >>>>> Doru, >>>>> >>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>> >>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>> >>>>> Is that the issue? >>>>> >>>>> Dale >>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>> Hi, >>>>>> >>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>> version definitions and I am not sure whether they are correct. The >>>>>> problem is that the baseline defines a package only in a group, and then >>>>>> the version defines the version for it. >>>>>> >>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>> the two packages defined in the Core group as expected. However, my >>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>> >>>>>> Could someone look into this? >>>>>> >>>>>> >>>>>> baseline11: spec >>>>>> <version: '1.1-baseline'> >>>>>> >>>>>> spec for: #common do: [ >>>>>> spec blessing: #baseline. >>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>> spec >>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>> spec >>>>>> group: 'default' with: #('Core'); >>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>> spec >>>>>> project: 'Fuel' with: [ >>>>>> spec >>>>>> className: 'ConfigurationOfFuel'; >>>>>> loads: #('CoreWithProgressBar' ); >>>>>> file: 'ConfigurationOfFuel'; >>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>> >>>>>> version11: spec >>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>> >>>>>> spec for: #common do: [ >>>>>> spec blessing: #release. >>>>>> spec >>>>>> project: 'Fuel' with: '1.1'; >>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>> >>>>>> >>>>>> Cheers, >>>>>> Doru >>>>>> >>>>>> >>>>>> -- >>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>> >>>>>> "Some battles are better lost than fought." >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> >>>> "In a world where everything is moving ever faster, >>>> one might have better chances to win by moving slower." >>>> >>>> >>>> >>> >> >> -- >> www.tudorgirba.com >> >> "Being happy is a matter of choice." >> >> >> > -- www.tudorgirba.com "Live like you mean it." |
Hey Doru,
So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: (ConfigurationOfFuelMooseExtension new project version: '1.1') load. Then you will want to do something like the following. My example is for Metacello: | version directive pkgs | version := ConfigurationOfMetacello new project version: #stable. version ignoreImage: true. directive := version record loadDirective. pkgs := OrderedCollection new. directive versionDirectivesDo: [:vrsnDirective | | spec | spec := vrsnDirective spec. (spec notNil and: [ spec project configuration class name == #ConfigurationOfMetacello]) ifTrue: [ vrsnDirective packagesDo: [:pkgDirective | pkgs add: pkgDirective file ]]]. pkgs The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: | version directive pkgs | version := ConfigurationOfMetacello new project version: #stable. version ignoreImage: true. directive := version record loadDirective. pkgs := OrderedCollection new. directive packageDirectivesDo: [:pkgDirective | pkgs add: pkgDirective file ]. pkgs Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. Use the #record and #record: messages just like the #load and #load: messages. Dale On 04/29/2011 01:13 PM, Tudor Girba wrote: > Hi Dale, > > On 29 Apr 2011, at 21:47, Dale Henrichs wrote: > >> Okay, >> >> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >> >> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >> >> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... > > I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: > - I load the code with a configuration > - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them > > Cheers, > Doru > > > >> Dale >> >> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>> Hi, >>> >>> Sorry for not being clear. >>> >>> I am doing this: >>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>> ==> >>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>> >>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>> >>> Cheers, >>> Doru >>> >>> >>> >>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>> >>>> Doru, >>>> >>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>> >>>> Some sample code and expected values might help? >>>> >>>> Dale >>>> >>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>> Hi, >>>>> >>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>> >>>>> Cheers, >>>>> Doru >>>>> >>>>> >>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>> >>>>>> Doru, >>>>>> >>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>> >>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>> >>>>>> Is that the issue? >>>>>> >>>>>> Dale >>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>> Hi, >>>>>>> >>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>> the version defines the version for it. >>>>>>> >>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>> >>>>>>> Could someone look into this? >>>>>>> >>>>>>> >>>>>>> baseline11: spec >>>>>>> <version: '1.1-baseline'> >>>>>>> >>>>>>> spec for: #common do: [ >>>>>>> spec blessing: #baseline. >>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>> spec >>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>> spec >>>>>>> group: 'default' with: #('Core'); >>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>> spec >>>>>>> project: 'Fuel' with: [ >>>>>>> spec >>>>>>> className: 'ConfigurationOfFuel'; >>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>> file: 'ConfigurationOfFuel'; >>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>> >>>>>>> version11: spec >>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>> >>>>>>> spec for: #common do: [ >>>>>>> spec blessing: #release. >>>>>>> spec >>>>>>> project: 'Fuel' with: '1.1'; >>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>> >>>>>>> >>>>>>> Cheers, >>>>>>> Doru >>>>>>> >>>>>>> >>>>>>> -- >>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>> >>>>>>> "Some battles are better lost than fought." >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> www.tudorgirba.com >>>>> >>>>> "In a world where everything is moving ever faster, >>>>> one might have better chances to win by moving slower." >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> www.tudorgirba.com >>> >>> "Being happy is a matter of choice." >>> >>> >>> >> > > -- > www.tudorgirba.com > > "Live like you mean it." > |
Hi Dale,
Thanks. We are getting close. Your first script also returns the Configuration packages which are defined by project references. How do I now get those ones? Cheers, Doru On 29 Apr 2011, at 23:27, Dale Henrichs wrote: > Hey Doru, > > So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: > > (ConfigurationOfFuelMooseExtension new project version: '1.1') load. > > Then you will want to do something like the following. My example is for Metacello: > > | version directive pkgs | > version := ConfigurationOfMetacello new project version: #stable. > version ignoreImage: true. > directive := version record loadDirective. > pkgs := OrderedCollection new. > directive versionDirectivesDo: [:vrsnDirective | | spec | > spec := vrsnDirective spec. > (spec notNil and: [ > spec project configuration class name == > #ConfigurationOfMetacello]) > ifTrue: [ > vrsnDirective packagesDo: [:pkgDirective | > pkgs add: pkgDirective file ]]]. > pkgs > > The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: > > | version directive pkgs | > version := ConfigurationOfMetacello new project version: #stable. > version ignoreImage: true. > directive := version record loadDirective. > pkgs := OrderedCollection new. > directive packageDirectivesDo: [:pkgDirective | > pkgs add: pkgDirective file ]. > pkgs > > Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. > > > Use the #record and #record: messages just like the #load and #load: messages. > > Dale > > On 04/29/2011 01:13 PM, Tudor Girba wrote: >> Hi Dale, >> >> On 29 Apr 2011, at 21:47, Dale Henrichs wrote: >> >>> Okay, >>> >>> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >>> >>> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >>> >>> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... >> >> I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: >> - I load the code with a configuration >> - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them >> >> Cheers, >> Doru >> >> >> >>> Dale >>> >>> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>>> Hi, >>>> >>>> Sorry for not being clear. >>>> >>>> I am doing this: >>>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>>> ==> >>>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>>> >>>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>> >>>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>>> >>>>> Doru, >>>>> >>>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>>> >>>>> Some sample code and expected values might help? >>>>> >>>>> Dale >>>>> >>>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>>> Hi, >>>>>> >>>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>>> >>>>>> Cheers, >>>>>> Doru >>>>>> >>>>>> >>>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>>> >>>>>>> Doru, >>>>>>> >>>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>>> >>>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>>> >>>>>>> Is that the issue? >>>>>>> >>>>>>> Dale >>>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>>> the version defines the version for it. >>>>>>>> >>>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>>> >>>>>>>> Could someone look into this? >>>>>>>> >>>>>>>> >>>>>>>> baseline11: spec >>>>>>>> <version: '1.1-baseline'> >>>>>>>> >>>>>>>> spec for: #common do: [ >>>>>>>> spec blessing: #baseline. >>>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>>> spec >>>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>>> spec >>>>>>>> group: 'default' with: #('Core'); >>>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>>> spec >>>>>>>> project: 'Fuel' with: [ >>>>>>>> spec >>>>>>>> className: 'ConfigurationOfFuel'; >>>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>>> file: 'ConfigurationOfFuel'; >>>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>>> >>>>>>>> version11: spec >>>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>>> >>>>>>>> spec for: #common do: [ >>>>>>>> spec blessing: #release. >>>>>>>> spec >>>>>>>> project: 'Fuel' with: '1.1'; >>>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>>> >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Doru >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>>> >>>>>>>> "Some battles are better lost than fought." >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> www.tudorgirba.com >>>>>> >>>>>> "In a world where everything is moving ever faster, >>>>>> one might have better chances to win by moving slower." >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> >>>> "Being happy is a matter of choice." >>>> >>>> >>>> >>> >> >> -- >> www.tudorgirba.com >> >> "Live like you mean it." >> > -- www.tudorgirba.com "Reasonable is what we are accustomed with." |
On 04/29/2011 02:44 PM, Tudor Girba wrote:
> Hi Dale, > > Thanks. We are getting close. > > Your first script also returns the Configuration packages which are defined by project references. How do I now get those ones? > > Cheers, > Doru The second script should give you the entire list of packages irregardless of the configuration ... The first script intentionally filtered out packages not directly loaded by the version. Dale > > > > On 29 Apr 2011, at 23:27, Dale Henrichs wrote: > >> Hey Doru, >> >> So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: >> >> (ConfigurationOfFuelMooseExtension new project version: '1.1') load. >> >> Then you will want to do something like the following. My example is for Metacello: >> >> | version directive pkgs | >> version := ConfigurationOfMetacello new project version: #stable. >> version ignoreImage: true. >> directive := version record loadDirective. >> pkgs := OrderedCollection new. >> directive versionDirectivesDo: [:vrsnDirective | | spec | >> spec := vrsnDirective spec. >> (spec notNil and: [ >> spec project configuration class name == >> #ConfigurationOfMetacello]) >> ifTrue: [ >> vrsnDirective packagesDo: [:pkgDirective | >> pkgs add: pkgDirective file ]]]. >> pkgs >> >> The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: >> >> | version directive pkgs | >> version := ConfigurationOfMetacello new project version: #stable. >> version ignoreImage: true. >> directive := version record loadDirective. >> pkgs := OrderedCollection new. >> directive packageDirectivesDo: [:pkgDirective | >> pkgs add: pkgDirective file ]. >> pkgs >> >> Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. >> >> >> Use the #record and #record: messages just like the #load and #load: messages. >> >> Dale >> >> On 04/29/2011 01:13 PM, Tudor Girba wrote: >>> Hi Dale, >>> >>> On 29 Apr 2011, at 21:47, Dale Henrichs wrote: >>> >>>> Okay, >>>> >>>> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >>>> >>>> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >>>> >>>> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... >>> >>> I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: >>> - I load the code with a configuration >>> - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them >>> >>> Cheers, >>> Doru >>> >>> >>> >>>> Dale >>>> >>>> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>>>> Hi, >>>>> >>>>> Sorry for not being clear. >>>>> >>>>> I am doing this: >>>>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>>>> ==> >>>>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>>>> >>>>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>>>> >>>>> Cheers, >>>>> Doru >>>>> >>>>> >>>>> >>>>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>>>> >>>>>> Doru, >>>>>> >>>>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>>>> >>>>>> Some sample code and expected values might help? >>>>>> >>>>>> Dale >>>>>> >>>>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>>>> >>>>>>> Cheers, >>>>>>> Doru >>>>>>> >>>>>>> >>>>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>>>> >>>>>>>> Doru, >>>>>>>> >>>>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>>>> >>>>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>>>> >>>>>>>> Is that the issue? >>>>>>>> >>>>>>>> Dale >>>>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>>>> the version defines the version for it. >>>>>>>>> >>>>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>>>> >>>>>>>>> Could someone look into this? >>>>>>>>> >>>>>>>>> >>>>>>>>> baseline11: spec >>>>>>>>> <version: '1.1-baseline'> >>>>>>>>> >>>>>>>>> spec for: #common do: [ >>>>>>>>> spec blessing: #baseline. >>>>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>>>> spec >>>>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>>>> spec >>>>>>>>> group: 'default' with: #('Core'); >>>>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>>>> spec >>>>>>>>> project: 'Fuel' with: [ >>>>>>>>> spec >>>>>>>>> className: 'ConfigurationOfFuel'; >>>>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>>>> file: 'ConfigurationOfFuel'; >>>>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>>>> >>>>>>>>> version11: spec >>>>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>>>> >>>>>>>>> spec for: #common do: [ >>>>>>>>> spec blessing: #release. >>>>>>>>> spec >>>>>>>>> project: 'Fuel' with: '1.1'; >>>>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>>>> >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Doru >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>>>> >>>>>>>>> "Some battles are better lost than fought." >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> www.tudorgirba.com >>>>>>> >>>>>>> "In a world where everything is moving ever faster, >>>>>>> one might have better chances to win by moving slower." >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> www.tudorgirba.com >>>>> >>>>> "Being happy is a matter of choice." >>>>> >>>>> >>>>> >>>> >>> >>> -- >>> www.tudorgirba.com >>> >>> "Live like you mean it." >>> >> > > -- > www.tudorgirba.com > > "Reasonable is what we are accustomed with." > |
Hi Dale,
Again, I did not explain myself properly. If I execute the first script I get this: an OrderedCollection('ConfigurationOfHelpSystem' 'ConfigurationOfGofer' 'Metacello-Base-DaleHenrichs.19' 'Metacello-Core-DaleHenrichs.460' 'Metacello-MC-DaleHenrichs.507' 'Metacello-Platform.pharo-DaleHenrichs.25' 'Metacello-ToolBox-DaleHenrichs.88' 'Metacello-Help-DaleHenrichs.9') The result contains 'ConfigurationOfHelpSystem' and 'ConfigurationOfGofer'. These are not wanted. How do I not (not "now" :)) get these ones? Cheers, Doru On 29 Apr 2011, at 23:57, Dale Henrichs wrote: > On 04/29/2011 02:44 PM, Tudor Girba wrote: >> Hi Dale, >> >> Thanks. We are getting close. >> >> Your first script also returns the Configuration packages which are defined by project references. How do I now get those ones? >> >> Cheers, >> Doru > > The second script should give you the entire list of packages irregardless of the configuration ... > > The first script intentionally filtered out packages not directly loaded by the version. > > Dale > > >> >> >> >> On 29 Apr 2011, at 23:27, Dale Henrichs wrote: >> >>> Hey Doru, >>> >>> So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: >>> >>> (ConfigurationOfFuelMooseExtension new project version: '1.1') load. >>> >>> Then you will want to do something like the following. My example is for Metacello: >>> >>> | version directive pkgs | >>> version := ConfigurationOfMetacello new project version: #stable. >>> version ignoreImage: true. >>> directive := version record loadDirective. >>> pkgs := OrderedCollection new. >>> directive versionDirectivesDo: [:vrsnDirective | | spec | >>> spec := vrsnDirective spec. >>> (spec notNil and: [ >>> spec project configuration class name == >>> #ConfigurationOfMetacello]) >>> ifTrue: [ >>> vrsnDirective packagesDo: [:pkgDirective | >>> pkgs add: pkgDirective file ]]]. >>> pkgs >>> >>> The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: >>> >>> | version directive pkgs | >>> version := ConfigurationOfMetacello new project version: #stable. >>> version ignoreImage: true. >>> directive := version record loadDirective. >>> pkgs := OrderedCollection new. >>> directive packageDirectivesDo: [:pkgDirective | >>> pkgs add: pkgDirective file ]. >>> pkgs >>> >>> Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. >>> >>> >>> Use the #record and #record: messages just like the #load and #load: messages. >>> >>> Dale >>> >>> On 04/29/2011 01:13 PM, Tudor Girba wrote: >>>> Hi Dale, >>>> >>>> On 29 Apr 2011, at 21:47, Dale Henrichs wrote: >>>> >>>>> Okay, >>>>> >>>>> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >>>>> >>>>> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >>>>> >>>>> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... >>>> >>>> I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: >>>> - I load the code with a configuration >>>> - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them >>>> >>>> Cheers, >>>> Doru >>>> >>>> >>>> >>>>> Dale >>>>> >>>>> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>>>>> Hi, >>>>>> >>>>>> Sorry for not being clear. >>>>>> >>>>>> I am doing this: >>>>>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>>>>> ==> >>>>>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>>>>> >>>>>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>>>>> >>>>>> Cheers, >>>>>> Doru >>>>>> >>>>>> >>>>>> >>>>>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>>>>> >>>>>>> Doru, >>>>>>> >>>>>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>>>>> >>>>>>> Some sample code and expected values might help? >>>>>>> >>>>>>> Dale >>>>>>> >>>>>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Doru >>>>>>>> >>>>>>>> >>>>>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>>>>> >>>>>>>>> Doru, >>>>>>>>> >>>>>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>>>>> >>>>>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>>>>> >>>>>>>>> Is that the issue? >>>>>>>>> >>>>>>>>> Dale >>>>>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>>>>> the version defines the version for it. >>>>>>>>>> >>>>>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>>>>> >>>>>>>>>> Could someone look into this? >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> baseline11: spec >>>>>>>>>> <version: '1.1-baseline'> >>>>>>>>>> >>>>>>>>>> spec for: #common do: [ >>>>>>>>>> spec blessing: #baseline. >>>>>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>>>>> spec >>>>>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>>>>> spec >>>>>>>>>> group: 'default' with: #('Core'); >>>>>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>>>>> spec >>>>>>>>>> project: 'Fuel' with: [ >>>>>>>>>> spec >>>>>>>>>> className: 'ConfigurationOfFuel'; >>>>>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>>>>> file: 'ConfigurationOfFuel'; >>>>>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>>>>> >>>>>>>>>> version11: spec >>>>>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>>>>> >>>>>>>>>> spec for: #common do: [ >>>>>>>>>> spec blessing: #release. >>>>>>>>>> spec >>>>>>>>>> project: 'Fuel' with: '1.1'; >>>>>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> Doru >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>>>>> >>>>>>>>>> "Some battles are better lost than fought." >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> www.tudorgirba.com >>>>>>>> >>>>>>>> "In a world where everything is moving ever faster, >>>>>>>> one might have better chances to win by moving slower." >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> www.tudorgirba.com >>>>>> >>>>>> "Being happy is a matter of choice." >>>>>> >>>>>> >>>>>> >>>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> >>>> "Live like you mean it." >>>> >>> >> >> -- >> www.tudorgirba.com >> >> "Reasonable is what we are accustomed with." >> > -- www.tudorgirba.com "In a world where everything is moving ever faster, one might have better chances to win by moving slower." |
In reply to this post by Tudor Girba
Hi Martin,
I do not know yet :). This was my original question. The loading seems to work well, so I guess the spec is probably Ok like it is now. The problem is then how to query properly the information out from the configuration. Cheers, Doru On 30 Apr 2011, at 04:09, Martin Dias wrote: > Hi > > Sorry, I couldn't understand the thread completely... > > Is this issue fixed adding the line > > package: 'FuelMooseExtensionBenchmarks' with: [ spec requires: 'FuelMooseExtension' ]. > > in the baseline? or something more complex is needed? > > > > > > > On Fri, Apr 29, 2011 at 3:17 PM, Tudor Girba <[hidden email]> wrote: > Hi, > > ConfigurationOfFuelMooseExtensions has the following baseline and version definitions and I am not sure whether they are correct. The problem is that the baseline defines a package only in a group, and then the version defines the version for it. > > Loading seems to load just fine. If I simply load the version, it loads the two packages defined in the Core group as expected. However, my problem is that when I query version 1.1 for packages, it retrieves the extra FuelMooseExtensionBenchmarks package. > > Could someone look into this? > > > baseline11: spec > <version: '1.1-baseline'> > > spec for: #common do: [ > spec blessing: #baseline. > spec repository: 'http://www.squeaksource.com/Fuel'. > spec > package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; > package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. > spec > group: 'default' with: #('Core'); > group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); > group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); > group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' 'FuelMooseExtensionBenchmarks'). > spec > project: 'Fuel' with: [ > spec > className: 'ConfigurationOfFuel'; > loads: #('CoreWithProgressBar' ); > file: 'ConfigurationOfFuel'; > repository: 'http://www.squeaksource.com/Fuel' ] ]. > > version11: spec > <version: '1.1' imports: #('1.1-baseline') > > > spec for: #common do: [ > spec blessing: #release. > spec > project: 'Fuel' with: '1.1'; > package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; > package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; > package: 'FuelMooseExtensionBenchmarks' with: 'FuelMooseExtensionBenchmarks-MartinDias.2']. > > > Cheers, > Doru > > > -- > www.tudorgirba.com > > "Some battles are better lost than fought." > > > > -- www.tudorgirba.com "Live like you mean it." |
In reply to this post by Tudor Girba
I suppose at the moment you'lll have to filter out the names by excluding packages starting with 'ConfigurationOf' ... at the metacello directive level I haven't distinguished between mcz files loaded because we want the code and mcz files loaded because we want the configuration ...
At the point where the request is made we do know why the mcz file is being loaded, so I suppose the directive structure could be extended to record that information... Dale On Apr 30, 2011, at 1:31 AM, Tudor Girba wrote: > Hi Dale, > > Again, I did not explain myself properly. > > If I execute the first script I get this: > an OrderedCollection('ConfigurationOfHelpSystem' 'ConfigurationOfGofer' 'Metacello-Base-DaleHenrichs.19' 'Metacello-Core-DaleHenrichs.460' 'Metacello-MC-DaleHenrichs.507' 'Metacello-Platform.pharo-DaleHenrichs.25' 'Metacello-ToolBox-DaleHenrichs.88' 'Metacello-Help-DaleHenrichs.9') > > The result contains 'ConfigurationOfHelpSystem' and 'ConfigurationOfGofer'. These are not wanted. How do I not (not "now" :)) get these ones? > > Cheers, > Doru > > > On 29 Apr 2011, at 23:57, Dale Henrichs wrote: > >> On 04/29/2011 02:44 PM, Tudor Girba wrote: >>> Hi Dale, >>> >>> Thanks. We are getting close. >>> >>> Your first script also returns the Configuration packages which are defined by project references. How do I now get those ones? >>> >>> Cheers, >>> Doru >> >> The second script should give you the entire list of packages irregardless of the configuration ... >> >> The first script intentionally filtered out packages not directly loaded by the version. >> >> Dale >> >> >>> >>> >>> >>> On 29 Apr 2011, at 23:27, Dale Henrichs wrote: >>> >>>> Hey Doru, >>>> >>>> So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: >>>> >>>> (ConfigurationOfFuelMooseExtension new project version: '1.1') load. >>>> >>>> Then you will want to do something like the following. My example is for Metacello: >>>> >>>> | version directive pkgs | >>>> version := ConfigurationOfMetacello new project version: #stable. >>>> version ignoreImage: true. >>>> directive := version record loadDirective. >>>> pkgs := OrderedCollection new. >>>> directive versionDirectivesDo: [:vrsnDirective | | spec | >>>> spec := vrsnDirective spec. >>>> (spec notNil and: [ >>>> spec project configuration class name == >>>> #ConfigurationOfMetacello]) >>>> ifTrue: [ >>>> vrsnDirective packagesDo: [:pkgDirective | >>>> pkgs add: pkgDirective file ]]]. >>>> pkgs >>>> >>>> The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: >>>> >>>> | version directive pkgs | >>>> version := ConfigurationOfMetacello new project version: #stable. >>>> version ignoreImage: true. >>>> directive := version record loadDirective. >>>> pkgs := OrderedCollection new. >>>> directive packageDirectivesDo: [:pkgDirective | >>>> pkgs add: pkgDirective file ]. >>>> pkgs >>>> >>>> Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. >>>> >>>> >>>> Use the #record and #record: messages just like the #load and #load: messages. >>>> >>>> Dale >>>> >>>> On 04/29/2011 01:13 PM, Tudor Girba wrote: >>>>> Hi Dale, >>>>> >>>>> On 29 Apr 2011, at 21:47, Dale Henrichs wrote: >>>>> >>>>>> Okay, >>>>>> >>>>>> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >>>>>> >>>>>> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >>>>>> >>>>>> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... >>>>> >>>>> I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: >>>>> - I load the code with a configuration >>>>> - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them >>>>> >>>>> Cheers, >>>>> Doru >>>>> >>>>> >>>>> >>>>>> Dale >>>>>> >>>>>> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>>>>>> Hi, >>>>>>> >>>>>>> Sorry for not being clear. >>>>>>> >>>>>>> I am doing this: >>>>>>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>>>>>> ==> >>>>>>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>>>>>> >>>>>>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>>>>>> >>>>>>> Cheers, >>>>>>> Doru >>>>>>> >>>>>>> >>>>>>> >>>>>>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>>>>>> >>>>>>>> Doru, >>>>>>>> >>>>>>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>>>>>> >>>>>>>> Some sample code and expected values might help? >>>>>>>> >>>>>>>> Dale >>>>>>>> >>>>>>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>>>>>> Hi, >>>>>>>>> >>>>>>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Doru >>>>>>>>> >>>>>>>>> >>>>>>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>>>>>> >>>>>>>>>> Doru, >>>>>>>>>> >>>>>>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>>>>>> >>>>>>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>>>>>> >>>>>>>>>> Is that the issue? >>>>>>>>>> >>>>>>>>>> Dale >>>>>>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>>>>>> Hi, >>>>>>>>>>> >>>>>>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>>>>>> the version defines the version for it. >>>>>>>>>>> >>>>>>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>>>>>> >>>>>>>>>>> Could someone look into this? >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> baseline11: spec >>>>>>>>>>> <version: '1.1-baseline'> >>>>>>>>>>> >>>>>>>>>>> spec for: #common do: [ >>>>>>>>>>> spec blessing: #baseline. >>>>>>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>>>>>> spec >>>>>>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>>>>>> spec >>>>>>>>>>> group: 'default' with: #('Core'); >>>>>>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>>>>>> spec >>>>>>>>>>> project: 'Fuel' with: [ >>>>>>>>>>> spec >>>>>>>>>>> className: 'ConfigurationOfFuel'; >>>>>>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>>>>>> file: 'ConfigurationOfFuel'; >>>>>>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>>>>>> >>>>>>>>>>> version11: spec >>>>>>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>>>>>> >>>>>>>>>>> spec for: #common do: [ >>>>>>>>>>> spec blessing: #release. >>>>>>>>>>> spec >>>>>>>>>>> project: 'Fuel' with: '1.1'; >>>>>>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> Cheers, >>>>>>>>>>> Doru >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> -- >>>>>>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>>>>>> >>>>>>>>>>> "Some battles are better lost than fought." >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> www.tudorgirba.com >>>>>>>>> >>>>>>>>> "In a world where everything is moving ever faster, >>>>>>>>> one might have better chances to win by moving slower." >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> www.tudorgirba.com >>>>>>> >>>>>>> "Being happy is a matter of choice." >>>>>>> >>>>>>> >>>>>>> >>>>>> >>>>> >>>>> -- >>>>> www.tudorgirba.com >>>>> >>>>> "Live like you mean it." >>>>> >>>> >>> >>> -- >>> www.tudorgirba.com >>> >>> "Reasonable is what we are accustomed with." >>> >> > > -- > www.tudorgirba.com > > "In a world where everything is moving ever faster, > one might have better chances to win by moving slower." > > > |
Hi,
On 30 Apr 2011, at 17:01, Dale Henrichs wrote: > I suppose at the moment you'lll have to filter out the names by excluding packages starting with 'ConfigurationOf' ... at the metacello directive level I haven't distinguished between mcz files loaded because we want the code and mcz files loaded because we want the configuration ... I thought of that, but then I thought it must be a different way :). > At the point where the request is made we do know why the mcz file is being loaded, so I suppose the directive structure could be extended to record that information... That would be great. The next thing on my list is to get the information from the Configuration and use it for architecture recovery. Cheers, Doru > Dale > > On Apr 30, 2011, at 1:31 AM, Tudor Girba wrote: > >> Hi Dale, >> >> Again, I did not explain myself properly. >> >> If I execute the first script I get this: >> an OrderedCollection('ConfigurationOfHelpSystem' 'ConfigurationOfGofer' 'Metacello-Base-DaleHenrichs.19' 'Metacello-Core-DaleHenrichs.460' 'Metacello-MC-DaleHenrichs.507' 'Metacello-Platform.pharo-DaleHenrichs.25' 'Metacello-ToolBox-DaleHenrichs.88' 'Metacello-Help-DaleHenrichs.9') >> >> The result contains 'ConfigurationOfHelpSystem' and 'ConfigurationOfGofer'. These are not wanted. How do I not (not "now" :)) get these ones? >> >> Cheers, >> Doru >> >> >> On 29 Apr 2011, at 23:57, Dale Henrichs wrote: >> >>> On 04/29/2011 02:44 PM, Tudor Girba wrote: >>>> Hi Dale, >>>> >>>> Thanks. We are getting close. >>>> >>>> Your first script also returns the Configuration packages which are defined by project references. How do I now get those ones? >>>> >>>> Cheers, >>>> Doru >>> >>> The second script should give you the entire list of packages irregardless of the configuration ... >>> >>> The first script intentionally filtered out packages not directly loaded by the version. >>> >>> Dale >>> >>> >>>> >>>> >>>> >>>> On 29 Apr 2011, at 23:27, Dale Henrichs wrote: >>>> >>>>> Hey Doru, >>>>> >>>>> So what you are looking for is the list of packages that would be loaded if the following expression were loaded into an "empty" image: >>>>> >>>>> (ConfigurationOfFuelMooseExtension new project version: '1.1') load. >>>>> >>>>> Then you will want to do something like the following. My example is for Metacello: >>>>> >>>>> | version directive pkgs | >>>>> version := ConfigurationOfMetacello new project version: #stable. >>>>> version ignoreImage: true. >>>>> directive := version record loadDirective. >>>>> pkgs := OrderedCollection new. >>>>> directive versionDirectivesDo: [:vrsnDirective | | spec | >>>>> spec := vrsnDirective spec. >>>>> (spec notNil and: [ >>>>> spec project configuration class name == >>>>> #ConfigurationOfMetacello]) >>>>> ifTrue: [ >>>>> vrsnDirective packagesDo: [:pkgDirective | >>>>> pkgs add: pkgDirective file ]]]. >>>>> pkgs >>>>> >>>>> The above assumes that you want only the packages loaded by ConfigurationOfMetacello ... If you want all of the packages that would be loaded the following will do the trick: >>>>> >>>>> | version directive pkgs | >>>>> version := ConfigurationOfMetacello new project version: #stable. >>>>> version ignoreImage: true. >>>>> directive := version record loadDirective. >>>>> pkgs := OrderedCollection new. >>>>> directive packageDirectivesDo: [:pkgDirective | >>>>> pkgs add: pkgDirective file ]. >>>>> pkgs >>>>> >>>>> Take a look at MetacelloPackageLoadDirective to see the other inforamtion that's availalble. >>>>> >>>>> >>>>> Use the #record and #record: messages just like the #load and #load: messages. >>>>> >>>>> Dale >>>>> >>>>> On 04/29/2011 01:13 PM, Tudor Girba wrote: >>>>>> Hi Dale, >>>>>> >>>>>> On 29 Apr 2011, at 21:47, Dale Henrichs wrote: >>>>>> >>>>>>> Okay, >>>>>>> >>>>>>> What is it about FuelMooseExtensionBenchmarks that makes you think that it shoulldn't be returned by the expression? >>>>>>> >>>>>>> You have a package named FuelMooseExtensionBenchmarks defined in version 1.1, so the #packages method returns the three packages defined in version 1.1... >>>>>>> >>>>>>> Is it the fact that the package isn't loaded in the image that makes it unique or is the fact that it is not defined in the baseline that makes it unique? ... As far as you are concerned... >>>>>> >>>>>> I am looking for the incantation that would return only the two packages that actually get loaded. The scenario is like this: >>>>>> - I load the code with a configuration >>>>>> - I want to use a script that takes the same configuration as input to find which packages were loaded so that I can analyze them >>>>>> >>>>>> Cheers, >>>>>> Doru >>>>>> >>>>>> >>>>>> >>>>>>> Dale >>>>>>> >>>>>>> On 04/29/2011 12:02 PM, Tudor Girba wrote: >>>>>>>> Hi, >>>>>>>> >>>>>>>> Sorry for not being clear. >>>>>>>> >>>>>>>> I am doing this: >>>>>>>> ((ConfigurationOfFuelMooseExtension new project version: '1.1') spec packages select: [:each | each isKindOf: MetacelloPackageSpec ]) collect: [:each | each name] >>>>>>>> ==> >>>>>>>> an OrderedCollection('FuelMooseExtensionBenchmarks' 'FuelFameExtension' 'FuelMooseExtension') >>>>>>>> >>>>>>>> I would like to get the invocation that would give me the list of packages without FuelMooseExtensionBenchmarks. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Doru >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> On 29 Apr 2011, at 20:45, Dale Henrichs wrote: >>>>>>>> >>>>>>>>> Doru, >>>>>>>>> >>>>>>>>> Just to clarify, are you looking for the list of packages that are already loaded in the image or do you mean something else? >>>>>>>>> >>>>>>>>> Some sample code and expected values might help? >>>>>>>>> >>>>>>>>> Dale >>>>>>>>> >>>>>>>>> On 04/29/2011 11:44 AM, Tudor Girba wrote: >>>>>>>>>> Hi, >>>>>>>>>> >>>>>>>>>> Indeed, the issue is that I do not know how to get only the packages that would load. I need this to be able to do static analysis (e.g., import in Moose) of all packages from a version. >>>>>>>>>> >>>>>>>>>> Cheers, >>>>>>>>>> Doru >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> On 29 Apr 2011, at 20:38, Dale Henrichs wrote: >>>>>>>>>> >>>>>>>>>>> Doru, >>>>>>>>>>> >>>>>>>>>>> When you "query version 1.1 for packages", you get the extra package, because it is *part of the project*, just not loaded. >>>>>>>>>>> >>>>>>>>>>> But when you "query version 1.1 for packages" you'd like only the loaded packages? >>>>>>>>>>> >>>>>>>>>>> Is that the issue? >>>>>>>>>>> >>>>>>>>>>> Dale >>>>>>>>>>> On 04/29/2011 11:17 AM, Tudor Girba wrote: >>>>>>>>>>>> Hi, >>>>>>>>>>>> >>>>>>>>>>>> ConfigurationOfFuelMooseExtensions has the following baseline and >>>>>>>>>>>> version definitions and I am not sure whether they are correct. The >>>>>>>>>>>> problem is that the baseline defines a package only in a group, and then >>>>>>>>>>>> the version defines the version for it. >>>>>>>>>>>> >>>>>>>>>>>> Loading seems to load just fine. If I simply load the version, it loads >>>>>>>>>>>> the two packages defined in the Core group as expected. However, my >>>>>>>>>>>> problem is that when I query version 1.1 for packages, it retrieves the >>>>>>>>>>>> extra *FuelMooseExtensionBenchmarks *package. >>>>>>>>>>>> >>>>>>>>>>>> Could someone look into this? >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> baseline11: spec >>>>>>>>>>>> <version: '1.1-baseline'> >>>>>>>>>>>> >>>>>>>>>>>> spec for: #common do: [ >>>>>>>>>>>> spec blessing: #baseline. >>>>>>>>>>>> spec repository: 'http://www.squeaksource.com/Fuel'. >>>>>>>>>>>> spec >>>>>>>>>>>> package: 'FuelFameExtension' with: [ spec requires: 'Fuel' ]; >>>>>>>>>>>> package: 'FuelMooseExtension' with: [ spec requires: 'FuelFameExtension' ]. >>>>>>>>>>>> spec >>>>>>>>>>>> group: 'default' with: #('Core'); >>>>>>>>>>>> group: 'Core' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>>>> group: 'Tests' with: #('FuelFameExtension' 'FuelMooseExtension'); >>>>>>>>>>>> *group: 'Benchmarks' with: #('FuelFameExtension' 'FuelMooseExtension' >>>>>>>>>>>> 'FuelMooseExtensionBenchmarks'*). >>>>>>>>>>>> spec >>>>>>>>>>>> project: 'Fuel' with: [ >>>>>>>>>>>> spec >>>>>>>>>>>> className: 'ConfigurationOfFuel'; >>>>>>>>>>>> loads: #('CoreWithProgressBar' ); >>>>>>>>>>>> file: 'ConfigurationOfFuel'; >>>>>>>>>>>> repository: 'http://www.squeaksource.com/Fuel' ] ]. >>>>>>>>>>>> >>>>>>>>>>>> version11: spec >>>>>>>>>>>> <version: '1.1' imports: #('1.1-baseline')> >>>>>>>>>>>> >>>>>>>>>>>> spec for: #common do: [ >>>>>>>>>>>> spec blessing: #release. >>>>>>>>>>>> spec >>>>>>>>>>>> project: 'Fuel' with: '1.1'; >>>>>>>>>>>> package: 'FuelFameExtension' with: 'FuelFameExtension-MartinDias.28'; >>>>>>>>>>>> package: 'FuelMooseExtension' with: 'FuelMooseExtension-MartinDias.8'; >>>>>>>>>>>> *package: 'FuelMooseExtensionBenchmarks' with: >>>>>>>>>>>> 'FuelMooseExtensionBenchmarks-MartinDias.2'].* >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> Cheers, >>>>>>>>>>>> Doru >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> -- >>>>>>>>>>>> www.tudorgirba.com<http://www.tudorgirba.com> >>>>>>>>>>>> >>>>>>>>>>>> "Some battles are better lost than fought." >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>>> >>>>>>>>>>> >>>>>>>>>> >>>>>>>>>> -- >>>>>>>>>> www.tudorgirba.com >>>>>>>>>> >>>>>>>>>> "In a world where everything is moving ever faster, >>>>>>>>>> one might have better chances to win by moving slower." >>>>>>>>>> >>>>>>>>>> >>>>>>>>>> >>>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> www.tudorgirba.com >>>>>>>> >>>>>>>> "Being happy is a matter of choice." >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>>> -- >>>>>> www.tudorgirba.com >>>>>> >>>>>> "Live like you mean it." >>>>>> >>>>> >>>> >>>> -- >>>> www.tudorgirba.com >>>> >>>> "Reasonable is what we are accustomed with." >>>> >>> >> >> -- >> www.tudorgirba.com >> >> "In a world where everything is moving ever faster, >> one might have better chances to win by moving slower." >> >> >> > -- www.tudorgirba.com "Some battles are better lost than fought." |
Free forum by Nabble | Edit this page |