Skip to content

Commit 264c756

Browse files
committed
Update CHANGELOG.md, README.md, and add release documentation for v0.1.0
- Updated CHANGELOG.md to reflect the first public release, detailing new features such as drag-and-drop functionality, undo move capability, accessibility improvements, and performance optimizations. - Revised README.md to include updated CI/CD workflow descriptions and enhanced documentation on the release process. - Added RELEASE_GUIDE_v0.1.0.md and RELEASE_NOTES_v0.1.0.md to provide comprehensive release instructions and highlight key changes for users and contributors. - Improved documentation structure in ARCHITECTURE.md and RELEASE.md to clarify the automated release workflow and versioning strategy.
1 parent 9d9724b commit 264c756

File tree

7 files changed

+315
-20
lines changed

7 files changed

+315
-20
lines changed

.github/workflows/release.yml

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
name: Release
2+
3+
on:
4+
push:
5+
tags:
6+
- 'v*'
7+
8+
jobs:
9+
create-release:
10+
runs-on: ubuntu-latest
11+
permissions:
12+
contents: write
13+
steps:
14+
- uses: actions/checkout@v4
15+
with:
16+
fetch-depth: 0
17+
18+
- name: Extract version from tag
19+
id: tag_version
20+
run: echo "VERSION=${GITHUB_REF#refs/tags/}" >> $GITHUB_OUTPUT
21+
22+
- name: Read release notes
23+
id: release_notes
24+
shell: bash
25+
run: |
26+
TAG="${GITHUB_REF#refs/tags/}"
27+
if [ -f "RELEASE_NOTES_${TAG}.md" ]; then
28+
NOTES=$(cat "RELEASE_NOTES_${TAG}.md")
29+
else
30+
NOTES="# Release ${TAG}\n\nSee [CHANGELOG.md](CHANGELOG.md) for details."
31+
fi
32+
echo "NOTES<<EOF" >> $GITHUB_OUTPUT
33+
echo "$NOTES" >> $GITHUB_OUTPUT
34+
echo "EOF" >> $GITHUB_OUTPUT
35+
36+
- name: Create Release
37+
uses: softprops/action-gh-release@v1
38+
with:
39+
tag_name: ${{ github.ref_name }}
40+
name: Release ${{ steps.tag_version.outputs.VERSION }}
41+
body: ${{ steps.release_notes.outputs.NOTES }}
42+
draft: false
43+
prerelease: false
44+
env:
45+
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
46+

CHANGELOG.md

Lines changed: 30 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,33 @@
33
All notable changes to this project will be documented in this file.
44

55
## [Unreleased]
6-
- Drag and drop functionality (fully integrated with click-based flow)
7-
- Sound effects toggle and event wiring
8-
- ARIA roles and keyboard navigation
9-
- Undo move functionality
10-
- CI, lint, tests, repo templates
11-
- Performance: diff-based rendering; faster move simulation
12-
13-
## [0.1.0] - YYYY-MM-DD
14-
- Initial public-ready updates
6+
7+
## [0.1.0] - 2025-11-02
8+
9+
### Added
10+
- **Drag and Drop**: Fully functional drag-and-drop interface for moving pieces, integrated with click-based flow
11+
- **Undo Move**: Ability to undo the last move with full state restoration
12+
- **Accessibility**: ARIA roles, live regions, and keyboard navigation (arrow keys, Enter/Space)
13+
- **Sound Effects**: Toggle and event wiring ready (audio files can be added to `assets/sounds/`)
14+
- **SAN Improvements**: Standard Algebraic Notation with basic disambiguation for move history
15+
- **Performance Optimizations**:
16+
- Diff-based rendering (only updates changed squares)
17+
- Optimized move simulation (lightweight board copies)
18+
- **Testing Infrastructure**: Jest unit and integration tests with jsdom
19+
- **CI/CD**: Automated linting and testing via GitHub Actions
20+
- **Repository Hardening**:
21+
- CODE_OF_CONDUCT, SECURITY, CONTRIBUTING documentation
22+
- Issue and PR templates
23+
- CODEOWNERS file
24+
- Dependabot configuration
25+
- **Code Quality**: ESLint, Prettier, and EditorConfig for consistent formatting
26+
- **Documentation**: Comprehensive architecture docs, roadmap, and release process
27+
28+
### Changed
29+
- Game state persistence improved with snapshot-based undo system
30+
- Move history now uses proper SAN notation with disambiguation
31+
- Board rendering performance significantly improved
32+
33+
### Fixed
34+
- Fixed move validation edge cases
35+
- Improved check/checkmate detection accuracy

