Repository navigation
CREATE_MISSING_RELEASES
Versions 1.7.8 and 1.7.9 have:
- ✅ CHANGELOG.md entries (complete release notes)
- ✅ Release summary documentation (docs/releases/RELEASE_SUMMARY_v1.7.x.md)
- ✅ Version numbers in library files (library.properties, library.json, package.json)
- ❌ Missing GitHub Releases (no tags, no release pages)
This means:
- Users cannot download these specific versions from GitHub
- Release automation may not have run properly
- NPM/GitHub Packages may not have been published
We've created a script to automate the process:
./scripts/create-missing-releases.shWhat it does:
- Extracts release notes from CHANGELOG.md
- Creates git tags (v1.7.8, v1.7.9)
- Pushes tags to GitHub
- Creates GitHub releases with proper release notes
- Provides links to verify releases
Requirements:
- GitHub CLI (
gh) installed: https://cli.github.com/ - Authenticated with GitHub:
gh auth login - Write access to the repository
Running the script:
# Navigate to repository root
cd /path/to/painlessMesh
# Run the script
./scripts/create-missing-releases.sh
# Follow the prompts
# - Confirm you want to proceed
# - If releases exist, choose whether to recreate themIf you prefer to create releases manually or the script doesn't work:
# Extract v1.7.8 notes
awk '/^## \[1\.7\.8\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > release_notes_1.7.8.txt
# Extract v1.7.9 notes
awk '/^## \[1\.7\.9\]/ {flag=1; next} /^## \[/ {flag=0} flag' CHANGELOG.md > release_notes_1.7.9.txtFor v1.7.8:
# Create and push tag
git tag -a v1.7.8 -m "painlessMesh v1.7.8"
git push origin v1.7.8
# Create GitHub release
gh release create v1.7.8 \
--repo Alteriom/painlessMesh \
--title "painlessMesh v1.7.8" \
--notes-file release_notes_1.7.8.txtFor v1.7.9:
# Create and push tag
git tag -a v1.7.9 -m "painlessMesh v1.7.9"
git push origin v1.7.9
# Create GitHub release
gh release create v1.7.9 \
--repo Alteriom/painlessMesh \
--title "painlessMesh v1.7.9" \
--notes-file release_notes_1.7.9.txtIf you don't have GitHub CLI:
- Go to: https://github.com/Alteriom/painlessMesh/releases/new
-
For v1.7.8:
- Tag:
v1.7.8 - Release title:
painlessMesh v1.7.8 - Description: Copy content from
CHANGELOG.mdsection[1.7.8] - Click "Publish release"
- Tag:
-
For v1.7.9:
- Tag:
v1.7.9 - Release title:
painlessMesh v1.7.9 - Description: Copy content from
CHANGELOG.mdsection[1.7.9] - Click "Publish release"
- Tag:
After creating the releases, verify:
# View releases via CLI
gh release list --repo Alteriom/painlessMesh
# Or visit in browser
# https://github.com/Alteriom/painlessMesh/releasesExpected output:
v1.7.9 painlessMesh v1.7.9 Latest 2025-11-08
v1.7.8 painlessMesh v1.7.8 2025-11-05
git fetch --tags
git tag -l | grep -E "v1.7.[89]"Expected output:
v1.7.8
v1.7.9
Visit each release page and confirm:
- ✅ Release notes match CHANGELOG.md content
- ✅ Date is correct (v1.7.8: Nov 5, 2025; v1.7.9: Nov 8, 2025)
- ✅ Release is marked as "Latest" for v1.7.9
After creating the GitHub releases, you may want to publish packages to NPM and GitHub Packages.
# Check NPM
npm view @alteriom/painlessmesh versions
# Check if 1.7.8 and 1.7.9 are listedIf versions are not published:
# Option 1: Trigger manual publish workflow
gh workflow run manual-publish.yml --repo Alteriom/painlessMesh
# Option 2: Manual NPM publish (requires NPM token)
npm publish --access publicThe releases were likely missed because:
-
Commits didn't trigger release workflow - The release workflow triggers on:
- Commits to
mainbranch - Changes to version files OR commit message starting with
release: - If neither condition was met, no release was created
- Commits to
-
Version was bumped without triggering release - The version files were updated but:
- Commit message didn't start with
release: - Or changes were pushed to a different branch first
- Commit message didn't start with
-
Workflow may have failed - Check GitHub Actions history for failed workflows
The release workflow (.github/workflows/release.yml) triggers when:
-
Automatic trigger (recommended):
- Modify
library.properties,library.json, orpackage.json - Commit changes to
mainbranch - Workflow automatically detects version bump and creates release
- Modify
-
Manual trigger:
- Commit message starts with
release: - Example:
git commit -m "release: v1.8.0 - New features"
- Commit message starts with
-
Use the bump-version script:
./scripts/bump-version.sh patch # or minor, major -
Update CHANGELOG.md with release notes
-
Use release agent to validate:
./scripts/release-agent.sh
-
Commit with proper message:
git add library.properties library.json package.json CHANGELOG.md git commit -m "release: v1.8.0 - Brief description" git push origin main -
Verify workflow runs:
- Go to: https://github.com/Alteriom/painlessMesh/actions
- Watch the "Automated Release" workflow
- Confirm it completes successfully
-
Check release was created:
gh release list --repo Alteriom/painlessMesh
After pushing a release commit, verify:
- ✅ GitHub Actions workflow runs successfully
- ✅ Git tag is created and pushed
- ✅ GitHub release is created with notes
- ✅ NPM package is published
- ✅ GitHub Packages is updated
- ✅ Wiki is synchronized (if enabled)
View the workflow run:
gh run list --workflow=release.yml --repo Alteriom/painlessMeshIf tags exist but releases don't:
# Delete existing tags (careful!)
git tag -d v1.7.8
git push origin :refs/tags/v1.7.8
# Then recreate using the script
./scripts/create-missing-releases.shYou need write access to the repository:
- Verify you're authenticated:
gh auth status - Check your permissions on the repository
- Contact repository owner for access
If the automated script fails:
- Check error messages
- Verify GitHub CLI is installed:
gh --version - Verify you're authenticated:
gh auth login - Try manual process (Option 2 above)
If release notes extraction fails:
- Verify CHANGELOG.md format matches expected pattern
- Check that version sections exist:
## [1.7.8]and## [1.7.9] - Manually copy content from CHANGELOG.md
-
Release Guide: See
RELEASE_GUIDE.mdfor complete release process - GitHub Releases: https://github.com/Alteriom/painlessMesh/releases
- GitHub CLI Docs: https://cli.github.com/manual/
-
Release Workflow:
.github/workflows/release.yml
To create missing releases:
# Quick method (automated)
./scripts/create-missing-releases.sh
# Verify
gh release list --repo Alteriom/painlessMesh
# Publish packages if needed
gh workflow run manual-publish.yml --repo Alteriom/painlessMeshTo prevent future issues:
# Always use this workflow for releases:
./scripts/bump-version.sh patch
# Update CHANGELOG.md
./scripts/release-agent.sh # Validate
git add . && git commit -m "release: vX.Y.Z - Description"
git push origin main
# Watch GitHub Actions to confirm successQuestions? Open an issue with the ci/cd label.