guix-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

GSoC 2019 Recap


From: Jakob L. Kreuze
Subject: GSoC 2019 Recap
Date: Mon, 19 Aug 2019 19:20:47 -0400
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.2 (gnu/linux)

Hi all,

Google Summer of Code requires a "work product submission" [1] publicly
documenting the project's results, so I'm writing this to summarize the
state of 'guix deploy' and to share my visions for next steps.

GSoC-related patches accepted into 'master': [2]

- Initial implementation of 'guix deploy'.
  - ssh: Add 'identity' keyword to 'open-ssh-session'. (a9b09ed776)
  - gnu: Add machine type for deployment specifications. (fa9edf09e9)
  - Add 'guix deploy'. (5cbb832fb1)
  - doc: Add section for 'guix deploy'. (02a962c8e0)
  - Remove references to non-existent 'tests/machine.scm'. (834b8a4110)
- Refactoring to share code between 'guix deploy' and 'guix system reconfigure'.
  - guix system: Add 'reconfigure' module. (5c793753b3)
  - guix system: Reimplement 'reconfigure'. (5c8c8c4554)
  - tests: Add reconfigure system test. (d23a00b599)
- Various bugfixes and improvements.
  - reconfigure: Reload all shepherd files when upgrading services. (1db6f137d9)
  - doc: Add note about signing keys. (5bc751925d)
  - machine: Rename 'system' field. (d97ce20400)
  - reconfigure: Fix GC root installation. (5f04e9f962)
  - machine: Implement safety checks. (fd3119db4f)
  - reconfigure: Improve tests for system activation. (ec12235ce2)
  - deploy: Use all machine modules when loading deployment (55e238f2ab)
  - machine: Add 'build-locally?' field for managed hosts. (d84e9b75b2)
  - remote: Build derivations appropriate for the remote's (2c8e04f136)
  - remote: Remove '--system' argument. (03cbd94d48)
  - machine: Allow non-root users to deploy. (5ea7537b9a)
  - machine: Implement 'roll-back-machine'. (9c70c460a0)
  - machine: Automatically authorize the coordinator's signing key. (3033d59ac9)
  - doc: Add description of 'build-locally?'. (3967a946c6)
  - remote: Use (%daemon-socket-uri) rather than hard-coded path. (5f32531770)
  - remote: Resolve missing 'G_'. (ddef146b89)
  - machine: Use 'become-command'. (4cc5e5204b)

At this point, I feel the "simple case" of upgrading or configuring a
remote machine that's already running the Guix system is reasonably
well-supported. Assuming that you're running Guix from 'master', 'guix
deploy' is right at your fingertips.

More work is necessary if we want 'guix deploy' to be a proper DevOps
tool, however. The most significant of those features is support for
more advanced use-cases such as automatic provisioning of resources from
Virtual Private Server providers (which I have made some progress on
[3]). I feel the newly-generalized "reconfiguration code" could use some
attention as well.

Thanks for a great summer, guys. I'm excited to continue working on
this.

Regards,
Jakob

[1]: https://developers.google.com/open-source/gsoc/help/work-product
[2]: https://git.savannah.gnu.org/cgit/guix.git/log/?qt=author&q=Jakob+L.+Kreuze
[3]: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=37083

Attachment: signature.asc
Description: PGP signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]