47 lines
2.7 KiB
Markdown
47 lines
2.7 KiB
Markdown
# 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.
|