aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/Makefile.am2
-rw-r--r--docs/VERSIONS64
2 files changed, 65 insertions, 1 deletions
diff --git a/docs/Makefile.am b/docs/Makefile.am
index 2d4836a7e..b0fea655e 100644
--- a/docs/Makefile.am
+++ b/docs/Makefile.am
@@ -61,7 +61,7 @@ HTMLPAGES = \
EXTRA_DIST = $(man_MANS) \
MANUAL BUGS CONTRIBUTE FAQ FEATURES INTERNALS \
README.win32 RESOURCES TODO TheArtOfHttpScripting THANKS \
- $(HTMLPAGES)
+ VERSIONS $(HTMLPAGES)
MAN2HTML= gnroff -man $< | man2html >$@
diff --git a/docs/VERSIONS b/docs/VERSIONS
new file mode 100644
index 000000000..01455717e
--- /dev/null
+++ b/docs/VERSIONS
@@ -0,0 +1,64 @@
+ _ _ ____ _
+ ___| | | | _ \| |
+ / __| | | | |_) | |
+ | (__| |_| | _ <| |___
+ \___|\___/|_| \_\_____|
+
+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][-preN]
+
+ Where
+ X is main version number
+ Y is release number
+ Z is patch number
+ N is pre-release number
+
+ 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 is not
+ included in the version number. The pre release number is only included in
+ pre releases (they're never used in public, official, releases).
+
+ The main version number will get bumped when *really* big, world colliding
+ changes are made. The release number is bumped when big changes are
+ performed. The patch number is bumped when the changes are mere bugfixes and
+ only minor feature changes. The pre-release is a counter, to identify which
+ pre-release a certain release is.
+
+ When reaching the end of a pre-release period, the version without the
+ pre-release part will be released as a public release.
+
+ 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. Before 1.2.4 is released, we might release a 1.2.4-pre1 release
+ for the brave people to try before the actual release.
+
+ 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/curl.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 numbers are always represented using two digits. 1.2
+ would appear as "0x010200" while version 9.11.7 appears as "0x090b07".
+
+ This 6-digit hexadecimal number does not show pre-release number, and it is
+ always a greater number in a more recent release. It makes comparisons with
+ greater than and less than work.