Commit ef778ac
committed
fix: two files shipped in 0.3.0 that cannot compile from a tarball
`ytsaurus-skiff/tests/wire.rs` and `ytsaurus-job/tests/skiff_reader_tests.rs`
`include_str!` reference vectors from `tests/skiff-go-interop/`, which is
outside their crates. Those macros resolve at compile time, so both files
compile in this repository and cannot compile from the published `.crate` — the
fixtures are not in the tarball and no consumer can put them there. Verified
against the actual artifacts downloaded from crates.io: of the nine published,
`ytsaurus-skiff` and `ytsaurus-job` are the two whose `cargo test --no-run`
fails.
Consumers are unaffected: cargo does not build a dependency's tests. It bites
whoever unpacks the crate and runs its suite, and vendoring or packaging
workflows that do the same.
Four files of this kind were found and excluded before 0.3.0 went out. These two
were missed, and the reason is worth recording: the search was a line-based
grep for
include_str!("../../../tests/…
which does not match
hex_fixture(include_str!(
"../../../tests/…"
))
— the same macro with a newline in it. The audit that caught the other four did
not catch these either.
So `scripts/check-package-includes.sh` replaces the grep. It asks cargo which
files actually ship, parses each with a multi-line-aware regex, resolves every
include target and fails if one escapes its crate root. It runs in CI, and it
was checked to fail: re-including `tests/wire.rs` makes it exit 1 naming the
file and the three fixtures it reaches.
0.3.0 is published and cannot be replaced. This lands the fix so it is correct
from here, and so nothing else ships with it.1 parent 55e299a commit ef778ac
4 files changed
Lines changed: 104 additions & 7 deletions
File tree
- .github/workflows
- crates
- ytsaurus-job
- ytsaurus-skiff
- scripts
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
86 | 86 | | |
87 | 87 | | |
88 | 88 | | |
| 89 | + | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
89 | 98 | | |
90 | 99 | | |
91 | 100 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
27 | | - | |
| 27 | + | |
28 | 28 | | |
29 | 29 | | |
30 | 30 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
19 | 19 | | |
20 | 20 | | |
21 | 21 | | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
28 | 30 | | |
29 | 31 | | |
30 | 32 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| 83 | + | |
| 84 | + | |
| 85 | + | |
| 86 | + | |
0 commit comments