Skip to content

build(deps): bump insta from 1.48.0 to 1.49.0 - #9224

Merged
youknowone merged 1 commit into
mainfrom
dependabot/cargo/insta-1.49.0
Oct 20, 2026
Merged

youknowone merged 1 commit into
mainfrom
dependabot/cargo/insta-1.49.0

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Bumps insta from 1.48.0 to 1.49.0.

Release notes

Sourced from insta's releases.

1.49.0

Release Notes

  • Allow Option<&OsStr> snapshot names, such as Path::file_name(), without explicit string conversion. #929 (@​dislogical)
  • Add prebuilt cargo-insta binaries for ARM64 Linux (aarch64-unknown-linux-gnu). #942 (@​aljohri)
  • Fix JSON serialization of maps keyed by unit enum variants. Keys use the serialized variant name, including serde renames. #934 (@​teddytennant)
  • Remove trailing semicolons from serialization macro bodies to avoid compiler warnings when used in expression position. #940 (@​Tiwalun)
  • Mention INSTA_UPDATE=always in snapshot mismatch hints for file snapshots. #927 (@​hiro-nikaitou)
  • Update the lockfile's tempfile and rustix dependencies to fix builds with newer Rust toolchains. #939
  • Fix cargo insta test --all-targets --test-runner nextest failing with "Can't mix --doc with other target selecting options". Like cargo test --all-targets, it no longer runs doctests. #460

Install cargo-insta 1.49.0

Install prebuilt binaries via shell script

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/mitsuhiko/insta/releases/download/1.49.0/cargo-insta-installer.sh | sh

Install prebuilt binaries via powershell script

powershell -ExecutionPolicy Bypass -c "irm https://github.com/mitsuhiko/insta/releases/download/1.49.0/cargo-insta-installer.ps1 | iex"

Download cargo-insta 1.49.0

File Platform Checksum
cargo-insta-aarch64-apple-darwin.tar.xz Apple Silicon macOS checksum
cargo-insta-x86_64-apple-darwin.tar.xz Intel macOS checksum
cargo-insta-x86_64-pc-windows-msvc.zip x64 Windows checksum
cargo-insta-aarch64-unknown-linux-gnu.tar.xz ARM64 Linux checksum
cargo-insta-x86_64-unknown-linux-gnu.tar.xz x64 Linux checksum
cargo-insta-x86_64-unknown-linux-musl.tar.xz x64 MUSL Linux checksum

This was written by Codex on behalf of @​max-sixty

Changelog

Sourced from insta's changelog.

1.49.0

  • Allow Option<&OsStr> snapshot names, such as Path::file_name(), without explicit string conversion. #929 (@​dislogical)
  • Add prebuilt cargo-insta binaries for ARM64 Linux (aarch64-unknown-linux-gnu). #942 (@​aljohri)
  • Fix JSON serialization of maps keyed by unit enum variants. Keys use the serialized variant name, including serde renames. #934 (@​teddytennant)
  • Remove trailing semicolons from serialization macro bodies to avoid compiler warnings when used in expression position. #940 (@​Tiwalun)
  • Mention INSTA_UPDATE=always in snapshot mismatch hints for file snapshots. #927 (@​hiro-nikaitou)
  • Update the lockfile's tempfile and rustix dependencies to fix builds with newer Rust toolchains. #939
  • Fix cargo insta test --all-targets --test-runner nextest failing with "Can't mix --doc with other target selecting options". Like cargo test --all-targets, it no longer runs doctests. #460
