Skip to content

Commit

Permalink
added message about versions
Browse files Browse the repository at this point in the history
  • Loading branch information
al1-ce committed May 11, 2024
1 parent 58464ec commit 1c81dbe
Showing 1 changed file with 28 additions and 0 deletions.
28 changes: 28 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,34 @@ sily is a general-purpose library containing utilities for general programming a

Documentation can be found [here](https://al1-ce.github.io/sily-docs/)

## Versioning (Will be effective since 6.0) <!-- FIXME: Remove --> <!-- TODO: Remove -->
Library follows semantic versioning (`x.y.z` where `x` is Major release, `y` is Minor release and `z` is Patch). This means that:
- 1.0.Z - Patch version signified bugfixes and minor changes
- Patches are compatible with each other
- You can safely change from one patch to another
- You can specify version in project config file as {@s "~>x.y"}
- 1.Y.0 - Minor version signifies new features
- Minor versions are not backwards-compatible
- You can safely upgrade from lower Minor release to higher Minor release
- You can specify version in project config file as {@s "~>x"} if you're using features only from first minor release
- X.0.0 - Major version signifies breaking or removal of features
- Major releases are not compatible with each other
- You might have to fix your code in case of deprecations or major changes
- Deprecation will be removed in every Major release
- Deprecations will be introduces in Minor releases by tagging deprecated code with <code>{@t @}{@k deprecated}({@s "x.y.z - Why"})</code>, where {@s "x.y.z"} is version where code was deprecated and {@s "Why"} is reason for removal or what to use instead

Example:
```d
Version 1.0.0 - Initial release
Version 1.0.1 - Fixed functionA and structA
Version 1.0.2 - Fixed functionB
Version 1.1.0 - Moved functionB to moduleB
functionB marked @deprecated("1.1.0 - Moved to moduleB")
Version 1.1.1 - Fixed functionC
Version 1.2.0 - Added structB
Version 2.0.0 - structA now has different logic. Removed functionB from moduleA
```

## Development
- [dmd / ldc / gdc](https://dlang.org/) - D compiler
- [dub](https://code.dlang.org/) - D package manager
Expand Down

0 comments on commit 1c81dbe

Please sign in to comment.