liveBook · Manning

Semantic versioning

Semantic Versioning is a version-numbering convention using MAJOR.MINOR.PATCH components to communicate compatibility impact: major for incompatible changes, minor for compatible additions, and patch for compatible fixes.

How 8 Manning books explain it

Building Web APIs with ASP.NET Core

Semantic versioning is a version-numbering convention using MAJOR, MINOR, and PATCH components whose increments communicate compatibility and change significance.

How it is used
Frames version numbers as compatibility signals when managing API changes.
How deep it goes
Defines the three increment rules and notes extensions without detailing them.
Examples
Uses an ASP.NET Core API configured with a default version of 1.0.
What you can do after
Evaluate/understand whether an API change calls for a major, minor, or patch increment.

Read how Building Web APIs with ASP.NET Core explains semantic versioning →

Go in Action, Second Edition

Semantic versioning is a versioning convention in which changes to major, minor, and patch components communicate compatibility and release significance.

How it is used
Gives consumers of a Go module a release identifier and expectations about compatibility.
How deep it goes
Defines major, minor, and patch changes, then shows release tagging; does not elaborate on version-selection rules.
Examples
Uses a domain/v0.0.1 Git tag and a storage module depending on the domain module at v0.0.1.
What you can do after
Operate/configure it by tagging a Go module release so another module can depend on its version.

Read how Go in Action, Second Edition explains semantic versioning →

API Design Patterns

A semantic version string is a dotted three-number representation whose major, minor, and patch components communicate the nature of software changes.

How it is used
Communicates API change impact and compatibility expectations through one version label.
How deep it goes
Defines three dotted numbers and explains major and minor semantics, while leaving patch behavior unspecified.
Examples
Uses field renaming and field addition to demonstrate incompatible and compatible API changes.
What you can do after
Apply version increments to communicate whether API changes should preserve existing client behavior.

Read how API Design Patterns explains semantic versioning →

The Design of Web APIs, Second Edition

A semantic version number is a version identifier with major, minor, and patch components whose changes conventionally communicate compatibility impact.

How it is used
Guides API compatibility communication, interface evolution, and consumer migration decisions.
How deep it goes
Explains major, minor, and patch roles, applies them to API changes, and shows OpenAPI representation and linting.
Examples
Uses banking operations, path parameters, response fields, OpenAPI info.version, and a Spectral rule.
What you can do after
Apply semantic API versions, represent them in OpenAPI, compare date-based alternatives, and enforce formats with Spectral.

Read how The Design of Web APIs, Second Edition explains semantic versioning →

The Art of Code

Semantic versioning is a version-numbering convention in which major, minor, and patch components communicate compatibility and change significance.

How it is used
Communicates release risk while preserving trust during public API evolution.
How deep it goes
Defines major, minor, and patch meanings, then connects them to compatibility and deprecation without detailing a formal specification.
Examples
Uses breaking fields, validation, endpoint changes, deprecated methods, and MAJOR.MINOR.PATCH release categories as examples.
What you can do after
Evaluate upgrade risk and communicate whether a release breaks compatibility, adds functionality, or fixes defects.

Read how The Art of Code explains semantic versioning →

GitHub Actions in Action: Continuous integration and delivery for DevOps

Semantic versioning is a versioning scheme that communicates compatibility and change significance through major, minor, and patch version numbers.

How it is used
Signals release compatibility for packages, artifacts, and shared GitHub Actions.
How deep it goes
Defines MAJOR.MINOR.PATCH increments and demonstrates Git-history-based calculation, while deferring fuller release-management coverage.
Examples
Uses v3.0.0, v3, and v3.0.1 tags plus a GitVersion workflow with fetch-depth 0.
What you can do after
Apply it via GitVersion or release tags to publish compatibility-signaling versions and update major tags for fixes.

Read how GitHub Actions in Action: Continuous integration and delivery for DevOps explains semantic versioning →

Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform

Semantic versioning is a version-numbering scheme in which major, minor, and patch components communicate the kinds of changes between releases.

How it is used
Controls infrastructure-module dependencies while enabling downstream evolution, auditing, and retirement of inactive releases.
How deep it goes
Defines major, minor, and patch changes, then stops short of a full specification of semantic-versioning approaches.
Examples
Uses a database module that moves a password into a secrets manager, alongside Git tags and release history.
What you can do after
Apply it via Git tags or artifact labels to select explicit module versions and manage breaking infrastructure changes.

Read how Infrastructure as Code, Patterns and Practices: With examples in Python and Terraform explains semantic versioning →

Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu

A semantic version is a version identifier following major, minor, and patch precedence rules.

How it is used
Signals Terraform module and provider upgrade risk through release numbers and Git tags.
How deep it goes
Explains version fields, change categories, constraint operators, and upgrade boundaries through configuration examples.
Examples
Uses module changelogs, Terraform version expressions, registry tags, and provider releases built by GitHub Actions.
What you can do after
Apply Terraform version constraints and publish module or provider releases with semantic Git tags.

Read how Terraform in Depth: Infrastructure as Code with Terraform and OpenTofu explains semantic versioning →

Related concepts

These guides are generated from the text of Manning books by Manning's knowledge graph and link to the sections they draw on. The full books are available on liveBook and at manning.com.