Skip to content

Comments

[nextest-runner] switch to eazip#3093

Merged
sunshowers merged 1 commit intomainfrom
eazip
Feb 22, 2026
Merged

[nextest-runner] switch to eazip#3093
sunshowers merged 1 commit intomainfrom
eazip

Conversation

@sunshowers
Copy link
Member

Unfortunately the zip library keeps breaking semver in minor versions -- see for example #3074.

Switch to the eazip library which seems to both be more straightforward and be easier to use.

Unfortunately the zip library keeps breaking semver in minor versions -- see for example #3074.

Switch to the eazip library which seems to both be more straightforward and be easier to use.
@codecov
Copy link

codecov bot commented Feb 22, 2026

Codecov Report

❌ Patch coverage is 69.75309% with 49 lines in your changes missing coverage. Please review.
✅ Project coverage is 84.29%. Comparing base (1344f8b) to head (a3d0956).
⚠️ Report is 1 commits behind head on main.

Files with missing lines Patch % Lines
nextest-runner/src/record/portable.rs 70.49% 36 Missing ⚠️
nextest-runner/src/record/reader.rs 43.47% 13 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main    #3093      +/-   ##
==========================================
+ Coverage   84.26%   84.29%   +0.02%     
==========================================
  Files         156      156              
  Lines       42536    42551      +15     
==========================================
+ Hits        35843    35868      +25     
+ Misses       6693     6683      -10     

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link

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 updates nextest’s record/portable recording implementation to use the eazip crate instead of zip, aiming to avoid repeated semver breakages in the previous zip dependency.

Changes:

  • Replace zip reader/writer usage with eazip across record writing, reading, and portable recording support.
  • Introduce shared FileOptions helpers for stored vs zstd-compressed entries.
  • Update internal tooling and integration tests to use eazip and adjust error handling accordingly.

Reviewed changes

Copilot reviewed 12 out of 13 changed files in this pull request and generated no comments.

Show a summary per file
File Description
nextest-runner/src/record/recorder.rs Switch store.zip writing from ZipWriter to eazip::ArchiveWriter, using stored/zstd options helpers.
nextest-runner/src/record/reader.rs Switch store.zip reading from ZipArchive to eazip::Archive, update file lookup and read/decompress paths.
nextest-runner/src/record/portable.rs Migrate portable archive read/write logic to eazip, including inner store handling and updated tests.
nextest-runner/src/record/format.rs Add stored_file_options and zstd_file_options helpers based on eazip::write::FileOptions.
nextest-runner/src/errors.rs Update error types away from zip::ZipError, add archive-parse error and new portable error for compressed inner archives.
nextest-runner/Cargo.toml Replace zip dependency with eazip.
internal-tools/zstd-dict/src/main.rs Port dictionary training/recompression tooling from zip to eazip.
internal-tools/zstd-dict/Cargo.toml Replace zip dependency with eazip.
integration-tests/tests/integration/record_replay.rs Update integration tests to read/write archives via eazip.
integration-tests/Cargo.toml Replace zip dev-dependency with eazip.
cargo-nextest/src/dispatch/utility/debug.rs Adjust matching logic now that ZipError is no longer re-exported.
Cargo.toml Add workspace dependency on eazip, remove zip.
Cargo.lock Lockfile updates for eazip addition and zip removal.
Comments suppressed due to low confidence (1)

nextest-runner/src/errors.rs:30

  • nextest-runner is published on crates.io (has docs.rs link), and this PR removes the public errors::ZipError re-export. That’s a breaking API change for any downstream code matching on ZipError (even if internal workspace crates have been updated). Consider keeping a deprecated compatibility re-export/type alias (or adding a dedicated error kind for archive read failures) and documenting the migration path in release notes/changelog.
use bytesize::ByteSize;
use camino::{FromPathBufError, Utf8Path, Utf8PathBuf};
use config::ConfigError;
use eazip::CompressionMethod;
use etcetera::HomeDirError;
use itertools::{Either, Itertools};
use nextest_filtering::errors::FiltersetParseErrors;
use nextest_metadata::RustBinaryId;

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@sunshowers sunshowers merged commit 7c43ba1 into main Feb 22, 2026
27 checks passed
@sunshowers sunshowers deleted the eazip branch February 22, 2026 21:00
@trunk-io
Copy link

trunk-io bot commented Feb 22, 2026

Static BadgeStatic BadgeStatic BadgeStatic Badge

View Full Report ↗︎Docs

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