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):
(break)
(long break)
(break)
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 #guix
on
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:
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
maintenance/doc/release.org
.
Even if a non-negligible part is based on experience and cannot be documented;
see #3. However, tools are still missing: going further than guix weather
--coverage
or --display-missing
.
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
NEWS
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
synchronize with staging
merges? how to synchronize with the branch
core-updates
?
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
packages
is ubiquitous with Guix and
packaging
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
wip-ipfs-substitutes
branch. Moreover the branches
wip-ipfs
and
wip-ipfs2
are
attempts
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
substitutes distribution.
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
email guix-days@gnu.org
, a private email alias that reaches the organizers
(Simon zimoun
Tournier and Julien roptat
Lepiller) and the GNU Guix
maintainers.
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.