Skip to content

Commit

Permalink
Added release cycle and versioning documentation
Browse files Browse the repository at this point in the history
  • Loading branch information
Gaptcha authored and D3DeFi committed Oct 1, 2020
1 parent 759357b commit 104d26e
Showing 1 changed file with 46 additions and 0 deletions.
46 changes: 46 additions & 0 deletions docs/RELEASE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
# Release cycle and versioning

## Versioning
Versioning is using SemVer (X.Y.Z):
- The X is a **major version** and is incremented when:
- Support for older Zabbix versions is removed.
- Support for older Ansible versions is removed.
- Support for older Python versions is removed.
- Modules, roles or plugins are removed.
- Module or role functionality is removed.
- Other breaking changes or backward-incompatible changes are introduced.

- The Y is a **minor version** and is incremented when:
- Support for new Zabbix versions is added.
- Support for new Ansible versions is added.
- Support for new Python versions is added.
- A new module, role, plugin, etc., is added.
- New features are introduced to modules, roles, plugins.
- A functionality of components is adjusted in a backward-compatible way.

- The Z is a **patch version** and is incremented when:
- Bugs are fixed in a backward-compatible way.
- Documentation fixes and smaller changes are introduced.
## Releases
Release dates are not fixed. Instead, they will be discussed at the beginning of each month following this guideline:
- The version increment will depend on the content that will be included in the release, as discussed in the *Versioning* section.
- New collection releases may be a result of this discussion if necessary.
- There may be several releases during the month if needed.
## Collection support
The latest release of the community.zabbix is always supported.
Older releases, which are included in the still supported Ansible versions, may obtain occasional backports or bug fixes when necessary. [1]

[1] [Collection versioning requirements](https://github.com/ansible-collections/overview/blob/main/collection_requirements.rst#versioning-and-deprecation)
## Branches
Branch *main* always holds the code for the latest supported release.
New branch *stable-X.Y* is pushed before starting a new *major (X+1)* version development in the main branch.

The *stable-X.Y* branch provides a way to merge any necessary backports and release bug fixes for older major versions of this collection while they are still included in currently supported ansible releases.
> For example, if the current version of the collection is *1.3.2* and a new version *2.0.0* is being released, the branch *stable-1.Y* should be pushed prior to the release, matching the last commit that was included with the *1.3.2* release.
## Merging
Merging follows this guideline:
- *Main branch* (previously master branch) is the current branch.
- *stable-X.Y* is a separate branch used to fix issues in older supported collection releases.
- There should be a separate branch for each contribution.
- There should be a separate pull request for each version increment.

0 comments on commit 104d26e

Please sign in to comment.