@programinglive/commiter 1.2.12 → 1.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,103 +1,103 @@
1
- # Creating GitHub Releases
2
-
3
- This guide explains how to populate your GitHub releases page with releases from your tags.
4
-
5
- ## Problem
6
-
7
- You have tags in your repository (v1.0.0, v1.1.9, etc.) but the GitHub releases page is empty. GitHub doesn't automatically create releases from tags - you need to create them manually.
8
-
9
- ## Solution Options
10
-
11
- ### Option 1: Use the Automated Script (Recommended)
12
-
13
- We've created a script that will automatically create releases for all your tags using the content from CHANGELOG.md.
14
-
15
- #### Prerequisites
16
- 1. Create a GitHub Personal Access Token:
17
- - Go to https://github.com/settings/tokens
18
- - Click "Generate new token" → "Generate new token (classic)"
19
- - Give it a name like "Commiter Releases"
20
- - Select scope: `repo` (Full control of private repositories)
21
- - Click "Generate token"
22
- - **Copy the token immediately** (you won't see it again!)
23
-
24
- #### Steps
25
- 1. Set your GitHub token as an environment variable:
26
- ```powershell
27
- # Windows PowerShell
28
- $env:GITHUB_TOKEN="your_token_here"
29
- ```
30
-
31
- 2. Run the script:
32
- ```bash
33
- node scripts/create-releases.js
34
- ```
35
-
36
- 3. The script will:
37
- - Read all your local tags
38
- - Parse CHANGELOG.md for release notes
39
- - Create GitHub releases for each tag
40
- - Skip tags that already have releases
41
-
42
- ### Option 2: Create Releases Manually
43
-
44
- If you prefer to create releases manually or just want to create the latest release:
45
-
46
- 1. Go to https://github.com/programinglive/commiter/releases
47
- 2. Click "Draft a new release"
48
- 3. Click "Choose a tag" and select `v1.1.9`
49
- 4. Set the release title to `v1.1.9`
50
- 5. Copy the release notes from CHANGELOG.md (lines 5-10):
51
- ```markdown
52
- ### 🐛 Bug Fixes
53
-
54
- * convert release scripts to CJS to support ESM projects ([842da02](https://github.com/programinglive/commiter/commit/842da0298f1c4df7aa93b43ca8698e3669ef6450))
55
- ```
56
- 6. Click "Publish release"
57
- 7. Repeat for other versions if needed
58
-
59
- ### Option 3: Use GitHub CLI (if installed)
60
-
61
- If you have GitHub CLI installed (`gh`):
62
-
63
- ```bash
64
- # Create release for v1.1.9
65
- gh release create v1.1.9 \
66
- --title "v1.1.9" \
67
- --notes "### 🐛 Bug Fixes
68
-
69
- * convert release scripts to CJS to support ESM projects"
70
-
71
- # Or create from CHANGELOG
72
- gh release create v1.1.9 --notes-file CHANGELOG.md
73
- ```
74
-
75
- ## After Creating Releases
76
-
77
- Once releases are created, they will appear on:
78
- - https://github.com/programinglive/commiter/releases
79
- - The right sidebar of your repository
80
- - In the repository's release feed
81
-
82
- ## Automating Future Releases
83
-
84
- To automatically create GitHub releases during your release process, you can:
85
-
86
- 1. **Add to your release script** - Modify `scripts/release.cjs` to create GitHub releases
87
- 2. **Use GitHub Actions** - Set up a workflow that creates releases when tags are pushed
88
- 3. **Use the script** - Run `scripts/create-releases.js` after each release
89
-
90
- ## Troubleshooting
91
-
92
- ### "GITHUB_TOKEN not set"
93
- Make sure you've set the environment variable in your current terminal session.
94
-
95
- ### "API rate limit exceeded"
96
- GitHub API has rate limits. The script waits 1 second between requests to avoid this. If you hit the limit, wait an hour and try again.
97
-
98
- ### "Resource not accessible by integration"
99
- Your token doesn't have the right permissions. Make sure you selected the `repo` scope when creating the token.
100
-
101
- ## Security Note
102
-
103
- **Never commit your GitHub token to the repository!** Always use environment variables or secure secret management.
1
+ # Creating GitHub Releases
2
+
3
+ This guide explains how to populate your GitHub releases page with releases from your tags.
4
+
5
+ ## Problem
6
+
7
+ You have tags in your repository (v1.0.0, v1.1.9, etc.) but the GitHub releases page is empty. GitHub doesn't automatically create releases from tags - you need to create them manually.
8
+
9
+ ## Solution Options
10
+
11
+ ### Option 1: Use the Automated Script (Recommended)
12
+
13
+ We've created a script that will automatically create releases for all your tags using the content from CHANGELOG.md.
14
+
15
+ #### Prerequisites
16
+ 1. Create a GitHub Personal Access Token:
17
+ - Go to https://github.com/settings/tokens
18
+ - Click "Generate new token" → "Generate new token (classic)"
19
+ - Give it a name like "Commiter Releases"
20
+ - Select scope: `repo` (Full control of private repositories)
21
+ - Click "Generate token"
22
+ - **Copy the token immediately** (you won't see it again!)
23
+
24
+ #### Steps
25
+ 1. Set your GitHub token as an environment variable:
26
+ ```powershell
27
+ # Windows PowerShell
28
+ $env:GITHUB_TOKEN="your_token_here"
29
+ ```
30
+
31
+ 2. Run the script:
32
+ ```bash
33
+ node scripts/create-releases.js
34
+ ```
35
+
36
+ 3. The script will:
37
+ - Read all your local tags
38
+ - Parse CHANGELOG.md for release notes
39
+ - Create GitHub releases for each tag
40
+ - Skip tags that already have releases
41
+
42
+ ### Option 2: Create Releases Manually
43
+
44
+ If you prefer to create releases manually or just want to create the latest release:
45
+
46
+ 1. Go to https://github.com/programinglive/commiter/releases
47
+ 2. Click "Draft a new release"
48
+ 3. Click "Choose a tag" and select `v1.1.9`
49
+ 4. Set the release title to `v1.1.9`
50
+ 5. Copy the release notes from CHANGELOG.md (lines 5-10):
51
+ ```markdown
52
+ ### 🐛 Bug Fixes
53
+
54
+ * convert release scripts to CJS to support ESM projects ([842da02](https://github.com/programinglive/commiter/commit/842da0298f1c4df7aa93b43ca8698e3669ef6450))
55
+ ```
56
+ 6. Click "Publish release"
57
+ 7. Repeat for other versions if needed
58
+
59
+ ### Option 3: Use GitHub CLI (if installed)
60
+
61
+ If you have GitHub CLI installed (`gh`):
62
+
63
+ ```bash
64
+ # Create release for v1.1.9
65
+ gh release create v1.1.9 \
66
+ --title "v1.1.9" \
67
+ --notes "### 🐛 Bug Fixes
68
+
69
+ * convert release scripts to CJS to support ESM projects"
70
+
71
+ # Or create from CHANGELOG
72
+ gh release create v1.1.9 --notes-file CHANGELOG.md
73
+ ```
74
+
75
+ ## After Creating Releases
76
+
77
+ Once releases are created, they will appear on:
78
+ - https://github.com/programinglive/commiter/releases
79
+ - The right sidebar of your repository
80
+ - In the repository's release feed
81
+
82
+ ## Automating Future Releases
83
+
84
+ To automatically create GitHub releases during your release process, you can:
85
+
86
+ 1. **Add to your release script** - Modify `scripts/release.cjs` to create GitHub releases
87
+ 2. **Use GitHub Actions** - Set up a workflow that creates releases when tags are pushed
88
+ 3. **Use the script** - Run `scripts/create-releases.js` after each release
89
+
90
+ ## Troubleshooting
91
+
92
+ ### "GITHUB_TOKEN not set"
93
+ Make sure you've set the environment variable in your current terminal session.
94
+
95
+ ### "API rate limit exceeded"
96
+ GitHub API has rate limits. The script waits 1 second between requests to avoid this. If you hit the limit, wait an hour and try again.
97
+
98
+ ### "Resource not accessible by integration"
99
+ Your token doesn't have the right permissions. Make sure you selected the `repo` scope when creating the token.
100
+
101
+ ## Security Note
102
+
103
+ **Never commit your GitHub token to the repository!** Always use environment variables or secure secret management.
@@ -1,96 +1,96 @@
1
- # Commiter Product Requirements Document (PRD)
2
-
3
- ## 1. Overview
4
- Commiter is a CLI utility that bootstraps and automates conventional release workflows for JavaScript/TypeScript projects. It enforces commit conventions, orchestrates semantic version bumps, keeps release tooling configured, and surfaces feedback during release execution so teams can ship confidently.
5
-
6
- ## 2. Problem Statement
7
- Growing teams often struggle to keep release processes consistent: commit messages drift from convention, changelogs become stale, and release scripts accumulate manual steps. Commiter removes this friction by installing opinionated tooling, providing curated scripts, and running guard rails (tests, linters) before invoking `standard-version` to publish a release.
8
-
9
- ## 3. Goals & Success Metrics
10
- - **Consistent releases**: Every release run through Commiter formats commits, updates changelogs, tags, and version bumps without manual editing.
11
- - **Low ceremony onboarding**: A single `npx commiter` command prepares repositories (Husky, commitlint, release scripts).
12
- - **Signal-rich automation**: Release logs clearly show which steps ran, including any warnings (e.g., tests skipped). Zero noisy deprecation warnings.
13
- - **Reliability**: New releases do not regress existing behavior; the automated test suite passes (`node --test`).
14
- - **Adoption Metric**: Track installations (npm downloads) and successful release script exits.
15
-
16
- ## 4. Personas
17
- 1. **Solo Maintainer** – wants painless semantic releases without memorizing commands.
18
- 2. **Team Lead** – enforces commit standards across contributors and ensures releases produce accurate changelogs.
19
- 3. **DevOps/CI Engineer** – integrates Commiter’s release command into CI pipelines and expects deterministic, machine-readable output.
20
-
21
- ## 5. Key Features
22
- - **Setup CLI (`index.js`)**
23
- - Installs dev dependencies (`standard-version`, `commitlint`, `husky`).
24
- - Configures package scripts (`npm run release`, `release:major/minor/patch`, `release:first`).
25
- - Creates Husky hooks and commitlint configuration.
26
- - Generates release helper script and ensures executable permissions (POSIX-friendly).
27
- - **Release Helper (`scripts/release.js`)**
28
- - Detects release type from CLI args or npm context.
29
- - Runs project tests via detected package manager before releasing.
30
- - Invokes `standard-version`, passing the preload script via `NODE_OPTIONS`.
31
- - Supports first release mode that sets version to 0.0.1 for new projects.
32
- - Stays focused on repository assets only (website updates are intentionally manual to avoid cross-project impacts).
33
- - **Preload Patching (`scripts/preload/fs-f-ok.cjs`)**
34
- - Hooks Node’s module loader to transparently replace deprecated `fs.F_OK` usages in `standard-version` without altering `node_modules`.
35
- - **Website & Documentation**
36
- - Professional landing page in `web/` directory.
37
- - Automated GitHub Releases generation.
38
- - Open Graph social media preview support.
39
- - **Testing**
40
- - Suite executed via `node --test` covers setup utilities, release argument parsing, and the preload patch.
41
-
42
- ## 6. Functional Requirements
43
- 1. Running `npx @programinglive/commiter` inside a Node project should configure release tooling without manual edits.
44
- 2. `npm run release` must:
45
- - Run the project’s tests (if defined) with the correct package manager.
46
- - Execute `standard-version`, passing the preload script via `NODE_OPTIONS`.
47
- - Exit with non-zero status if tests or standard-version commands fail.
48
- 3. CLI should provide friendly console output (status icons, instructions).
49
- 4. The preload script must eliminate `[DEP0176] fs.F_OK` warnings on supported Node versions.
50
- 5. Documentation (README, PRD, release notes) remains shipped with the package.
51
-
52
- ## 7. Non-Functional Requirements
53
- - **Compatibility**: Supports Node.js 18+ (aligning with dependencies); tested on Windows/macOS/Linux.
54
- - **Maintainability**: Avoid direct edits to dependencies; wrap behavior in Commiter-controlled modules.
55
- - **Performance**: Release command overhead minimal (<1s additional startup time) beyond running tests and standard-version.
56
- - **Security**: No network requests during CLI execution beyond npm installs triggered by the user.
57
-
58
- ## 8. User Journeys
59
- 1. **Initial Setup**
60
- - Run `npx @programinglive/commiter`.
61
- - Tool installs dependencies, updates `package.json`, and scaffolds Husky hooks.
62
- - Maintainer confirms success message and new scripts.
63
- 2. **First Release**
64
- - Developer runs `npm run release:first` for new projects.
65
- - Commiter sets version to 0.0.1, runs tests, creates initial changelog and git tag.
66
- - Project foundation established with proper semantic versioning.
67
- 3. **Standard Release**
68
- - Developer runs `npm run release minor` or `npm run release` (defaults to patch).
69
- - Commiter runs tests, ensures preload patch prevents deprecation warnings, executes `standard-version`.
70
- - Release completes with updated changelog and git tag.
71
- 4. **CI Pipeline**
72
- - CI job executes `npm run release -- --prerelease beta`.
73
- - Logs show tests executed, no deprecation warnings, and release artifacts generated.
74
-
75
- ## 9. Milestones & Roadmap
76
- - **v1.1.x** (current)
77
- - Deprecation warning mitigation, enhanced tests, PRD + release documentation.
78
- - **Future Considerations**
79
- - Support for monorepo detection (Lerna/Nx) to run scoped releases.
80
- - Optional lint/test command customization via config file.
81
- - Telemetry opt-in for release statistics (downloads, success rates).
82
-
83
- ## 10. Risks & Mitigations
84
- - **Dependency API Changes**: Upstream packages may alter file paths. Mitigate with targeted module resolution and tests.
85
- - **User Customization Conflicts**: Custom scripts might skip tests. Provide documentation for overriding behavior.
86
- - **Platform Differences**: Windows path quoting; addressed via `buildPreloadFlag` helper.
87
-
88
- ## 11. Release & QA Checklist
89
- - [x] `npm test` (alias for `node --test`) passes.
90
- - [x] Manual run of `node scripts/release.js --help` shows no `[DEP0176]` warning.
91
- - [ ] Update `CHANGELOG.md` (handled by standard-version during actual release).
92
- - [ ] Verify README reflects latest setup instructions before shipping.
93
-
94
- ## 12. Appendices
95
- - **Release Notes**: See `docs/release-notes/` for per-change summaries.
96
- - **Testing Artifacts**: `test/` directory contains Node test runner suites.
1
+ # Commiter Product Requirements Document (PRD)
2
+
3
+ ## 1. Overview
4
+ Commiter is a CLI utility that bootstraps and automates conventional release workflows for JavaScript/TypeScript projects. It enforces commit conventions, orchestrates semantic version bumps, keeps release tooling configured, and surfaces feedback during release execution so teams can ship confidently.
5
+
6
+ ## 2. Problem Statement
7
+ Growing teams often struggle to keep release processes consistent: commit messages drift from convention, changelogs become stale, and release scripts accumulate manual steps. Commiter removes this friction by installing opinionated tooling, providing curated scripts, and running guard rails (tests, linters) before invoking `standard-version` to publish a release.
8
+
9
+ ## 3. Goals & Success Metrics
10
+ - **Consistent releases**: Every release run through Commiter formats commits, updates changelogs, tags, and version bumps without manual editing.
11
+ - **Low ceremony onboarding**: A single `npx commiter` command prepares repositories (Husky, commitlint, release scripts).
12
+ - **Signal-rich automation**: Release logs clearly show which steps ran, including any warnings (e.g., tests skipped). Zero noisy deprecation warnings.
13
+ - **Reliability**: New releases do not regress existing behavior; the automated test suite passes (`node --test`).
14
+ - **Adoption Metric**: Track installations (npm downloads) and successful release script exits.
15
+
16
+ ## 4. Personas
17
+ 1. **Solo Maintainer** – wants painless semantic releases without memorizing commands.
18
+ 2. **Team Lead** – enforces commit standards across contributors and ensures releases produce accurate changelogs.
19
+ 3. **DevOps/CI Engineer** – integrates Commiter’s release command into CI pipelines and expects deterministic, machine-readable output.
20
+
21
+ ## 5. Key Features
22
+ - **Setup CLI (`index.js`)**
23
+ - Installs dev dependencies (`standard-version`, `commitlint`, `husky`).
24
+ - Configures package scripts (`npm run release`, `release:major/minor/patch`, `release:first`).
25
+ - Creates Husky hooks and commitlint configuration.
26
+ - Generates release helper script and ensures executable permissions (POSIX-friendly).
27
+ - **Release Helper (`scripts/release.js`)**
28
+ - Detects release type from CLI args or npm context.
29
+ - Runs project tests via detected package manager before releasing.
30
+ - Invokes `standard-version`, passing the preload script via `NODE_OPTIONS`.
31
+ - Supports first release mode that sets version to 0.0.1 for new projects.
32
+ - Stays focused on repository assets only (website updates are intentionally manual to avoid cross-project impacts).
33
+ - **Preload Patching (`scripts/preload/fs-f-ok.cjs`)**
34
+ - Hooks Node’s module loader to transparently replace deprecated `fs.F_OK` usages in `standard-version` without altering `node_modules`.
35
+ - **Website & Documentation**
36
+ - Professional landing page in `web/` directory.
37
+ - Automated GitHub Releases generation.
38
+ - Open Graph social media preview support.
39
+ - **Testing**
40
+ - Suite executed via `node --test` covers setup utilities, release argument parsing, and the preload patch.
41
+
42
+ ## 6. Functional Requirements
43
+ 1. Running `npx @programinglive/commiter` inside a Node project should configure release tooling without manual edits.
44
+ 2. `npm run release` must:
45
+ - Run the project’s tests (if defined) with the correct package manager.
46
+ - Execute `standard-version`, passing the preload script via `NODE_OPTIONS`.
47
+ - Exit with non-zero status if tests or standard-version commands fail.
48
+ 3. CLI should provide friendly console output (status icons, instructions).
49
+ 4. The preload script must eliminate `[DEP0176] fs.F_OK` warnings on supported Node versions.
50
+ 5. Documentation (README, PRD, release notes) remains shipped with the package. Each project integrating Commiter must keep a `docs/PRD.md` file present in the repository. The release helper enforces this by warning when the PRD is missing so maintainers remember to author or update the document before tagging releases.
51
+
52
+ ## 7. Non-Functional Requirements
53
+ - **Compatibility**: Supports Node.js 18+ (aligning with dependencies); tested on Windows/macOS/Linux.
54
+ - **Maintainability**: Avoid direct edits to dependencies; wrap behavior in Commiter-controlled modules.
55
+ - **Performance**: Release command overhead minimal (<1s additional startup time) beyond running tests and standard-version.
56
+ - **Security**: No network requests during CLI execution beyond npm installs triggered by the user.
57
+
58
+ ## 8. User Journeys
59
+ 1. **Initial Setup**
60
+ - Run `npx @programinglive/commiter`.
61
+ - Tool installs dependencies, updates `package.json`, and scaffolds Husky hooks.
62
+ - Maintainer confirms success message and new scripts.
63
+ 2. **First Release**
64
+ - Developer runs `npm run release:first` for new projects.
65
+ - Commiter sets version to 0.0.1, runs tests, creates initial changelog and git tag.
66
+ - Project foundation established with proper semantic versioning.
67
+ 3. **Standard Release**
68
+ - Developer runs `npm run release minor` or `npm run release` (defaults to patch).
69
+ - Commiter runs tests, ensures preload patch prevents deprecation warnings, executes `standard-version`.
70
+ - Release completes with updated changelog and git tag.
71
+ 4. **CI Pipeline**
72
+ - CI job executes `npm run release -- --prerelease beta`.
73
+ - Logs show tests executed, no deprecation warnings, and release artifacts generated.
74
+
75
+ ## 9. Milestones & Roadmap
76
+ - **v1.1.x** (current)
77
+ - Deprecation warning mitigation, enhanced tests, PRD + release documentation.
78
+ - **Future Considerations**
79
+ - Support for monorepo detection (Lerna/Nx) to run scoped releases.
80
+ - Optional lint/test command customization via config file.
81
+ - Telemetry opt-in for release statistics (downloads, success rates).
82
+
83
+ ## 10. Risks & Mitigations
84
+ - **Dependency API Changes**: Upstream packages may alter file paths. Mitigate with targeted module resolution and tests.
85
+ - **User Customization Conflicts**: Custom scripts might skip tests. Provide documentation for overriding behavior.
86
+ - **Platform Differences**: Windows path quoting; addressed via `buildPreloadFlag` helper.
87
+
88
+ ## 11. Release & QA Checklist
89
+ - [x] `npm test` (alias for `node --test`) passes.
90
+ - [x] Manual run of `node scripts/release.js --help` shows no `[DEP0176]` warning.
91
+ - [ ] Update `CHANGELOG.md` (handled by standard-version during actual release).
92
+ - [ ] Verify README reflects latest setup instructions before shipping.
93
+
94
+ ## 12. Appendices
95
+ - **Release Notes**: See `docs/release-notes/` for per-change summaries.
96
+ - **Testing Artifacts**: `test/` directory contains Node test runner suites.
@@ -1,101 +1,101 @@
1
- # Quick Guide: Create GitHub Release for v1.1.9
2
-
3
- Follow these simple steps to create your first GitHub release:
4
-
5
- ## Step 1: Navigate to New Release Page
6
- 1. Make sure you're logged into GitHub
7
- 2. Go to: https://github.com/programinglive/commiter/releases/new
8
-
9
- ## Step 2: Fill in the Form
10
-
11
- ### Choose a tag
12
- - Click "Choose a tag"
13
- - Type: `v1.1.9`
14
- - Click "Create new tag: v1.1.9 on publish"
15
-
16
- ### Release title
17
- - Type: `v1.1.9`
18
-
19
- ### Describe this release
20
- Copy and paste this content:
21
-
22
- ```markdown
23
- ### 🐛 Bug Fixes
24
-
25
- * convert release scripts to CJS to support ESM projects ([842da02](https://github.com/programinglive/commiter/commit/842da0298f1c4df7aa93b43ca8698e3669ef6450))
26
- ```
27
-
28
- ## Step 3: Publish
29
- - Click the green "Publish release" button
30
-
31
- ## Done! ✅
32
-
33
- Your release will now appear at: https://github.com/programinglive/commiter/releases
34
-
35
- ---
36
-
37
- ## Create More Releases (Optional)
38
-
39
- If you want to create releases for older versions, here's the content for each:
40
-
41
- ### v1.1.8
42
- **Title:** `v1.1.8`
43
- **Description:**
44
- ```markdown
45
- ### 🐛 Bug Fixes
46
-
47
- * update installation script to copy missing files and update gitignore ([5d56259](https://github.com/programinglive/commiter/commit/5d562592fe35b684fa12bd89748b24551ae28a66))
48
- ```
49
-
50
- ### v1.1.7
51
- **Title:** `v1.1.7`
52
- **Description:**
53
- ```markdown
54
- ### 📝 Documentation
55
-
56
- * recommend dev workflow mcp server ([58a5054](https://github.com/programinglive/commiter/commit/58a5054fafd627ef23c448fd93b1383518590ad2))
57
- ```
58
-
59
- ### v1.1.6
60
- **Title:** `v1.1.6`
61
- **Description:**
62
- ```markdown
63
- ### 🐛 Bug Fixes
64
-
65
- * revert to simple release notes staging to avoid git ref conflicts ([2f6a40e](https://github.com/programinglive/commiter/commit/2f6a40ed7259cffdb0b1de1633af3e43df475044))
66
- ```
67
-
68
- ### v1.1.5
69
- **Title:** `v1.1.5`
70
- **Description:**
71
- ```markdown
72
- ### ✨ Features
73
-
74
- * include release notes in release commit via amendment ([3f2afa8](https://github.com/programinglive/commiter/commit/3f2afa8bd0bd264d047df06ae791384e74dc827e))
75
-
76
- ### 📝 Documentation
77
-
78
- * update release notes for v1.1.5 ([cb3dbe6](https://github.com/programinglive/commiter/commit/cb3dbe62a85a174bfb074e3d2526a005fc83d0d7))
79
- ```
80
-
81
- ### v1.1.1
82
- **Title:** `v1.1.1`
83
- **Description:**
84
- ```markdown
85
- ### 🐛 Bug Fixes
86
-
87
- * remove fs.F_OK deprecation warning ([1b0652b](https://github.com/programinglive/commiter/commit/1b0652b88d1b095e1045994948f75ce8194f9d3a))
88
- ```
89
-
90
- ### v1.0.12
91
- **Title:** `v1.0.12`
92
- **Description:**
93
- ```markdown
94
- ### ✨ Features
95
-
96
- * auto-detect test command during release ([602e30e](https://github.com/programinglive/commiter/commit/602e30e94ff7c58b35f8c54bd495c0334352c72c))
97
- ```
98
-
99
- ---
100
-
101
- **Tip:** You only need to create releases for the major versions (1.1.9, 1.1.8, 1.1.7, etc.). You can skip the older patch versions if you want to save time.
1
+ # Quick Guide: Create GitHub Release for v1.1.9
2
+
3
+ Follow these simple steps to create your first GitHub release:
4
+
5
+ ## Step 1: Navigate to New Release Page
6
+ 1. Make sure you're logged into GitHub
7
+ 2. Go to: https://github.com/programinglive/commiter/releases/new
8
+
9
+ ## Step 2: Fill in the Form
10
+
11
+ ### Choose a tag
12
+ - Click "Choose a tag"
13
+ - Type: `v1.1.9`
14
+ - Click "Create new tag: v1.1.9 on publish"
15
+
16
+ ### Release title
17
+ - Type: `v1.1.9`
18
+
19
+ ### Describe this release
20
+ Copy and paste this content:
21
+
22
+ ```markdown
23
+ ### 🐛 Bug Fixes
24
+
25
+ * convert release scripts to CJS to support ESM projects ([842da02](https://github.com/programinglive/commiter/commit/842da0298f1c4df7aa93b43ca8698e3669ef6450))
26
+ ```
27
+
28
+ ## Step 3: Publish
29
+ - Click the green "Publish release" button
30
+
31
+ ## Done! ✅
32
+
33
+ Your release will now appear at: https://github.com/programinglive/commiter/releases
34
+
35
+ ---
36
+
37
+ ## Create More Releases (Optional)
38
+
39
+ If you want to create releases for older versions, here's the content for each:
40
+
41
+ ### v1.1.8
42
+ **Title:** `v1.1.8`
43
+ **Description:**
44
+ ```markdown
45
+ ### 🐛 Bug Fixes
46
+
47
+ * update installation script to copy missing files and update gitignore ([5d56259](https://github.com/programinglive/commiter/commit/5d562592fe35b684fa12bd89748b24551ae28a66))
48
+ ```
49
+
50
+ ### v1.1.7
51
+ **Title:** `v1.1.7`
52
+ **Description:**
53
+ ```markdown
54
+ ### 📝 Documentation
55
+
56
+ * recommend dev workflow mcp server ([58a5054](https://github.com/programinglive/commiter/commit/58a5054fafd627ef23c448fd93b1383518590ad2))
57
+ ```
58
+
59
+ ### v1.1.6
60
+ **Title:** `v1.1.6`
61
+ **Description:**
62
+ ```markdown
63
+ ### 🐛 Bug Fixes
64
+
65
+ * revert to simple release notes staging to avoid git ref conflicts ([2f6a40e](https://github.com/programinglive/commiter/commit/2f6a40ed7259cffdb0b1de1633af3e43df475044))
66
+ ```
67
+
68
+ ### v1.1.5
69
+ **Title:** `v1.1.5`
70
+ **Description:**
71
+ ```markdown
72
+ ### ✨ Features
73
+
74
+ * include release notes in release commit via amendment ([3f2afa8](https://github.com/programinglive/commiter/commit/3f2afa8bd0bd264d047df06ae791384e74dc827e))
75
+
76
+ ### 📝 Documentation
77
+
78
+ * update release notes for v1.1.5 ([cb3dbe6](https://github.com/programinglive/commiter/commit/cb3dbe62a85a174bfb074e3d2526a005fc83d0d7))
79
+ ```
80
+
81
+ ### v1.1.1
82
+ **Title:** `v1.1.1`
83
+ **Description:**
84
+ ```markdown
85
+ ### 🐛 Bug Fixes
86
+
87
+ * remove fs.F_OK deprecation warning ([1b0652b](https://github.com/programinglive/commiter/commit/1b0652b88d1b095e1045994948f75ce8194f9d3a))
88
+ ```
89
+
90
+ ### v1.0.12
91
+ **Title:** `v1.0.12`
92
+ **Description:**
93
+ ```markdown
94
+ ### ✨ Features
95
+
96
+ * auto-detect test command during release ([602e30e](https://github.com/programinglive/commiter/commit/602e30e94ff7c58b35f8c54bd495c0334352c72c))
97
+ ```
98
+
99
+ ---
100
+
101
+ **Tip:** You only need to create releases for the major versions (1.1.9, 1.1.8, 1.1.7, etc.). You can skip the older patch versions if you want to save time.