README.md

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -208,7 +208,7 @@ Static_Chess/
208208
│ ├── ROADMAP.md # Development roadmap
209209
│ └── RELEASE.md # Release process documentation
210210
├── .github/ # GitHub configuration
211-
│ ├── workflows/ # CI/CD workflows
211+
│ ├── workflows/ # CI/CD workflows (ci.yml, release.yml)
212212
│ ├── ISSUE_TEMPLATE/ # Issue templates
213213
│ └── CODEOWNERS # Code ownership rules
214214
├── package.json # Dev dependencies and scripts (lint/test only)
@@ -248,7 +248,7 @@ The project includes comprehensive documentation to help developers understand t
248248

249249
- **Architecture Documentation:** `docs/ARCHITECTURE.md` explains components, data flow, and state.
250250
- **Development Roadmap:** `docs/ROADMAP.md` outlines features, priorities, and timeline.
251-
- **Release Process:** `docs/RELEASE.md` describes tagging, versioning, and triage.
251+
- **Release Process:** `docs/RELEASE.md` describes the automated release workflow via GitHub Actions.
252252
- **Changelog:** `CHANGELOG.md` tracks notable changes.
253253
- **Code Comments:** Files include JSDoc comments explaining functionality and usage.
254254

@@ -269,7 +269,11 @@ Since this is a purely static website, it can be easily deployed on any static h
269269
5. Set folder to `/ (root)`
270270
6. Your site will be available at `https://tmhsdigital.github.io/Static_Chess/`
271271

272-
Optional (CI-driven Pages): add a `pages.yml` workflow or keep manual Pages settings. CI (`.github/workflows/ci.yml`) runs lint and tests on PRs and pushes.
272+
**CI/CD Workflows:**
273+
- `.github/workflows/ci.yml`: Runs lint and tests on PRs and pushes
274+
- `.github/workflows/release.yml`: Automatically creates GitHub Releases when tags are pushed
275+
276+
Optional: Add a `pages.yml` workflow for CI-driven Pages deployment, or keep manual Pages settings.
273277

274278
---
275279

RELEASE_GUIDE_v0.1.0.md

