Release
A software release is a version or set of changes made available to intended recipients for deployment or use.
Elixir in Action, Third Edition
A release is a self-contained deployment artifact containing an application, its dependencies, compiled code, and the runtime needed to execute it.
- How it is used
- Packages an OTP system for standalone production deployment and supplies commands for starting, inspecting, and stopping it.
- How deep it goes
- Explains creation, environment selection, artifact contents, runtime independence, node configuration, and operational commands.
- Examples
- Uses a to-do release, Mix commands, generated shell commands, remote IEx sessions, and release load-path inspection.
- What you can do after
- Operate/configure a standalone release, select its build environment, run lifecycle commands, and attach to its production node.
Contract Testing in Action
A release is a software version designated as available or officially delivered, independently of whether it is currently deployed.
- How it is used
- Tracks versions made available in an environment, especially when multiple application versions remain in use.
- How deep it goes
- Distinguishes releases from deployments, demonstrates a broker command, and connects recording with environment-aware version selection.
- Examples
- Uses a MoviesAndroidApp production command, PactFlow integration records, and GraphQL deployment exercises.
- What you can do after
- Operate/configure Pact release recording with a participant, version identifier, and environment.
Think Like a CTO
A software release is a version of software made available for deployment or use, containing a defined set of changes or fixes.
- How it is used
- Makes software changes available while coordinating technical execution, business timing, stakeholder communication, and operational risk.
- How deep it goes
- Explains outage planning, documentation, communication, practice, and postmortems, but stops short of implementation-level tooling.
- Examples
- Uses outage releases involving downtime, data migration, maintenance pages, assigned runbook steps, progress reports, practice runs, and postmortems.
- What you can do after
- Operate/configure releases through documented steps, assigned responsibilities, stakeholder updates, contingency planning, and post-release learning.
Shipping Go: Develop, deliver, discuss, design, and go again
A release is a prepared software version made available for use by its intended recipients.
- How it is used
- Frames release as the delivery step that makes a product available for testing or use, distinct from operating it as a service.
- How deep it goes
- Explains binary publication, release timing, feedback, and version communication, but stops short of detailed release-versioning design.
- Examples
- Uses a pipeline.yml workflow, an api binary, a repository Releases page, and an externally reachable API tested by QA.
- What you can do after
- Apply it via GitHub Actions to publish a built binary as a tagged repository release for others to test or use.
Read how Shipping Go: Develop, deliver, discuss, design, and go again explains release →
Related concepts
- deploymentcontrasts with · Deployment is the process of making software, models, or other computational systems available to operate in a target environment.
- value streampart of · A value stream is the complete sequence of activities, decisions, handoffs, and information flows through which work creates and delivers value to a customer or user.
- BEAMhas part · BEAM is the virtual machine and runtime environment that executes Erlang-family programs and applications.
- modulehas part · A module is a distinct, bounded software unit that groups related code or functionality and provides an organizational or interaction boundary within a larger system.
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.



