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