Create VERSIONING.md (#6023)

* Create VERSIONING.md

* Include VERSIONING.md in NPM package

* Add note on deprecation timelines to VERSIONING.md

* Be explicit about what "support for old major versions" means

Co-authored-by: Peter Noble <petershaggynoble@gmail.com>
This commit is contained in:
Eric Cornelissen 2021-09-30 09:33:44 +02:00 committed by GitHub
parent d86cbfa3a1
commit 668c9e49c7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 27 additions and 12 deletions

View File

@ -7,4 +7,5 @@
!DISCLAIMER.md !DISCLAIMER.md
!README.md !README.md
!LICENSE.md !LICENSE.md
!VERSIONING.md
!index.js !index.js

View File

@ -387,15 +387,3 @@ Then, start a Docker container for simple-icons and attach to it:
```shell ```shell
docker run -it --rm --entrypoint "/bin/ash" simple-icons docker run -it --rm --entrypoint "/bin/ash" simple-icons
``` ```
---
# Versioning
We use [Semantic Versioning](https://semver.org/) in this project. Given a version number `MAJOR.MINOR.PATCH` you can expect the following kinds of changes:
| Version number | Kinds of changes |
| :---- | :---- |
| _Major_ | Removed icons; Renamed icons; Breaking API changes |
| _Minor_ | New icons; API changes |
| _Patch_ | Updated SVGs; Updated metadata |

26
VERSIONING.md Normal file
View File

@ -0,0 +1,26 @@
# Versioning
We use [Semantic Versioning](https://semver.org/) to version Simple Icons. In short, this means that version numbers are structured as `MAJOR.MINOR.PATCH`. For example, version `3.1.4` is major version `3`, minor version `1`, and patch `4`. Increasing each of these numbers implies certain kinds of changes.
For Simple Icons, given a change to the version number you can expect the following kinds of changes:
| Version number increase | Kinds of changes |
| :---- | :---- |
| _Major_ | Removed icons; Renamed icons; Breaking API changes |
| _Minor_ | New icons; API changes |
| _Patch_ | Updated SVGs; Updated metadata |
## Release Schedule
_Minor_ releases and _patches_ are scheduled on a weekly basis and are generally released on a Sunday.
_Major_ releases are scheduled on a half-year basis, mainly to remove old SVGs. That is, approximately every 6 months a normal Sunday release is a _major_ release instead of a _minor_ release or _patch_.
## Deprecation
For approximately 3 months after a _major_ release, the _major_ release preceding it will be supported. After 3 months, the previous _major_ release is deprecated and will no longer be supported.
Support of a _major_ version entails the following:
- SVGs and metadata of brands will be updated on request. This excludes brands that were removed in the new _major_ release.
- Bugs in the npm library will be updated if reported.