-
Notifications
You must be signed in to change notification settings - Fork 649
chore(release): add win fallback and node24 #1363
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
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -6,7 +6,7 @@ This document defines the maintainer release flow for DeepChat without rewriting | |
|
|
||
| - Keep `dev` as the only long-lived integration branch. | ||
| - Keep `main` as a stable mirror of reviewed release commits. | ||
| - Keep releases tag-driven through [`.github/workflows/release.yml`](/Users/zerob13/Documents/deepchat/.github/workflows/release.yml). | ||
| - Keep releases tag-driven through [`.github/workflows/release.yml`](../.github/workflows/release.yml). | ||
| - Avoid creating new merge commits on `main`. | ||
|
|
||
| ## Branch Roles | ||
|
|
@@ -52,7 +52,7 @@ This document defines the maintainer release flow for DeepChat without rewriting | |
|
|
||
| Use `--force-with-lease` only because the release branch is a disposable review branch that must stay identical to a commit already on `dev`. | ||
|
|
||
| 5. After the PR is approved, fast-forward `main` locally. | ||
| 5. After the PR is approved, fast-forward `main` locally on macOS or Linux. | ||
|
|
||
| ```bash | ||
| pnpm run release:ff -- release/v1.0.0-beta.4 --tag v1.0.0-beta.4 | ||
|
|
@@ -65,6 +65,8 @@ This document defines the maintainer release flow for DeepChat without rewriting | |
| - `origin/main` is an ancestor of the target commit | ||
| - `main` can be updated with `git merge --ff-only` | ||
|
|
||
| Windows maintainers should skip this helper and use the manual release sequence below. | ||
|
|
||
| 6. Create and push the release tag on the same commit. | ||
|
|
||
| ```bash | ||
|
|
@@ -79,6 +81,67 @@ This document defines the maintainer release flow for DeepChat without rewriting | |
| git branch -d release/v1.0.0-beta.4 | ||
| ``` | ||
|
|
||
| ## Manual Release Sequence | ||
|
|
||
| Use this sequence when the automatic helper is unavailable, especially on Windows. It updates `origin/main` directly from the reviewed release commit and does not depend on the state of your local `main`. | ||
|
|
||
| 1. Fetch the latest release refs. | ||
|
|
||
| ```bash | ||
| git fetch origin main dev --prune | ||
|
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
I checked Useful? React with 👍 / 👎. |
||
| ``` | ||
|
|
||
| 2. Resolve the reviewed release commit and record it as `TARGET_SHA`. | ||
|
|
||
| ```bash | ||
| git rev-parse origin/release/v1.0.0-beta.4^{commit} | ||
| # or | ||
| git rev-parse release/v1.0.0-beta.4^{commit} | ||
| # or | ||
| git rev-parse <target-ref>^{commit} | ||
| ``` | ||
|
|
||
| 3. Confirm the release commit already exists on `origin/dev`. | ||
|
|
||
| ```bash | ||
| git merge-base --is-ancestor <TARGET_SHA> origin/dev | ||
| ``` | ||
|
|
||
| 4. Confirm `origin/main` can be fast-forwarded to the reviewed release commit. | ||
|
|
||
| ```bash | ||
| git merge-base --is-ancestor origin/main <TARGET_SHA> | ||
| ``` | ||
|
|
||
| 5. Confirm the release tag does not already exist locally or on `origin`. | ||
|
|
||
| ```bash | ||
| git rev-parse --verify --quiet refs/tags/v1.0.0-beta.4 | ||
| git ls-remote --exit-code --tags origin refs/tags/v1.0.0-beta.4 | ||
| ``` | ||
|
|
||
| Both commands should report that the tag is missing before you continue. | ||
|
|
||
| 6. Fast-forward `origin/main` directly to the reviewed release commit. | ||
|
|
||
| ```bash | ||
| git push origin <TARGET_SHA>:refs/heads/main | ||
| ``` | ||
|
|
||
| 7. Create and push the release tag on the same commit. | ||
|
|
||
| ```bash | ||
| git tag v1.0.0-beta.4 <TARGET_SHA> | ||
| git push origin refs/tags/v1.0.0-beta.4 | ||
| ``` | ||
|
|
||
| 8. Delete the temporary release branch after the release is published. | ||
|
|
||
| ```bash | ||
| git push origin --delete release/v1.0.0-beta.4 | ||
| git branch -d release/v1.0.0-beta.4 | ||
| ``` | ||
|
|
||
| ## Repository Settings | ||
|
|
||
| These settings are not stored in the repository and must be configured manually on GitHub: | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Setting
FORCE_JAVASCRIPT_ACTIONS_TO_NODE24here makes every JavaScript action in this workflow run under Node 24, but this workflow still invokespnpm/action-setup@v2a few lines below. The pnpm action’s marketplace page now warns that v2 “has stopped working” with newer Node.js versions, so PR checks/builds/releases can start failing beforepnpm installeven runs. Please either keep these workflows on the current action runtime or bumppnpm/action-setupto a Node-24-compatible major first.Useful? React with 👍 / 👎.