You should excuse me. What follows is a combination of wishful thinking and inquiry, and I really don't know if there's place or interest in this kind of discussion here.
An Author should be an object. Right? Because a String or an
"annotation" is not the most accurate concept that describes you in the
system, and I know smalltalkers which feel a subtle ontological
degradation when they realize they are not an object :)
But, what is an Author anyway? It is different from a Mantainer? There
are External Contributors? The role plays an important game here. And
an Author or Mantainer is not necessarily an individual, it could be
even an Institution or Team. Often Institutions, for example, have
hierarchical names, historical
names, they are joined or splitted, etc. Modelling this set of
interactions in an universal
way is very complex [*], and there should be a reasonable stopper,
which I honestly think, is the most difficult thing to find because
requires a lot of experience building systems. I am the only one who
think this?
This little issue (not having Authors and friends as objects) prevents doing possibly some pretty cool tools.
-What about finding the role of somebody in a method?
-And what about assessing the author of a class and the maintainer?
-You may want to find the e-mail of somebody (to verify a patch, to ask him something), but is not there.
-Avoiding impersonation when commiting in public repositories?
-You comment a message, compile the method and...magically you're the new "author".
-And could limit the evolution of some research developments like Subjectivity, or reverse engineering tools.
But, I'm lying to you if I advocate such simplistic view. There's
no such Author, and in history the authors as we know today are just a
constructed figure in Literature after the Renaissance. In fact
computer practicioners adopted that word, as many others, as a common
practice taking words from other fields, but there's a real challenge in
determining the very nature of an Author.�� An anonymous method has a
writer, but not an author, and one could think the same about
auto-generated code. So an author could be a constructed figure out of
the writers, and there are other figures not so visible in a first
sight. So having a good reification of a Writer, Author, and its roles, bring new possibilities to Smalltalk/Pharo, because the richer your
"human model" and vocabulary, the more you can express and think about
the continuous, the problem of interpretation and authority, etc.
Cheers
Hern��n
[*] We are facing this situation in our FRBRoo model currently.
> This package, in the last core image is modified but not commited soFirst, you should update your image. It should be a core. Your change
> when following the steps
> from the HowToContribute wiki page, in the part of creating a mcz
> package with the change the mcz
> generate will include the other uncommited changes. Should I use a
> changeset instead in order to not
> commit changes that I don't want?
must be produced for Core.
Then, implement your fixe. If more than one package is touched, then
produce a slice. You should save your fix in PharoInbox using
Monticello.
Last step, make sure your fix load in a fresh and updated core image;
add an issue in the google website; send an email to the mailing list.
A reification of author. Authors should not be strings passed around.
> What is the goal with the Author class?