summaryrefslogtreecommitdiff
path: root/docs/VERSIONS.md
diff options
context:
space:
mode:
authorEmil Engler <me@emilengler.com>2020-05-02 17:30:33 +0200
committerDaniel Stenberg <daniel@haxx.se>2020-05-02 23:45:09 +0200
commitf7ab488570ce67ab8cf6c0acf022fb8e1f55ad9b (patch)
tree6fe23e4c54a2d65cce483247fcbc91357517f6c1 /docs/VERSIONS.md
parent153d581b7f1aa9810037b2bdd3428ca3de0ff59d (diff)
downloadcurl-f7ab488570ce67ab8cf6c0acf022fb8e1f55ad9b.tar.gz
doc: Rename VERSIONS to VERSIONS.md as it already has Markdown syntax
Closes #5325
Diffstat (limited to 'docs/VERSIONS.md')
-rw-r--r--docs/VERSIONS.md56
1 files changed, 56 insertions, 0 deletions
diff --git a/docs/VERSIONS.md b/docs/VERSIONS.md
new file mode 100644
index 000000000..72a45474d
--- /dev/null
+++ b/docs/VERSIONS.md
@@ -0,0 +1,56 @@
+Version Numbers and Releases
+============================
+
+ Curl is not only curl. Curl is also libcurl. They're actually individually
+ versioned, but they mostly follow each other rather closely.
+
+ The version numbering is always built up using the same system:
+
+ X.Y.Z
+
+ - X is main version number
+ - Y is release number
+ - Z is patch number
+
+## Bumping numbers
+
+ One of these numbers will get bumped in each new release. The numbers to the
+ right of a bumped number will be reset to zero. If Z is zero, it may not be
+ included in the version number.
+
+ The main version number will get bumped when *really* big, world colliding
+ changes are made. The release number is bumped when changes are performed or
+ things/features are added. The patch number is bumped when the changes are
+ mere bugfixes.
+
+ It means that after release 1.2.3, we can release 2.0 if something really big
+ has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs
+ were fixed.
+
+ Bumping, as in increasing the number with 1, is unconditionally only
+ affecting one of the numbers (except the ones to the right of it, that may be
+ set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99
+ becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come.
+
+ All original curl source release archives are named according to the libcurl
+ version (not according to the curl client version that, as said before, might
+ differ).
+
+ As a service to any application that might want to support new libcurl
+ features while still being able to build with older versions, all releases
+ have the libcurl version stored in the curl/curlver.h file using a static
+ numbering scheme that can be used for comparison. The version number is
+ defined as:
+
+ #define LIBCURL_VERSION_NUM 0xXXYYZZ
+
+ Where XX, YY and ZZ are the main version, release and patch numbers in
+ hexadecimal. All three number fields are always represented using two digits
+ (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7
+ appears as "0x090b07".
+
+ This 6-digit hexadecimal number is always a greater number in a more recent
+ release. It makes comparisons with greater than and less than work.
+
+ This number is also available as three separate defines:
+ `LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`.