Skip to content

v1.2.0

Latest

Choose a tag to compare

@AndreasBurbach AndreasBurbach released this 26 Aug 07:57
· 1 commit to main since this release

EveryParser.Net 1.2.0

Added

  • Community health files: security policy (SECURITY.md), code of conduct,
    Dependabot configuration for NuGet and GitHub Actions, and an .editorconfig.
  • Async calculation API: CalculateAsync, CalculateDecimalAsync, CalculateBooleanAsync,
    CalculateStringAsync, CalculateDateTimeAsync and CalculateArrayAsync
    (instance and static variants) with optional CancellationToken.
  • String concatenation with +: "Hello " + "World" and mixed forms like
    "x" + 2.5 now work (numbers are formatted culture-invariant).
  • CalculateArray now reports an error (ErrorCode.IsNotArray) when the formular
    result is not an array instead of returning null without any error.
  • Release workflow that builds, tests and publishes the NuGet package on tag push (v*)
    using NuGet trusted publishing (OIDC, no stored API key required).
  • NuGet symbol package (.snupkg) with source-linked PDBs for debuggable releases.
  • Grammar source EveryGrammar.g4 is part of the repository again and can be verified
    against the generated parser with tools/verify-grammar.ps1.

Fixed

  • CalculationErrors no longer throws a NullReferenceException when accessed before
    the first calculation.
  • 4! returned 14 instead of 24.
  • Factorial of negative numbers and values above 20 now produce an error
    instead of silently returning a wrong result.
  • Array operations materialize their results eagerly, preventing deferred-execution issues.

Changed

  • GitHub Actions updated to current action versions; CodeQL workflow moved to v3.
  • Removed the stale Azure Pipelines configuration.
  • The NuGet package now contains XML documentation files.
  • Removed redundant LINQ replacements (TAll, TAny) in favor of System.Linq;
    kept TSelect, TSequenceEqual and TReverse for semantic reasons
    (see EveryParser/LinQReplaces/README.md).

Full Changelog: v1.1.0...v1.2.0