1 -*- mode: org; coding: utf-8; -*-
3 #+TITLE: Tentative GNU Guix Road Map
5 Copyright © 2012, 2013, 2014, 2015 Ludovic Courtès <ludo@gnu.org>
7 Copying and distribution of this file, with or without modification,
8 are permitted in any medium without royalty provided the copyright
9 notice and this notice are preserved.
11 The goals of the GNU Guix project are two-fold:
13 - to build a purely functional package manager, based on Nix and
16 - to use it to build a practical 100% free software distribution of
17 GNU/Linux and possibly other GNU variants, with a focus on the
18 promotion and tight integration of GNU components–the GNU system.
20 Since its inception, the project has gone a long way towards that goal. Below
21 is a list of items we want for version "1.0" of the Guix System Distribution.
22 There will be a few 0.x releases by then to give the new features more
25 You're welcome to discuss this road map on guix-devel@gnu.org or #guix on
28 * Features scheduled for 1.0
30 - larger & more robust build farm
31 + we need a powerful, dedicated front-end
32 + armhf-linux build machine
33 + leave Hydra in favor of 'guix publish' + custom code?
37 + configurable name service switch
38 + whole-system unit tests, using VMs
39 - more service definitions
40 + mcron, postfix(?), wicd(?), etc.
41 - better 'guix system'
42 + 'reconfigure' should be able to restart non-essential services
43 + support for '--list-generations' and '--delete-generations'
45 + using Git to fetch the source instead of re-downloading everything
47 + install new .mo files and new manual
48 + authentication of the Guix source: use signed commits?
49 - simplified, purely declarative service list in 'operating-system'
50 + it should be possible to inspect the service instance declarations and
54 + guile-ncurses installer?
59 - complete GNU/Hurd port
60 - use content-based addressing when downloading substitutes to reduce
61 bandwidth requirements
62 + design nar v2 format where file contents are replaced by their hashes
63 + leverage /gnu/store/.links
64 - binary origin tracking
65 + keep signatures in sqlite.db
66 + preserve signatures upon import/export
67 - peer-to-peer distribution of updates (GNUnet?)
68 - more deterministic builds
69 + identify & fix sources of non-determinism in builds
70 + strengthen guix-daemon containers to further increase reproducibility
71 + trusting-trust: bootstrap with different tool chains
72 + fixed-point: re-bootstrap until fixed point is reached
73 + distributed validation: compare contents of store items with others
74 * resist a hydra.gnu.org compromise
75 - reproducible containers: mix of 'guix environment' and 'guix system vm'
76 - execute code with least privilege
77 + build containers like guix-daemon does
78 + provide a Plash-like interface in Bash
79 - daemon rewritten in Guile
80 - more shepherd integration
81 + monitor network interfaces and start/stop events based on that
82 + include a DHCP client written in Scheme