Skip to content

Latest commit

 

History

History
54 lines (38 loc) · 2.18 KB

File metadata and controls

54 lines (38 loc) · 2.18 KB

Contributing

Thanks for contributing.

Prerequisites

  • macOS with Xcode 26.3 installed (required by the pinned .NET iOS workload)
  • .NET SDK 10 (this repo pins the 10.0.202 feature band via global.json)

Local build

Build the native wrapper, managed package, sample, and NuGet:

dotnet workload install ios --version 10.0.202
bash src/Kapusch.StoreKit2ApisForiOSComponents/Native/iOS/build.sh
dotnet build src/Kapusch.StoreKit2ApisForiOSComponents/Kapusch.StoreKit2ApisForiOSComponents.csproj -c Release
dotnet build samples/Kapusch.StoreKit2.iOS.Sample/Kapusch.StoreKit2.iOS.Sample.csproj -c Release
dotnet pack src/Kapusch.StoreKit2ApisForiOSComponents/Kapusch.StoreKit2ApisForiOSComponents.csproj -c Release -o artifacts/nuget
python3 scripts/validate-nupkg.py artifacts/nuget/Kapusch.StoreKit2.iOS.0.1.0.nupkg

The native build is required even for managed-only package changes because the .nupkg must contain the complete xcframework.

Branches and pull requests

  • master is the only long-lived development and release branch.
  • Create a short-lived feature branch and open a pull request to master.
  • Do not implement work directly on release/*, create new release branches, rebase published history, force-push shared branches, or move an existing tag.
  • Keep pull requests focused, update documentation when behavior changes, and merge only after CI passes.

Releases and versions

  • Release candidates use vX.Y.Z-rc.N; stable releases use vX.Y.Z.
  • Every release tag target must be reachable from origin/master.
  • A manual workflow run without a version publishes a unique preview to GitHub Packages.
  • A manual NuGet.org version publish must be dispatched from master; the workflow rejects versions already present in the official NuGet index.
  • Historical packaging requires the explicit source_ref input, which must resolve to a commit reachable from origin/master.

The complete deterministic procedure is in Docs/Release.md.

Formatting

  • C#: follow .editorconfig.
  • Swift/Shell: keep style minimal and consistent.

License

By contributing, you agree that your contributions are licensed under the repository license (MIT).