Repository navigation
Restore .NET date/time versions and validate native Mono shutdown - #323
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
The migration pinned every binary to
3.0.0.0. Restore the classicAssemblyVersion("3.0.*")date/time convention through explicit CakeRelease-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:
v3.0.9803.22582-preview.13.0.9803; MSIX:3.0.9803.03.0.9803/3.9803.22582Native 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 --debugmatching 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. Old0608a656results documented the failure and are not substituted for the corrected build. Existing16fa77f5archives remain unpublished baseline evidence. No tag, release, owner signing/notarization or Store submission is performed by this PR.