Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Allow the tests/ directory to be included in the published tarball #154

Merged
merged 1 commit into from
Nov 21, 2023

Conversation

Swandog
Copy link
Contributor

@Swandog Swandog commented Nov 21, 2023

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`) 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
@Swandog Swandog self-assigned this Nov 21, 2023
@Swandog Swandog requested a review from a team as a code owner November 21, 2023 19:07
@Swandog Swandog merged commit 8a14d8d into master Nov 21, 2023
22 checks passed
@Swandog Swandog deleted the bugfix/do-not-exclude-tests-from-publishing branch November 21, 2023 22:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant