Thanks for the discussion. I'm considering the ideas; I want to propose something concrete very soon.

If I understand well, the two positions are:

* to extend Job with a 'description' object;
* to extend system announcements, so they know their 'parent' announcement;

in both cases, the subscriber can lookup into the hierarchy of "tasks" that produced an announcement.

Mart��n

On Sat, Jun 13, 2015 at 8:06 AM, Thierry Goubier <thierry.goubier@gmail.com> wrote:
Hi Eliot,

Le 13/06/2015 06:54, Eliot Miranda a ��crit :
Hi Thierry,

On Jun 11, 2015, at 8:16 AM, Thierry Goubier <thierry.goubier@gmail.com
<mailto:thierry.goubier@gmail.com>> wrote:



2015-06-11 16:49 GMT+02:00 Ben Coman <btc@openinworld.com
<mailto:btc@openinworld.com>>:


�� �� Just a *very* divergent thought that I'm not sure is a good idea...
�� �� maybe the parent announcement could hold the announcer of its
�� �� children.


The problem is then that all tools which are not interested in the
parent announcement because they only deal with the low level stuff
(system browser, RPackageOrganizer and friends: MessageList, Spotter,
Critics browser, Finder, Versionner, Inspector, anything which listen
to a code change basically) have to still listen to the parent and, on
reception, subscribe to the low-level announcement, and then
unsubscribe on the parent end announcement.

It seems to me that with Ben's suggestion there need only be the
low-level announcement, and that subscribers interested in the
higher-level context could fetch it by asking the announcement for its
context.

I reacted to the fact Ben said announcer, not announcement... Reregistering announcers in code-aware tools is not something you do often [1]

One aspect I forgot is the performance issues linked with announcements. On package loads, a huge number of announcements is generated, and just simple things like tracking those to refresh the display of a system browser needs to be optimised to avoid degrading performance significantly.

Thierry

[1] https://github.com/ThierryGoubier/AltBrowser/blob/pharo5/Alt-Browser.package/AltBrowser.class/class/registerOnSystemAnnouncements.st