forked from ansible-collections/community.zabbix
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Added release cycle and versioning documentation
- Loading branch information
Showing
1 changed file
with
46 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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. |