Branches and tags ================= > Note: details of the release process of the project are documented in [PATCH-RELEASES.md](PATCH-RELEASES.md). # Overview The Moby Project repository contains multiple components with their own versioning: - **Moby** - the core library, versioned as `v2.x` (currently in beta) - **Docker Engine** - built from this repository, versioned independently - **API** (`api/`) - a separate Go module containing the materialization of the API specification, follows API versioning - **Client** (`client/`) - a separate Go module of the client library # Branches `master` serves as the development branch for future releases of the project. All changes should be made to the `master` branch. When possible, Moby/Docker Engine releases are cut directly from `master`. Release branches are created when ongoing development on `master` would conflict with patch releases. The sponsoring maintainers of a release branch serve as the primary point of contact, and are available to provide guidance on contributing changes to their respective branches. A single release branch can be used for the whole release cycle of a major version or a specific minor version line. For example, the `docker-29.x` branch is used for the release cycle of the `29` major version and all minor versions within it. A historical example of the latter approach are the `26.0` and `26.1` branches, which were used for separate minor versions within the `26` major version. It is up to the sponsoring maintainers to decide whether to use a single release branch for the whole release cycle of a major version or a specific minor version line. ## Docker Engine Branches Docker Engine release branches use the format `docker-MAJOR.x` (e.g., `docker-29.x`). Currently (and previously) maintained release branches are documented in the table below: | Branch Name | Sponsoring Maintainer(s) | Contribution Status | Expected End of Maintenance | Known Distributors | |-----------------------------|------------------------------------------------|-----------------------|-----------------------------|-------------------------------------------| | docker-29.x | The Moby Project [MAINTAINERS](../MAINTAINERS) | Maintained | After docker-30.x | [Docker, Inc.][docker], [Microsoft][msft] | | docker-28.x | | Unmaintained | | | | 27.x | | Unmaintained | | | | 26.1 | | Unmaintained | | | | 26.0 | | Unmaintained | | | | 25.0 | @corhere | Maintained | [2026-12-04][mcr25-maint] | [Amazon][al2023], [Mirantis][mcr] | | 24.0 | | Unmaintained | | | | 23.0 | | Unmaintained | [2025-05-19][mcr23-maint] | | | Older than 23.0 | | Unmaintained | | | [al2023]: https://docs.aws.amazon.com/linux/ [docker]: https://docker.com [mcr23-maint]: https://docs.mirantis.com/mcr/23.0/compat-matrix/maintenance-lifecycle.html [mcr25-maint]: https://docs.mirantis.com/mcr/25.0/compat-matrix/maintenance-lifecycle.html#mirantis-container-runtime-mcr [mcr]: https://www.mirantis.com/software/mirantis-container-runtime/ [msft]: https://microsoft.com > Note: The Moby Project provides source code releases. Binary distributions are available from multiple contributing parties, and known distributions can be discovered in [PACKAGERS.md](PACKAGERS.md). ## Contribution Status The contribution status of a branch is meant to set contributor expectations for acceptance of changes into a branch, as well as document what level of contribution or maintenance the sponsoring maintainers expect to perform. This status is informational and not binding. - **Maintained** - actively developed by project maintainers; accepting contributions and backports; in-scope for security advisories - **Maintained (security)** - no longer actively developed; may accept contributions and backports for critical security issues; in-scope for security advisories - **Unmaintained** - no longer actively developed; not accepting contributions; out-of-scope for security advisories # Tags All releases of The Moby Project should have a corresponding tag in the repository. The project generally attempts to adhere to [Semantic Versioning](https://semver.org) whenever possible. The general format of a tag is `vX.Y.Z[-suffix[N]]`: - All of `X`, `Y`, `Z` must be specified (example: `v1.0.0`) - First release candidate for version `1.8.0` should be tagged `v1.8.0-rc1` - Second alpha release of a product should be tagged `v1.0.0-alpha1` ## Tag Prefixes Different components use different tag prefixes: | Component | Tag Format | Example | |---------------|-------------------------|-------------------| | Moby | `vX.Y.Z` | `v2.0.0-beta.5` | | Docker Engine | `docker-vX.Y.Z` | `docker-v29.1.2` | | API | `api/vX.Y.Z` | `api/v1.52.0` | | Client | `client/vX.Y.Z` | `client/v1.52.0` | For the current release state, see [GitHub Releases](https://github.com/moby/moby/releases).