The attached GLEP is a draft proposal for the emerge --news thing that's been under discussion. There are still some TODO items. These are calls for people to weigh in with suggestions. Of course, suggestions on other items are good too...
There is currently no explanation as to why this GLEP should be chosen over ChrisWhite's 42. I will add such a section if anyone requests it. Grant, please pick me a number. I'll post this one to -user and the forums if it survives a round or two of being shot at in here first... -- Ciaran McCreesh : Gentoo Developer (Vim, Shell tools, Fluxbox, Cron) Mail : ciaranm at gentoo.org Web : http://dev.gentoo.org/~ciaranm
GLEP: XX Title: Critical News Reporting Version: $Revision: $ Author: Ciaran McCreesh <[EMAIL PROTECTED]> Last-Modified: $Date: $ Status: Draft Type: Standards Track Content-Type: text/x-rst Created: 31-October-2005 Post-Date: 1-November-2005 Abstract ======== This GLEP proposes a new way of informing users of important updates and news regarding tree-related items. Motivation ========== There are currently several ways of getting news out to our users, none of them particularly effective: * Gentoo Weekly News * The ``gentoo-announce`` mailing list * The Gentoo Forums * The main Gentoo website A more reliable way of getting news of critical updates out to users is required to avoid repeats of the various recent upgrade debacles. Requirements ============ An adequate solution must meet all of the following requirements: 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. In particular, this means that any markup to be parsed must be in a very simple format. Relevant System administrators who do not use a particular package should not have to read news items which affect purely that package. Some news items may be of relevance to most or all users, but those that are not should not be forced upon users unnecessarily. 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. 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. No privacy violations Users of the solution should not be required to provide information about their systems (for example, IP addresses or installed packages). Preemptive Users should be told of changes *before* they break the user's system, not after the damage has already been done. The following characteristics would be desirable: Internationalisable Being able to provide messages in multiple languages may be beneficial. Quality control There should be some way to ensure that badly written or irrelevant messages are not sent out, for example by inexperienced developers, those whose English language skills are below par or morons. Simple for developers Posting news items should be as simple as is reasonably possible. Simple for users Reading relevant news items should be as simple as is reasonably possible. Compatibility with existing news sources It would be ideal if a news system could easily be integrated with the existing communication methods. Specification ============= The following specification is based upon Stuart's "Favouring an automatic news mechanism" post [#stuart-blog]_ and discussion on the ``gentoo-dev`` mailing lists [#dev-thread]_ and the ``#gentoo-dev`` IRC channel. News Item Source ---------------- News items are to be made available via the Portage tree. This removes any need for polling of a remote source. A new directory, ``news/``, will be created in the main tree. Commit access to this directory will be handled in the same way as for the rest of the tree. This directory will contain further subdirectories named ``yyyy-mm/``, where ``yyyy`` is the current year and ``mm`` is the current month number (01 for January through 12 for December) -- this extra level of separation will help keep news items more manageable. Users who really don't care about news items can use ``rsync_excludes`` to filter out the ``news/`` directory. .. Note:: The ``profiles/`` directory will *not* be used. This fits in with the Portage team's future plans for ``profiles/`` and ``metadata/`` separation. Each news item will be represented by a single text file. This file will be encoded using UTF-8 for compatibility with and for the same reason as existing Gentoo documentation [#docs-policy]_ and tree [#glep-31]_ practices. 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 directory and file name rules are designed specifically to allow easy sorting by date. 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]_. News Item File Format --------------------- A news item 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 discard any unrecognised header. News Item Metadata Headers '''''''''''''''''''''''''' ``Title:`` A short (maximum 44 characters) descriptive title. Mandatory. ``Author:`` Author's name and email address, in the form ``Real Name <[EMAIL PROTECTED]>``. Mandatory, multiple author fields may be specified if appropriate. ``Translator:`` For translated news items, the translator's name and email address. ``Content-Type:`` Must be ``text/plain``. Mandatory. ``Posted:`` Date of posting, in ``dd-mmm-yyyy`` format (e.g. 14-Aug-2001). Mandatory. ``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. News Item Relevance Headers ''''''''''''''''''''''''''' If none of the following headers are specified, the news item is aimed at all users. Otherwise, the news item should only be displayed if at least one of the criteria matches. ``Display-If-Installed:`` A dependency atom or simple package name (for example, ``<dev-lang/php-5_alpha`` or ``net-www/apache``). If the user has the package specified installed, the news item should be displayed. ``Display-If-Keyword:`` A keyword [#glep-22]_ name, for example ``mips``. If the user is on the arch in question, the news item should be displayed. TODO: Display-If-USE for USE flag renames? TODO: Display-If-Mode: ``any`` or ``all`` or ``none`` with ``any`` being the default? News Item Body '''''''''''''' The header section must be followed by a blank line, then the main body of the text. 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. Example News Item ''''''''''''''''' The following hypothetical news item would be placed in ``news/2005-11/2005-11-01-mysql-4.0-4.1-upgrade.en.txt``. :: Title: YourSQL Upgrades from 4.0 to 4.1 Author: Ciaran McCreesh <[EMAIL PROTECTED]> Content-Type: text/plain Posted: 01-Nov-2005 Display-If-Installed: <dev-db/yoursql-4.1_alpha 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 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. .. Note:: The presence of URLs in a news item does not contradict the "no need for a web browser" requirement. Many systems are administered remotely, for example over ``ssh``. News Item Quality Control ------------------------- 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. 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. There have been complaints regarding the comprehensibility of some upgrade notices and news items in the past. This is understandable -- not every Gentoo developer speaks English as a first language. However, for the sake of clarity and professionalism it is important that any language problems be corrected before inflicting a news item upon end users. News Item Display ----------------- Whenever relevant unread news items are found, ``emerge`` will copy the news file into ``/var/lib/gentoo/news/``. TODO: or ``/var/gentoo/news/`` or ``/etc/gentoo/news/``? And make it overridable by an environment variable? Notification that new relevant news items will be displayed via the ``emerge`` tool in a similar way to the existing "configuration files need updating" messages: :: * Important: 3 config files in /etc need updating. * Type emerge --help config to learn how to update config files. * Important: there are 5 unread news items. * Type emerge --help news to learn how to read news files. From there, third party tools (or a traditional Unix pager and ``rm``) can be used to display and view the news files. An ``eselect`` [#eselect]_ module can easily be created as the 'suggested' display tool; other display tools (for example, a news to email forwarder) are left as options for those who desire them -- the simple file format make this relatively simple. TODO: Implementation detail: what's the easiest way to keep track of "stuff that has already been copied over" to avoid duplicating news? A straight list with filtered language codes in a text file is the obvious solution... News Item Removal ----------------- News items can be removed (by removing the news file from the main tree) when they are no longer relevant, or after a long period of time. This is the same as the method used for ``updates`` entries. 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. There is an existing automated tool for posting GLSAs to the forums. A similar tool can be used for these news items. TODO: reference for the above. or did I just make it it? Backwards Compatibility ======================= Backwards compatibility is not a concern here. Existing tools will simply ignore the ``news/`` directory. Reference Implementation ======================== TODO References ========== .. [#dev-thread] "[gentoo-dev] Getting Important Updates To Users", http://marc.theaimsgroup.com/?t=113065837900001&r=1&w=2 .. [#docs-policy] Gentoo XML Guide, Daniel Robbins et al., http://www.gentoo.org/doc/en/xml-guide.xml .. [#eselect] eselect modular framework for configuration and administration utilities, http://www.gentoo.org/proj/en/eselect/index.xml .. [#forums-whining] Gentoo Forums thread "Gentoo Apache2 Config Change Idiocy", http://forums.gentoo.org/viewtopic-t-384368.html .. [#glep-22] GLEP 22: "New "keyword" system to incorporate various userlands/kernels/archs", Grant Goodyear, http://www.gentoo.org/proj/en/glep/glep-0022.html .. [#glep-31] GLEP 31: "Character Sets for Portage Tree Items", Ciaran McCreesh, http://www.gentoo.org/proj/en/glep/glep-0031.html .. [#glep-34] GLEP 34: "Per-Category metadata.xml Files", Ciaran McCreesh, http://www.gentoo.org/proj/en/glep/glep-0034.html .. [#iso-639] ISO 639 "Code for the representation of names of languages" .. [#rfc-822] RFC 822 "Standard for the format of ARPA Internet text messages" .. [#stuart-blog] "Favouring an automatic news mechanism", Stuart Herbert, http://stu.gnqs.org/diary/gentoo.php/2005/10/28/favouring_an_automatic_news_mechanism Credits ======= Thanks to Brian Harring, Stuart Herbert, Donnie Berkholz, Alec Warner and Dan Meltzer for input. Some of the ideas presented here are theirs, others go completely against their suggestions. Copyright ========= This document has been placed in the public domain. .. vim: set tw=74 fileencoding=utf-8 spell spelllang=en :
pgpEfbDnDUKCz.pgp
Description: PGP signature