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.
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.
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.
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.
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.
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.
Related concepts
- major versionhas part · A major version is the primary component of a version identifier that distinguishes a release line and commonly signals potentially backward-incompatible changes.
- FluentBitused by · Fluent Bit is a lightweight, open-source telemetry agent for collecting, processing, enriching, and forwarding logs and other event data.
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.







