Skip to content

Commit 42ecf6c

Browse files
authored
docs: add versioning system to contribution guide (#7294)
1 parent 87e65d8 commit 42ecf6c

File tree

1 file changed

+22
-0
lines changed

1 file changed

+22
-0
lines changed

CONTRIBUTING.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
- [Pull Request](#pull-request)
2323
- [Breaking Change](#breaking-change)
2424
- [Merging](#merging)
25+
- [Versioning](#versioning)
2526
- [Code of Conduct](#code-of-conduct)
2627

2728
## Contributing
@@ -346,6 +347,27 @@ The following guide is for anyone who merges a contributor pull request into the
346347
- A contributor pull request must be merged into the working branch using `Squash and Merge`, to create a single commit message that describes the change.
347348
- A release branch or the default branch must be merged into another release branch using `Merge Commit`, to preserve each individual commit message that describes its respective change.
348349
350+
## Versioning
351+
352+
> The following versioning system is applied since Parse Server 5.0.0 and does not necessarily apply to previous releases.
353+
354+
Parse Server follows [semantic versioning](https://semver.org) with a flavor of [calendric versioning](https://calver.org). Semantic versioning makes Parse Server easy to upgrade because breaking changes only occur in major releases. Calendric versioning gives an additional sense of how old a Parse Server release is and allows for Long-Term Support of previous major releases.
355+
356+
Example version: `5.0.0-alpha.1`
357+
358+
Syntax: `[major]`**.**`[minor]`**.**`[patch]`**-**`[pre-release-label]`**.**`[pre-release-increment]`
359+
360+
- The `major` version increments with the first release of every year and may include changes that are *not backwards compatible*.
361+
- The `minor` version increments during the year and may include new features or improvements of existing features that are backwards compatible.
362+
- The `patch` version increments during the year and may include bug fixes that are backwards compatible.
363+
- The `pre-release-label` is optional for pre-release versions such as:
364+
- `-alpha` (likely to contain bugs, likely to change in features until release)
365+
- `-beta` (likely to contain bugs, no change in features until release)
366+
- The `[pre-release-increment]` is a number that increments with every new version of a pre-release
367+
368+
Exceptions:
369+
- The `major` version may increment during the year in the unlikely event that a breaking change is so urgent that it cannot wait for the next yearly release. An example would be a vulnerability fix that leads to an unavoidable breaking change. However, security requirements depend on the application and not every vulnerability may affect every deployment, depending on the features used. Therefore we usually prefer to deprecate insecure functionality and introduce the breaking change following our [deprecation policy](#deprecation-policy).
370+
349371
## Code of Conduct
350372
351373
This project adheres to the [Contributor Covenant Code of Conduct](https://github.com/parse-community/parse-server/blob/master/CODE_OF_CONDUCT.md). By participating, you are expected to honor this code.

0 commit comments

Comments
 (0)