Skip to content

Commit fb5bf45

Browse files
author
Aaron Sun
committed
Merge branch 'main' into confluence-ext
2 parents d50d455 + 94ba857 commit fb5bf45

168 files changed

Lines changed: 10134 additions & 5405 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/ISSUE_TEMPLATE/extension_submission.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ body:
1212
- Review the [Extension Publishing Guide](https://github.com/github/spec-kit/blob/main/extensions/EXTENSION-PUBLISHING-GUIDE.md)
1313
- Ensure your extension has a valid `extension.yml` manifest
1414
- Create a GitHub release with a version tag (e.g., v1.0.0)
15-
- Test installation: `specify extension add --from <your-release-url>`
15+
- Test installation: `specify extension add <extension-name> --from <your-release-url>`
1616
1717
- type: input
1818
id: extension-id
@@ -229,7 +229,7 @@ body:
229229
placeholder: |
230230
```bash
231231
# Install extension
232-
specify extension add --from https://github.com/your-org/spec-kit-your-extension/archive/refs/tags/v1.0.0.zip
232+
specify extension add <extension-name> --from https://github.com/your-org/spec-kit-your-extension/archive/refs/tags/v1.0.0.zip
233233
234234
# Use a command
235235
/speckit.your-extension.command-name arg1 arg2

.github/workflows/docs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@ jobs:
4747
docfx docfx.json
4848
4949
- name: Setup Pages
50-
uses: actions/configure-pages@v5
50+
uses: actions/configure-pages@v6
5151

5252
- name: Upload artifact
5353
uses: actions/upload-pages-artifact@v3

.github/workflows/lint.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
uses: actions/checkout@v6
1616

1717
- name: Run markdownlint-cli2
18-
uses: DavidAnson/markdownlint-cli2-action@v23
18+
uses: DavidAnson/markdownlint-cli2-action@ce4853d43830c74c1753b39f3cf40f71c2031eb9 # v23
1919
with:
2020
globs: |
2121
'**/*.md'

.github/workflows/release-trigger.yml

Lines changed: 20 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -139,23 +139,40 @@ jobs:
139139
git push origin "${{ steps.version.outputs.tag }}"
140140
echo "Branch ${{ env.branch }} and tag ${{ steps.version.outputs.tag }} pushed"
141141
142+
- name: Bump to dev version
143+
id: dev_version
144+
run: |
145+
IFS='.' read -r MAJOR MINOR PATCH <<< "${{ steps.version.outputs.version }}"
146+
NEXT_DEV="$MAJOR.$MINOR.$((PATCH + 1)).dev0"
147+
echo "dev_version=$NEXT_DEV" >> $GITHUB_OUTPUT
148+
sed -i "s/version = \".*\"/version = \"$NEXT_DEV\"/" pyproject.toml
149+
git add pyproject.toml
150+
if git diff --cached --quiet; then
151+
echo "No dev version changes to commit"
152+
else
153+
git commit -m "chore: begin $NEXT_DEV development"
154+
git push origin "${{ env.branch }}"
155+
echo "Bumped to dev version $NEXT_DEV"
156+
fi
157+
142158
- name: Open pull request
143159
env:
144160
GITHUB_TOKEN: ${{ secrets.RELEASE_PAT }}
145161
run: |
146162
gh pr create \
147163
--base main \
148164
--head "${{ env.branch }}" \
149-
--title "chore: bump version to ${{ steps.version.outputs.version }}" \
150-
--body "Automated version bump to ${{ steps.version.outputs.version }}.
165+
--title "chore: release ${{ steps.version.outputs.version }}, begin ${{ steps.dev_version.outputs.dev_version }} development" \
166+
--body "Automated release of ${{ steps.version.outputs.version }}.
151167
152168
This PR was created by the Release Trigger workflow. The git tag \`${{ steps.version.outputs.tag }}\` has already been pushed and the release artifacts are being built.
153169
154-
Merge this PR to record the version bump and changelog update on \`main\`."
170+
Merging this PR will set \`main\` to \`${{ steps.dev_version.outputs.dev_version }}\` so that development installs are clearly marked as pre-release."
155171
156172
- name: Summary
157173
run: |
158174
echo "✅ Version bumped to ${{ steps.version.outputs.version }}"
159175
echo "✅ Tag ${{ steps.version.outputs.tag }} created and pushed"
176+
echo "✅ Dev version set to ${{ steps.dev_version.outputs.dev_version }}"
160177
echo "✅ PR opened to merge version bump into main"
161178
echo "🚀 Release workflow is building artifacts from the tag"

.github/workflows/release.yml

Lines changed: 45 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -27,35 +27,63 @@ jobs:
2727
- name: Check if release already exists
2828
id: check_release
2929
run: |
30-
chmod +x .github/workflows/scripts/check-release-exists.sh
31-
.github/workflows/scripts/check-release-exists.sh ${{ steps.version.outputs.tag }}
30+
VERSION="${{ steps.version.outputs.tag }}"
31+
if gh release view "$VERSION" >/dev/null 2>&1; then
32+
echo "exists=true" >> $GITHUB_OUTPUT
33+
echo "Release $VERSION already exists, skipping..."
34+
else
35+
echo "exists=false" >> $GITHUB_OUTPUT
36+
echo "Release $VERSION does not exist, proceeding..."
37+
fi
3238
env:
3339
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
3440

35-
- name: Create release package variants
36-
if: steps.check_release.outputs.exists == 'false'
37-
run: |
38-
chmod +x .github/workflows/scripts/create-release-packages.sh
39-
.github/workflows/scripts/create-release-packages.sh ${{ steps.version.outputs.tag }}
40-
4141
- name: Generate release notes
4242
if: steps.check_release.outputs.exists == 'false'
43-
id: release_notes
4443
run: |
45-
chmod +x .github/workflows/scripts/generate-release-notes.sh
46-
# Get the previous tag for changelog generation
47-
PREVIOUS_TAG=$(git describe --tags --abbrev=0 ${{ steps.version.outputs.tag }}^ 2>/dev/null || echo "")
48-
# Default to v0.0.0 if no previous tag is found (e.g., first release)
44+
VERSION="${{ steps.version.outputs.tag }}"
45+
VERSION_NO_V=${VERSION#v}
46+
47+
# Find previous tag
48+
PREVIOUS_TAG=$(git tag -l 'v*' --sort=-version:refname | grep -v "^${VERSION}$" | head -n 1)
49+
if [ -z "$PREVIOUS_TAG" ]; then
50+
PREVIOUS_TAG=""
51+
fi
52+
53+
# Get commits since previous tag
4954
if [ -z "$PREVIOUS_TAG" ]; then
50-
PREVIOUS_TAG="v0.0.0"
55+
COMMIT_COUNT=$(git rev-list --count HEAD)
56+
if [ "$COMMIT_COUNT" -gt 20 ]; then
57+
COMMITS=$(git log --oneline --pretty=format:"- %s" --no-merges HEAD~20..HEAD)
58+
else
59+
COMMITS=$(git log --oneline --pretty=format:"- %s" --no-merges)
60+
fi
61+
else
62+
COMMITS=$(git log --oneline --pretty=format:"- %s" --no-merges "$PREVIOUS_TAG"..HEAD)
5163
fi
52-
.github/workflows/scripts/generate-release-notes.sh ${{ steps.version.outputs.tag }} "$PREVIOUS_TAG"
64+
65+
cat > release_notes.md << NOTES_EOF
66+
## Install
67+
68+
\`\`\`bash
69+
uv tool install specify-cli --from git+https://github.com/github/spec-kit.git@${VERSION}
70+
specify init my-project
71+
\`\`\`
72+
73+
NOTES_EOF
74+
75+
echo "## What's Changed" >> release_notes.md
76+
echo "" >> release_notes.md
77+
echo "$COMMITS" >> release_notes.md
5378
5479
- name: Create GitHub Release
5580
if: steps.check_release.outputs.exists == 'false'
5681
run: |
57-
chmod +x .github/workflows/scripts/create-github-release.sh
58-
.github/workflows/scripts/create-github-release.sh ${{ steps.version.outputs.tag }}
82+
VERSION="${{ steps.version.outputs.tag }}"
83+
VERSION_NO_V=${VERSION#v}
84+
gh release create "$VERSION" \
85+
--title "Spec Kit - $VERSION_NO_V" \
86+
--notes-file release_notes.md
5987
env:
6088
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
6189

.github/workflows/scripts/check-release-exists.sh

Lines changed: 0 additions & 21 deletions
This file was deleted.

.github/workflows/scripts/create-github-release.sh

Lines changed: 0 additions & 72 deletions
This file was deleted.

0 commit comments

Comments
 (0)