13 ms·
GNU Guix package definitions for Gov.uk software and systems
- agumonkey 7y agogov.uk was already brilliant in terms of browsing ergonomics, now they're gone even higher.
- rmoriz 7y ago„There's no one else in GOV.UK that uses Guix to develop“ https://github.com/alphagov/govuk-guix/issues/32#issuecomment-331483255 https://github.com/alphagov/govuk-guix/issues/32#issuecommen...
- danieldk 7y agoFrom the related discussion: I think it's important for us to move on in this discussion, so I'm going to reject this RFC. This RFC proposes to use the govuk data tool to aid people in getting local development repo. However, the generation task of govuk data uses govuk-guix, which is a personal project built by Chris. We, as tech leadership of GOV.UK, have decided not to add guix to the GOV.UK stack. There's a lot of value in the example of the guix data tool and this discussion. We'll make sure that it informs the discussions we're having right now about work on the GOV.UK developer environment for next quarters. https://github.com/alphagov/govuk-rfcs/pull/101#issuecomment-500828466 https://github.com/alphagov/govuk-rfcs/pull/101#issuecomment... So, it seems to be once person's project and the gov.uk leadership seem to have rejected Guix. Still a shame though, Guix and Nix are great for reproducibility and setting up development environments. But I also understand that they don't want to introduce Guile Scheme, which most of their developers will not have a background in.
- cutler 7y agoYes, a Ruby port might have had a better chance given the number of Ruby contractors working for gov.uk.
- firethief 7y agoA Ruby port of Guix?
- meitham 7y agoAs in Linuxbrew, Homebrew of Linux?
- firethief 7y agoI have no idea what you're talking about. I was replying to a comment that, if I understand correctly, was suggesting "porting" Guix so that packages could be defined in Ruby instead of its native Guile, for the purposes of maintainability. But I may not have understood correctly, because I don't see how anyone could think that would improve maintainability. Hence the question.
- trianglesphere 7y agoHomebrew, a pretty dominant command line package manager for mac osx, has its package definition/install scripts written in ruby. It doesn't do the functional dependencies aspect well, but it is the package manager for macs.
- firethief 7y agoOh, I didn't know Homebrew is scripted in Ruby. Thanks, that's the connection I was missing!
- cutler 7y agoConsidering the ratio of professional, commercial, maintainable software written in Ruby to that written in Guile approaches infinity I fail to grasp your point about Guile being such an essential ingredient.
- ris 7y agoUsing Ruby to attempt to build entirely reproducible and yet flexible software package definitions would be an anathema. There is a reason functional programming languages are chosen in these cases.
- ris 7y agoThere are a couple of us who use Nix.
- rlpb 7y ago"anyone stumbling upon these repositories (both inside and outside GOV.UK) may assume this is needed to build and run GOV.UK" https://github.com/alphagov/govuk-guix/issues/32#issuecomment-330627857 https://github.com/alphagov/govuk-guix/issues/32#issuecommen...
- qwerty456127 7y ago"Ok. I'll delete these repositories at the end of the day on Monday." (;,;)
- edward 7y agoI've sent them a pull request with some spelling corrections. https://github.com/alphagov/govuk-guix/pull/35/files https://github.com/alphagov/govuk-guix/pull/35/files
- Eldt 7y agoThanks for informing us
- flowless 7y agoWe're trying something similar - to provide a set of curated services with example deployments for cities or municipalities. We build on NixOS and use morph for deployment. Services include simple-nixos-mailserver, Redmine, Sympa, owncloud with LibreOffice Online and many more. If you're working on something similar or your're interested in helping with this cause feel free to contact me via email or IRC.
- cheez 7y agoI think I know the answer but any reason why a maintained docker image isn't good enough?
- majewsky 7y agoNot GP, but an advantage of a NixOS module is that it has a strongly-typed, explicit API for configuration options, whereas a Docker image would require documentation ala "set those 10 env vars" or "give a YAML config file that looks like this".
- danieldk 7y agoHow does morph compare to nixops?
- flowless 7y agoIt doesn't maintain any state - NixOps uses SQLite database which makes it cumbersome to share with other devs. Morph can't create machines for you - it doesn't have any backends except for SSH. It means fewer dependencies but you need to create targets manually or with something like Terraform. I've only used 'libvirt' and 'none' backends with NixOps and even wrote a 'dumb' backend that unlike 'none' backend wouldn't generate and store SSH keys in state but respects .ssh/config. One feature of morph is really nice - declarative health checks that are run after the deployment automatically or can be triggered manually. I also find it easier to explain to not-that-technical people as it basically requires one or two commands. For the reference: https://github.com/DBCDK/morph https://github.com/DBCDK/morph
- gravypod 7y agoFor software designed to be hosted in a datacenter (rather than distributed to an end user) is there a reason why Guix is better than some containerization framework? With things like Nix there's reproduciblity guarantees. With containers it (appears) simpler to package and reproduciblity ship your software. What is Guix's main selling point?
- georgyo 7y agoNix and Guix are extremely similar. Guix is a fork of nix that is rewriting it to be guile all the way down. I personally like Nix's syntax better than a lisp, but that is just a preference. The core of how they operate is the same. Just look at their build/ci system. https://hydra.nixos.org/ https://hydra.nixos.org/ https://ci.guix.gnu.org/ https://ci.guix.gnu.org/
- henryslater 7y agoYeah but if I had the option of Docker or something nix based, why would I not choose Docker? Particularly as deploying to most Clouds is pretty easy if an app in already in a Docker Container.
- fiddlerwoaroof 7y agoOne advantage is that guix/nix only isolate dependencies. So, if I want two or more utilities to interact, I don’t need to bring in something like docker-compose or used network protocols, I just depend on both and write a script or something. This way, I can start with each service on its own container and then, as necessary, move two services into one container or whatever. Also, nix/guix are somewhat lower-overhead ways to build a system for local development than containers.
- danieldk 7y agoYou can easily build Docker images using Nix. Benefits: (1) reproducability, if you pin to a certain nixpkgs, you always get the same set of packages; (2) layers don't have to be full filesystem diffs; (3) the image only contains the computed closure. E.g. I produce Docker images an NLP program with Nix. The image only contains: glibc, tensorflow, my program, word embeddings, the model. No other system files or dependencies. Since the image build expression uses Nix expressions, I can also directly use the same models on my Linux workstation, Linux servers, macOS, etc. without Docker. This is a good starting point: https://grahamc.com/blog/nix-and-layered-docker-images https://grahamc.com/blog/nix-and-layered-docker-images
- nailer 7y agoCan someone familiar with this explain what it is? I've read the guix page and it's a package manager - so is this a graphical or command line tool to do UK government stuff (with no screenshots)? Or something else?
- civodul 7y agoGuix is a tool for declarative and reproducible software deployment. You can view it as a package manager, but it's also an OS configuration management tool, a container image provisioning tool, and more. Guix 1.0 was released just two months ago. The announcement summarizes what it can do for you in these areas: https://guix.gnu.org/blog/2019/gnu-guix-1.0.0-released/ https://guix.gnu.org/blog/2019/gnu-guix-1.0.0-released/ .
- nailer 7y agoThat doesn't answer the question. What do these guix gov UK packages do?
- deleted 7y ago[deleted]