2017-05-27 14:45 GMT+02:00 Denis Kudriashov <dionisi...@gmail.com>: > > 2017-05-27 14:15 GMT+02:00 Thierry Goubier <thierry.goub...@gmail.com>: > >> Will: >> >> #MyPackage asPackage definedClasses do: [:each | each tagWith: #MyPackage] >> >> put the classes in the #MyPackage or in the #MyPackage-MyPackage system >> category? >> > > #tagWith: not touches package of class. It only adds receiver into package > tag. > I not understand the question about system category because I don't know > what it is exactly in current system. >
The package and tag names are translated into a 'PackageName-TagName' system category. But: the tag #PackageName has a special meaning in RPackage (for now). It means : what is defined in the package, and not in any other tag. > Now in class definition we have "package: " part. And it will be modified > with new tag-suffix. It will become "package: 'ActualPackageName-TagName'" > Just like it is now in system category then. > > >> >> Will that API stay the same when we will be able to put a class in >> multiple categories (or a method in multiple protocols)? >> > > Yes but #tagWith: will add extra tag into class/method. It will not remove > existing tags. > But in Pharo6 it is only new API. Multiple tags are not supported and > #tagWith: removes existing tag. > > The problem I foresee is that at a certain point in the future, not advertised, that semantic will change to not mean 'remove existing tag'. If I start using that API, I'll need to add a test in my stuff that will flag that API semantic change without name change. Thierry