Group: Guix/FOSDEM2020

From LibrePlanet
Jump to: navigation, search
(Add nckx to participants)
m (Removed my name because this page is indexed by Google)
 
(68 intermediate revisions by 29 users not shown)
Line 1: Line 1:
This page is for tracking anything related with the 2020 GNU Guix/Guile conference and hackathon on Jan. 30st and 31st—right before [https://fosdem.org/2020/ FOSDEM2020] and the [https://libreplanet.org/wiki/FOSDEM2020-devroom-proposal minimalistic language devroom].
+
This page is for tracking anything related with the 2020 GNU Guix/Guile conference and hackathon on Jan. 30th and 31st—right before [https://fosdem.org/2020/ FOSDEM2020] and the [https://fosdem.org/2020/schedule/track/minimalistic_experimental_and_emerging_languages/ Minimalistic, Experimental and Emerging Languages devroom] and the original application [https://libreplanet.org/wiki/FOSDEM2020-devroom-proposal minimalistic language devroom].
 +
 
 
= GNU Guix Days =
 
= GNU Guix Days =
 +
 +
[[File:Guix-Days-2020.png ]]
  
 
Annual GNU Guix (un)conference. <i>This event is a [https://fosdem.org/2020/fringe/ FOSDEM 2020 fringe event].</i>
 
Annual GNU Guix (un)conference. <i>This event is a [https://fosdem.org/2020/fringe/ FOSDEM 2020 fringe event].</i>
Line 11: Line 14:
 
== When? ==
 
== When? ==
  
Thursday 30st and Friday 31st of January, 2020, the two days before FOSDEM.
+
Thursday 30th and Friday 31st of January, 2020, the two days before FOSDEM.
  
Coffee at 9:30AM, and starting at 10AM.
+
Starting at 9:30AM.
  
 
== Where? ==
 
== Where? ==
Line 25: Line 28:
 
The event targets an audience of Guix developers and users.
 
The event targets an audience of Guix developers and users.
  
In pure “unconference” style, the program will be made by participants as we go, with hands-on sessions organized in sub-groups.  Possible session topics that have already been proposed include:
+
In the morning the following presentations are planned:
 +
 
 +
# '''Guix State of the Union''' by Ludovic Courtès + Tobias Geerinckx-Rice
 +
# '''Guix Data Service''' by Christopher Baines
 +
# '''Bootstrapping Intro''' by Jan Nieuwenhuizen
 +
 
 +
In pure “unconference” style, the rest of the program will be made by participants as we go, with hands-on sessions organized in sub-groups.  Possible session topics that have already been proposed include:
  
 
# GNU Guix road map
 
# GNU Guix road map
Line 31: Line 40:
 
# Mes and bootstrapping
 
# Mes and bootstrapping
 
# Reproducibility project
 
# Reproducibility project
# Alternative target architectures (ARM etc.)
+
# Alternative target architectures (ARM, POWER etc.)
 
# Developing workflows (GNU Guix and GNU Workflow Language)
 
# Developing workflows (GNU Guix and GNU Workflow Language)
 
# Support for D in GNU Guix
 
# Support for D in GNU Guix
 
# Demonstration and explanation of [https://www.gnu.org/software/guix/manual/en/guix.html#The-Perfect-Setup The Perfect Setup] (Emacs, Geiser, Magit)
 
# Demonstration and explanation of [https://www.gnu.org/software/guix/manual/en/guix.html#The-Perfect-Setup The Perfect Setup] (Emacs, Geiser, Magit)
 
# Demonstration and live-hacking of [https://next.atlas.engineer Next browser] + introduction to the code base
 
# Demonstration and live-hacking of [https://next.atlas.engineer Next browser] + introduction to the code base
# Better build systems for JVM languages in GNU Guix (support maven, sbt, gradle, ...)
+
# Better build systems for JVM languages in GNU Guix (support Maven, sbt, Gradle, ...)
 
# Reproducible JDK
 
# Reproducible JDK
# The GuixSD installer
+
# The Guix System installer
 +
# Improve PHP
 
# your topic?
 
# your topic?
  
Line 44: Line 54:
  
  
Be aware that attendees implicitely abide by the [https://fosdem.org/2020/practical/conduct/ code of conduct as stated by FOSDEM].
+
Be aware that attendees implicitly abide by the [https://fosdem.org/2020/practical/conduct/ code of conduct as stated by FOSDEM].
  
 
== How to register? ==
 
== How to register? ==
Line 55: Line 65:
  
 
# Ludovic Courtès
 
# Ludovic Courtès
# Ricardo Wurmus
 
 
# Pjotr Prins
 
# Pjotr Prins
 
# Manolis Ragkousis
 
# Manolis Ragkousis
 
# Efraim Flashner
 
# Efraim Flashner
# Tobias Geerinckx-Rice
+
# Tobias Geeri'''nckx'''-Rice (9 to 5, ish)
 
+
# Christopher Baines
 +
# Gábor Boskovits
 +
# Andreas Enge
 +
# Simon Tournier
 +
# Nicolò Balzarotti
 +
# Chris Marusich
 +
# Jonathan Brielmaier
 +
# Danny Milosavljevic
 +
# Carl Dong
 +
# Pierre Neidhardt
 +
# janneke (Jan) Nieuwenhuizen
 +
# Martin Becze
 +
# Mark Wielaard (Thursday afternoon and Friday)
 +
# Tom Tromey
 +
# Bengt Richter
 +
# Ioanna Dimitriou
 +
# Joshua Wirtz
 +
# Jelle Licht
 +
# Mathieu Othacehe (only Friday)
 +
# Jonathan Frederickson
 +
# Lex Withofs
 +
# Laura Lazzati
 +
# Paul Garlick (Friday)
 +
# Jonathan McHugh
 +
# Lars-Dominik Braun
 +
# Pablo Greco (only Thursday)
 +
# Robert Smith
 +
# Jérémy Korwin (only Friday)
 +
# Ivan Vilata i Balaguer (only Friday)
 +
# Tobias Platen (only Friday)
 
(add your name above this line)
 
(add your name above this line)
  
Line 69: Line 107:
 
== Dinner ==
 
== Dinner ==
  
* Thursday: [http://www.montliban.be/ Mont Liban], [https://www.openstreetmap.org/?mlat=50.83020&mlon=4.35901#map=19/50.83020/4.35901 map]
+
* Thursday: [https://www.openstreetmap.org/way/524013968 Xu-Ji]
* Friday: [https://www.takeaway.com/be/santorini-bruxelles Santorini], [https://www.openstreetmap.org/?mlat=50.84577&mlon=4.35262#map=19/50.84577/4.35262 map]
+
* Friday: ? (proposal: [https://www.takeaway.com/be/santorini-bruxelles Santorini], [https://www.openstreetmap.org/?mlat=50.84577&mlon=4.35262#map=19/50.84577/4.35262 map])
  
 
== Sessions Outcome ==
 
== Sessions Outcome ==
 
=== Maven Build System ===
 
 
* Maven uses plugins to implement build phases. We need to build at least a small set of plugins with our ant-build-system.
 
* One problem is that the plugin's jar file not only contains classes but also a meta-file describing the plugins interface.
 
* We can try to build this metafile with the maven-plugins-tools-generators, see [https://maven.apache.org/plugin-tools/].
 
* When we actually use the maven-build-system, it needs to generate a ".m2/repository", artificially created from the package inputs.
 
* In order to make life with this step easier, we decided to modify the ant-build-system: It should already create its part of the system:
 
* I.e. when the pachage is called "org.myproject:myartifact:1.0.3", we should generate the path "org/myproject/myartifact/1.0.3/myartifact-1.0.3.jar" and symlink it to the actual jar-file the ant-build-system generated.
 
* We should modify the ant-build-system to copy/generate a pom.xml, either into the jar-file and/or besides it.
 
 
 
=== Quality Assurance and Continuous Integration ===
 
 
* Chris Baines set up a patchwork instance:
 
* [https://patchwork.cbaines.net/]
 
* Currently it gets patches from the patches-mailinglist and does ... something with it.
 
* Plan: Next step would be to get some metrics out of the patchset: We want to measure if there is any change on linting errors (either new errors or errors fixed). Also it would be nice to measure the impact of the package: Either bei number of dependent packages or even by estimated compile-time of all dependent packages (by getting numbers from previous berlin compilations).
 
* For that, the idea is to apply the patchset on a Guix git checkout and do a full guix lint before and after, save it in a database and compare both states. For the numbers, we can execute a guix refresh -l.
 
* A next step would be to connect patchwork with a new Cuirass instance (independent of berlin server): Create for each patchset a new branch like "PATCH-xxx" where xxx is the debbugs bug number. The branch is given to Cuirass for evaluation.
 
* For that, we need a way to get that into Cuirass: Currently, the configuration is more static. We could either insert directly into the database or write an REST-interface (including authentication?) for Cuirass.
 
* Note: Cuirass can first count the number of rebuilds and we only evaluate the patchset if the number of rebuilds is below a certain threshold (say 1000) of rebuilds.
 
* We have a patchset for patchwork not yet ready for merging (#33185).
 
* Concerning packages not working for non-x86_64 distributions: We should work more on it, test them in the first place. If your package breaks on a system you are unfamiliar with, please ask for help on the mailing list.
 
* We have not discussed what we should do about packages that are long-term broken, but I would suggest to enforce the rules we learned in Frederic Crozat's talk from SuSE:
 
* If a package is broken for more than 6 months, we should just remove it from Guix.
 
* Prior to removing, we should announce on the dev mailing list, maybe someone will care about it then.
 
 
=== Cuirass ===
 
 
* We have database issues: Some queries are very slow.
 
* Discussion: Move from SQLite to PostgreSQL?
 
* But is therea Guile-binding?
 
* There is "gule-dbi"?
 
* Or write a new binding?
 
* Or: Connect to PostgresSQL via TCP/Socket, use text-protocol to execute queries?
 
* We have to be careful: The Fibres-framework we use does not permit C-stackframes.
 
* Find some way to "pin" packages: For example, when we have a release, we want to add this build to gc-roots.
 
* Collecting build times locally?
 
* New guile-daemon written in Guile?
 
  
 
== Sponsors ==
 
== Sponsors ==
  
* [http://gn2.genenetwork.org/ GeneNetwork]
 
* [http://JoyofSource.com/ JoyofSource]
 
 
* Foundation of Guix Europe
 
* Foundation of Guix Europe
  
  
 
Please contact us if you would like to sponsor the event.
 
Please contact us if you would like to sponsor the event.

Latest revision as of 15:20, 17 January 2023

This page is for tracking anything related with the 2020 GNU Guix/Guile conference and hackathon on Jan. 30th and 31st—right before FOSDEM2020 and the Minimalistic, Experimental and Emerging Languages devroom and the original application minimalistic language devroom.

GNU Guix Days

Guix-Days-2020.png

Annual GNU Guix (un)conference. This event is a FOSDEM 2020 fringe event.

Why?

GNU Guix is growing rapidly and has gone from a software packaging system to a full tool stack aimed at reproducible software deployment and development. GNU Guix is a toolkit that allows developers to integrate reproducible software deployment into their applications—as opposed to leaving it up to the user. GNU Guix is based on the GNU Guile programming language which makes it a very versatile and hackable (in the good sense) environment.

When?

Thursday 30th and Friday 31st of January, 2020, the two days before FOSDEM.

Starting at 9:30AM.

Where?

Institute of Cultural Affairs (ICAB) Rue Amedee Lynen 8 1210 Brussels (map), Belgium.

Programme

We will have some talks in the morning and hacking and discussions the rest of the day. Two days of GNU Guix bliss.

The event targets an audience of Guix developers and users.

In the morning the following presentations are planned:

  1. Guix State of the Union by Ludovic Courtès + Tobias Geerinckx-Rice
  2. Guix Data Service by Christopher Baines
  3. Bootstrapping Intro by Jan Nieuwenhuizen

In pure “unconference” style, the rest of the program will be made by participants as we go, with hands-on sessions organized in sub-groups. Possible session topics that have already been proposed include:

  1. GNU Guix road map
  2. GNU Guix online documentation
  3. Mes and bootstrapping
  4. Reproducibility project
  5. Alternative target architectures (ARM, POWER etc.)
  6. Developing workflows (GNU Guix and GNU Workflow Language)
  7. Support for D in GNU Guix
  8. Demonstration and explanation of The Perfect Setup (Emacs, Geiser, Magit)
  9. Demonstration and live-hacking of Next browser + introduction to the code base
  10. Better build systems for JVM languages in GNU Guix (support Maven, sbt, Gradle, ...)
  11. Reproducible JDK
  12. The Guix System installer
  13. Improve PHP
  14. your topic?

Code of conduct

Be aware that attendees implicitly abide by the code of conduct as stated by FOSDEM.

How to register?

Add your name here and/or send a message to Manolis <manolis837@gmail.com> or Pjotr <pjotr.public12@thebird.nl>. Please email us if you would need on-site childcare to be able to attend.

Note: there is a maximum of 40 participants.

Participants

  1. Ludovic Courtès
  2. Pjotr Prins
  3. Manolis Ragkousis
  4. Efraim Flashner
  5. Tobias Geerinckx-Rice (9 to 5, ish)
  6. Christopher Baines
  7. Gábor Boskovits
  8. Andreas Enge
  9. Simon Tournier
  10. Nicolò Balzarotti
  11. Chris Marusich
  12. Jonathan Brielmaier
  13. Danny Milosavljevic
  14. Carl Dong
  15. Pierre Neidhardt
  16. janneke (Jan) Nieuwenhuizen
  17. Martin Becze
  18. Mark Wielaard (Thursday afternoon and Friday)
  19. Tom Tromey
  20. Bengt Richter
  21. Ioanna Dimitriou
  22. Joshua Wirtz
  23. Jelle Licht
  24. Mathieu Othacehe (only Friday)
  25. Jonathan Frederickson
  26. Lex Withofs
  27. Laura Lazzati
  28. Paul Garlick (Friday)
  29. Jonathan McHugh
  30. Lars-Dominik Braun
  31. Pablo Greco (only Thursday)
  32. Robert Smith
  33. Jérémy Korwin (only Friday)
  34. Ivan Vilata i Balaguer (only Friday)
  35. Tobias Platen (only Friday)

(add your name above this line)

Costs

Attendance is free. We will ask a voluntary contribution for consumptions.

Dinner

Sessions Outcome

Sponsors

  • Foundation of Guix Europe


Please contact us if you would like to sponsor the event.