Repository navigation
JasperFx 2.101.0
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,describeand every other command failed from a native binary, because commands were found and built through reflection that trimming removes. - How it works now:
JasperFx.SourceGeneratorregisters 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, anddescribeno longer throws when referenced-assembly metadata is missing. - What you need: reference
JasperFx.SourceGeneratorin every assembly that contributes commands. The trimming warnings onApplyJasperFxExtensions/RunJasperFxCommandsnow say when it is safe to suppress them. - How it's kept working: a new
aot-cliCI job publishes aCreateSlimBuilderapp with Native AOT and runshelp,help <command>, an application command,check-env,describeandrunfrom the binary. - Docs: Command Line → Native AOT and Running the command line in an AOT binary.
- What was broken:
JFXEVT1138: a build warning when the events source generator never reaches the compiler (#1138 / #1139).- When it fires: a
JasperFx.Events.SourceGeneratoris 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.
- When it fires: a
- Assembly scanning skips
runtimes/nativefolders 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'scovrun64.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.
- Windows: the check looked for
- CI now runs the test suites on Windows (#1146).
What's Changed
- Fix race in TenantBatchQueue composite-member test (holder not yet dequeued) by @jeremydmiller in #1144
- Say so when a pinned generator loses to a bundled copy and none reaches the compiler (#1138) by @jeremydmiller in #1139
- Run the JasperFx command line from a Native AOT binary; gate it in CI (#1141) by @jeremydmiller in #1142
- Skip runtimes, native and satellite files in AssemblyFinder on every platform (#1143) by @jeremydmiller in #1145
- Point the command line docs at Native AOT support by @jeremydmiller in #1147
- Run the unit test suites on a Windows runner in CI by @jeremydmiller in #1146
Full Changelog: v2.100.1...v2.101.0