Skip to content

chore(deps): update dependency imposter to 0.2.0 - #6982

Merged
thomhurst merged 1 commit into
mainfrom
renovate/imposter-0.x
Oct 6, 2026
Merged

thomhurst merged 1 commit into
mainfrom
renovate/imposter-0.x

Conversation

@thomhurst

@thomhurst thomhurst commented Oct 6, 2026 •

Copy link
Copy Markdown
Owner

This PR contains the following updates:

Package Type Update Change
Imposter nuget minor 0.1.11 → 0.2.0

Release Notes

themidnightgospel/Imposter (Imposter)

v0.2.0: Generator performance, deterministic file names, indexer and async fixes

Compare Source

Fixes

  • Generic method calls no longer slow down over time (#​61, closes #​60). An unconfigured call to a generic method stored a new imposter that could never match, and every later call scanned all of them. After a few thousand calls, each call cost about 0.5 ms. A miss now returns an imposter that is not stored, and the lookup is a plain loop instead of a LINQ chain.

  • Indexer keys are compared with EqualityComparer<T>.Default (#​63, closes #​62). The generated indexer arguments compared keys with ==. That caused two problems:

    • It did not compile for unconstrained generic keys or for structs without == (CS0019).
    • It used reference equality for classes that override Equals, so the default indexer behaviour could not read back a value stored under an equal key.
  • Async methods are recognised on netstandard2.0 and .NET Framework (#​65, closes #​64). Task, Task<T> and ValueTask<T> were only recognised when they came from System.Runtime, System.Private.CoreLib or mscorlib. On netstandard2.0, and for ValueTask<T> on .NET Framework, the builders lacked ReturnsAsync/ThrowsAsync. Task types are now detected by name and namespace.

  • Cancelled builds no longer report a generator crash (#​75, closes #​74). A build cancelled while an imposter was being generated reported IMP005. The IDE then kept a result without the imposter until the next edit. Cancellation now propagates.

  • Generated file names no longer depend on attribute order (#​77, closes #​76). Two targets with the same name in different namespaces got IFooImposter.g.cs and IFooImposter_1.g.cs in processing order, so reordering the attributes swapped the files. Each file is now named after its fully qualified target, e.g. Sample.IFooImposter.g.cs, or Imposters.Sample.IFooImposter.g.cs for the dedicated namespace.

Performance

  • Faster generator with lower memory use (#​67, #​69, #​71):
    • Symbol-derived syntax is cached in metadata.
    • Method metadata is no longer boxed.
    • Generated code is written in a single pass over its tokens instead of through NormalizeWhitespace.
    • For the 21 imposters in our sample set, generation went from about 1.2 s and 452 MB allocated to about 0.33 s and 168 MB.
  • Smaller generated code (#​73). Members that were never used are no longer emitted, including:
    • stored imposter references in method builders;
    • an unused invocation behaviour field;
    • indexer getter invocation counters;
    • accessor members that the indexer or property does not have.

Changes to generated output

  • Generated files use tab indentation and LF line endings (#​71). The layout is otherwise unchanged.
  • Generated file names include the target's namespace (#​77). If you inspect the files through EmitCompilerGeneratedFiles, they now appear under the new names.

Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate CLI.

@thomhurst thomhurst added dependencies Pull requests that update a dependency file MINOR renovate-bot labels Oct 6, 2026
@thomhurst
thomhurst enabled auto-merge (squash) October 6, 2026 22:14
@thomhurst
thomhurst deployed to Pull Requests October 6, 2026 22:14 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests October 6, 2026 22:14 — with GitHub Actions Active
@thomhurst
thomhurst deployed to Pull Requests October 6, 2026 22:14 — with GitHub Actions Active
@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Oct 6, 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-06T22:15:55.184375Z 7e460f0 PR opened
ℹ️ 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 6, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Organization UI
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 41063e52-ff45-4cf7-9812-ef7a3a34ebe9
📥 Commits

Reviewing files that changed from the base of the PR and between 4c6db05 and 7e460f0.

📒 Files selected for processing (1)
  • Directory.Packages.props

Included review availability: This review used your included allowance. Your plan provides up to 8 included reviews per hour; 7 remain after this review.


📝 Walkthrough

Walkthrough

The centrally managed Imposter package version changes from 0.1.11 to 0.2.0.

Changes

Package version update

Layer / File(s) Summary
Update the Imposter package version
Directory.Packages.props
The centrally managed Imposter package version changes from 0.1.11 to 0.2.0.

Priority: ⬇️ Low

Estimated code review effort: 1 (Trivial) | ~2 minutes

Change: Other

Suggested reviewers: quattordici

Merge Risk: ⚪ Minimal · up to 7e460

No concrete compatibility issue is established for this version update, so no material merge risk remains.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 0…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the change: updating the Imposter dependency to version 0.2.0.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autopilot · 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

A rabbit checks the version line,
And sees the package change in time.
From eleven to two-oh,
A tidy update starts to show.
Then hops away beneath the moon.

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

@greptile-apps

greptile-apps Bot commented Oct 6, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[High risk] Updates a test mocking dependency to a new minor version.

This dependency update appears safe to merge.

What we checked:

  • Indexer changes do not affect benchmarks: The four interfaces registered with GenerateImposter have no indexers.

Summary

Updates Imposter from 0.1.11 to 0.2.0 in Directory.Packages.props.

  • The package is used by TUnit.Mocks.Benchmarks.
  • No actionable issues were found. Builds and benchmarks were not run.

Reviews (1) · Last reviewed commit: "chore(deps): update dependency imposter ..."

This was referenced Oct 8, 2026

This branch was successfully deployed

1 active deployment
Pull Requests — 7e460f08 Deployed Oct 6, 2026 by thomhurst via modularpipeline (ubuntu-latest) #19743
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 MINOR renovate-bot

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants