Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions .github/workflows/mono-macos.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,11 @@
name: Native macOS Mono WinForms acceptance
on:
workflow_dispatch:
inputs:
startup-unload-counterfactual:
description: Compare the old forced domain unload with normal probe process exit on ARM
type: boolean
default: false
push:
branches: [master]
pull_request:
Expand Down Expand Up @@ -43,6 +48,12 @@ jobs:
env:
COMPUTATOR_GITHUB_TOKEN: ${{ github.token }}
run: bash ./build.sh --target=Mono-Mac-Package-Validate
- name: Compare probe domain unload with normal process exit on the accepted ARM app
if: github.event_name == 'workflow_dispatch' && inputs['startup-unload-counterfactual'] && matrix.architecture == 'arm64'
run: |
source "$COMPUTATOR_MAC_DISPLAY_ENV"
python3 build/macos/compare_startup_probe.py --repository "$PWD" \
--evidence artifacts/macos/startup-unload-counterfactual --pairs 8
- name: Build an explicitly unaccepted diagnostic bundle after a GUI gate failure
if: failure() && steps.application.outcome == 'failure'
env:
Expand Down
2 changes: 2 additions & 0 deletions Computator.NET.slnx
Original file line number Diff line number Diff line change
Expand Up @@ -186,6 +186,7 @@
<File Path="build/macos/NormalLaunchImageProbe.cs" />
<File Path="build/macos/build-normal-launch-probe.sh" />
<File Path="build/macos/check-normal-launch-image.py" />
<File Path="build/macos/compare_startup_probe.py" />
<File Path="build/macos/normal-launch-x11.c" />
<File Path="build/macos/normal-launch.py" />
<File Path="build/macos/test_normal_launch.py" />
Expand Down Expand Up @@ -278,6 +279,7 @@
<Folder Name="/Build/Release/">
<File Path="build/release/evidence.py" />
<File Path="build/release/test_release.py" />
<File Path="build/release/test_versioning.py" />
<File Path="build/release/versioning.py" />
</Folder>
<Folder Name="/Build/Validation/">
Expand Down
6 changes: 3 additions & 3 deletions SharedAssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@
// Version.props is authoritative; build/release/versioning.py --write updates
// this block, and every normal build rejects drift rather than guessing a version.
// BEGIN GENERATED PRODUCT VERSION
[assembly: AssemblyVersion("3.0.0.0")]
[assembly: AssemblyFileVersion("3.0.0.0")]
[assembly: AssemblyInformationalVersion("3.0.0-preview.1")]
[assembly: AssemblyVersion("3.0.9803.22582")]
[assembly: AssemblyFileVersion("3.0.9803.22582")]
[assembly: AssemblyInformationalVersion("3.0.9803.22582-preview.1")]
// END GENERATED PRODUCT VERSION