Commits
  • 5df39ce Release 1.49.0 (#944)
  • 1c28c19 Skip the separate doctest run for nextest with --all-targets (#941)
  • 064742e Build cargo-insta for aarch64-unknown-linux-gnu (#942)
  • 08b67d9 Remove trailing semicolons from macro bodies (#940)
  • 06858e1 fix: regenerate Cargo.lock to avoid broken rustix 0.37.27 (#939)
  • 70be034 Serialize unit enum variants used as JSON map keys (#934)
  • 54d0b96 feat: implement From for SnapshotValue with OsStr (#929)
  • 3d62572 [fix] Mention INSTA_UPDATE variable in snapshot mismatch errors (#927)
  • 1712876 ci: run CI on a pinned toolchain via rust-toolchain.toml; fix format-arg lint...
  • See full diff in compare view

@dependabot dependabot Bot added dependencies Pull requests that update a dependency file rust Pull requests that update Rust code labels Oct 19, 2026
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 19, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-10-19T22:30:04.135235Z 294fb90 New commits
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@coderabbitai

coderabbitai Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration
  • Configuration used: Repository: RustPython/RustPython/.coderabbit.yml
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 6cd586d3-e335-478d-8f58-3c5fe6fd4da2

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

@codspeed

codspeed Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 62 untouched benchmarks
⏩ 4 skipped benchmarks1


Comparing dependabot/cargo/insta-1.49.0 (294fb90) with main (c08375b)

Open in CodSpeed

Footnotes

  1. 4 benchmarks were skipped, so the baseline results were used instead. If they were deleted from the codebase, click here and archive them to remove them from the performance reports. ↩

@fanninpm

Copy link
Copy Markdown
Contributor

@codspeedbot explain why performance improved

@codspeed

codspeed Bot commented Oct 19, 2026

Copy link
Copy Markdown
Contributor

@codspeedbot explain why performance improved

In short, this PR doesn't make anything faster. The +10% on parse_to_ast::rustpython[richards.py] is measurement noise from heap state, not an effect of the insta bump.

The PR can't change the benchmark binary

The only file changed is Cargo.lock:

  • insta 1.48 → 1.49 is a dev-dependency of rustpython-stdlib only. cargo tree -i insta on the rustpython package (normal, build and dev edges, Linux target) finds nothing.
  • The other changed lines (windows-sys 0.61 → 0.52, and tempfile switching to getrandom 0.3) only apply to Windows targets or to tempfile, which is not in the bench dependency graph either.

So the Linux benchmark binary is built from the same code as on main.

Where the 0.17 ms comes from

Comparing the base flamegraph (eb2ffc6) with the head one (0e9fa62):

base head
memcpy (self) 146.6 µs (18 calls from _int_realloc) 89.1 µs (10 from _int_realloc)
free (total, includes malloc_consolidate) 108.4 µs 42.6 µs
Dropping the Parsed<ModModule> AST 237 µs 170 µs
ruff_python_parser functions (next_token, parse_lhs_expression, parse_simple_statement, …) ≈ same ≈ same or slightly higher

All of the gain is inside glibc's allocator: realloc grew blocks in place more often, and fewer frees triggered consolidation. The parser itself did the same amount of work.

Why the allocator behaves differently from run to run

benches/execution.rs runs every benchmark in a single process, in HashMap order. The heap state left behind before parse_to_ast[richards.py] starts therefore changes between runs. Recent main commits show the same benchmark moving with no parser changes:

commit time
c434bfd 1.877 ms
7f5cc0e 1.754 ms
073136a 1.765 ms
eb2ffc6 (this PR's base) 1.856 ms
c08375b (next main commit) 1.758 ms
this PR 1.684 ms

The base happened to be one of the slow samples. Compared with the next main run, the difference is about 4%, well inside the usual spread. All the other benchmarks in this PR are unchanged. Nothing here needs action, and the bump is fine to merge as far as performance goes.

To make these results stable, the benches could run in a fixed order (for example a BTreeMap instead of a HashMap in execution.rs), or parse_to_ast could run in its own process. Comment @codspeedbot make the execution benchmarks run in a deterministic order if you want me to open a PR for that.

Summary
  • Warming up the performance wizard...
  • Handling comment — Comment handling finished successfully

Learnings updated. See what CodSpeed remembers about this repository.

Was this response helpful? React with 👍 or 👎 to help us improve CodSpeedBot.

@fanninpm

Copy link
Copy Markdown
Contributor

@codspeedbot pin the hash seed in the execution benchmark harness

@codspeed

codspeed Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

@codspeedbot pin the hash seed in the execution benchmark harness

I pinned the hash seed in the execution benchmark harness and pushed the change to this branch as adec249.

Change

In benches/execution.rs, bench_rustpython_code now sets the same seed that benches/microbenchmarks.rs already uses:

// Pin the str/bytes hash secret so dict/set probe sequences (and thus
// timings) are reproducible across benchmark runs.
settings.hash_seed = Some(0);

Every RustPython interpreter in this harness is created by that function. The hash secret is set once per process by the first interpreter, so all pystone and execution benchmarks now hash str/bytes the same way on every run.

Checks

  • cargo check --bench execution passes.
  • execution/nbody.py runs successfully in criterion test mode. I didn't run a full CodSpeed run locally; this PR's CI run will measure the change.

Caveats

  • This won't stabilise parse_to_ast::rustpython[richards.py], the benchmark that showed +10% here. It only runs the ruff parser and never hashes Python objects. Its swings come from the heap state left by earlier benchmarks, which depends on the HashMap iteration order in criterion_benchmark. Running the benchmarks in a fixed order (e.g. a BTreeMap) would address that.
  • This adds a benchmark-harness change to a Dependabot PR, so Dependabot will no longer rebase this branch automatically. If you'd rather keep the bump separate, the change can be cherry-picked into its own PR.

Comment @codspeedbot make the execution benchmarks run in a deterministic order and I'll make that change too.

Summary
  • Warming up the performance wizard...
  • Pin hash seed in benches/execution.rs — Set settings.hash_seed = Some(0), matching microbenchmarks.rs
  • Build and run the execution bench — Bench builds; execution/nbody.py runs successfully in test mode
  • Commit and push to the PR branch — Pushed adec249
  • Handling comment — Comment handling finished successfully

Learnings updated. See what CodSpeed remembers about this repository.

Was this response helpful? React with 👍 or 👎 to help us improve CodSpeedBot.

@fanninpm

Copy link
Copy Markdown
Contributor

@codspeedbot open a separate PR with the previous commit

@codspeed

codspeed Bot commented Oct 19, 2026 •

Copy link
Copy Markdown
Contributor

@codspeedbot open a separate PR with the previous commit

I opened #9235 with the hash-seed commit (adec249) on top of current main. It contains only the 3-line change in benches/execution.rs that sets settings.hash_seed = Some(0), and cargo check --bench execution passes.

The commit is still on this Dependabot branch too. I didn't remove it because that means force-pushing here. To get back to a clean bump, comment @dependabot recreate, or ask me with @codspeedbot drop the hash-seed commit from this PR.

Summary

Was this response helpful? React with 👍 or 👎 to help us improve CodSpeedBot.

@fanninpm

Copy link
Copy Markdown
Contributor

@dependabot recreate

Bumps [insta](https://github.com/mitsuhiko/insta) from 1.48.0 to 1.49.0.
- [Release notes](https://github.com/mitsuhiko/insta/releases)
- [Changelog](https://github.com/mitsuhiko/insta/blob/master/CHANGELOG.md)
- [Commits](mitsuhiko/insta@1.48.0...1.49.0)

---
updated-dependencies:
- dependency-name: insta
  dependency-version: 1.49.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot force-pushed the dependabot/cargo/insta-1.49.0 branch from adec249 to 294fb90 Compare October 19, 2026 22:29
@youknowone
youknowone merged commit b653c02 into main Oct 20, 2026
31 checks passed
@youknowone
youknowone deleted the dependabot/cargo/insta-1.49.0 branch October 20, 2026 00:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file rust Pull requests that update Rust code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants