cargo package (and thus, cargo publish) verifies Cargo.toml against the packaged tarball This means extracting the tarball and trying to verify the Cargo.toml In the past, we relied on auto-discovery of files under tests to run integration tests When we added the examples feature, we ended up putting some tests behind that feature In order to make that work, the tests were added as targets in Cargo.toml with explicit required-features entries However, because these tests were now explicitly defined in Cargo.toml instead of implicitly by directory structure,
Cargo required those test files to be present in order for the manifest to be valid
Because we were excluding tests/ from the packaging, this was causing the package validation to fail
(while not causing problems in development because the tests/ directory was present in git checkout)
Thus, this issue did not present itself until we tried to publish lace The simple solution is just to include the required test .rs files in the package;
they are small in size, and it is not required that they pass to publish
cargo package
(and thus,cargo publish
) verifiesCargo.toml
against the packaged tarball This means extracting the tarball and trying to verify theCargo.toml
In the past, we relied on auto-discovery of files undertests
to run integration tests When we added theexamples
feature, we ended up putting some tests behind that feature In order to make that work, the tests were added as targets inCargo.toml
with explicitrequired-features
entries However, because these tests were now explicitly defined inCargo.toml
instead of implicitly by directory structure, Cargo required those test files to be present in order for the manifest to be valid Because we were excludingtests/
from the packaging, this was causing thepackage
validation to fail (while not causing problems in development because thetests/
directory was present ingit checkout
) Thus, this issue did not present itself until we tried to publishlace
The simple solution is just to include the required test.rs
files in the package; they are small in size, and it is not required that they pass to publish