Subject: [PATCH 0/9] Channel news distribution mechanism

From: Ludovic Courtès <[email-masked]>
Date: Mon, 16 Sep 2019 00:10:21 +0200

Hello Guix!

This patch series adds a mechanism for channel authors to distribute
“news entries” alongside their channels.  The goal is to provide a
way for channel authors (including authors of the 'guix channel!)
to inform their users about important changes.

For example, you’d tell people about package upgrades that require
manual intervention, about important new features, bug fixes, etc.

This is done by adding a “news file” to the channel.  Each entry in
that file is associated with a commit, meaning that the entry
describes changes related to that commit.  This information is what
allows ‘guix pull --news’ to determine whether a news entry is
relevant or not for the user: only entries corresponding to commits
that were just pulled are displayed.

It’s a bit weird to refer to commits from within a file in the repo
because it almost forces you to push so that you know the commit ID
that your news entry should refer to.  News entries become obsolete
if you rebase, too.  I think it’s acceptable, though.

Regarding i18n, the title and body of an entry can be provided in
several languages.  I wonder what workflow we should adopt;
obviously the TP wouldn’t be appropriate, and there’s no gettext
involved.

Anyway, this is it.  Feedback welcome!

Ludo’.

Ludovic Courtès (9):
  pull: '--news' shows the list of channels added or removed.
  git: 'update-cached-checkout' avoids network access when unnecessary.
  git: Add 'commit-difference'.
  channels: Add support for a news file.
  ui: Add 'current-message-language'.
  pull: Display channel news.
  pull: '-l' displays channel news.
  Add '.guix-channel' file.
  DRAFT etc: Add channel news file.

 .dir-locals.el        |   1 +
 .guix-channel         |   5 ++
 Makefile.am           |   8 ++-
 doc/guix.texi         |  62 +++++++++++++++++++--
 etc/news.scm          |  13 +++++
 guix/channels.scm     | 121 ++++++++++++++++++++++++++++++++++++++---
 guix/git.scm          |  58 +++++++++++++++++++-
 guix/scripts/pull.scm | 122 +++++++++++++++++++++++++++++++++++++++---
 guix/tests/git.scm    | 102 +++++++++++++++++++++++++++++++++++
 guix/ui.scm           |  18 +++++++
 tests/channels.scm    |  96 +++++++++++++++++++++++++++++++++
 tests/git.scm         |  99 ++++++++++++++++++++++++++++++++++
 12 files changed, 685 insertions(+), 20 deletions(-)
 create mode 100644 .guix-channel
 create mode 100644 etc/news.scm
 create mode 100644 guix/tests/git.scm
 create mode 100644 tests/git.scm

-- 
2.23.0