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