### Versioning

The versioning of EPPlus is based on the [Semantic versioning](<https://semver.org/>) standard and uses the following format for versions:

`[Major].[Minor].[Patch]`

A **major** version often comes with larger new features and will most likely contain some breaking changes (we try to avoid these as much as possible).

A **minor** version often contain smaller new features. It usually don't contain breaking changes, if any it will be documented in the release notes.

A **patch** - the most frequent release - contains various fixes and no breaking changes.

### Releases

For each release - major, minor or patch - we create a [release](<https://github.com/EPPlusSoftware/EPPlus/releases>) on github. Here is a link to our [release atom feed](<https://github.com/EPPlusSoftware/Epplus/releases.atom>).

#### Pre-releases

Before releasing a new major version we normally release pre-release versions so the new functionality can be tested and users can provide feedback.

Pre-release versions are using the following format:

`[Major].[Minor].[Patch]-[Pre-release type]`

Here are some of the pre-release types we have used in order from the earliest release up until the stable release.

| Prerelease type | Description |
| :--- | :--- |
| preview\[n\] | **Preview**, might be several preview versions including a number - for example `Preview1` (no number - i.e. `Preview` means `Preview1`). Development is still ongoing and the interfaces might change in the future stable version. |
| beta\[n\] | **Beta** - example Beta1, Beta2, etc. Less breaking changes are expected, but testing and minor development is still ongoing. Interfaces might still change if needed |
| Rc\[n\] | **Release candidate** - example Rc1, Rc2. There will be no breaking changes unless they are needed to fix bugs. |

### See also

- [Branching strategy and CI](<https://epplussoftware.com/docs/about-epplus/branching-strategy-and-ci/index.md>)
- [EPPlus version history](<https://epplussoftware.com/en/Developers/MinorFeaturesAndIssues>)
- [Security policy](<https://github.com/EPPlusSoftware/EPPlus/blob/develop6/SECURITY.md>)
