Skip to content

Restore .NET date/time versions and validate native Mono shutdown - #323

Merged
PawelTroka merged 3 commits into
masterfrom
feature/automatic-release-build-numbers
Nov 3, 2026
Merged

PawelTroka merged 3 commits into
masterfrom
feature/automatic-release-build-numbers

Conversation

@PawelTroka

@PawelTroka PawelTroka commented Nov 3, 2026 •

Copy link
Copy Markdown
Owner

The migration pinned every binary to 3.0.0.0. Restore the classic AssemblyVersion("3.0.*") date/time convention through explicit Cake Release-Prepare: calculate once, freeze the timestamp and numbers in source, then build every platform from the same committed identity. Ordinary builds remain deterministic and validate rather than rewrite source.

This candidate is frozen at 2026-11-03T12:32:44+01:00:

  • Assembly/file: 3.0.9803.22582
  • Product/tag: 3.0.9803.22582-preview.1 / v3.0.9803.22582-preview.1
  • MSI: 3.0.9803; MSIX: 3.0.9803.0
  • Mac short/build: 3.0.9803 / 3.9803.22582

Native manifests carry the complete evaluated identity and actual Mac plist projections are validated. Preparation rejects rollback and conflicting published same-day MSI/Store identities. Exact published retries preserve their original timestamp and source files. The Store's fourth-zero constraint is independent of the assembly revision.

The native startup probe also uses its dedicated process as the lifetime boundary. Its child domain still supplies the actual application's base directory/configuration and all real window/input/render/normal-close assertions remain. After production Main returns, the probe returns normally instead of forcing an additional AppDomain.Unload, which triggered a Mono6.14.1 ARM metadata assertion. Nonzero exits, timeouts and surviving processes remain failures.

An explicit ARM diagnostic compares the immutable old probe with the fixed probe against the same accepted application/runtime/configuration, in eight alternating pairs. It retains ordered raw output and requires the known old SIGABRT after actual GUI close, plus every fixed process exiting zero. Both optional comparisons completed: eight old and eight fixed probes exited normally in packaged mode, and eight old/eight fixed also exited normally with mono --debug matching the source-startup mode. Their failed experimental verdicts and raw reports are retained as inconclusive: the old native assertion did not reproduce, so these runs do not prove causal efficacy or universal crash prevention. See the packaged-mode experiment and debug-mode experiment. The change remains a test-only lifetime adjustment; production GUI/input/render/normal-close and strict process-exit acceptance remain mandatory. Promotion requires all 24 ordinary PR and fresh-master workflows plus complete source-bound package and installer lifecycle verification; optional positive-control non-reproduction does not substitute for, or waive, any normal failure.

Local validation:39 release/version contracts; POSIX package contracts(Mono19/Mac31,zero skips); pinned SDK full-four-part deterministic build/property evaluation;20projects/359linkeditems plus solution guard/IDE checks; actual builds of both isolated comparison probes and five crash-classification fixtures.

All24 workflows must pass on the final PR head and fresh merged master before publication. Current head:2fd32c73b4ca459e71defe1c3d2a5e0ca3b875e3. Old0608a656 results documented the failure and are not substituted for the corrected build. Existing16fa77f5 archives remain unpublished baseline evidence. No tag, release, owner signing/notarization or Store submission is performed by this PR.

@PawelTroka PawelTroka changed the title Restore .NET 3.0.* date/time release versions Restore .NET date/time versions and validate native Mono shutdown Nov 3, 2026
@PawelTroka
PawelTroka merged commit d3416a5 into master Nov 3, 2026
44 of 47 checks passed
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.

1 participant