# Reproducible Builds summit report

**URL:** https://discourse.nixos.org/t/reproducible-builds-summit-report/1683
**Category:** Events
**Created:** [December 14, 2018, 1:33pm UTC](https://discourse.nixos.org/t/reproducible-builds-summit-report/1683 "2018-12-14T13:33:09Z")
**Posts on this page:** 1
**Showing post:** 2

<div class="post-metadata">

### Author: ![Profpatsch](https://discourse.nixos.org/user_avatar/discourse.nixos.org/profpatsch/32/65_2.png) [@Profpatsch](https://discourse.nixos.org/u/Profpatsch)
#### Post date: [December 14, 2018, 1:40pm UTC](https://discourse.nixos.org/t/reproducible-builds-summit-report/1683/2 "2018-12-14T13:40:34Z")

</div>

The event was organized without a fixed schedule, rather the  
organizers implemented a scheme wherein participants would form around  
topics that interested them.

Most sessions had somebody take notes, the reports are going to be  
published in a “Reports” section on the event page soon:

> **[Paris 2018 — reproducible-builds.org](https://reproducible-builds.org/events/paris2018/)**

Here I wrote down some interesting one-on-one conversations I had over  
the three days.

## 2018-12-11

- Ludovic  
Met Ludovic, the founder of the Guix project. Asked him how and why  
he started (2012, he’s a Guile maintainer and played around with  
driving Nix with Guile).

- Bernhard  
OpenSuse employee who works on pushing reproducibility patches  
upstream. He has a suite of scripts to detect these issues.  
[GitHub - bmwiedemann/reproducibleopensuse: scripts to help make opensuse builds reproducible · GitHub](https://github.com/bmwiedemann/reproducibleopensuse)

- Repeatr  
Generic stack to repeat containerized computations, via runc &al.  
Not really sure what it does or what’s it for, and the contributors  
weren’t able to give a practical use-case.  
[GitHub - polydawn/repeatr: Repeatr: Reproducible, hermetic Computation. Provision containers from Content-Addressable snapshots; run using familiar containers (e.g. runc); store outputs in Content-Addressable form too! JSON API; connect your own pipelines! (Or, use github.com/polydawn/stellar for pipelines!) · GitHub](https://github.com/polydawn/repeatr)

- Nix vs. Guile  
Talked to a few people (Eelco, Ludovic, …) about the differences.

- Rep.B. Tooling  
[Riseup Pad](https://pad.riseup.net/p/rbws18-tools)  
Quite comprehensive, especially reprotest is nice (can test any  
command for reproducibility!). Not packaged for nixpkgs yet!  
Maybe set up automatic CI for these tests? Hydra?  
There should be a matrix of which tools is packaged on which  
distribution already.

## 2018-12-12

- Hacksession: Package Matrix for [Tools — reproducible-builds.org](https://reproducible-builds.org/tools/)  
I hosted two hacking sessions to show & improve the distribution of  
Rep. Builds tools on various distros. Writeup here:  
[Riseup Pad](https://pad.riseup.net/p/reproduciblebuilds4-toolsmatrix)  
(and later in the agenda)
- Typesystem for JSON  
Met a person who is writing a typesystem for JSON files for some  
IPFS-related project. Since I had already done something similar  
for nix expressions  
([nixpkgs/lib/types-simple.nix at 43a5946dd3f2059f960f517f929b174f7099094d · Profpatsch/nixpkgs · GitHub](https://github.com/Profpatsch/nixpkgs/blob/43a5946dd3f2059f960f517f929b174f7099094d/lib/types-simple.nix))  
I explained my implementation. An interesting question that came  
up: What if you don’t want the type specifications to be literal  
functions in an untyped setting, but make them data (e.g. by  
representing them in JSON) that can only be combined in a certain  
way.

## 2018-12-13

- Missed the first part, joined after lunch (Appartment search)  
It was mostly a hacking session in the afternoon.  
Since I had to organize additional appartment-related things, I  
wasn’t able to continue working on the tools matrix very much.  
The event ended with a thank-you session & continued hacking while  
people were slowly leaving.
- Tansy  
Tansy is working on a build system similar to bazel, pants. It was  
created by ex-Googlers and used primarily for its excellent Scala  
support (because sbt is a horror show).  
I brought up the notion that build tools tend to be able to  
integrate support for different languages, but don’t play fair when  
it comes to integrate themselves into other build systems. For  
example nix assumes access to /nix, bazel uses a daemon with long  
startup time and makes it hard to inject e.g. a prebuilt protobuf.

```auto

```

---

_[View the full topic](https://discourse.nixos.org/t/reproducible-builds-summit-report/1683)._
