Skip to content

Build & release modernization - #3218

Merged
xen2 merged 20 commits into
masterfrom
feature/build-modernize
Jun 14, 2026
Merged

Build & release modernization#3218
xen2 merged 20 commits into
masterfrom
feature/build-modernize

Conversation

@xen2

@xen2 xen2 commented Jun 14, 2026

Copy link
Copy Markdown
Member

PR Details

Modernizes the build/release pipeline to run on dotnet build end-to-end, simplifies versioning, centralizes signing, and fixes a parallel-build correctness bug. No engine/runtime behavior changes — this is build, CI, and packaging.

Highlights

  • Release & packaging via dotnet build. Release, NuGet packaging, and the VSIX build no longer need desktop MSBuild/devenv — the pipeline runs through build/Stride.build and works cross-platform. macOS/iOS platform wiring and an optional binlog switch included.

  • Simplified versioning. Package version is now produced by a small inline MSBuild task (3-part semver major.minor.<patch>), replacing the vendored Nerdbank/libgit2 dependency (deps/Stride.GitVersioning removed). The patch is the next release number, derived from the releases/<major.minor>.* tags reachable from HEAD — so releases are clean and sequential (4.5.0, 4.5.1, …) and reset per major.minor bump. It's ancestor-scoped (branches, older builds, and fork-only tags can't skew it), all-local (works offline / with an unpushed HEAD), and dev builds share the same logic, falling back to the committed base with a git fetch/--unshallow hint when tags are missing. Prerelease suffixes (e.g. -beta) can be set from the release.yml dispatch -- no commit required, and the run surfaces the built version in the job list even when not deploying. A private prerelease feed (Azure DevOps Artifacts) is planned for hosting these beta builds, pending feed provisioning under the .NET Foundation.

  • Centralized signing. All code-signing and AdvancedInstaller logic collapses into a single _SignFiles target and a single _BuildAdvancedInstaller target -- config/secret defined once, secret never placed on a command line. (Validated with a live signed dry-run.)

  • Parallel-build fix. GraphicsApiDependentBuildAll no longer leaks the default Direct3D API onto single-API target frameworks (iOS/macOS/Android), eliminating a cross-targeting dispatch race that produced duplicate/colliding builds.

  • gettext on net10. Updated to Stride.GNU.Gettext 3.0.0 (rebuilt msgfmt tool). Closes Update Gettext.Net to target .NET 10.0 #3113.

  • CI improvements.

    • Comment-only PRs (whole-line ///# changes) skip all jobs while the gate still passes.
    • Test projects compile-skip in package builds — no test compilation / Android APK / AOT during packaging, substantially cutting package-build time (nobuild target was broken)
    • Nightly Visual Studio MSBuild build of Stride.sln for desktop-engine + MSVC native coverage.
  • Cleanup. Removed dead build targets, made Clean portable, and dropped stale ToolsVersion/VS2013-era comments.

Types of changes

  • Docs change / refactoring / dependency upgrade
  • Bug fix (non-breaking change which fixes an issue)
  • New feature (non-breaking change which adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)

Checklist

  • My change requires a change to the documentation.
  • I have added tests to cover my changes.
  • All new and existing tests passed.
  • I have built and run the editor to try this change out.

@xen2
xen2 force-pushed the feature/build-modernize branch from 3c4a376 to e64d308 Compare June 14, 2026 04:25
@xen2
xen2 force-pushed the feature/build-modernize branch 2 times, most recently from 620bfc0 to 2b54dab Compare June 14, 2026 06:16
@xen2
xen2 force-pushed the feature/build-modernize branch from 2b54dab to b9efc80 Compare June 14, 2026 07:35
xen2 added 15 commits June 14, 2026 16:53
…Installer target; sign config/secret defined once)
…dcoded dev server, xunit-console orchestration superseded by CI)
… StrideGitVersion task to end (fix BuildLinux .sln.sln)
@xen2
xen2 force-pushed the feature/build-modernize branch from b9efc80 to 6cfe148 Compare June 14, 2026 07:53
@xen2
xen2 merged commit 4fedb86 into master Jun 14, 2026
30 checks passed
@xen2
xen2 deleted the feature/build-modernize branch June 14, 2026 09:00
xen2 added a commit to xen2/stride that referenced this pull request Jul 16, 2026
xen2 added a commit to xen2/stride that referenced this pull request Jul 17, 2026
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.

Update Gettext.Net to target .NET 10.0

1 participant