• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1Version Numbers and Releases
2============================
3
4 Curl is not only curl. Curl is also libcurl. They are actually individually
5 versioned, but they usually follow each other closely.
6
7 The version numbering is always built up using the same system:
8
9        X.Y.Z
10
11  - X is main version number
12  - Y is release number
13  - Z is patch number
14
15## Bumping numbers
16
17 One of these numbers will get bumped in each new release. The numbers to the
18 right of a bumped number will be reset to zero.
19
20 The main version number will get bumped when *really* big, world colliding
21 changes are made. The release number is bumped when changes are performed or
22 things/features are added. The patch number is bumped when the changes are
23 mere bugfixes.
24
25 It means that after release 1.2.3, we can release 2.0.0 if something really
26 big has been made, 1.3.0 if not that big changes were made or 1.2.4 if only
27 bugs were fixed.
28
29 Bumping, as in increasing the number with 1, is unconditionally only
30 affecting one of the numbers (except the ones to the right of it, that may be
31 set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99
32 becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100.0 might come.
33
34 All original curl source release archives are named according to the libcurl
35 version (not according to the curl client version that, as said before, might
36 differ).
37
38 As a service to any application that might want to support new libcurl
39 features while still being able to build with older versions, all releases
40 have the libcurl version stored in the `curl/curlver.h` file using a static
41 numbering scheme that can be used for comparison. The version number is
42 defined as:
43
44```c
45#define LIBCURL_VERSION_NUM 0xXXYYZZ
46```
47
48 Where `XX`, `YY` and `ZZ` are the main version, release and patch numbers in
49 hexadecimal. All three number fields are always represented using two digits
50 (eight bits each). 1.2 would appear as "0x010200" while version 9.11.7
51 appears as `0x090b07`.
52
53 This 6-digit hexadecimal number is always a greater number in a more recent
54 release. It makes comparisons with greater than and less than work.
55
56 This number is also available as three separate defines:
57 `LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`.
58