Reproducible Builds: Introducing predictability into your pipeline

Golang Roundtable - Reproducible Builds

*This blog has been republished from ActiveState's Medium Blog.

Can your build pipeline perfectly reproduce a build including its critical bug that is deployed to a particular subset of machines? Reproducible builds is a fundamental problem that any developer who’s shipped software has had to deal with at some point.

When we’re talking about reproducible builds there’s a wide range of definitions — from builds that are byte-for-byte identical, builds that have the identical set of input source-code, to builds that share the same version numbers.

Despite the exploding popularity of Go — reproducible builds is one of the largest barriers to the widespread adoption of Go in certain environments. There are a large number of reasons that Go is an excellent language for modern projects, but clearing the reproducibility hurdle is an important milestone to even more widespread usage.

When you’re dealing with open source software, the dependency trees for certain packages can grow extremely large. Dependency management is still an ‘in-progress’ solution for Go, and a hard problem in general. Pinning versions, resolving complex dependency trees, and multiple versions of the same packages are all problems that surface during development

Finally, containerization has made reproducible production environments feel like a solved problem, but many organizations are still making the transition to using containers for deployment — and are they really a silver bullet to making your deployments seamless?

Whether you’re actively using Go, looking to move to containerization for deployment, or simply struggling with complex build issues — Watch our on-demand roundtable for an in-depth discussion “Introducing predictability into your pipeline” with some of the brightest minds in the space:

  • Jess Frazelle, Microsoft 
  • Russ Cox, Google
  • Sam Boyer, Stripe 

This panel of experts, moderated by yours truly, joins us to share developments, discuss solutions and best practices to help introduce more reproducibility into your builds.

At ActiveState, we’ve been working on open source languages for over 20 years. We consider ourselves experts in build engineering and understanding what enterprises need and the challenges developers face. We’re trying to take over 20 years working on open source languages like Python, Perl, Tcl, Ruby and Go and make the developer experience an awesome one. True to our roots we’ll need to work with communities and the ‘coder crowd’ at large to solve them.

Want to watch a killer discussion of how we can all introduce more predictability into our build pipelines?  

Watch Now