[assembly: NeutralResourcesLanguage("en")]
19 changes: 11 additions & 8 deletions Version.props
Original file line number Diff line number Diff line change
@@ -1,18 +1,21 @@
<Project>
<PropertyGroup>
<!-- Authoritative product identity. This is a review candidate, not a release. -->
<ComputatorBaseVersion>3.0.0</ComputatorBaseVersion>
<!-- The fourth component is reserved for the Store and remains zero. -->
<ComputatorRevision>0</ComputatorRevision>
<!-- Frozen product identity. Publication status is recorded in GitHub Releases. -->
<ComputatorBaseVersion>3.0.9803</ComputatorBaseVersion>
<!-- Assembly/file revision is the frozen local half-seconds since midnight. -->
<ComputatorRevision>22582</ComputatorRevision>
<!-- Set only by explicit Release-Prepare; ordinary builds never read the clock. -->
<ComputatorVersionTimestamp>2026-11-03T12:32:44+01:00</ComputatorVersionTimestamp>
<ComputatorPrerelease>preview.1</ComputatorPrerelease>
<VersionPrefix>$(ComputatorBaseVersion)</VersionPrefix>
<VersionPrefix>$(ComputatorBaseVersion).$(ComputatorRevision)</VersionPrefix>
<VersionSuffix>$(ComputatorPrerelease)</VersionSuffix>
<Version>$(ComputatorBaseVersion)</Version>
<Version Condition="'$(ComputatorPrerelease)' != ''">$(ComputatorBaseVersion)-$(ComputatorPrerelease)</Version>
<Version>$(VersionPrefix)</Version>
<Version Condition="'$(ComputatorPrerelease)' != ''">$(VersionPrefix)-$(ComputatorPrerelease)</Version>
<AssemblyVersion>$(ComputatorBaseVersion).$(ComputatorRevision)</AssemblyVersion>
<FileVersion>$(AssemblyVersion)</FileVersion>
<InformationalVersion>$(Version)</InformationalVersion>
<ComputatorMsiVersion>$(ComputatorBaseVersion)</ComputatorMsiVersion>
<ComputatorMsixVersion>$(AssemblyVersion)</ComputatorMsixVersion>
<!-- The Store reserves its fourth field; it is independent of assembly revision. -->
<ComputatorMsixVersion>$(ComputatorBaseVersion).0</ComputatorMsixVersion>
</PropertyGroup>
</Project>
2 changes: 1 addition & 1 deletion appveyor.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ install:
python -c "import sys; assert sys.version_info >= (3, 11), 'Python 3.11 or newer is required'"
if ($LASTEXITCODE -ne 0) { throw 'Python does not satisfy the native/source-evidence tooling requirements.' }
[xml]$identity = Get-Content Version.props -Raw
$productVersion = $identity.Project.PropertyGroup.ComputatorBaseVersion
$productVersion = "$($identity.Project.PropertyGroup.ComputatorBaseVersion).$($identity.Project.PropertyGroup.ComputatorRevision)"
$prerelease = $identity.Project.PropertyGroup.ComputatorPrerelease
if ($prerelease) { $productVersion += "-$prerelease" }
Update-AppveyorBuild -Version "$productVersion.build.$env:APPVEYOR_BUILD_NUMBER"
Expand Down
2 changes: 2 additions & 0 deletions build/cli-help.txt
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,8 @@ EVERYDAY TARGETS
PortableWeb-Publish Any OS: audited independent local browser preview; pass --portable-web-rid.
PortableWeb-Validate Linux/macOS: publish, real HTTP/process and Chromium/WebKit checks.
Solution-Validate Windows: validate and build the complete developer solution.
Release-Prepare Freeze classic .NET date/time identity once; review/commit before CI.
Release-Identity-Validate Check frozen versions and release metadata contracts offline.
Clean Remove generated application/build/test output.

WebTests is a historical alias for ApiTests. Use Web-Tests or Web-Validate
Expand Down
5 changes: 3 additions & 2 deletions build/followups/msix.cake
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
var canonicalMsixVersion = XDocument.Load("Version.props").Descendants("ComputatorBaseVersion").Single().Value + "." +
XDocument.Load("Version.props").Descendants("ComputatorRevision").Single().Value;
// The Store reserves its fourth component; the assembly's date/time revision
// remains meaningful in the application but must not enter package identity.
var canonicalMsixVersion = XDocument.Load("Version.props").Descendants("ComputatorBaseVersion").Single().Value + ".0";
var msixVersion = Argument("msix-version", canonicalMsixVersion);
Task("Build-MSIX")
.Description("Windows: stage the self-contained desktop and build its unsigned MSIX.")
Expand Down
14 changes: 13 additions & 1 deletion build/followups/release.cake
Original file line number Diff line number Diff line change
@@ -1,9 +1,21 @@
Task("Release-Prepare")
.Description("Freeze classic .NET date/time build numbers once; review and commit before candidate CI.")
.Does(() =>
{
var args = new ProcessArgumentBuilder().Append("build/release/versioning.py --prepare");
var timestamp = Argument<string>("release-timestamp", null);
var published = Argument<string>("release-published-releases", null);
if (timestamp != null) args.Append("--timestamp").AppendQuoted(timestamp);
if (published != null) args.Append("--published-releases").AppendQuoted(published);
CheckedProcess("python", new ProcessSettings { Arguments = args });
Information("Release identity is frozen. Review and commit Version.props and SharedAssemblyInfo.cs before CI; this target does not publish or sign.");
});
Task("Release-Identity-Validate")
.Description("Check the shared product version identity and release metadata contracts.")
.Does(() =>
{
CheckedProcess("python", new ProcessSettings { Arguments = "build/release/versioning.py" });
CheckedProcess("python", new ProcessSettings { Arguments = "-m unittest discover -s build/release -p test_release.py" });
CheckedProcess("python", new ProcessSettings { Arguments = "-m unittest discover -s build/release -p test_*.py" });
});
Task("Release-Verify")
.Description("Windows: gather full candidate evidence; separate native/portable matrices remain required.")
Expand Down
Loading
Loading