VERSIONS 3.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. _ _ ____ _
  2. ___| | | | _ \| |
  3. / __| | | | |_) | |
  4. | (__| |_| | _ <| |___
  5. \___|\___/|_| \_\_____|
  6. Version Numbers and Releases
  7. Curl is not only curl. Curl is also libcurl. They're actually individually
  8. versioned, but they mostly follow each other rather closely.
  9. The version numbering is always built up using the same system:
  10. X.Y[.Z][-preN]
  11. Where
  12. X is main version number
  13. Y is release number
  14. Z is patch number
  15. N is pre-release number
  16. One of these numbers will get bumped in each new release. The numbers to the
  17. right of a bumped number will be reset to zero. If Z is zero, it may not be
  18. included in the version number. The pre release number is only included in
  19. pre releases (they're never used in public, official, releases).
  20. The main version number will get bumped when *really* big, world colliding
  21. changes are made. The release number is bumped when big changes are
  22. performed. The patch number is bumped when the changes are mere bugfixes and
  23. only minor feature changes. The pre-release is a counter, to identify which
  24. pre-release a certain release is.
  25. When reaching the end of a pre-release period, the version without the
  26. pre-release part will be released as a public release.
  27. It means that after release 1.2.3, we can release 2.0 if something really big
  28. has been made, 1.3 if not that big changes were made or 1.2.4 if mostly bugs
  29. were fixed. Before 1.2.4 is released, we might release a 1.2.4-pre1 release
  30. for the brave people to try before the actual release.
  31. Bumping, as in increasing the number with 1, is unconditionally only
  32. affecting one of the numbers (except the ones to the right of it, that may be
  33. set to zero). 1 becomes 2, 3 becomes 4, 9 becomes 10, 88 becomes 89 and 99
  34. becomes 100. So, after 1.2.9 comes 1.2.10. After 3.99.3, 3.100 might come.
  35. All original curl source release archives are named according to the libcurl
  36. version (not according to the curl client version that, as said before, might
  37. differ).
  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. #define LIBCURL_VERSION_NUM 0xXXYYZZ
  44. Where XX, YY and ZZ are the main version, release and patch numbers in
  45. hexadecimal. All three numbers are always represented using two digits. 1.2
  46. would appear as "0x010200" while version 9.11.7 appears as "0x090b07".
  47. This 6-digit hexadecimal number does not show pre-release number, and it is
  48. always a greater number in a more recent release. It makes comparisons with
  49. greater than and less than work.
  50. This number is also available as three separate defines:
  51. LIBCURL_VERSION_MAJOR, LIBCURL_VERSION_MINOR and LIBCURL_VERSION_PATCH.