alexcrichton / curl-rust

Rust bindings to libcurl
MIT License
1k stars 234 forks source link

Wish: Document `cargo publish` of this crate #450

Closed stappersg closed 2 years ago

stappersg commented 2 years ago

Hello,

At https://crates.io/crates/curl-sys are releases with version numbers like 0.4.55+curl-7.83.1.

At https://github.com/alexcrichton/curl-rust/tags is no sign of the +curl-7.83.1. I wonder where it does come from.

Please document the process of cargo publish for this crate. Tell about the magic of adding plus curl version number.

sagebind commented 2 years ago

The full version number as published on Crates.io is set in the Cargo.toml file for the crate. The string after the + character is defined as build metadata by the Semantic Versioning spec. It is ignored when comparing version numbers, but is useful for indicating other useful build info in the version number. In the case of the curl-sys crate, we use the build metadata to indicate which upstream version of libcurl is bundled with the crate version at a glance.

For instance, for the version number 0.4.55+curl-7.83.1, the version of the curl-sys crate is 0.4.55, and it is bundled with libcurl 7.83.1.

We do not include the build metadata in the Git tags because there's not really as much value to it, and it makes checking out the Git tags a bit more tedious.

stappersg commented 2 years ago

The full version number as published on Crates.io is set in the Cargo.toml file for the crate.

version = "0.4.55+curl-7.83.1"

Ah thanks, that answers my

At https://github.com/alexcrichton/curl-rust/tags is no sign of the +curl-7.83.1. I wonder where it does come from.

So there is no magic of adding plus curl version number.

Thanks again. (original poster (closing the issue))