1 | GLEP: 42 |
1 | GLEP: 42 |
2 | Title: Critical News Reporting |
2 | Title: Critical News Reporting |
3 | Version: $Revision: 1.4 $ |
3 | Version: $Revision: 1.5 $ |
4 | Author: Ciaran McCreesh <ciaranm@gentoo.org> |
4 | Author: Ciaran McCreesh <ciaranm@gentoo.org> |
5 | Last-Modified: $Date: 2005/12/11 01:38:18 $ |
5 | Last-Modified: $Date: 2005/12/13 03:21:59 $ |
6 | Status: Draft |
6 | Status: Draft |
7 | Type: Standards Track |
7 | Type: Standards Track |
8 | Content-Type: text/x-rst |
8 | Content-Type: text/x-rst |
9 | Created: 31-Oct-2005 |
9 | Created: 31-Oct-2005 |
10 | Post-History: 1-Nov-2005, 5-Nov-2005, 7-Nov-2005, 11-Dec-2005 |
10 | Post-History: 1-Nov-2005, 5-Nov-2005, 7-Nov-2005, 11-Dec-2005, 13-Dec-2005 |
11 | |
11 | |
12 | Abstract |
12 | Abstract |
13 | ======== |
13 | ======== |
14 | |
14 | |
15 | This GLEP proposes a new way of informing users about important updates and news |
15 | This GLEP proposes a new way of informing users about important updates and news |
… | |
… | |
19 | ========== |
19 | ========== |
20 | |
20 | |
21 | Although most package updates are clean and require little user action, |
21 | Although most package updates are clean and require little user action, |
22 | occasionally an upgrade requires user intervention during the upgrade process. |
22 | occasionally an upgrade requires user intervention during the upgrade process. |
23 | Recent examples of the latter include the ``gcc-3.4`` stabilisation on ``x86`` |
23 | Recent examples of the latter include the ``gcc-3.4`` stabilisation on ``x86`` |
24 | and the ``mysql-5`` database format changes. |
24 | and the ``mysql-4.1`` database format changes. |
25 | |
25 | |
26 | There are currently several ways of delivering important news items to our |
26 | There are currently several ways of delivering important news items to our |
27 | users, none of them particularly effective: |
27 | users, none of them particularly effective: |
28 | |
28 | |
29 | * Gentoo Weekly News |
29 | * Gentoo Weekly News |
30 | * The ``gentoo-announce``, ``gentoo-user`` and ``gentoo-dev`` mailing lists |
30 | * The ``gentoo-announce``, ``gentoo-user`` and ``gentoo-dev`` mailing lists |
31 | * The Gentoo Forums |
31 | * The Gentoo Forums |
32 | * The main Gentoo website |
32 | * The main Gentoo website |
33 | * RSS feeds of Gentoo news |
33 | * RSS feeds of Gentoo news |
|
|
34 | * ``einfo`` and ``ewarn`` messages in ``pkg_setup`` or ``pkg_postinst`` |
34 | |
35 | |
35 | A more reliable way of getting news of critical updates out to users is required |
36 | A more reliable way of getting news of critical updates out to users is required |
36 | to avoid repeats of the various recent upgrade debacles. This GLEP proposes a |
37 | to avoid repeats of the various recent upgrade debacles. This GLEP proposes a |
37 | solution based around pushing news items out to the user via the ``rsync`` tree. |
38 | solution based around pushing news items out to the user via the ``rsync`` tree. |
38 | |
39 | |
… | |
… | |
141 | Each news item will have a unique identifier. This identifier will be in the |
142 | Each news item will have a unique identifier. This identifier will be in the |
142 | form ``yyyy-mm-dd-short-name``, where ``yyyy`` is the year (e.g. ``2005``), |
143 | form ``yyyy-mm-dd-short-name``, where ``yyyy`` is the year (e.g. ``2005``), |
143 | ``mm`` is the month (``01`` through ``12``) and dd is the day of the month |
144 | ``mm`` is the month (``01`` through ``12``) and dd is the day of the month |
144 | (``01`` through ``31``). The ``short-name`` is a very short name describing the |
145 | (``01`` through ``31``). The ``short-name`` is a very short name describing the |
145 | news item (e.g. ``yoursql-updates``), consisting only of the characters ``a-z``, |
146 | news item (e.g. ``yoursql-updates``), consisting only of the characters ``a-z``, |
146 | ``0-9`` and ``-`` (hyphen). |
147 | ``0-9``, ``+`` (plus), ``:`` (colon) and ``-`` (hyphen). |
147 | |
148 | |
148 | News Item Directories |
149 | News Item Directories |
149 | --------------------- |
150 | --------------------- |
150 | |
151 | |
151 | Each news item will be represented by a directory whose name is the same as the |
152 | Each news item will be represented by a directory whose name is the same as the |
… | |
… | |
334 | |
335 | |
335 | Client Side |
336 | Client Side |
336 | ''''''''''' |
337 | ''''''''''' |
337 | |
338 | |
338 | Whenever relevant unread news items are found, the package manager will create a |
339 | Whenever relevant unread news items are found, the package manager will create a |
339 | file named ``/var/lib/portage/news/news.unread`` (if it does not already exist) |
340 | file named ``/var/lib/gentoo/news/news-magic-chicken.unread`` (if it does not |
340 | and append the news item identifier (eg ``2005-11-01-yoursql-updates``) on a new |
341 | already exist) and append the news item identifier (eg |
341 | line. |
342 | ``2005-11-01-yoursql-updates``) on a new line. |
342 | |
343 | |
343 | .. Note:: Future changes to Portage involving support for multiple repositories |
344 | .. Note:: Future changes to Portage involving support for multiple repositories |
344 | may require one news list per repository. Assuming repositories have some |
345 | may introduce repository names. In this case, the ``magic-chicken`` part of the |
345 | kind of unique identifier, this file could be named ``news-repoid.unread``. |
346 | filename should be replaced by a string representation of the repository |
|
|
347 | name. Thus, news item clients should use a wildcard rather than hardcoding |
|
|
348 | the ``magic-chicken`` string. |
346 | |
349 | |
347 | Notification that new relevant news items will be displayed via the |
350 | Notification that new relevant news items will be displayed via the |
348 | ``emerge`` tool in a similar way to the existing "configuration files need |
351 | ``emerge`` tool in a similar way to the existing "configuration files need |
349 | updating" messages: |
352 | updating" messages: |
350 | |
353 | |
… | |
… | |
356 | Checks for new news messages should be displayed: |
359 | Checks for new news messages should be displayed: |
357 | |
360 | |
358 | * After an ``emerge sync`` |
361 | * After an ``emerge sync`` |
359 | * After an ``emerge --pretend`` |
362 | * After an ``emerge --pretend`` |
360 | * Before an ``emerge <target>`` (which may also include a red warning message) |
363 | * Before an ``emerge <target>`` (which may also include a red warning message) |
|
|
364 | * Before an ``emerge --ask <target>`` sequence |
361 | |
365 | |
362 | The package manager may use a timestamp check file to avoid having to process |
366 | The package manager may use a timestamp check file to avoid having to process |
363 | news items unnecessarily. |
367 | news items unnecessarily. |
364 | |
368 | |
365 | The package manager must keep track of news items that have already been added |
369 | The package manager must keep track of news items that have already been added |
366 | to the unread list to avoid repeatedly marking a deleted news item. This could |
370 | to the unread list to avoid repeatedly marking a deleted news item. This could |
367 | be handled via a ``news.skip`` file, but implementation is not specified by this |
371 | be handled via a ``news-magic-chicken.skip`` file, but implementation is not |
368 | GLEP. |
372 | specified by this GLEP. |
369 | |
373 | |
370 | Users who really don't care about news items can use ``rsync_excludes`` to |
374 | Users who really don't care about news items can use ``rsync_excludes`` to |
371 | filter out the ``metadata/news/`` directory. |
375 | filter out the ``metadata/news/`` directory. |
372 | |
376 | |
373 | News Item Clients |
377 | News Item Clients |
374 | ----------------- |
378 | ----------------- |
375 | |
379 | |
376 | Once a news item is marked for reading, third party tools (or traditional core |
380 | Once a news item is marked for reading, third party tools (or traditional core |
377 | Unix tools) can be used to display and view the news files. |
381 | Unix tools) can be used to display and view the news files. |
378 | |
382 | |
379 | When a news item is read, its name should be removed from the ``news.unread`` |
383 | When a news item is read, its name should be removed from the |
380 | file. News clients may add the name to a ``news.read`` file in the same |
384 | ``news-magic-chicken.unread`` file. If a news client acts as an interactive |
381 | directory with the same file format. |
385 | reader rather than a gateway, it should then add the name to a |
|
|
386 | ``news-magic-chicken.read`` file in the same directory with the same file |
|
|
387 | format (again, ``magic-chicken`` should be a wildcard rather than hardcoded). |
382 | |
388 | |
383 | An ``eselect`` [#eselect]_ module shall be created as the 'suggested' display |
389 | An ``eselect`` [#eselect]_ module shall be created as the 'suggested' display |
384 | tool; other display tools (for example, a news to email forwarder, which would |
390 | tool; other display tools (for example, a news to email forwarder, which would |
385 | be ideal for users who sync on a ``cron``) are left as options for those who |
391 | be ideal for users who sync on a ``cron``) are left as options for those who |
386 | desire them. |
392 | desire them. |