ROADMAP 3.2 KB

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