Skip to content

[deps]: Update nuget minor - #20

Open
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/nuget-minor
Open

[deps]: Update nuget minor#20
renovate[bot] wants to merge 1 commit into
mainfrom
renovate/nuget-minor

Conversation

@renovate

@renovate renovate Bot commented Mar 4, 2024

Copy link
Copy Markdown
Contributor

ℹ️ Note

This PR body was truncated due to platform limits.

This PR contains the following updates:

Package Change Age Confidence Type Update Pending
Handlebars.Net (source) [2.1.6][2.4.1] age confidence nuget minor 2.4.3 (+1)
System.CommandLine (source) [2.0.0-beta4.22272.1][2.0.10] age confidence nuget patch 2.0.11
YamlDotNet (source) [18.0.0][18.1.0] age confidence nuget minor
dotnet-sdk 10.0.10010.0.302 age confidence dotnet-sdk patch 10.0.400 (+1)

Release Notes

Handlebars-Net/Handlebars.Net (Handlebars.Net)

v2.4.1

Compare Source

Fixes

Both regressions below were introduced on 2026-06-20 and shipped in 2.4.0 (released 2026-08-06). Neither was an intentional public API change — this release restores prior correct behavior.

  • Static template text no longer has its line endings silently rewritten. A fix for internal indentation handling started normalizing every \r\n/\r in static template text to \n, so a literal \r\n a caller wrote into a template string (e.g. between {{#each}} iterations) was silently turned into \n. Static text now round-trips verbatim, matching this library's long-standing behavior and handlebars.js. (#​663, fixes #​661)
  • Subexpression results are plain strings again, not an internal wrapper type. A fix for double-encoding across subexpression boundaries (#​543) wrapped every writer-based helper's captured output in an internal sealed class SafeString when used as a subexpression argument. Only a few internal call sites knew how to unwrap it — any other consumer, including reflection-based/typed helper binders in third-party packages (e.g. Handlebars.Net.Helpers), received an opaque type it could neither cast to string nor unwrap, throwing InvalidCastException. The double-encoding fix is preserved, but the signal is now carried by an invisible reference-keyed marker instead of a boxing type, so the value is a genuine System.String everywhere except the one place that needs to know. (#​664, fixes #​660)

Compatibility notes

  • No API surface changes. Both fixes are behavior reverts to what 2.3.0 and earlier already did; anything that worked before 2.4.0 works the same way again.
  • If your code adapted to either regression (e.g. expected \n-only output regardless of source line endings, or handled a SafeString-typed subexpression argument), that adaptation is no longer necessary but should remain harmless.
Contributors

@​rexm

Full Changelog: Handlebars-Net/Handlebars.Net@2.4.0...2.4.1

v2.4.0

Compare Source

Performance

Rendering plain .NET objects and string-heavy templates got substantially faster this release, across three targeted changes to the hot rendering path:

  • ~10–33% faster object rendering, less allocationObjectDescriptor's member accessor is now pre-bound to its described type instead of re-resolving through a shared type-keyed lookup on every access, and bool property reads return cached boxed instances instead of allocating a fresh box per read. (#​652)
    Benchmark Case Before After Δ
    RenderSimple object 856.85 ns 575.79 ns −32.8%
    RenderNested object, rows=20 24.52 us 18.94 us −22.7%
    RenderList N=100, object 27.48 us 22.77 us −17.1%
  • ~10–20% faster string-heavy rendering — HTML encoders now bulk-write clean runs of text via SearchValues<char> (net8.0+) or a plain scan (netstandard) instead of one TextWriter.Write(char) call per character, falling back to the original per-character path only where escaping is actually needed. Output is byte-for-byte identical. (#​651)
    Benchmark Case Before After Δ
    RenderSimple dictionary 509.96 ns 399.20 ns −21.7%
    RenderList N=100, object 27.48 us 22.05 us −19.8%
    RenderToString clean 13.95 us 10.97 us −21.4%
  • Zero-allocation {{#each}} iteration — the boxed-integer cache used for iterator indexes grew from 20 to 1024 entries, eliminating a 24-byte-per-item allocation that was the dominant remaining allocation source in list rendering (e.g. 23.5 KB → 0 B for a 1000-item {{#each}}). (#​653)

Combined, typical object-rendering and list-rendering templates should see meaningfully lower latency and near-zero allocation on the common paths; dictionary/expando-backed templates benefit from the encoder work but were otherwise already efficient.

New features

  • Nullable Reference Types — the entire public API surface is now annotated for Nullable Reference Types. Binary- and runtime-compatible (annotations are compile-time metadata only); projects without <Nullable>enable</Nullable> are unaffected. Nullable-enabled consumers get compiler-checked null contracts on the public API, and extensibility interfaces (IPartialTemplateResolver, ITextEncoder, IMemberAccessor, IHelperResolver, IFormatterProvider, IObjectDescriptorProvider, IHelperDescriptor<T>, ViewEngineFileSystem) gained nullability annotations that may surface mismatch warnings (e.g. CS8767) in existing implementations until updated. (#​642, @​TheConstructor)
  • System.Text.Json.JsonElement support — first-class support for JsonElement (e.g. the result of JsonSerializer.Deserialize<object>(json)) in templates: nested member access, {{#each}} iteration over both JSON objects and arrays, and correct {{#if}}/{{#unless}} truthiness — bringing it to parity with the existing Newtonsoft JObject/JToken support. (#​657)
  • Multi-dimensional array support — true C# multi-dimensional arrays (e.g. int[,]) can now be indexed via path expressions ({{grid.[0].[1]}}) and iterated with {{#each}}, which walks the outer-most dimension and yields row/slab slices for the rest. Jagged arrays and existing IList/IEnumerable behavior are unaffected. (#​649)
  • else if chaining for block helpers{{else name args}}...{{/outer}} now works for any block helper, not just {{#if}}, and chains recursively to any depth, e.g. {{#StringEqualityBlockHelper @value 'dog'}}...{{else StringEqualityBlockHelper @value 'cat'}}...{{else}}...{{/StringEqualityBlockHelper}}. (#​648)

Fixes

  • Properties whose only implementation is a C# 8+ default interface member (declared and bodied on an interface, not overridden by the concrete class) are now resolved correctly by both {{PropertyName}} lookup and {{#each this}} enumeration, instead of being silently skipped. (#​658, fixes #​601)
  • {{#*inline "name" ...}} no longer throws when passed hash arguments or extra positional arguments, matching Handlebars.js's inline decorator behavior. (#​647, fixes #​560)
  • Corrected the nullable annotation on Try* out-parameters for concrete reference types (introduced in #​642) from [MaybeNullWhen(false)] out T to [NotNullWhen(true)] out T?, matching BCL convention (e.g. Uri.TryCreate) and giving a stronger compiler guarantee against unchecked dereferences. Affects ~20 Try* methods across IObjectDescriptorProvider/ObjectDescriptor, IFormatterProvider, DynamicMemberAccessor, TypeExtensions, BindingContext, PathResolver, and BlockAccumulatorContext. Compile-time-only change, not binary breaking. (#​655, fixes #​654)
  • Resolved a SonarCloud reliability regression (A→B) surfaced by #​642's diff against two pre-existing mutable-array-exposure smells; Closure.A is now internal and PathInfo.Segments carries an explicit suppression. (#​656)

Compatibility notes

  • All changes in this release are binary-compatible. The Nullable Reference Types annotations and the NotNullWhen/MaybeNullWhen correction are compile-time metadata only.
  • If you implement IPartialTemplateResolver, ITextEncoder, IMemberAccessor, IHelperResolver, IFormatterProvider, IObjectDescriptorProvider, IHelperDescriptor<T>, or derive from ViewEngineFileSystem, and build with <Nullable>enable</Nullable>, you may see new nullability-mismatch warnings until your implementation's annotations are updated to match.
  • HandlebarsConfiguration.FileSystem is now declared nullable (ViewEngineFileSystem?), matching its actual default.
  • Built-in collection formatters now throw ArgumentNullException (with parameter name) instead of a raw NullReferenceException for null/mismatched values.
Contributors

@​TheConstructor, @​rexm

Full Changelog: Handlebars-Net/Handlebars.Net@2.2.0...2.4.0

v2.3.0

Compare Source

Changes

  • Nullable Reference Types @​TheConstructor (#​642)

    The entire public API surface is now annotated for Nullable Reference Types.

    Compatibility notes:

    • Binary- and runtime-compatible. Nullability annotations are compile-time metadata only; generated IL is unchanged. Projects without <Nullable>enable</Nullable> are unaffected.
    • Nullable-enabled consumers get compiler-checked null contracts on the public API: Try* methods are annotated with [MaybeNullWhen(false)], optional parameters and nullable returns are declared with ?, etc.
    • If you implement extensibility interfaces, their signatures gained nullability annotations and your existing implementations may produce nullability-mismatch warnings (e.g. CS8767) until you add the matching ? annotations. Affected: IPartialTemplateResolver, ITextEncoder, IMemberAccessor, IHelperResolver, IFormatterProvider, IObjectDescriptorProvider, IHelperDescriptor<T>, and the ViewEngineFileSystem base class.
    • HandlebarsConfiguration.FileSystem is now declared nullable (ViewEngineFileSystem?), matching its actual default.
    • The built-in collection formatters now throw ArgumentNullException with a parameter name instead of a raw NullReferenceException when given a null or mismatched value.
Contributors

@​TheConstructor

Full Changelog: Handlebars-Net/Handlebars.Net@2.2.0...2.3.0

v2.2.0

Compare Source

Handlebars.Net 2.2.0

⚠️ Behavior & compatibility changes — please read before upgrading
  • Dropped end-of-life target frameworks. Removed netstandard1.3, net451, and net6. The package now targets netstandard2.0, netstandard2.1, and net8.0. Modern consumers (.NET Framework 4.6.1+, .NET Core 2.0+, .NET 5/8+) are unaffected via netstandard2.0; only consumers on the removed legacy frameworks need to stay on 2.1.x.
  • Single quote (') is now HTML-encoded by default (#​546), matching Handlebars.js behavior. This is invisible when rendering HTML, but changes raw output bytes — review any exact-string or snapshot assertions on rendered output.
Bug fixes
  • Case-sensitive resolution of same-spelling path variables, resolved independently in PathBinder (#​434)
  • Case-sensitive key lookup for IDictionary/Hashtable (#​521) and DictionaryMemberAccessor (#​466)
  • @partial-block now usable inside #if and as a block partial (#​519)
  • #if with includeZero=true now supported; includeZero honored in built-in conditional blocks (#​285)
  • Parent context traversal inside custom block helpers within #each (#​539)
  • Safe-string flag preserved when helper output crosses a subexpression boundary (#​543)
  • WriteSafeString encoding consistent regardless of helper registration order (#​559)
  • Preserve backslashes in template literal text (#​462) and double backslashes in static text (#​349)
  • Preserve partial indentation (#​614)
  • Handle escaped double-quotes in delimited string literal arguments (#​584)
  • Allow Unicode letters as first character in identifiers (#​416); strip invisible Unicode chars (BOM, etc.) from identifiers (#​605)
  • Clearer error when a partial is registered on the wrong Handlebars instance (#​545)
  • Removed byref/in delegate parameters incompatible with Mono/Xamarin (#​458)
  • Prevent unbounded DictionarySlim growth when replacing existing keys (#​541)
  • Normalize CRLF to LF in StaticConverter for platform-independent output
Maintenance
  • CI moved to windows-latest; bumped deprecated GitHub Actions and SDK versions; pinned third-party actions to commit SHAs
  • Resolved SonarCloud security/quality findings; dev environment updated to .NET 10
  • Added render-time/compile-scaling benchmark suite and Handlebars.js regression coverage
aaubry/YamlDotNet (YamlDotNet)

v18.1.0: Release 18.1.0

What's Changed
New Contributors

Full Changelog: aaubry/YamlDotNet@v18.0.0...v18.1.0

Breaking
  • Maximum depth of yaml files is now 130 by default. If you need higher you will need to adjust the maximum yaml depth. Going above 130 runs the risk of stack overflow exceptions when any exception happens inside of the deserialization
dotnet/sdk (dotnet-sdk)

v10.0.302: .NET 10.0.10

Compare Source

Release

What's Changed

Note

PR body was truncated to here.


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • "every 2nd week starting on the 2 week of the year before 4am on Monday"
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.


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

This PR was generated by Mend Renovate. View the repository job log.

@bitwarden-bot

bitwarden-bot commented Mar 4, 2024

Copy link
Copy Markdown

Logo
Checkmarx One – Scan Summary & Details574a4480-097d-4168-8e6e-938e57cce3e8

No New Or Fixed Issues Found

@renovate renovate Bot changed the title [deps]: Update YamlDotNet to v15.1.2 [deps]: Update nuget minor Mar 12, 2024
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 2e0e1e9 to c9afb0a Compare March 12, 2024 21:08
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 0609d52 to 52c3b41 Compare April 3, 2024 23:13
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 38d2c68 to e71920f Compare April 18, 2024 22:50
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 579d57a to 6ac5e65 Compare May 12, 2024 22:09
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 6ac5e65 to 30af22e Compare May 29, 2024 16:51
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 30af22e to da5844c Compare June 16, 2024 21:15
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from da5844c to b9ad4fd Compare June 27, 2024 14:34
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from b9ad4fd to 6e24370 Compare July 12, 2024 19:59
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 6e24370 to 4f434ae Compare October 9, 2024 19:47
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 4f434ae to 72c55ba Compare November 28, 2024 19:54
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 72c55ba to fa0366a Compare December 29, 2024 09:44
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from fa0366a to c2ff424 Compare January 21, 2025 19:31
@renovate
renovate Bot requested a review from a team as a code owner January 21, 2025 19:31
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from c2ff424 to 6168670 Compare January 25, 2025 22:03
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 6168670 to f102fbd Compare February 27, 2025 20:33
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from f102fbd to 2f4dfc0 Compare March 8, 2025 12:50
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 2f4dfc0 to c3108e9 Compare April 29, 2025 21:40
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from c3108e9 to 017984e Compare May 16, 2025 15:49
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 7406542 to 0d93912 Compare June 17, 2025 21:45
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 0d93912 to 16f93a1 Compare June 26, 2025 21:05
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 16f93a1 to 4119f8f Compare July 22, 2025 19:31
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 4119f8f to c7981c1 Compare August 10, 2025 15:30
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from c7981c1 to 753c7e6 Compare August 19, 2025 20:50
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 753c7e6 to 78a75de Compare September 16, 2025 15:57
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 78a75de to 233ecbf Compare September 20, 2025 09:45
AmyLGalles
AmyLGalles previously approved these changes Oct 8, 2025
AmyLGalles
AmyLGalles previously approved these changes Nov 10, 2025

@AmyLGalles AmyLGalles left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

LGTM

vgrassia
vgrassia previously approved these changes Nov 21, 2025
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 7029840 to e6355b2 Compare December 16, 2025 20:43
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from e6355b2 to 610f3f9 Compare December 28, 2025 10:45
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 610f3f9 to 2d5f85d Compare January 20, 2026 18:44
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 2d5f85d to fac32e1 Compare February 17, 2026 17:47
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 02fcd0e to adc9629 Compare March 19, 2026 18:42
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from e46dcf7 to 35648be Compare April 7, 2026 22:46
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 35648be to 4853613 Compare April 21, 2026 17:47
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 4853613 to eb4616c Compare April 28, 2026 20:43
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from eb4616c to fa828c8 Compare May 19, 2026 17:09
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from fa828c8 to 72cd23b Compare June 16, 2026 20:44
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 72cd23b to 6f4da85 Compare June 24, 2026 00:39
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 6f4da85 to bdd955b Compare July 4, 2026 02:47
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 79f14a1 to cf89ad2 Compare July 21, 2026 19:51
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch 2 times, most recently from 2b1889f to 9045fad Compare August 13, 2026 05:42
@renovate
renovate Bot force-pushed the renovate/nuget-minor branch from 9045fad to 19d9bc4 Compare August 14, 2026 05:14
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.

3 participants