Lines changed: 111 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,111 @@
1+
# Release v0.1.0 - Release Guide
2+
3+
## Pre-Release Checklist
4+
5+
✅ CHANGELOG.md updated with release date (2025-11-02)
6+
✅ Release notes created (RELEASE_NOTES_v0.1.0.md)
7+
✅ All features documented
8+
✅ Repository organized
9+
10+
## Steps to Create GitHub Release
11+
12+
### 1. Verify Everything is Committed
13+
14+
```bash
15+
git status
16+
# Should show "nothing to commit, working tree clean"
17+
```
18+
19+
### 2. Ensure CI is Passing
20+
21+
Check GitHub Actions at: https://github.com/TMHSDigital/Static_Chess/actions
22+
23+
The CI workflow should show:
24+
- ✅ Linting passes
25+
- ✅ Tests pass
26+
27+
### 3. Create and Push Release Tag
28+
29+
```bash
30+
# Create an annotated tag
31+
git tag -a v0.1.0 -m "Release v0.1.0 - First Public Release"
32+
33+
# Push the tag to GitHub
34+
git push origin v0.1.0
35+
```
36+
37+
### 4. Automatic Release Creation
38+
39+
The GitHub Actions workflow (`.github/workflows/release.yml`) will automatically:
40+
- Detect the pushed tag (any tag starting with `v`)
41+
- Read `RELEASE_NOTES_v0.1.0.md` if it exists
42+
- Create a GitHub Release with the tag name and release notes
43+
- Publish it automatically
44+
45+
**No manual steps required!** Just push the tag and the release will be created automatically.
46+
47+
You can monitor the workflow at: https://github.com/TMHSDigital/Static_Chess/actions
48+
49+
### 5. Post-Release Tasks
50+
51+
- [ ] Verify GitHub Pages still works: https://tmhsdigital.github.io/Static_Chess/
52+
- [ ] Check that release appears on releases page
53+
- [ ] Update any external references if needed
54+
- [ ] Consider announcing on social media/blog (optional)
55+
56+
## Release Notes Template
57+
58+
Use this template for the GitHub release description:
59+
60+
```markdown
61+
# Release v0.1.0 - First Public Release
62+
63+
**Release Date:** November 2, 2025
64+
65+
## First Public Release
66+
67+
This is the first official release of Static Chess, marking the completion of the public-ready upgrade plan.
68+
69+
## What's New
70+
71+
### Core Features
72+
- **Drag and Drop**: Intuitive piece movement by dragging pieces
73+
- **Undo Move**: Easily revert your last move
74+
- **Accessibility**: Full keyboard navigation and screen reader support
75+
- **Performance**: Optimized rendering and move calculation
76+
77+
### Developer Experience
78+
- **CI/CD**: Automated testing and linting
79+
- **Testing**: Comprehensive Jest test suite
80+
- **Code Quality**: ESLint, Prettier, EditorConfig
81+
- **Documentation**: Complete architecture docs
82+
83+
## Statistics
84+
85+
- **Files Changed**: 50+ files
86+
- **New Features**: 6 major features
87+
- **Tests Added**: 4 test suites
88+
89+
## Links
90+
91+
- **Play Now**: https://tmhsdigital.github.io/Static_Chess/
92+
- **Source Code**: https://github.com/TMHSDigital/Static_Chess
93+
- **Full Changelog**: See [CHANGELOG.md](CHANGELOG.md)
94+
```
95+
96+
## Semantic Versioning
97+
98+
This release follows [Semantic Versioning](https://semver.org/):
99+
- **MAJOR** (X.0.0): Breaking changes
100+
- **MINOR** (0.X.0): New features, backwards compatible
101+
- **PATCH** (0.0.X): Bug fixes
102+
103+
Since this is the first release, we're starting at **0.1.0** (minor version).
104+
105+
## Next Steps After Release
106+
107+
After publishing v0.1.0:
108+
1. Continue with feature development
109+
2. Address any issues reported
110+
3. Plan next release (v0.2.0) with new features
111+

RELEASE_NOTES_v0.1.0.md

Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
# Release v0.1.0 - First Public Release
2+
3+
**Release Date:** November 2, 2025
4+
5+
## First Public Release
6+
7+
This is the first official release of Static Chess, marking the completion of the public-ready upgrade plan. The project is now fully hardened, tested, and ready for open-source contributions.
8+
9+
## What's New
10+
11+
### Core Features
12+
- **Drag and Drop**: Intuitive piece movement by dragging pieces to valid squares
13+
- **Undo Move**: Easily revert your last move with full game state restoration
14+
- **Accessibility**: Full keyboard navigation and screen reader support
15+
- **Performance**: Optimized rendering and move calculation for smooth gameplay
16+
17+
### Developer Experience
18+
- **CI/CD**: Automated testing and linting on every PR
19+
- **Testing**: Comprehensive Jest test suite (unit + integration)
20+
- **Code Quality**: ESLint, Prettier, and EditorConfig for consistent code style
21+
- **Documentation**: Complete architecture docs, roadmap, and contribution guidelines
22+
23+
### Repository Improvements
24+
- GitHub templates for issues and pull requests
25+
- CODE_OF_CONDUCT, SECURITY, and CONTRIBUTING documentation
26+
- Automated dependency updates via Dependabot
27+
- CODEOWNERS file for code review assignments
28+
29+
## Statistics
30+
31+
- **Files Changed**: 50+ files
32+
- **New Features**: 6 major features
33+
- **Tests Added**: 4 test suites
34+
- **Documentation**: 5 comprehensive docs
35+
36+
## Getting Started
37+
38+
Simply open `index.html` in your browser - no build process required!
39+
40+
For contributors:
41+
```bash
42+
npm install
43+
npm test
44+
npm run lint
45+
```
46+
47+
## Links
48+
49+
- **Play Now**: https://tmhsdigital.github.io/Static_Chess/
50+
- **Source Code**: https://github.com/TMHSDigital/Static_Chess
51+
- **Documentation**: See `docs/` directory
52+
- **Report Issues**: https://github.com/TMHSDigital/Static_Chess/issues
53+
54+
## Acknowledgments
55+
56+
Built with pure vanilla web technologies - no frameworks, no build step, just clean code.
57+
58+
---
59+
60+
**Full Changelog**: See [CHANGELOG.md](CHANGELOG.md)
61+

docs/ARCHITECTURE.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,9 +30,13 @@ Static_Chess/
3030
│ ├── wb.svg, bb.svg # Bishops
3131
│ ├── wq.svg, bq.svg # Queens
3232
│ └── wk.svg, bk.svg # Kings
33+
├── .github/ # GitHub configuration
34+
│ ├── workflows/ # CI/CD workflows (ci.yml, release.yml)
35+
│ └── [templates] # Issue/PR templates, CODEOWNERS, etc.
3336
└── docs/ # Documentation
3437
├── ARCHITECTURE.md # This document
35-
└── ROADMAP.md # Development roadmap
38+
├── ROADMAP.md # Development roadmap
39+
└── RELEASE.md # Release process documentation
3640
```
3741

3842
## Component Interaction Flow

docs/RELEASE.md

Lines changed: 55 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,64 @@
11
# Release Process
22

3-
This project is a static site; no build. Releases are tags with notes.
3+
This project is a static site; no build. Releases are automated via GitHub Actions when tags are pushed.
44

5-
1. Create a release branch (e.g., `release/vX.Y.Z`)
6-
2. Update `CHANGELOG.md` and docs as needed
7-
3. Run tests and lint (`npm test && npm run lint`)
8-
4. Merge to `main`
9-
5. Create GitHub Release with tag `vX.Y.Z` and changelog
5+
## Automated Release Workflow
6+
7+
When you push a tag starting with `v` (e.g., `v0.1.0`, `v1.2.3`), the `.github/workflows/release.yml` workflow automatically:
8+
9+
1. Detects the pushed tag
10+
2. Reads release notes from `RELEASE_NOTES_vX.Y.Z.md` if it exists
11+
3. Creates a GitHub Release with the tag name and release notes
12+
4. Publishes the release automatically
13+
14+
## Release Steps
15+
16+
1. **Prepare Release**:
17+
- Update `CHANGELOG.md` with the new version and date
18+
- Create `RELEASE_NOTES_vX.Y.Z.md` with release summary (optional but recommended)
19+
- Ensure all changes are committed and pushed to `main`
20+
21+
2. **Verify CI Passes**:
22+
- Check that GitHub Actions CI is green: https://github.com/TMHSDigital/Static_Chess/actions
23+
- Run locally: `npm test && npm run lint`
24+
25+
3. **Create and Push Tag**:
26+
```bash
27+
git tag -a vX.Y.Z -m "Release vX.Y.Z - Description"
28+
git push origin vX.Y.Z
29+
```
30+
31+
4. **Monitor Release**:
32+
- Watch the workflow at: https://github.com/TMHSDigital/Static_Chess/actions
33+
- Verify release appears at: https://github.com/TMHSDigital/Static_Chess/releases
34+
35+
The release will be created automatically within minutes of pushing the tag.
1036

1137
## Versioning
1238

13-
Semantic Versioning (MAJOR.MINOR.PATCH).
39+
Semantic Versioning (MAJOR.MINOR.PATCH):
40+
- **MAJOR** (X.0.0): Breaking changes
41+
- **MINOR** (0.X.0): New features, backwards compatible
42+
- **PATCH** (0.0.X): Bug fixes
43+
44+
## Release Notes
45+
46+
For each release, create a `RELEASE_NOTES_vX.Y.Z.md` file in the root directory. The workflow will automatically use this file for the GitHub Release description. If the file doesn't exist, a default release note will be generated referencing the CHANGELOG.
47+
48+
Example structure:
49+
```markdown
50+
# Release vX.Y.Z - Title
51+
52+
**Release Date:** YYYY-MM-DD
53+
54+
## What's New
55+
- Feature 1
56+
- Feature 2
57+
58+
## Links
59+
- Play Now: https://tmhsdigital.github.io/Static_Chess/
60+
- Full Changelog: See CHANGELOG.md
61+
```
1462

1563
## Labels and Triage
1664

0 commit comments

Comments
 (0)