如何从 Metacello 配置中查询所有 Monticello 包?

How to query all Monticello packages from a Metacello Configuration?

我有一个像 ConfigurationOfAthens 这样的 Metacello 配置,我想知道提供了哪些包,结果是:

我试过了

(GoferConfigurationReference name: 'ConfigurationOfAthens') packages.

但系统不理解

Pharo 4 支持吗?

如果您只需要包名称,您可以使用助手 类 从配置中查询。所以你的查询将是

(MTProject 
    newFromVersion: (ConfigurationOfAthens project version: #development)
    inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage.

这些 MT 类 - 听起来应该属于 Metacello - 不在 Metacello 包中,但目前在 Versionner 中(默认包含在 Pharo 图像中)。

深入研究结果表明,某些 "MTPackages" 没有对应的 "RPackage"(这可能是一个错误,或者包表示模型中的一些奇怪功能)。所以你需要进一步过滤:

((MTProject 
    newFromVersion: (ConfigurationOfAthens project version: #development)
    inConfiguration: ConfigurationOfAthens) dependenciesFilteredBy: MTPackage)
        select: [ :pkgName | 
            (RPackageOrganizer default 
                packageNamed: pkgName name asSymbol
                ifAbsent: []) notNil  ]