I want to make librsvg's Rust API available through crates.io:
-
This is the main repository. In there you'll see autotools machinery for the C API, and a
Cargo.toml
that just defines a workspace. - This is the librsvg crate I want to publish. It depends on...
- ... this rsvg_internals crate, which is also used by a
librsvg_c_api
crate in the repository, which is not of consequence here.
If I run cargo publish --dry-run
while inside librsvg_crate
, it tells me this:
error: no matching package named `rsvg_internals` found
location searched: registry `https://github.com/rust-lang/crates.io-index`
Fair enough, since it's being declared like this:
[dependencies]
rsvg_internals = { path = "../rsvg_internals" }
Question 1: Does this mean I need to publish rsvg_internals
as well, and have it sit on crates.io as one of those crates that is available there, but one never uses directly?
Question 2: In the future I hope that the test suite, which is still implemented in C, will be ported to Rust. The test suite is much bigger than the 10 MB limit that crates.io imposes. Should I try to keep it as a separate/unpublished crate that is not used when cargo test
is run in the public librsvg
crate?