Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

updating prerelease notes for consistency #79

Merged
merged 1 commit into from
Oct 19, 2023
Merged
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
18 changes: 10 additions & 8 deletions notes/prerelease-branch.md
Original file line number Diff line number Diff line change
@@ -1,12 +1,13 @@
# Supporting a pre-release branch

To support an alpha pre-release with binary target content hosted on GitHub, we're managing a separate, short-lived branch from `main`.
This package needs access to binary targets built with updated Rust libraries, but also coordinated with the associated generated Swift file `AutomergeUniffi/automerge.swift`.
The pattern that seems most conducive to supporting a pre-release is to set up a dependency on a branch, with the branch containing tagged points where the binary content can be hosted from a GitHub pre-release.
The pattern most conducive to supporting a pre-release sets up a dependency on a branch, with the branch containing tagged points where the binary content can be hosted from a GitHub pre-release.

To support an alpha pre-release with binary target content hosted on GitHub, we create separate, short-liveded branch from `main`.
For the `0.5` pre-releases, the branch is `alpha0.5.0`, forked from main.

For the `0.5.0` release, the branch is named `alpha0.5.0`, forked from main.
The `Package.swift` file in those branches refers to GitHub hosted pre-releases that also host the built Rust code as an XCFramework.
For example, the binary target in this branch reads:
For example, at one point, the binary target in the `alpha0.5.0` branch read:

```swift
FFIbinaryTarget = .binaryTarget(
Expand All @@ -16,14 +17,15 @@ For example, the binary target in this branch reads:
)
```

All commits for forward updates are made onto the `main` branch - which at the moment would only be usable with a local build of the XCFramework.
Some of those commits are cherry-picked into the alpha branch for easier public consumption while I'm working on the next release.
All commits in the pre-release branch are first applied on the `main` branch.
During new release development, the `main` branch may only be functional with a local build of the XCFramework.

When the `0.5.0`` release is cut, and relevant tags are set, the intention is to delete the branch and remove the GitHub pre-releases.
When a full release is made and relevant tags are set, the alpha branches are considered dead, but left in place for clearer history consistency.

## Using the pre-release branch

To use this pre-release branch, have your Package.swift or Xcode project depend on alpha branch:
To use a pre-release branch, have your Package.swift or Xcode project depend on alpha branch.
For example, to use the pre-release of the 0.5:

```swift
dependencies: [
Expand Down
Loading