| 1 | # Release process |
| 2 | |
| 3 | `smbcloud-auth-swift` now ships as a source-based Swift Package. |
| 4 | |
| 5 | That means the public `SmbCloudAuth` product does not need a remote XCFramework artifact to be published. |
| 6 | The package is consumable directly from the Git tag. |
| 7 | |
| 8 | ## What gets released |
| 9 | |
| 10 | Public products (both pure Swift): |
| 11 | |
| 12 | - `AuthCore` — cross-platform headless engine |
| 13 | - `SmbCloudAuth` — Apple UI layer on top of `AuthCore` |
| 14 | |
| 15 | There is no Rust/UniFFI artifact to build or publish; the package is fully |
| 16 | source-based. |
| 17 | |
| 18 | ## CI validation |
| 19 | |
| 20 | GitHub Actions validates release candidates with: |
| 21 | |
| 22 | - `make verify` |
| 23 | - `make verify-apple-destination PLATFORM=ios` |
| 24 | - `make verify-apple-destination PLATFORM=tvos` |
| 25 | - `make verify-apple-destination PLATFORM=visionos` |
| 26 | |
| 27 | That covers: |
| 28 | |
| 29 | - the main Swift package build |
| 30 | - the main Swift package tests |
| 31 | - the packaged macOS example app build |
| 32 | - generic Apple destination builds for iOS, tvOS, and visionOS |
| 33 | |
| 34 | ## Tagging a release |
| 35 | |
| 36 | Create and push a semver tag: |
| 37 | |
| 38 | ```bash |
| 39 | git tag v1.0.0 |
| 40 | git push origin v1.0.0 |
| 41 | ``` |
| 42 | |
| 43 | The release workflow will: |
| 44 | |
| 45 | 1. check out the tagged revision |
| 46 | 2. run `make verify` |
| 47 | 3. create a GitHub Release for the tag |
| 48 | |
| 49 | ## Manual release dispatch |
| 50 | |
| 51 | You can also run the `Release` workflow manually and provide a tag such as `v1.0.0`. |
| 52 | |
| 53 | ## Local pre-release verification |
| 54 | |
| 55 | Before tagging, run: |
| 56 | |
| 57 | ```bash |
| 58 | make verify |
| 59 | make verify-apple-destinations |
| 60 | ``` |