2001-11-07 03:26:51 -05:00
|
|
|
Version Numbers and Releases
|
2015-06-09 18:21:06 -04:00
|
|
|
============================
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
Curl is not only curl. Curl is also libcurl. They're actually individually
|
2020-12-07 07:23:04 -05:00
|
|
|
versioned, but they usually follow each other closely.
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
The version numbering is always built up using the same system:
|
|
|
|
|
2015-06-09 18:21:06 -04:00
|
|
|
X.Y.Z
|
|
|
|
|
|
|
|
- X is main version number
|
|
|
|
- Y is release number
|
|
|
|
- Z is patch number
|
2001-11-07 03:26:51 -05:00
|
|
|
|
2015-06-09 18:21:06 -04:00
|
|
|
## Bumping numbers
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
One of these numbers will get bumped in each new release. The numbers to the
|
2020-12-07 07:23:04 -05:00
|
|
|
right of a bumped number will be reset to zero.
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
The main version number will get bumped when *really* big, world colliding
|
2011-08-08 03:25:59 -04:00
|
|
|
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.
|
2001-11-07 03:26:51 -05:00
|
|
|
|
2020-12-07 07:23:04 -05:00
|
|
|
It means that after release 1.2.3, we can release 2.0.0 if something really
|
|
|
|
big has been made, 1.3.0 if not that big changes were made or 1.2.4 if only
|
|
|
|
bugs were fixed.
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
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
|
2020-12-07 07:23:04 -05:00
|
|
|
becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100.0 might come.
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
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
|
2005-05-13 19:00:06 -04:00
|
|
|
have the libcurl version stored in the curl/curlver.h file using a static
|
2001-11-07 03:26:51 -05:00
|
|
|
numbering scheme that can be used for comparison. The version number is
|
|
|
|
defined as:
|
2010-02-14 14:40:18 -05:00
|
|
|
|
2020-12-07 12:09:37 -05:00
|
|
|
```c
|
|
|
|
#define LIBCURL_VERSION_NUM 0xXXYYZZ
|
|
|
|
```
|
2001-11-07 03:26:51 -05:00
|
|
|
|
|
|
|
Where XX, YY and ZZ are the main version, release and patch numbers in
|
2011-08-08 03:25:59 -04:00
|
|
|
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".
|
2001-11-07 03:26:51 -05:00
|
|
|
|
2011-08-08 03:25:59 -04:00
|
|
|
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.
|
2005-05-13 19:00:06 -04:00
|
|
|
|
|
|
|
This number is also available as three separate defines:
|
2015-06-09 18:21:06 -04:00
|
|
|
`LIBCURL_VERSION_MAJOR`, `LIBCURL_VERSION_MINOR` and `LIBCURL_VERSION_PATCH`.
|