Search code examples
smalltalkpharomonticello

What are RPackageTags? How are they related to Monticello Packages?


I try to learn about RPackageTags:

  1. It seems RPackageTags are just something like sub-packages?
  2. Unlike let’s say tags in OS X, one item (here one class) cannot have more than one tag?
  3. A tag is always specific to an RPackage? The tags in Package1-Tag1 and Package2-Tag1 are not the same, i.e. are two different instances of RPackageTag?
  4. There is the possibilty that Package1-Tag1 is just an RPackage and also the possibility that Package1-Tag1 is the combination of RPackage Package1 and RPackageTag Tag1?

Is that right? What is the idea behind the introduction of RPackageTags?

How are RPackageTags related to Monticello packages?


Solution

  • Some answers:

    1. Yes, they are like subpackages
    2. For now, yes. This is because we needed to keep some compatibility between RPackages and System Categories and we decided (for now), that the scheme would be: RPackage+Tag = SystemCategory. This will change in the future, by removing system categories and allowing tags to be like OSX tags.
    3. For now, yes... see point (2) :)
    4. No, you cannot. This is because of organisation issues derived also from the attach RPackage+Tag to a SystemCategory: If you have a package A-B and a Package A with tag B, both would share the SystemCategory A-B... which is seriously bad for the organization of the system.

    Of course, as you can see, the real problem here is to have an ancient way of organisation still in system. This will change, in Pharo4 or (most probably) in Pharo5, and for now we need to live with this convenience solution.