Ciaran McCreesh wrote:
Motivation
==========

There are currently several ways of getting news out to our users, none of them
particularly effective:

This assumes the following ways are really ineffective, something which you don't prove or give any reason for. Hence it's eligable for another big discussion. To avoid that, I would suggest to add a number of reasons, or whatever to make this assumption sound (more) valid. It is important, I think, that the reader can understand your grounds for saying this. (I personally disagree on this statement now, but it makes no use discussing it since you haven't given any ground as on why. Maybe if you would give a definition, I could adjust my own definition and agree.)

A more reliable way of getting news of critical updates out to users is required
to avoid repeats of the various recent upgrade debacles.

Perhaps you want to add a small footnote here, to give a small example of such debacle, and using that example point out what is the problem you think is important, and hence will address in this paper... eh GLEP.

This GLEP proposes a
solution based around pushing news items out to the user via the ``rsync`` tree.

This is a minor side issue, but I think that GLEP 2 states that you should use ' instead of `. No discussion on it please, I might be wrong or you just didn't know.

Preemptive
    Users should be told of changes *before* they break the user's system,
    after the damage has already been done.

style suggestion for unambigous interpretation:
perhaps a "because if applied afterwards" instead of "after"

No user subscription required
    It has already been demonstrated [#forums-whining]_ that many users do not
    read the ``gentoo-announce`` mailing list or ``RSS`` feeds. A solution which
    requires subscription has no advantage over current methods.

You implicitly state that many users do not read the gentoo-announce list and RSS-feeds because they are subscription based. This sounds like a too quick assumption to me. At least it is not founded in any way. Consider that for RSS-feeds one typically doesn't have to subscribe, but just add it to his/her reader. Make clear why you think the subscription model stops users from reading, and why a push-based alternative (as you suggest here) will work. Remember that it is easy to say here that users don't read what's on their consoles as well, as in post emerge messages etc. So make sure you deal with it upfront, why you think now it *will* work.

No user monitoring required
    It has already been demonstrated [#forums-whining]_ that many users do not
    read news items posted to the Gentoo website, or do not read news items
    until it is too late. A solution that relies upon active monitoring of a
    particular source has no advantage over current methods.

Apart from that this point seems to repeat much of the previous one, it introduces a new unfounded claim (users do read, but now too late) which somehow contradicts previous statements. Beware that you clearly deal with this, or just introduce it earlier so it doesn't look you're contradicting yourself.

Lightweight
    It is not reasonable to expect all users to have an MTA, web browser, email
    client, cron daemon or text processing suite available on their system.

Direct question that follows from this: what *do* we expect a user/system to have available? I think it's good to state that as well, since you're excluding a lot here in once sentence.

3. The news item is committed to a CVS (or Subversion [#glep-36]_) repository.
   From here, it is merged with the rsync tree. This is described in `News Item
   Distribution`_.
4. The news item is merged with the rsync tree. Implementation details of this
   point are beyond the scope of this GLEP; existing solutions are in place
   for merging GLSAs to the tree.

Where does point 4 differ from the second part of point 3? Also, point 3 implies that the merging into the rsync tree is being described further on, while point 4 states the oposite of not discussing it (out of scope). Maybe split point 3 and merge with 4?

5. Users fetch the news item when they sync. This ensures that the news items in
   question are pushed to the user before the user accidentally makes an
   unwanted change. No changes to the existing rsync process are required by
   this GLEP.

I would suggest a reference to a place where you will explain this 'pushing' to the user in detail. Especially the time and the way how are important. Or maybe I was just confused by "pushed" and is the only thing this point wants to say that all news items are just synced together with the rest of the portage tree upon a emerge --sync. The latter sounds logical considering the last sentence quoted above.

6. Portage filters the news item and, if it is relevant, installs it in a
   special location to be read by a news item reader. Messages are also
   displayed to inform the user that news is available.

So, same as for point 5, the exact details on how this works and what a 'news item reader' is (since you previously defined a requirement of having almost nothing available on the system) should be refered to here. I want to be sure that you will elaborate on it lateron, so I can stack up my many questions for now.

7. The news item is handled by the user's choice of news item reader. See `News
   Item Clients`_.

Wow. Seems like point 6 mentioned 'news item reader' too early! Same for point 5 of mentioning "pushing" which is only dealt with in point 6. In any case, the reference is there: good.

The news item will be named in the form ``yyyy-mm-dd-item-name.en.txt``, where
``item-name`` is a very short name (e.g. ``apache-updates``) and ``en`` is the
two letter ISO 639 [#iso-639]_ language code for the news item. The short name
must consist only of characters ``a-z``, ``A-Z``, ``0-9`` and ``-`` (hyphen).

Consider replacing hyphen with an underscore to ease parsing.

An English (``en``) version must be available for all news items. Other
languages may be provided either by the original author or by other translators
who have commit access. This anglocentricity is justified on the grounds that
nobody objected to it with GLEP 34 [#glep-34]_.

This might sound a bit 'attacking'. Try to rephrase it a bit to sound more formal. Also, note that probably noone cares about it and takes it for granted. You included support for other languages, so there's nothing to make a sharp point on here, I guess. (Maybe: "An English (''en'') version must be available for all news items as per GLEP 34 [#glep-34]_. Other languages ...")

A news item's content will consist of an RFC 822 [#rfc-822]_ style header
followed by the main body of the message as plain text. This GLEP defines
various optional and mandatory headers. Future GLEPs may propose new headers --
tools handling these news items must ignore any unrecognised header.

Ah, a clear sight on the future. Good! (Also from the perspective of the paper.)

``Author:``
    Author's name and email address, in the form ``Real Name <[EMAIL 
PROTECTED]>``.
    Mandatory, multiple author fields may be specified if appropriate.

Separated how?  Using commas, semicolons, spaces or whatever?

``Posted:``
    Date of posting, in ``dd-mmm-yyyy`` format (e.g. 14-Aug-2001). UTC time in
    ``hh-mm-ss +0000`` format may also be included. This field is mandatory.

Consider stressing the requirement for UTC time by stating it in a separate sentence.

``Version:``
    Initially 1. Incremented every time a non-trivial change is made.  Changes
    which require a re-read of the news item should instead use a new news item
    file.

Perhaps you want to track trivial changes as well in the minor, in order to be able to quickly see a change was made, and prevent people from considering a non-trivial change as trivial. Maybe you should explicitly state this field is optional and why. I could think of some reasons why this header should be mandatory, but perhaps you add a completely different value to the header than I do now.

The following headers are used for filtering. If none of these headers are
specified, the news item is displayed for all users. Otherwise, the news item is
displayed if *at least one* header matches.

From a completeness perspective, it would perhaps be a option to include a special header that contains a boolean expression that resolves to true if the message is relevant to the user, and false otherwise. This would allow AND and NOT to be included instead of only OR semantics. In any case, elaborate on why supporting only OR was chosen and why other (probably investigated) options were discarded (and hence make my statement above unnecessary).

The text body should be wrapped at 72 characters. No fancy formatting or tab
characters should be used -- the news item may be being displayed directly to a
terminal. Paragraphs should be separated by two blank lines.

Elaborate some more on "No fancy formatting or tab characters". People might want/like to include a bulleted/numbered list or insert a small (shell) code example. Also make some note on the average length (number of paragraphs) and perhaps a predefined structure (ie.: introduction/abstract, impact, solutions/actions, links/more-information)

    YourSQL databases created using YourSQL version 4.0 are incompatible
    with YourSQL version 4.1 or later. There is no reliable way to
    automate the database format conversion, so action from the system
    administrator is required before an upgrade can take place.

    Please see the Gentoo YourSQL Upgrade Guide for instructions:

        http://www.gentoo.org/doc/en/yoursql-upgrading.xml

Note that this indenting of the URL can be considered 'fancy formatting'. Hence there is a clear need to define the term.


    Also see the official YourSQL documentation:

        http://dev.yoursql.com/doc/refman/4.1/en/upgrading-from-4-0.html

    After upgrading, you should also recompile any packages which link
    against YourSQL:

        revdep-rebuild --library=libyoursqlclient.so.12

    The revdep-rebuild tool is provided by app-portage/gentoolkit.

Consider including a new paragraph in the example just to show your proposed structure.

Thus, all proposed news items must be posted to the ``gentoo-dev`` or
``gentoo-core`` mailing list, and ``Cc:``\ed to [EMAIL PROTECTED] at least 72
hours before being committed (exceptions may be made in exceptional
circumstances). Any complaints regarding wording or clarity **must** be
addressed before the news item goes live.

The idea is great, but perhaps the current docs teams should deal with this, as they are currently responsible for the webpages as well?
In any case:
- 72 hours is a lot (is there a way to shorten it when everything is
  there?)
- consider using either -dev or -core not both in an "OR" relation,
  clarity if good for everyone.
- what if noone feels like commenting on the submission?
- how do you know a certain dev is a competent English speaker?
- when do you know that it has been read, approved?
This raises many questions. I suggest to define the process a bit more and include a scheme that deals with this kind of concerns to actually make it water (and fool) proof.

News items must only be for **important** changes that may cause serious upgrade
or compatibility problems. Ordinary upgrade messages and non-critical news items
should remain in ``einfo`` notices. The importance of the message to its
intended audience should be justified with the proposal.

Somehow there needs to be a voting/selection process to figure out whether something is **important** or not. Be aware that there are bugs that indicate that users would like to see all einfo messages being delivered to them in some way. It might be confusing to the user what is the difference (and for me as well... when is something considered important?). Try to define what you think is important, or maybe give some well explanatory examples and what the advantage is over einfo. To comment on your YourSQL example: perhaps YourSQL just gives an error about an incompatible database when starting it, and points itself to a migration site. One could consider for this reason a message on it not important, as nothing gets unrepairable broken. Linking back to your 'preemptive' requirement: define damage and broken.

The unread news message will also be displayed immediately after an
``emerge sync``.

Include a note on configurability, i.e. disabling such behaviour for users that don't like it. Elaborating on other ways to inform the administrator (ie. via email) would be great too. Consider automated installs, end-user/desktop installs (basically everything from big to small) such that for each situation the information being supplied can be pushed to the admin in the way that is desirable (for him/her).

Portage may also warn of unread news items using, for example, a red flashy
before actions such as merging a package.

Portage must keep track of news items which have already been installed to avoid
repeatedly reinstalling a deleted news item.

Users who really don't care about news items can use ``rsync_excludes`` to
filter out the ``news/`` directory.

Does portage only 'warn' and still continue, or does it completely stop when an unread news item is found for a package that is to be upgraded? In the first case, the 'preemptive' requirement is being violated, in the latter, the option for a '--force' or something must be discussed. (Users with multiple systems might already know the message, or users might not be interested in it since they don't run the application in production.)

A concluding note on this Section is that I have the impression that only one use-scenario has been dealt with. Both this scenario is not described, as well as that this scenario doesn't reflect 99.9% of our user base. Many alternative opinions will stem from the fact that different people envision different scenarios. I think that elaborating on a number of representative (need not to be most popular) scenarios and how the proposed setup functions in there is good to get a grip on the many different demands of users. I could help to define a scenario for a larger scale more or less automated/cronned install.

News Item Clients
-----------------

Once a news item is 'installed', third party tools (or a traditional Unix pager
and ``rm``) can be used to display and view the news files. An ``eselect``
[#eselect]_ module shall be created as the 'suggested' display tool; other
display tools (for example, a news to email forwarder, which would be ideal for
users who sync on a cron) are left as options for those who desire them -- the
simple file format make this relatively simple.

This Section is too short in this form to live on its own. It should either be extended or merged with text above where I made a comment on the details. Perhaps you can elaborate on how to implement such forwarders, especially in the light of my comments on the previous Section.

News Item Removal
-----------------

News items can be removed (by removing the news file from the main tree) when
they are no longer relevant, if they are made obsolete by a future news item or
after a long period of time. This is the same as the method used for ``updates``
entries.

This sounds much alike what 'mail' used to (and still) does. It has the ability to see which messages are waiting, select them to read with a pager and delete them. Make sure you explain why this is better, and why you 'seemingly' reinvent the wheel here. I think I can think of some reasons, but I think you need to make it clear.

Integration with Existing Systems
=================================

It would be trivial to convert these news items into the format used for news
items on the Gentoo website or posts for the ``gentoo-announce`` mailing list.

Yes, and make it a requirement that all news messages get posted somewhere on public channels. Some admins really like to see all news items, so your GLEP should cover the possibility for that, I think. Somewhat related to my suggestion for using scenarios, this also implies that there will be users that want to turn this off completely, as such doing the right rsync_exclude should be documented somewhere.



I hope I have not created a new opportunity for large flame wars. I tried being quite constructive, and reviewed the GLEP as a scientific paper. Given the fact I had a lot to add, indicates for me there are a lot of questions to be asked regarding this GLEP. Many of those questions can simply be answered by providing the underlying rationales and background information that is not made explicit. I hope you can do something useful with my comments. If you don't like them, ignore them and throw them away. If you want to use them, feel free to do so.


--
Fabian Groffen
Gentoo for Mac OS X Project -- Interim Lead
--
gentoo-dev@gentoo.org mailing list

Reply via email to