Skip to content
Closed
Show file tree
Hide file tree
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
2 changes: 1 addition & 1 deletion .claude/skills/merge-train-infra/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ The merge-train system is fully automated via GitHub Actions in `.github/workflo

1. **PR Creation** (`merge-train-create-pr.yml`): Triggered on push to `merge-train/*` branches. Creates a PR targeting `next` with the `ci-no-squash` label (and `ci-full-no-test-cache` for spartan). Skips merge commits and commits already in `next`.

2. **Body Updates** (`merge-train-update-pr-body.yml`): Triggered on push to `merge-train/**`. Updates the PR body with meaningful commits (those containing PR references like `(#1234)`). The body uses `BEGIN_COMMIT_OVERRIDE` / `END_COMMIT_OVERRIDE` markers for release-please.
2. **Body Updates** (`merge-train-update-pr-body.yml`): Triggered on push to `merge-train/**`. Updates the PR body with meaningful commits (those containing PR references like `(#1234)`). The body wraps the commit list in `BEGIN_COMMIT_OVERRIDE` / `END_COMMIT_OVERRIDE` markers.

3. **Next Integration** (`merge-train-next-to-branches.yml`): Triggered on push to `next`. Merges `next` into each active merge-train branch via `scripts/merge-train/merge-next.sh`. Uses `continue-on-error: true` so a conflict in one branch does not block others. Skips branches whose PR already has auto-merge enabled.

Expand Down
12 changes: 9 additions & 3 deletions .claude/skills/updating-changelog/SKILL.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: updating-changelog
description: Updates changelog documentation for contract developers and node operators by analyzing branch changes relative to 'next'. Use when preparing a PR, updating migration notes, documenting breaking changes, or when asked to update changelog/release notes.
description: Updates changelog documentation for contract developers and node operators by analyzing branch changes relative to the appropriate base branch or release tag. Use when preparing a PR, updating migration notes, documenting breaking changes, or when asked to update changelog/release notes.
---

# Updating Changelog
Expand All @@ -9,7 +9,7 @@ description: Updates changelog documentation for contract developers and node op

### 1. Determine Target Files

Read `.release-please-manifest.json` to get the version (e.g., `{"." : "4.0.0"}` → edit `v4.md`).
Read the root `VERSION` file to get the version (e.g., `4.0.0` → edit `v4.md`). If the major-version operator changelog does not exist yet, create it from the current changelog conventions and add it to `docs/docs-operate/operators/reference/changelog/index.md`.

**Target files:**

Expand All @@ -18,7 +18,13 @@ Read `.release-please-manifest.json` to get the version (e.g., `{"." : "4.0.0"}`

### 2. Analyze Branch Changes

Run `git diff next...HEAD --stat` for overview, then `git diff next...HEAD` for details.
Choose the diff base before generating entries:

- For a PR, use the PR target branch.
- For `v4-next`, release branches, and backports, use that branch's upstream/base rather than `next`.
- For release notes, diff the previous release tag against the new release tag.

Run `git diff <base>...HEAD --stat` for overview, then `git diff <base>...HEAD` for details.

**Categorize changes:**

Expand Down
23 changes: 0 additions & 23 deletions .github/release-please-master.json

This file was deleted.

26 changes: 0 additions & 26 deletions .github/release-please-v2.json

This file was deleted.

26 changes: 0 additions & 26 deletions .github/release-please-v3.json

This file was deleted.

27 changes: 0 additions & 27 deletions .github/release-please-v4.json

This file was deleted.

16 changes: 8 additions & 8 deletions .github/workflows/create-release-branch.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
name: Create Release Branch

# Take the current version from the release-please-manifest.json file on `next`,
# and create a release branch for it. Then update the release-please-manifest.json file on `next` to the next version.
# Take the current version from the VERSION file on `next`,
# and create a release branch for it. Then update the VERSION file on `next` to the next version.

on:
workflow_dispatch:
Expand Down Expand Up @@ -34,8 +34,8 @@ jobs:
- name: Create release branch
run: |
# Get the version from the release-please-manifest.json file
CURRENT_VERSION=$(jq -r '."."' .release-please-manifest.json)
# Get the version from the VERSION file
CURRENT_VERSION=$(cat VERSION)
# grab major version
CURRENT_MAJOR_VERSION="${CURRENT_VERSION%%.*}"
Expand All @@ -57,10 +57,10 @@ jobs:
NEXT_MAJOR_VERSION=$((CURRENT_MAJOR_VERSION + 1))
NEXT_VERSION="${NEXT_MAJOR_VERSION}.0.0"
# update release-please-manifest.json on `next` branch
# update VERSION on `next` branch
git fetch origin next
git checkout -B next origin/next
jq --arg version "$NEXT_VERSION" '.["."] = $version' .release-please-manifest.json > temp.json && mv temp.json .release-please-manifest.json
git add .release-please-manifest.json
git commit -m "chore(release): update release-please-manifest.json to $NEXT_VERSION"
echo "$NEXT_VERSION" > VERSION
git add VERSION
git commit -m "chore(release): update VERSION to $NEXT_VERSION"
git push origin next
16 changes: 15 additions & 1 deletion .github/workflows/deploy-next-net.yml
Original file line number Diff line number Diff line change
Expand Up @@ -42,7 +42,21 @@ jobs:
SEMVER=$(echo "$TAG" | sed 's/-amd64$//' | sed 's/-spartan\.[0-9]\{8\}//')
else
# Scheduled nightly run - get latest spartan nightly tag
current_version=$(jq -r '."."' .release-please-manifest.json)
git fetch origin +next:refs/remotes/origin/next --depth=1 || true
current_version=$(git show origin/next:VERSION 2>/dev/null | tr -d '[:space:]' || true)
if [[ -z "$current_version" ]]; then
current_version=$(
git ls-remote --tags --refs origin 'v[0-9]*-nightly.*' |
awk -F/ '{print $3}' |
sed -nE 's/^v([0-9]+\.[0-9]+\.[0-9]+)-nightly\..*$/\1/p' |
sort -V |
tail -n1
)
fi
if [[ -z "$current_version" ]]; then
echo "Unable to infer current next version from VERSION or nightly tags"
exit 1
fi
echo "Current version: $current_version"

# Format the tag as: <current_version>-spartan.<YYYYMMDD>-amd64
Expand Down
15 changes: 15 additions & 0 deletions .github/workflows/deploy-staging-public.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,8 @@ on:
push:
branches:
- v4
tags:
- 'v4.*'
workflow_dispatch: {}

concurrency:
Expand All @@ -29,6 +31,19 @@ jobs:
- name: Poll for semver tag at HEAD
id: poll-tag
run: |
if [[ "${GITHUB_REF_TYPE:-}" == "tag" ]]; then
TAG="$GITHUB_REF_NAME"
if ! ci3/semver check "$TAG"; then
echo "Error: Tag $TAG is not a valid semver tag"
exit 1
fi
echo "Found pushed tag: $TAG"
SEMVER="${TAG#v}"
echo "tag=$TAG" >> $GITHUB_OUTPUT
echo "semver=$SEMVER" >> $GITHUB_OUTPUT
exit 0
fi

HEAD_SHA=$(git rev-parse HEAD)
MAX_ATTEMPTS=60
echo "Looking for any semver tag at HEAD ($HEAD_SHA)"
Expand Down
18 changes: 16 additions & 2 deletions .github/workflows/nightly-release-tag.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ jobs:
run: |
git config --global user.email "tech@aztecprotocol.com"
git config --global user.name "AztecBot"
current_version=$(jq -r '."."' .release-please-manifest.json)
current_version=$(cat VERSION)
echo "Current version: $current_version"
nightly_tag="v${current_version}-nightly.$(date -u +%Y%m%d)"
echo "Nightly tag: $nightly_tag"
Expand All @@ -46,7 +46,21 @@ jobs:
run: |
git config --global user.email "tech@aztecprotocol.com"
git config --global user.name "AztecBot"
current_version=$(jq -r '."."' .release-please-manifest.json)
git fetch origin +next:refs/remotes/origin/next --depth=1 || true
current_version=$(git show origin/next:VERSION 2>/dev/null | tr -d '[:space:]' || true)
if [[ -z "$current_version" ]]; then
current_version=$(
git ls-remote --tags --refs origin 'v[0-9]*-nightly.*' |
awk -F/ '{print $3}' |
sed -nE 's/^v([0-9]+\.[0-9]+\.[0-9]+)-nightly\..*$/\1/p' |
sort -V |
tail -n1
)
fi
if [[ -z "$current_version" ]]; then
echo "Unable to infer current next version from VERSION or nightly tags"
exit 1
fi
echo "Current version: $current_version"
nightly_tag="v${current_version}-spartan.$(date -u +%Y%m%d)"
echo "Spartan nightly tag: $nightly_tag"
Expand Down
32 changes: 30 additions & 2 deletions .github/workflows/nightly-spartan-bench.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,21 @@ jobs:
if [[ -n "${{ inputs.nightly_tag }}" ]]; then
nightly_tag="${{ inputs.nightly_tag }}"
else
current_version=$(jq -r '."."' .release-please-manifest.json)
git fetch origin +next:refs/remotes/origin/next --depth=1 || true
current_version=$(git show origin/next:VERSION 2>/dev/null | tr -d '[:space:]' || true)
if [[ -z "$current_version" ]]; then
current_version=$(
git ls-remote --tags --refs origin 'v[0-9]*-nightly.*' |
awk -F/ '{print $3}' |
sed -nE 's/^v([0-9]+\.[0-9]+\.[0-9]+)-nightly\..*$/\1/p' |
sort -V |
tail -n1
)
fi
if [[ -z "$current_version" ]]; then
echo "Unable to infer current next version from VERSION or nightly tags"
exit 1
fi
nightly_tag="${current_version}-spartan.$(date -u +%Y%m%d)"
fi
echo "nightly_tag=$nightly_tag" >> $GITHUB_OUTPUT
Expand Down Expand Up @@ -134,7 +148,21 @@ jobs:
if [[ -n "${{ inputs.nightly_tag }}" ]]; then
nightly_tag="${{ inputs.nightly_tag }}"
else
current_version=$(jq -r '."."' .release-please-manifest.json)
git fetch origin +next:refs/remotes/origin/next --depth=1 || true
current_version=$(git show origin/next:VERSION 2>/dev/null | tr -d '[:space:]' || true)
if [[ -z "$current_version" ]]; then
current_version=$(
git ls-remote --tags --refs origin 'v[0-9]*-nightly.*' |
awk -F/ '{print $3}' |
sed -nE 's/^v([0-9]+\.[0-9]+\.[0-9]+)-nightly\..*$/\1/p' |
sort -V |
tail -n1
)
fi
if [[ -z "$current_version" ]]; then
echo "Unable to infer current next version from VERSION or nightly tags"
exit 1
fi
nightly_tag="${current_version}-spartan.$(date -u +%Y%m%d)"
fi
echo "nightly_tag=$nightly_tag" >> $GITHUB_OUTPUT
Expand Down
Loading
Loading