The Signal
Published in

The Signal

Simple, Repeatable & Free: An Open Source Software Delivery Pipeline (Part I)

Photo by tian kuan on Unsplash


Components of a semantic version string
  • Once a release is tagged and deployed, it’s never revised. If you need to fix something, you need to release a patch version.
  • Sometimes the line between “is it a fix” and “is it a new feature” is blurry, developers need to make this call.
  • If possible, use software to prevent pre-releases from being deployed into production environments.


  • Maximizes our productivity by automating error-prone tasks as much as possible; and
  • Leverages the native features of our tools to implement our concepts of versioning, environments & snapshots/releases.
  • “main” (or “master,” although this terminology is being revised) to mean “this is the latest release” and
  • “develop” to mean “this is the latest work-in-progress,”
  • myfeature” branch, which indicates this is a specific feature being worked on (replace myfeature with some descriptive name)
  • Each release gets a tag
  • Each pre-release uses the last release tag to compute its version, appending branch and build number information to construct the appropriate pre-release tag

Tying it All Together

  • All releases must be built from the master/main branch
  • All releases must be tagged in the repository with a valid semantic version

The Library



Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Dan Stieglitz

Dan is the CEO of Stainless AI, Inc., which provides cognitive computing solutions to businesses through machine learning and artificial intelligence.