Skip to content

JasperFx 2.101.0

Choose a tag to compare

@jeremydmiller jeremydmiller released this 08 Nov 17:27
· 16 commits to main since this release

JasperFx 2.101.0 makes the command line work from a Native AOT binary, adds a build warning for a source generator that never reaches the compiler, and fixes assembly scanning on Windows.

Highlights

  • The command line runs from a Native AOT binary (#1141 / #1142).
    • What was broken: help, run, describe and every other command failed from a native binary, because commands were found and built through reflection that trimming removes.
    • How it works now: JasperFx.SourceGenerator registers each command, a factory for it and its input, and an [InjectService] injector, as ordinary code the trimmer keeps. JasperFx and JasperFx.Events now ship built with it, and describe no longer throws when referenced-assembly metadata is missing.
    • What you need: reference JasperFx.SourceGenerator in every assembly that contributes commands. The trimming warnings on ApplyJasperFxExtensions / RunJasperFxCommands now say when it is safe to suppress them.
    • How it's kept working: a new aot-cli CI job publishes a CreateSlimBuilder app with Native AOT and runs help, help <command>, an application command, check-env, describe and run from the binary.
    • Docs: Command Line → Native AOT and Running the command line in an AOT binary.
  • JFXEVT1138: a build warning when the events source generator never reaches the compiler (#1138 / #1139).
    • When it fires: a JasperFx.Events.SourceGenerator is pinned to a different version than the copy bundled by a store, the SDK keeps the higher copy, and a project target then removes that one.
    • What it says: it names the dropped copy and the runtime version.
    • Opt-out: JasperFxEventsReportLostSourceGenerator=false.
  • Assembly scanning skips runtimes/native folders on Windows too, and skips satellite resource assemblies (#1143 / #1145).
    • Windows: the check looked for "/runtimes" with a forward slash, so on Windows every native DLL, such as the coverage collector's covrun64.dll, was tried twice and failed on each host start.
    • Linux: the same full-path match skipped the whole scan for an app installed under a folder whose name started with "native".
    • Satellites: satellite resource assemblies are now skipped as well.
  • CI now runs the test suites on Windows (#1146).

What's Changed

Full Changelog: v2.100.1...v2.101.0