Online Guix Day Conference: schedule released!
The Guix hackers are very happy to announce the first online Guix Day Conference on Sunday November, 22nd. This conference is open to everyone (no registration fee) and will be held entirely online. Want to know the schedule, read on!
There will be no presentation on the 22nd! Please watch the talks beforehand.
Join us live on the 22nd to participate in the various sessions!
Live discussions will take place on Sunday, November 22nd, and the agenda is the following (UTC+1):
- 10:00–10:25: GNU Guix in psychology research and teaching
- 10:30–10:55: Fixing the CI
- 11:00–11:25: Nix and Guix: similarities and differences
- 12:00–12:25: (BoF) From v1.2 to release process
- 12:30–12:55: Porting Guix to modern PowerPC
- 13:00–13:25: Just build it with Guix
- 14:30–14:55: Progress so far on the Guix Build Coordinator
- 15:00–15:25: (BoF) Peer-to-peer substitutes and sources
- 15:30–15:55: Guile Hacker Handbook
- 16:30–16:55: (BoF) Rust and Cargo
- 17:00–17:25: Bootstrapping the Java Ecosystem
- 17:30–xx:yy: (BoF) The ways forward (roadmap and beyond)
Chinese users will find a mirror hosted at https://guix.org.cn. You will also find alternative links below for different formats, and downloading through IPFS.
Each session will be question/answer and discussion related to the topic via the BigBlueButton instance generously hosted by Fosshost. Warm thanks to them!
The slots are short so please watch the videos beforehand to better enjoy the discussions. The term BoF means open discussion to address prospects. The last discussion may be longer depending on what you have to share.
The main channel for the day will be the video chat and questions will be asked
via the chat hosted there or––because we love it––via
irc.freenode.net then the floor
might be shared, opening more mics. The discussions will not be recorded
because we would like to keep them informal––where people are less impressed to
share their point of views.
The Code of Conduct applies for all the channels of communication.
GNU Guix in psychology research and teaching
Presented by Lars-Dominik Braun. (video webm, video mp4, doi, slide, ipfs)
The Leibniz Institute for Psychology supports psychologists in adopting open science practices by providing them with free infrastructure services. One of these services is PsychNotebook, a web platform providing access to shareable and reproducible R and Python programming environments, using RStudio and JupyterLab in particular. PsychNotebook is used by researchers for analyzing research data and by instructors to teach psychology students script-based analyses.
The session covers why psychology among other research field needs this platform, how it is designed and what role GNU Guix plays in all of this. In particular, four challenges are addressed: user management, project management, web app deployment/proxying; as well as usability and how GNU Guix supports or provide reproducible environments.
Fixing the CI
Presented by Mathieu Othacehe. (video webm, video mp4, ipfs)
The session covers the following points:
- Presentation of our current continuous integration infrastructure.
- What are the current issues?
- How to overcome those issues? How to help improving the CI?
Nix and Guix: similarities and differences
Presented by Andrew Tropin. (video, video mp4, ipfs)
The session covers an high-level overview and comparison of Nix and GNU Guix package managers or NixOS and Guix System distributions. The comparison had been initiated to understand the differences between those two great projects. It may inspire people from both communities to implement missing features or help someone to decide, which package manager or operating system to pick.
From v1.2 to release process
Chaired by Simon Tournier.
The session covers a proposal to smooth the release process; ironic for a rolling-release project, isn’t it? Make a release means:
- how and what to do: tools
- schedule / track
- who do: people
The #1 is roughly described in the file
Even if a non-negligible part is based on experience and cannot be documented;
see #3. However, tools are still missing: going further than
The #2 means track what is going on between 2 releases. It seems easier to
write down important changes when they happen than parse all the log history
one week before releasing in order to publish the
file. More importantly, #2 means stay on track with the schedule: release
when it is ready? at fixed date? what must be in? does it make sense to
staging merges? how to synchronize with the branch
The #3 means who take the responsibility to do the job. And it appears easier to divide the workload. More importantly, how to share the skill? Guix could take inspiration from Nix or GNU Glibc or your-name-it.
Porting Guix to modern PowerPC
Presented by Tobias Platen. (video webm, video mp4, ipfs)
The sessions covers how to port of Guix to modern 64-bit Little Endian, since that one is best supported by the Talos II and its graphics card, the AST2500. The final aim would be a self hosting version of Guix that runs on the Talos II, the Blackbird and the upcoming Libre-SOC. Such port may also be useful to support older PowerMacs including the G4 and G5.
Just build it with Guix
Presented by Efraim Flashner. (video webm, video mp4, ipfs)
The session covers how to use Guix as build plateform. Creating custom
is ubiquitous with Guix and
with Guix is fairly straightforward. But what about working with packages
where you want to package a non-release version? Or if you're hacking on
another package which either isn't packaged or you want to test your changes
before sending off a patch set or a pull request? The file
guix.scm is the
unofficial filename for Guix build instructions for this case. It provides a
target for creating an environment for hacking on the package, and it creates
a recipe to build what's currently in that repository; meaning you can use the
power of Guix for builds even while working on other projects. A combination
of a little bit of boiler-plate for building “this here repository” and
standard package definitions allow for easy building and rebuilding without
dirtying the source tree. And also for building multiple versions of the
package in one go.
Progress so far on the Guix Build Coordinator
Presented by Chris Baines. (video webm, video mp4, ipfs)
The session looks at the Guix Build Coordinator, a tool for building lots of derivations, potentially across many machines, and doing something useful with the results. This is a new tool that might be able to help with patch review, quality assurance as well as substitute availability. The talk will cover the motivation, design, implementation and future, along with a small demo of the Guix Build Coordinator.
Peer-to-peer substitutes and sources
Chaired by David Dashyan.
The session covers the status of the peer-to-peer substitutes distribution.
Especially the almost 2 years old first
draft adding support to distribute
and retrieve substitutes over IPFS; see the
branch. Moreover the branches
to add the Go part of IPFS. The discussion will address the next steps to
merge the branch
wip-ipfs-substitutes or how to add decentralized
Guile Hacker Handbook
Presented by Jérémy Korwin-Zmijowski. (video webm, video mp4, ipfs)
The sessions covers Guile Hacker Handbook (GHH). The purpose of the GHH is to show Guile the way modern programming languages are shown, i.e., demonstrating its tools and following development approach we often stick to professionally.
Lengthy manuals are often hard to grasp at first; especially when learning new materials from scratch. Instead, it seems easier to rely first on tutorials or blog posts. Writing style and direct application sometimes helps to understand the underlying concepts). Then reads the reference manual feels more comfortable. GHH is an attempt to address this. For example, GHH is about Guile, not Scheme.
GHH is also about Test Driven Development and focuses on tests as first-class citizen.
(BoF) Rust and Cargo
Chaired by John Soo.
The session covers the various issues with the Rust ecosystem in Guix. The discussion is about:
- packaging efforts
- build systems
- incremental compilation/shared libraries
Bootstrapping the Java Ecosystem
Presented by Julien Lepiller. (video webm, video mp4, ipfs)
The session covers the Maven bootstrap and the Maven Build System and how this Maven story may inspire directions to implement similar bootstrap stories for other ecosystems.
Ensuring that software is built entirely from source is an essential practice to ensure user Freedom, as well as for auditability and security. Unfortunately, the Java ecosystem is very complex and presents some interesting challenges when building from source.
One of these challenges is Maven, a build tool and package manager that is used by many if not most of the Java developers nowadays. One key challenge is that Maven is itself a Java package, that is built with Maven and has a lot of dependencies, that themselves use Maven.
The discussion presents the current state of the bootstrap and how we break the various dependency cycles that occur. The recent addition to Guix of the maven build system is a major step towards a good support of the Java ecosystem in Guix. We will discuss how Maven works, what it expects, and how Guix can accommodate it to build offline, reproducibly, with no trusted binary.
The ways forward (roadmap and beyond)
Chaired by GNU Guix maintainers.
The session covers the medium- and long-term goals that may or may not look realistic. Pragmatic dream!
Code of Conduct
This online conference is an official Guix event. Therefore, the Code of Conduct applies. Please be sure to read it beforehand!
If you witness violations of the code of conduct during the event, please
firstname.lastname@example.org, a private email alias that reaches the organizers
zimoun Tournier and Julien
roptat Lepiller) and the GNU Guix
About GNU Guix
GNU Guix is a transactional package manager and an advanced distribution of the GNU system that respects user freedom. Guix can be used on top of any system running the Hurd or the Linux kernel, or it can be used as a standalone operating system distribution for i686, x86_64, ARMv7, and AArch64 machines.
In addition to standard package management features, Guix supports transactional upgrades and roll-backs, unprivileged package management, per-user profiles, and garbage collection. When used as a standalone GNU/Linux distribution, Guix offers a declarative, stateless approach to operating system configuration management. Guix is highly customizable and hackable through Guile programming interfaces and extensions to the Scheme language.