Skip to content

fix(release): untrack fuzz crash artifacts already gitignored#148

Merged
polaz merged 1 commit into
mainfrom
fix/#147-untrack-fuzz-artifacts
May 17, 2026
Merged

fix(release): untrack fuzz crash artifacts already gitignored#148
polaz merged 1 commit into
mainfrom
fix/#147-untrack-fuzz-artifacts

Conversation

@polaz
Copy link
Copy Markdown
Member

@polaz polaz commented May 17, 2026

Summary

release-plz fails on main with:

the working directory of this project has uncommitted changes. If these files are both committed and in .gitignore, either delete them or remove them from .gitignore.

47 files under zstd/fuzz/artifacts/{decode,fse,huff0,interop}/crash-* are tracked in the index AND match the zstd/fuzz/artifacts/** rule added to .gitignore in 4d98ff9. That rule was added in the prior session without a companion git rm --cached — release-plz then refuses to compute the next version because of the ignored-but-tracked conflict.

Fix

git rm --cached on the 47 entries. Files stay on disk (local fuzzing reproducers under cargo fuzz run keep working) — only the index entries are dropped, so the repo state now agrees with the .gitignore rule.

Test plan

  • CI green on this PR (no build/test/lint changes — only index hygiene)
  • After merge, next release-plz run on main passes the git ls-files -ci --exclude-standard check
  • ls zstd/fuzz/artifacts/decode/ on disk still shows the crash corpora locally

Closes #147

Refs failing run: https://github.com/structured-world/structured-zstd/actions/runs/25992361787/job/76400718142

Summary by CodeRabbit

  • Tests
    • Cleaned up fuzzing test artifacts to maintain test infrastructure.

47 files under zstd/fuzz/artifacts/{decode,fse,huff0,interop}/crash-* are
tracked in the index AND match the zstd/fuzz/artifacts/** rule added to
.gitignore in 4d98ff9. release-plz refuses to proceed with such files:

  failed to determine next versions
  the working directory of this project has uncommitted changes. If these
  files are both committed and in .gitignore, either delete them or remove
  them from .gitignore.

git rm --cached keeps the files on disk for local fuzzing reproducers
(zstd/fuzz/artifacts/ stays populated; only the index entries go away).

Closes #147
Copilot AI review requested due to automatic review settings May 17, 2026 13:48
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 17, 2026

Caution

Review failed

The pull request is closed.

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: a9da25d4-05e3-4328-9732-ce1e8a43d8f7

📥 Commits

Reviewing files that changed from the base of the PR and between e148c1c and 8fec737.

📒 Files selected for processing (47)
  • zstd/fuzz/artifacts/decode/crash-003e8871ae1b398af243ed3bdd895e6a9b417d09
  • zstd/fuzz/artifacts/decode/crash-06be9bcd30e08d36a1231291fdc393be2286ccd1
  • zstd/fuzz/artifacts/decode/crash-0b8dd1ec99c11d29f489b7ed1ea0a641b22f1c4b
  • zstd/fuzz/artifacts/decode/crash-0e471543b70867a4e3d6884e281e504018f6a4e0
  • zstd/fuzz/artifacts/decode/crash-13621a677af75daa6007d30f8e91a6706ce8b2b7
  • zstd/fuzz/artifacts/decode/crash-1f4e23456d1aa3bcd5a13947ba1b71536c479a3a
  • zstd/fuzz/artifacts/decode/crash-285afb3e50455f20ba4f19ffdd3ca2767771d67c
  • zstd/fuzz/artifacts/decode/crash-2a4da82402386b074fd8be53271812ce2d8e2b18
  • zstd/fuzz/artifacts/decode/crash-2ec60cbc7b68479802290177232e2472625d5e5d
  • zstd/fuzz/artifacts/decode/crash-2f47b61c081dfbce296e9674cae4448f7bfa1277
  • zstd/fuzz/artifacts/decode/crash-3151768e96e3ce234cc8304da8fa51c65ec2bfb6
  • zstd/fuzz/artifacts/decode/crash-3d348c53c3db2c13e65f6a8ea95848fc9ddfaf01
  • zstd/fuzz/artifacts/decode/crash-431e8c5fa22def362a489a04e4f9470d9409f111
  • zstd/fuzz/artifacts/decode/crash-49bec46e6271a44740b1ab82e79e9b371d832b8c
  • zstd/fuzz/artifacts/decode/crash-4d0dfb5fcd91a4c960619fdb17364f34d05f7310
  • zstd/fuzz/artifacts/decode/crash-4fda2fa7e33a2589cc514990dd9fe7ab03bf985a
  • zstd/fuzz/artifacts/decode/crash-50f1812780e355be23520eb604bcc18df1c222bb
  • zstd/fuzz/artifacts/decode/crash-663779067554d3f2a8c56ffc939cc7e842ed63ec
  • zstd/fuzz/artifacts/decode/crash-7eb5677508a2696ad1f778c464a38303267ab4ee
  • zstd/fuzz/artifacts/decode/crash-8373dd7d83fda197b92858a7dfc101c3208c1238
  • zstd/fuzz/artifacts/decode/crash-adb83ab8f58b2724f649a0cea5a5ed2004fa25c5
  • zstd/fuzz/artifacts/decode/crash-b5e12760caa036f8467d9f9963606e675f913ce1
  • zstd/fuzz/artifacts/decode/crash-bacc82e4bc4975593010cae0002c55d0967da6a3
  • zstd/fuzz/artifacts/decode/crash-bbead0dbe38036346fb694ad1893cec85a0b8700
  • zstd/fuzz/artifacts/decode/crash-bc1ef1499329fe12f4ba10998c86778a3102452d
  • zstd/fuzz/artifacts/decode/crash-c11a4207fca22f987266fe797c83eb0bb2c9fbc4
  • zstd/fuzz/artifacts/decode/crash-c746b132a6561becc94bbaf80f0fcd22c805ae7e
  • zstd/fuzz/artifacts/decode/crash-ca663bc7ccd4c4e6e7a02651bc06236b11e20170
  • zstd/fuzz/artifacts/decode/crash-cb08bdd38c7904891e88d217fe105a0c7102cf46
  • zstd/fuzz/artifacts/decode/crash-cb2b9b0b711020aad1153f8a6fff1b5dfbf0e084
  • zstd/fuzz/artifacts/decode/crash-cddb11de78f42d894d9b15b23bbad791b06a7c75
  • zstd/fuzz/artifacts/decode/crash-d5f00d39b2b269f380d4ffc5dd40c76acf43ac13
  • zstd/fuzz/artifacts/decode/crash-d7a5385da30608d3ea21916c0291e3592a627c48
  • zstd/fuzz/artifacts/decode/crash-d8943dbbbf4f0a40fdaef7375207c7778b333864
  • zstd/fuzz/artifacts/decode/crash-d95d11d3a0d91d39c1d5ba9added01f249b39b82
  • zstd/fuzz/artifacts/decode/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
  • zstd/fuzz/artifacts/decode/crash-efefea0a61c8cab9ec201ca547ec55924b51547e
  • zstd/fuzz/artifacts/decode/crash-f02fdd84d0bc12c221de04a60c81993a6bb56467
  • zstd/fuzz/artifacts/decode/crash-f2c779cdf7827b4827e33eb5510e9e2d3d83371f
  • zstd/fuzz/artifacts/decode/crash-fb4314c59f9013d610ac2b8d698c97e518fa095e
  • zstd/fuzz/artifacts/fse/crash-16fdc285684fe17e4a84ff6605c7f0e362af3dfa
  • zstd/fuzz/artifacts/fse/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
  • zstd/fuzz/artifacts/fse/crash-e587fc04ebe1b7e97d0aa916ef8d3f2cc92fb4b1
  • zstd/fuzz/artifacts/huff0/crash-da39a3ee5e6b4b0d3255bfef95601890afd80709
  • zstd/fuzz/artifacts/huff0/crash-e7d75b9bfbab3e8e4df53bb28b87a1a01ee99d3d
  • zstd/fuzz/artifacts/interop/crash-5ba93c9db0cff93f52b521d7420e43f6eda2784f
  • zstd/fuzz/artifacts/interop/crash-a9f55c479d7c420764bde5bd6c666a7997d79d26

📝 Walkthrough

Walkthrough

This PR removes 4 fuzzing crash artifact files from the git index to resolve a release-plz failure. Files in zstd/fuzz/artifacts/decode/ matching the crash-* pattern are tracked in git but also match gitignore rules, causing a conflict during release workflows. Using git rm --cached removes them from tracking while preserving them on disk for local fuzzing.

Changes

Cohort / File(s) Summary
Fuzz artifact index cleanup
zstd/fuzz/artifacts/decode/crash-3151768e96e3ce234cc8304da8fa51c65ec2bfb6, zstd/fuzz/artifacts/decode/crash-4fda2fa7e33a2589cc514990dd9fe7ab03bf985a, zstd/fuzz/artifacts/decode/crash-7eb5677508a2696ad1f778c464a38303267ab4ee, zstd/fuzz/artifacts/decode/crash-cb2b9b0b711020aad1153f8a6fff1b5dfbf0e084
Remove 4 crash artifact files from git index to resolve release-plz conflict; files remain on disk for local fuzzing workflows.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~2 minutes

Poem

🐰 Artifacts bunny cleared the way,
Four crash files no more to stay,
In gitignore's gentle keep,
Fuzzing dreams run safe and deep!
Release flows now smooth and free, 🎉

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch fix/#147-untrack-fuzz-artifacts

Comment @coderabbitai help to get the list of available commands and usage tips.

@polaz polaz merged commit 9a72f0b into main May 17, 2026
5 of 6 checks passed
@polaz polaz deleted the fix/#147-untrack-fuzz-artifacts branch May 17, 2026 13:48
@sw-release-bot sw-release-bot Bot mentioned this pull request May 16, 2026
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR untracks 47 fuzz crash artifact files under zstd/fuzz/artifacts/{decode,fse,huff0,interop}/ that were already matched by the zstd/fuzz/artifacts/** .gitignore rule. The conflict between tracked-and-ignored files was causing release-plz to abort on main. Files remain on disk for local fuzzing; only the index entries are removed.

Changes:

  • git rm --cached of 47 fuzz crash reproducer files to align the index with .gitignore.
  • No code, build, or test changes.

Reviewed changes

Copilot reviewed 4 out of 47 changed files in this pull request and generated no comments.

File Description
zstd/fuzz/artifacts/decode/crash-* Removed from index; remain on disk locally
zstd/fuzz/artifacts/fse/crash-* Removed from index; remain on disk locally
zstd/fuzz/artifacts/huff0/crash-* Removed from index; remain on disk locally
zstd/fuzz/artifacts/interop/crash-* Removed from index; remain on disk locally

polaz added a commit that referenced this pull request May 17, 2026
)

After PR #148 untracked zstd/fuzz/artifacts/** via `git rm --cached`,
`git pull` deletes those files from every checkout. test_all_artifacts
was reading `./fuzz/artifacts/decode` with `unwrap()` on the read_dir
result and now panics on fresh checkouts / CI workers with no local
`cargo fuzz run` history.

Treat NotFound as a no-op: the corpus is locally produced or generated
by CI fuzz runs and intentionally not tracked. The other regression
test in this file pins the literal 7-byte interop crash as bytes
inline, so the regression contract for known-bad inputs holds even
when the on-disk corpus is empty.

Closes #150
Copy link
Copy Markdown

@sw-release-bot sw-release-bot Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Performance Alert ⚠️

Possible performance regression was detected for benchmark 'structured-zstd vs C FFI (x86_64-gnu)'.
Benchmark result of this commit is worse than the previous benchmark result exceeding threshold 1.30.

Benchmark suite Current: 8fec737 Previous: 1e0f695 Ratio
compress/level_22_btultra2/low-entropy-1m/matrix/pure_rust 1.881 ms 1.293 ms 1.45
compress/level_22_btultra2/low-entropy-1m/matrix/c_ffi 1.809 ms 1.184 ms 1.53

This comment was automatically generated by workflow using github-action-benchmark.

CC: @polaz

polaz added a commit that referenced this pull request May 17, 2026
… shards finish (#153)

The bench-matrix runs seven strategy shards per target. The
heaviest shards exceed the previous per-target caps on every
main push:

* lazy shard runs 11 levels (5..15) sequentially through one bench
  binary invocation. On any target this takes 25-30+ minutes,
  hitting the cap before the benchmark frame even starts on the
  last level.
* fast shard runs 8 levels (-7..-1, 1). On i686-gnu (32-bit, ~30%
  slower) this consistently exceeds the previous 30m cap.
* btultra2 shard runs 3 expensive levels (20..22). On i686-gnu the
  matcher passes alone push it past 30m.

When a single shard hits its job timeout the whole CI run is
marked failed, so benchmark-aggregate and benchmark-pages never
run and the dashboard at
https://structured-world.github.io/structured-zstd/dev/bench/
gets no new data point for that commit. This affected every main
push today (#148, #151, #138 → v0.0.21 release).

Bump per-target timeout_minutes: x86_64-gnu 25 -> 45, i686-gnu
30 -> 60, x86_64-musl 25 -> 45. The 32-bit target gets a higher
absolute cap because its bench loop is consistently ~30% slower.

Closes #152
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.

fix(release): untrack fuzz crash artifacts that are also gitignored

2 participants