liveBook · Manning

Versioning

As explained in Effective Platform Engineering

Software versioning is the practice of assigning identifiable versions to software artifacts and managing changes between them.

Version control assigns identifiable versions to software artifacts and manages changes between them. In an engineering platform, source code version control is a foundational capability used to deliver the platform. section 6.2

Versioning also applies to shared pipeline code. Treating pipelines as software makes versioning part of the engineering discipline alongside linting and testing, allowing shared changes to be released with less friction. section 6.3.7

Use versioning to support reusable platform components without taking ownership away from developers:

  • Release changes to shared pipeline libraries in a way that gives users time to understand and adapt before they are blocked. section 6.3.7
  • Keep local pipeline code owned and managed by developers while shared libraries provide common workflows and compliance capabilities. section 6.3.7
  • Combine versioning with injection points, parameter overrides, validation, and tool-version overrides so reusable code remains adaptable. section 6.3.7

Versioning a reusable pipeline library

A platform team maintains a shared CircleCI orb for Terraform planning and compliance checks. It versions the orb before releasing changes, while developers retain their local pipeline configuration and use supported parameters or custom steps when adapting the update. section 6.3.7

Figure 6.3 Resources we will need to begin building our engineering platform product foundation
A screenshot of a computer

AI-generated content may be incorrect.

The platform foundation includes source code version control alongside the cloud accounts, secrets store, infrastructure state store, and pipeline orchestrator. section 6.2

How Effective Platform Engineering covers it

How deep it goes
Defines versioning as a software practice and explains release adaptation, but leaves version-control commands and workflows unspecified.
Examples
Uses source code version control in the platform foundation and versioned CircleCI orbs as reusable pipeline assets.
What it assumes
Assumes a platform-building and pipeline context while leaving version-control mechanics and branching workflows unspecified.
What you can do after
Operate/configure shared pipeline resources with versioned releases that give developers time to understand and adapt to changes.
How it connects
Connects source code version control with pipeline orchestrators, shared libraries, compliance, and developer-owned pipeline code.

Also explained in

Compare how 25 books explain versioning →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Effective Platform Engineering. The section links point to the parts of the book it draws on.