Revolutionary-Games / RevolutionaryWebApp

Web apps with features for Thrive development
https://revolutionarygamesstudio.com
MIT License
20 stars 6 forks source link

Bump SmartFormat.NET and SmartFormat #989

Closed dependabot[bot] closed 4 months ago

dependabot[bot] commented 4 months ago

Bumps SmartFormat.NET and SmartFormat. These dependencies needed to be updated together. Updates SmartFormat.NET from 3.4.0 to 3.5.0

Release notes

Sourced from SmartFormat.NET's releases.

v3.5.0

What's Changed

Feature: Add interface IFormattingExtensionsToggle to skip formatting (#436)

  • Added the IFormattingExtensionsToggle interface to allow skipping formatting by IFormatter extensions.
  • This interface is primarily used by ISource extensions that receive it with the ISelectorInfo parameter.
  • By setting IFormattingExtensionsToggle.DisableFormattingExtensions to true, formatting can be skipped. This can be useful when the ISource found a value in ISource.TryEvaluateSelector where default formatting cannot reasonably be done.

Security: Update of System.Text.Json (#435)

  • Bumped System.Text.Json to v8.0.4
  • Fixed a vulnerability in .NET when calling the JsonSerializer.DeserializeAsyncEnumerable method against an untrusted input using System.Text.Json, which could result in Denial of Service.

Feature: Implement ISpanFormattable for DefaultFormatter (#434)

  • Implemented ISpanFormattable for DefaultFormatter
  • ISpanFormattable is 5% faster than IFormattable, with 24% less allocations
    // Performance test case
    Smart.FormatInto(output, null, _placeholder0005Format, 1234567.890123f, 1234567.890123f, 1234567.890123f, 1234567.890123f, 1234567.890123f);
    
    BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3737/23H2/2023Update/SunValley3)
    13th Gen Intel Core i7-13700K, 1 CPU, 24 logical and 16 physical cores
    .NET SDK 8.0.302
      [Host]   : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX2
      .NET 8.0 : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX2
    

    Job=.NET 8.0 Runtime=.NET 8.0

    Method N Mean Error StdDev Ratio RatioSD Gen0 Allocated Alloc Ratio
    ISpanFormattable 100 74.502 us 0.3693 us 0.3273 us 8.52 0.05 4.0283 62.5 KB 2.76
    IFormattable 100 77.927 us 0.5760 us 0.5388 us 8.91 0.07 5.2490 82.0 KB 3.62

Feature: ReflectionSource (#426)

  • Made ReflectionSource.TypeCache static for better performance.
  • If the static cache has undesired effects on your code logic, consider to disable the cache (ReflectionSource.IsTypeCacheEnabled = false).
  • Implemented a mechanism to control the size of ReflectionSource.TypeCache and remove the oldest item first.

Enhancement: DictionarySource (#426)

  • Dynamics in DictionarySource now use case-sensitivity setting
  • Cache for IReadOnlyDictionary now has instance scope

Refactor: Split off classes Registry and Evaluator from SmartFormatter (#424)

... (truncated)

Commits
  • c097ea6 Bump version to v3.5.0 (#437)
  • 9a43056 Add interface IFormattingExtensionsToggle to skip formatting (#436)
  • a2a4969 Denial of Service Vulnerability in System.Text.Json < 8.0.4 (#435)
  • 7ef11f4 Implement ISpanFormattable for DefaultFormatter (#434)
  • 6874471 chore: Remove Github workflow for wiki updates (#433)
  • 65714e2 chore: Fix missing double quote at end of the line for commit message (#432)
  • a2e2aa3 chore: Try to fix errors with wiki commit message (#431)
  • 3cc88a0 chore: Remove disallowed characters in commit message (#430)
  • 16e432c Url-encode special characters in the commit message (#429)
  • 2bf827f feature: ReflectionSource and DictionarySource (#426)
  • Additional commits viewable in compare view


Updates SmartFormat from 3.4.0 to 3.5.0

Release notes

Sourced from SmartFormat's releases.

v3.5.0

What's Changed

Feature: Add interface IFormattingExtensionsToggle to skip formatting (#436)

  • Added the IFormattingExtensionsToggle interface to allow skipping formatting by IFormatter extensions.
  • This interface is primarily used by ISource extensions that receive it with the ISelectorInfo parameter.
  • By setting IFormattingExtensionsToggle.DisableFormattingExtensions to true, formatting can be skipped. This can be useful when the ISource found a value in ISource.TryEvaluateSelector where default formatting cannot reasonably be done.

Security: Update of System.Text.Json (#435)

  • Bumped System.Text.Json to v8.0.4
  • Fixed a vulnerability in .NET when calling the JsonSerializer.DeserializeAsyncEnumerable method against an untrusted input using System.Text.Json, which could result in Denial of Service.

Feature: Implement ISpanFormattable for DefaultFormatter (#434)

  • Implemented ISpanFormattable for DefaultFormatter
  • ISpanFormattable is 5% faster than IFormattable, with 24% less allocations
    // Performance test case
    Smart.FormatInto(output, null, _placeholder0005Format, 1234567.890123f, 1234567.890123f, 1234567.890123f, 1234567.890123f, 1234567.890123f);
    
    BenchmarkDotNet v0.13.12, Windows 11 (10.0.22631.3737/23H2/2023Update/SunValley3)
    13th Gen Intel Core i7-13700K, 1 CPU, 24 logical and 16 physical cores
    .NET SDK 8.0.302
      [Host]   : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX2
      .NET 8.0 : .NET 8.0.6 (8.0.624.26715), X64 RyuJIT AVX2
    

    Job=.NET 8.0 Runtime=.NET 8.0

    Method N Mean Error StdDev Ratio RatioSD Gen0 Allocated Alloc Ratio
    ISpanFormattable 100 74.502 us 0.3693 us 0.3273 us 8.52 0.05 4.0283 62.5 KB 2.76
    IFormattable 100 77.927 us 0.5760 us 0.5388 us 8.91 0.07 5.2490 82.0 KB 3.62

Feature: ReflectionSource (#426)

  • Made ReflectionSource.TypeCache static for better performance.
  • If the static cache has undesired effects on your code logic, consider to disable the cache (ReflectionSource.IsTypeCacheEnabled = false).
  • Implemented a mechanism to control the size of ReflectionSource.TypeCache and remove the oldest item first.

Enhancement: DictionarySource (#426)

  • Dynamics in DictionarySource now use case-sensitivity setting
  • Cache for IReadOnlyDictionary now has instance scope

Refactor: Split off classes Registry and Evaluator from SmartFormatter (#424)

... (truncated)

Commits
  • c097ea6 Bump version to v3.5.0 (#437)
  • 9a43056 Add interface IFormattingExtensionsToggle to skip formatting (#436)
  • a2a4969 Denial of Service Vulnerability in System.Text.Json < 8.0.4 (#435)
  • 7ef11f4 Implement ISpanFormattable for DefaultFormatter (#434)
  • 6874471 chore: Remove Github workflow for wiki updates (#433)
  • 65714e2 chore: Fix missing double quote at end of the line for commit message (#432)
  • a2e2aa3 chore: Try to fix errors with wiki commit message (#431)
  • 3cc88a0 chore: Remove disallowed characters in commit message (#430)
  • 16e432c Url-encode special characters in the commit message (#429)
  • 2bf827f feature: ReflectionSource and DictionarySource (#426)
  • Additional commits viewable in compare view


Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot show ignore conditions` will show all of the ignore conditions of the specified dependency - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)