Skip to content

Commit 67cfdbe

Browse files
authored
Merge pull request #5 from daltskin/bnf
BNF based grammar implementation
2 parents a747872 + 32d11af commit 67cfdbe

51 files changed

Lines changed: 83628 additions & 89643 deletions

Some content is hidden

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

.github/RELEASE_CHECKLIST.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Release Checklist
2+
3+
Use this template when preparing a new release.
4+
5+
## Before Tagging
6+
7+
1. Update `CHANGELOG.md`:
8+
- Move items from `[Unreleased]` into a new `## [x.y.z]` section
9+
- Use subsections: `### Added`, `### Changed`, `### Deprecated`, `### Removed`, `### Fixed`, `### Security`
10+
2. Ensure all tests pass: `npm test`
11+
3. Verify extension compiles: `npm run compile`
12+
4. Test packaging locally: `npm run package`
13+
14+
## Creating the Release
15+
16+
```bash
17+
git tag v0.14.0
18+
git push origin v0.14.0
19+
```
20+
21+
The [release workflow](../workflows/release.yml) will automatically:
22+
23+
- Build and package the VSIX
24+
- Extract release notes from `CHANGELOG.md` for the tagged version
25+
- Create a GitHub Release with the notes and VSIX attached
26+
- Publish to the VS Code Marketplace (if token is configured)
27+
28+
## After Release
29+
30+
- Verify the [GitHub Release](https://github.com/daltskin/VSCode_SysML_Extension/releases) looks correct
31+
- Confirm the VSIX is downloadable
32+
- Add a new `## [Unreleased]` section to `CHANGELOG.md` if not already present

.github/workflows/build-and-release.yml

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

.github/workflows/release.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,33 @@ jobs:
4545
- name: Verify VSIX version
4646
run: test -f "sysml-v2-support-${{ steps.version.outputs.version }}.vsix"
4747

48+
- name: Extract release notes from CHANGELOG.md
49+
id: changelog
50+
run: |
51+
VERSION="${{ steps.version.outputs.version }}"
52+
# Extract the section for this version from CHANGELOG.md
53+
# Matches from "## [<version>]" up to the next "## [" heading or end of file
54+
NOTES=$(awk -v ver="$VERSION" '
55+
BEGIN { found=0 }
56+
/^## \[/ {
57+
if (found) exit
58+
if (index($0, "## [" ver "]")) { found=1; next }
59+
}
60+
found { print }
61+
' CHANGELOG.md)
62+
63+
if [ -z "$NOTES" ]; then
64+
echo "::warning::No changelog entry found for version $VERSION, using fallback"
65+
NOTES="No changelog entry for this version."
66+
fi
67+
68+
# Write multiline output using delimiter
69+
{
70+
echo "notes<<CHANGELOG_EOF"
71+
echo "$NOTES"
72+
echo "CHANGELOG_EOF"
73+
} >> "$GITHUB_OUTPUT"
74+
4875
- name: Create GitHub Release
4976
uses: softprops/action-gh-release@v1
5077
env:
@@ -55,6 +82,10 @@ jobs:
5582
body: |
5683
## SysML v2.0 Extension v${{ steps.version.outputs.version }}
5784
85+
${{ steps.changelog.outputs.notes }}
86+
87+
---
88+
5889
### Installation
5990
Download the `.vsix` file and install using:
6091
```bash

.gitignore

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,3 +60,13 @@ Thumbs.db
6060
sysml.library/
6161

6262
docs
63+
64+
# Grammar generation
65+
.grammar-cache/
66+
tools/*.jar
67+
__pycache__/
68+
69+
# Test output
70+
test-output/
71+
72+
samples/temp

0 commit comments

Comments
 (0)