Skip to content

Onboard to dotnet/arcade build system#166

Merged
rmarinho merged 14 commits intomainfrom
dev/ruimarinho/arcade-onboarding
Mar 27, 2026
Merged

Onboard to dotnet/arcade build system#166
rmarinho merged 14 commits intomainfrom
dev/ruimarinho/arcade-onboarding

Conversation

@rmarinho
Copy link
Copy Markdown
Member

Summary

Onboard macios-devtools onto the dotnet/arcade build system, enabling shared tooling for versioning, signing, packaging, publishing, and dependency flow via darc/maestro.

Changes

New Files

  • global.json — .NET 11 SDK + Arcade SDK 11.0.0-beta.26173.2
  • NuGet.config — dnceng feeds (dotnet-public, dotnet-tools, dotnet-eng, dotnet10)
  • eng/Versions.props — Centralized version management (1.0.0-preview.1)
  • eng/Version.Details.xml — Arcade SDK dependency tracking for darc/maestro
  • eng/Publishing.props — V3 publishing configuration
  • eng/Signing.props — ESRP/MicroBuild signing with .NET certificate
  • eng/SignCheckExclusionsFile.txt — Post-build SignCheck validation exclusions
  • eng/common/ — Shared build scripts from dotnet/arcade
  • eng/pipelines/official.yml — 1ES official build pipeline (signing + publishing)
  • .config/1espt/PipelineAutobaseliningConfig.yml — SDL auto-baselining
  • eng/setup-darc.sh — Dependency flow setup script

Modified Files

  • Directory.Build.props — Added Arcade SDK import, shipping/license metadata, NU1507 suppression
  • Directory.Build.targets — Replaced GitInfo versioning with Arcade SDK import + WiX workaround
  • Xamarin.MacDev.csproj — Removed MicroBuild.Core, SourceLink, custom signing target; centralized versions
  • tests/tests.csproj — Added IsPackable=false/IsShipping=false; centralized versions
  • Xamarin.MacDev.sln — Fixed Release configuration mapping (was mapped to Debug)
  • azure-pipelines.yaml — Updated to use Arcade templates for public CI
  • .gitignore — Added artifacts/ and .packages/

Build Verification

✅ Build succeeds: ./eng/common/build.sh --restore --build --pack --configuration Release --prepareMachine
✅ Package produced: Xamarin.Apple.Tools.MaciOS.1.0.0-dev.nupkg

Remaining Manual Steps

After merge:

  1. Internal mirror: Contact @dnceng to create dotnet-macios-devtools at dev.azure.com/dnceng/internal
  2. Mirroring PR: Submit PR to dotnet-mirroring repo adding dnceng-subscriptions.jsonc entry
  3. Pipeline definitions: Create pipelines at dnceng-public (dotnet/macios-devtools/macios-devtools-ci) and dnceng/internal (dotnet/macios-devtools/macios-devtools-official)
  4. Dependency flow: Run ./eng/setup-darc.sh to configure arcade subscriptions
  5. Service connections: Authorize Darc/ESRP connections on first official build

Add Arcade SDK infrastructure for official builds with signing,
publishing, and dependency flow via darc/maestro.

Changes:
- Add global.json with Arcade SDK 11.0.0-beta.26173.2
- Add NuGet.config with dnceng feeds
- Update Directory.Build.props/targets with Arcade SDK imports
- Add eng/Versions.props for centralized version management
- Add eng/Version.Details.xml for dependency tracking
- Add eng/Publishing.props, Signing.props, SignCheckExclusionsFile.txt
- Add eng/common/ shared build scripts from dotnet/arcade
- Add eng/pipelines/official.yml (1ES official build pipeline)
- Add .config/1espt/PipelineAutobaseliningConfig.yml for SDL
- Update azure-pipelines.yaml to use Arcade templates for public CI
- Centralize NuGet package versions in eng/Versions.props
- Remove MicroBuild.Core, SourceLink, GitInfo (Arcade handles these)
- Fix solution Release configuration mapping for Xamarin.MacDev
- Add eng/setup-darc.sh for dependency flow configuration

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
rmarinho and others added 9 commits March 25, 2026 19:49
Versioning is now handled by Arcade SDK (eng/Versions.props).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Update from Arcade SDK 11 to 10.0.0-beta.26174.121 via
darc update-dependencies --channel '.NET 10.0.1xx SDK'.

- global.json: .NET SDK 10.0.104, Arcade SDK 10.0.0-beta.26174.121
- eng/Version.Details.xml: URI now points to dotnet/dotnet (VMR)
- eng/common/: updated to matching Arcade SDK 10 scripts
- eng/Versions.props: removed Arcade SDK 11-specific versions

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Remove 'Xamarin SDK' header — Arcade's RepositoryValidation.proj
compares LICENSE against its MIT template line-by-line.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Arcade's Sign.proj (SIGN004) checks AssemblyCopyright to determine
if a DLL is first-party or third-party. 'Xamarin Inc.' was being
flagged as 3rd-party, blocking signing with the Microsoft certificate.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
The macOS job was missing --ci, which enables binary logging and
creates artifacts/log/. Without it the Publish Logs step fails
because the directory doesn't exist. cibuild.sh passes --ci
automatically; build.sh needs it explicitly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rmarinho rmarinho force-pushed the dev/ruimarinho/arcade-onboarding branch from c3a807b to 361bfa2 Compare March 26, 2026 11:39
rmarinho and others added 4 commits March 26, 2026 15:13
Real signing requires ESRP service connection approval. Use test
signing until the pipeline is fully authorized.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
@rmarinho
Copy link
Copy Markdown
Member Author

@rmarinho rmarinho requested a review from rolfbjarne March 26, 2026 18:55
@rmarinho rmarinho merged commit 741e82a into main Mar 27, 2026
4 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.

2 participants