Contribute

First off, welcome and thank you for your interest in getting involved in our cause!

Reproducible builds are a set of software development practices rather than being a single project, making our work broad and varied. There is still much to be done, and we require a diverse range of skills. Below, we describe the areas we focus on to give you an understanding of our efforts. We hope you find it interesting and see an opportunity to contribute!

Contribute to tools

We work on our own set of tools that help us make builds reproducible.

For example, we have:

  • diffoscope, a tool that recursively unpack archives and transform various binary formats into more human-readable forms for comparison. You can try it live.
  • strip-nondeterminism, a tool that strips bits of nondeterministic information, such as timestamps and file system order, from files like gzipped files, ZIP archives, and JAR files. It can be used as a post-processing step to make a build reproducible.
  • theunreproduciblepackage, because sometimes it’s more effective to show rather than tell, we maintain a collection of practices that make builds unreproducible.

And many more! We keep a list of them in the tools section. We encourage you to take a look at them. We try to keep a list of issues updated for you to pick up. You can also take a look at our repositories hosted in Salsa.

Contribute to distributions

Reproducible Builds is distro agnostic, which means we care about all the distributions and projects out there.

Various distributions have efforts to become more reproducible. We are involved in several of them and we’ve written guides on how you can contribute:

Please send patches to this page if your project is not listed here.

Contribute to testing

There are many projects that are being tested within the reproducible test infrastructure. We keep a list of them in the Continuous tests section. The primary repository for our testing efforts is available here. You can learn more about this project in the README.

Non-coding contributions

If you want to contribute but not in the form of coding for the different projects, we’ve compiled a list of other ways you can help out. Here are some ideas:

  • Spread the word! Many people don’t know about reproducible builds, you can help us change that:
    • Host demos: Show others how reproducible builds work in practice.
    • Give talks: Share your knowledge with other. Need inspiration? Check out this list of our own talks for ideas
    • Write blog posts
    • Publish academic publications
    • … and any other method you find suitable! And if you do, please let us know so we can feature them in our website
  • Follow us on social media at @ReproBuilds, Mastodon @reproducible_builds@fosstodon.org and Reddit
  • You can promote our talks, news and events through social media
  • You can help us with design related tasks
  • Join us in our events
  • Make your own software reproducible, and tell us about it!
  • Use our tools in your projects
  • Improve our documentation
  • Report reproducibility bugs
  • Improve our website: we maintain a fairly updated list of issues in our salsa repository

Lastly, you can support us through monetary donations or by providing resources. We have an extensive guide on our donate page on how both companies and individuals can contribute to our cause. Every contribution makes a difference! To see the impact of your support, check out our news section, where we publish a monthly report on our progress.

Get in touch

Our preferred way of contact is to post to our public mailing list, rb-general. To do so, please join the rb-general mailing-list. However, there are other ways you can contact us:

You can learn more about our contributors and the core team at involved People.

All that’s left is to thank you for your time and interest. We hope you’ll join us on our quest to achieve Reproducible Builds!