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

时间:2016-02-29 23:59:31

标签: version-control smalltalk pharo monticello

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

  • 雅典 - 开罗
  • 雅典-CairoPools
  • 雅典核

我试过

(GoferConfigurationReference name: 'ConfigurationOfAthens') packages.

但系统无法理解。

这在Pharo 4中得到了支持吗?

1 个答案:

答案 0 :(得分:1)

如果只需要包名称,可以使用帮助程序类从Configuration进行查询。所以你的查询将是

(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  ]