summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--ROADMAP118
1 files changed, 64 insertions, 54 deletions
diff --git a/ROADMAP b/ROADMAP
index 1843743916..45fce45912 100644
--- a/ROADMAP
+++ b/ROADMAP
@@ -2,7 +2,7 @@
 
 #+TITLE: Tentative GNU Guix Road Map
 
-Copyright © 2012, 2013, 2014 Ludovic Courtès <ludo@gnu.org>
+Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
 
   Copying and distribution of this file, with or without modification,
   are permitted in any medium without royalty provided the copyright
@@ -17,56 +17,66 @@ The goals of the GNU Guix project are two-fold:
     GNU/Linux and possibly other GNU variants, with a focus on the
     promotion and tight integration of GNU components–the GNU system.
 
-This document lists milestones toward these goals.
-
-The timeline below was written at the end of Dec. 2012.  An updated and more
-detailed list of the remaining milestones was posted at
-https://lists.gnu.org/archive/html/guix-devel/2013-12/msg00120.html .
-
-The actual timeline was of course slightly different than initially
-envisioned, and so was the feature set–things like cross-compilation support
-and the MIPS64 port were not planned back then.  See the news section at
-http://www.gnu.org/software/guix/ and ‘NEWS’ for the release history.
-
-* GNU Guix 0.1: Jan. 2013 (was: Dec. 2012)
-
-** basic package management facilities
-
-Including install, upgrade, remove, roll-back, and search.
-
-** self-contained user-land distribution
-
-  - GNU/Linux-only, i686 and x86_64; optionally mipsel64
-  - ~100 non-X11 packages
-
-** maybe integrated Nix code
-
-* GNU Guix 0.2: Feb./Mar. 2013
-
-** improved package management features
-
-  - user-environment hooks
-  - sophisticated handling of collisions when building a union (package
-    priorities, etc.)
-
-** [[file:TODO::*add%20guix-pull][guix-pull tool]] to quickly update Guix and GNU for normal users
-** support for fetching pre-built binaries
-
-  - this is known as the "binary-cache substituter" in Nix parlance
-
-** auto-update facility available for GNU packages
-
-** more packages
-
-  - Xorg
-  - Emacs
-
-* GNU Guix 0.9: June 2013
-
-** bootable GNU/Linux-Libre distro
-** high-level OS configuration descriptive EDSL, à la NixOS
-
-* GNU Guix 1.0: September 2013 (GNU anniversary release)
-
-** bootable GNU/Linux-Libre distro with non-GUI installer
-** usable for a range of hacker-style uses
+Since its inception, the project has gone a long way towards that goal.  Below
+is a list of items we want for version "1.0" of the Guix System Distribution.
+There will be a few 0.x releases by then to give the new features more
+exposure and testing.
+
+You're welcome to discuss this road map on guix-devel@gnu.org or #guix on
+Freenode!
+
+* Features scheduled for 1.0
+
+  - larger & more robust build farm
+    + we need a powerful, dedicated front-end
+    + armhf-linux build machine
+    + leave Hydra in favor of 'guix publish' + custom code?
+  - more OS features
+    + LVM support
+    + encrypted root
+    + configurable name service switch
+    + whole-system unit tests, using VMs
+  - more service definitions
+    + mcron, postfix(?), wicd(?), etc.
+  - better 'guix system'
+    + 'reconfigure' should be able to restart non-essential services
+    + support for '--list-generations' and '--delete-generations'
+  - better 'guix pull'
+    + using Git to fetch the source instead of re-downloading everything
+    + build more quickly
+    + install new .mo files and new manual
+    + authentication of the Guix source: use signed commits?
+  - simplified, purely declarative service list in 'operating-system'
+    + it should be possible to inspect the service instance declarations and
+      settings
+  - GUIs
+    + integrate guix-web?
+    + guile-ncurses installer?
+  - 'guix publish'?
+
+* Features for later
+
+  - complete GNU/Hurd port
+  - use content-based addressing when downloading substitutes to reduce
+    bandwidth requirements
+    + design nar v2 format where file contents are replaced by their hashes
+    + leverage /gnu/store/.links
+  - binary origin tracking
+    + keep signatures in sqlite.db
+    + preserve signatures upon import/export
+  - peer-to-peer distribution of updates (GNUnet?)
+  - more deterministic builds
+    + identify & fix sources of non-determinism in builds
+    + strengthen guix-daemon containers to further increase reproducibility
+    + trusting-trust: bootstrap with different tool chains
+    + fixed-point: re-bootstrap until fixed point is reached
+    + distributed validation: compare contents of store items with others
+      * resist a hydra.gnu.org compromise
+  - reproducible containers: mix of 'guix environment' and 'guix system vm'
+  - execute code with least privilege
+    + build containers like guix-daemon does
+    + provide a Plash-like interface in Bash
+  - daemon rewritten in Guile
+  - more dmd integration
+    + monitor network interfaces and start/stop events based on that
+    + include a DHCP client written in Scheme