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

Reply via email to