123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 |
- _ _ ____ _
- ___| | | | _ \| |
- / __| | | | |_) | |
- | (__| |_| | _ <| |___
- \___|\___/|_| \_\_____|
- 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]
- Where
- X is main version number
- Y is release number
- Z is patch 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 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.
|