iter-29: greenify CI — rustls reqwest, Windows snapshot filter#34
Conversation
- Switch reqwest to rustls-tls (drop default features) so the workspace no longer pulls in openssl-sys. Fixes the aarch64-unknown-linux-gnu cross job, which couldn't build openssl-sys against cross's Docker OpenSSL. - Add an `assert_cli_snapshot!` helper that filters `hoppy.exe` -> `hoppy` via insta's `filters` feature, so CLI-help snapshots captured on Unix match on Windows runners. Apply to the `container logs --help` snapshot (the only `Usage: hoppy ...` snapshot in the suite today). - Enable the `filters` feature on the workspace insta dep. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Free Run ID: ⛔ Files ignored due to path filters (1)
📒 Files selected for processing (4)
📝 WalkthroughWalkthroughPR updates workspace dependencies to switch reqwest from native-tls to rustls for deterministic cross-compilation, adds insta filter support, and introduces a new CLI snapshot assertion macro to normalize Windows-specific CLI output for cross-platform testing consistency. ChangesCI Green on Five Targets
Estimated code review effort🎯 2 (Simple) | ⏱️ ~10 minutes Poem
Note 🎁 Summarized by CodeRabbit FreeYour organization is on the Free plan. CodeRabbit will generate a high-level summary and a walkthrough for each pull request. For a comprehensive line-by-line review, please upgrade your subscription to CodeRabbit Pro by visiting https://app.coderabbit.ai/login. Comment |
There was a problem hiding this comment.
Pull request overview
This PR focuses on CI portability across the workspace by removing the OpenSSL dependency from HTTP/TLS and by making snapshot-based CLI help tests stable on Windows runners.
Changes:
- Switch workspace
reqwesttodefault-features = falsewithrustls-tlsto eliminateopenssl-sysfrom the dependency graph. - Add an e2e snapshot helper macro that normalizes
hoppy.exe→hoppyso Unix-captured--helpsnapshots match on Windows. - Enable
insta’sfiltersfeature to support the new snapshot filter.
Reviewed changes
Copilot reviewed 4 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
tests/e2e/support/mod.rs |
Adds assert_cli_snapshot! macro using an insta filter to normalize Windows .exe in snapshot text. |
tests/e2e/cli_container.rs |
Switches the container_logs_help snapshot assertion to use the new helper. |
hoppy-knowledgebase/iterations/iteration-29-ci-greenify.md |
Documents the iteration goals/plan and captures rationale for the CI fixes. |
Cargo.toml |
Updates workspace deps: enable insta filters and switch reqwest to rustls + no default features. |
Cargo.lock |
Reflects the dependency graph changes from moving off native-tls/openssl to rustls. |
Summary
reqwesttodefault-features = false, features = ["json", "rustls-tls"]— dropsopenssl-sysfrom the dep graph, unblocking theaarch64-unknown-linux-gnucross job whose Docker image OpenSSL didn't match whatopenssl-sys0.9.x recognises.assert_cli_snapshot!helper (intests/e2e/support) that wires up an insta filter normalisinghoppy.exe->hoppy, so CLI-help snapshots captured on Unix continue to match onx86_64-pc-windows-msvc. Applied tocontainer_logs_help(the onlyUsage: hoppy …snapshot today).filtersfeature on the workspaceinstadep so the macro compiles.Test plan
cargo fmt --checkcargo clippy --workspace --all-targets -- -D warningscargo test --workspace --quietcargo tree --workspace | grep openssl— emptySummary by CodeRabbit
Chores
instafor filtering and redactions; switched TLS implementation inreqwestfrom native-tls to rustls withdefault-features = false.Documentation