From 1c81dbed5674a4b740e2220f778243cf2cc78e65 Mon Sep 17 00:00:00 2001 From: al1-ce Date: Sat, 11 May 2024 22:32:47 +0300 Subject: [PATCH] added message about versions --- README.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/README.md b/README.md index 65a3ff3..48fc6ae 100644 --- a/README.md +++ b/README.md @@ -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) +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 {@t @}{@k deprecated}({@s "x.y.z - Why"}), 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