@programinglive/commiter 1.1.0 → 1.1.3
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.
- package/.github/ISSUE_TEMPLATE/bug_report.md +28 -28
- package/.github/ISSUE_TEMPLATE/config.yml +5 -5
- package/.github/ISSUE_TEMPLATE/feature_request.md +20 -20
- package/.github/PULL_REQUEST_TEMPLATE.md +24 -24
- package/CHANGELOG.md +59 -43
- package/CODE_OF_CONDUCT.md +36 -36
- package/LICENSE +21 -21
- package/PRD.md +86 -0
- package/PUBLISH.md +142 -142
- package/README.md +187 -187
- package/SECURITY.md +30 -30
- package/commitlint.config.cjs +4 -4
- package/docs/prd-fs-f-ok-warning.md +47 -0
- package/docs/release-notes/RELEASE_NOTES.md +52 -0
- package/docs/release-notes/fs-f-ok-warning.md +14 -0
- package/index.js +148 -148
- package/package.json +94 -94
- package/scripts/preload/fs-f-ok.cjs +23 -0
- package/scripts/release.js +127 -4
- package/scripts/update-release-notes.js +182 -0
|
@@ -1,28 +1,28 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Bug report
|
|
3
|
-
about: Create a report to help us improve
|
|
4
|
-
labels: bug
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Describe the bug
|
|
8
|
-
A clear and concise description of what the bug is.
|
|
9
|
-
|
|
10
|
-
## To Reproduce
|
|
11
|
-
Steps to reproduce the behavior:
|
|
12
|
-
1. Go to '...'
|
|
13
|
-
2. Click on '...'
|
|
14
|
-
3. See error
|
|
15
|
-
|
|
16
|
-
## Expected behavior
|
|
17
|
-
A clear and concise description of what you expected to happen.
|
|
18
|
-
|
|
19
|
-
## Screenshots or logs
|
|
20
|
-
If applicable, add screenshots, logs, or stack traces to help explain your problem.
|
|
21
|
-
|
|
22
|
-
## Environment
|
|
23
|
-
- Package version:
|
|
24
|
-
- Node.js version:
|
|
25
|
-
- OS:
|
|
26
|
-
|
|
27
|
-
## Additional context
|
|
28
|
-
Add any other context about the problem here.
|
|
1
|
+
---
|
|
2
|
+
name: Bug report
|
|
3
|
+
about: Create a report to help us improve
|
|
4
|
+
labels: bug
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Describe the bug
|
|
8
|
+
A clear and concise description of what the bug is.
|
|
9
|
+
|
|
10
|
+
## To Reproduce
|
|
11
|
+
Steps to reproduce the behavior:
|
|
12
|
+
1. Go to '...'
|
|
13
|
+
2. Click on '...'
|
|
14
|
+
3. See error
|
|
15
|
+
|
|
16
|
+
## Expected behavior
|
|
17
|
+
A clear and concise description of what you expected to happen.
|
|
18
|
+
|
|
19
|
+
## Screenshots or logs
|
|
20
|
+
If applicable, add screenshots, logs, or stack traces to help explain your problem.
|
|
21
|
+
|
|
22
|
+
## Environment
|
|
23
|
+
- Package version:
|
|
24
|
+
- Node.js version:
|
|
25
|
+
- OS:
|
|
26
|
+
|
|
27
|
+
## Additional context
|
|
28
|
+
Add any other context about the problem here.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
blank_issues_enabled: false
|
|
2
|
-
contact_links:
|
|
3
|
-
- name: Security Report
|
|
4
|
-
url: https://github.com/programinglive/commiter/security/policy
|
|
5
|
-
about: Please read our security policy before reporting vulnerabilities.
|
|
1
|
+
blank_issues_enabled: false
|
|
2
|
+
contact_links:
|
|
3
|
+
- name: Security Report
|
|
4
|
+
url: https://github.com/programinglive/commiter/security/policy
|
|
5
|
+
about: Please read our security policy before reporting vulnerabilities.
|
|
@@ -1,20 +1,20 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: Feature request
|
|
3
|
-
about: Suggest an idea for this project
|
|
4
|
-
labels: enhancement
|
|
5
|
-
---
|
|
6
|
-
|
|
7
|
-
## Summary
|
|
8
|
-
Describe the feature you would like to see.
|
|
9
|
-
|
|
10
|
-
## Problem or Use Case
|
|
11
|
-
What problem does this feature solve? Why is it needed?
|
|
12
|
-
|
|
13
|
-
## Proposed Solution
|
|
14
|
-
Describe your proposed solution or implementation ideas.
|
|
15
|
-
|
|
16
|
-
## Alternatives
|
|
17
|
-
List any alternative solutions or features you've considered.
|
|
18
|
-
|
|
19
|
-
## Additional context
|
|
20
|
-
Add any other context, mockups, or screenshots about the feature request here.
|
|
1
|
+
---
|
|
2
|
+
name: Feature request
|
|
3
|
+
about: Suggest an idea for this project
|
|
4
|
+
labels: enhancement
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
## Summary
|
|
8
|
+
Describe the feature you would like to see.
|
|
9
|
+
|
|
10
|
+
## Problem or Use Case
|
|
11
|
+
What problem does this feature solve? Why is it needed?
|
|
12
|
+
|
|
13
|
+
## Proposed Solution
|
|
14
|
+
Describe your proposed solution or implementation ideas.
|
|
15
|
+
|
|
16
|
+
## Alternatives
|
|
17
|
+
List any alternative solutions or features you've considered.
|
|
18
|
+
|
|
19
|
+
## Additional context
|
|
20
|
+
Add any other context, mockups, or screenshots about the feature request here.
|
|
@@ -1,24 +1,24 @@
|
|
|
1
|
-
# Pull Request Checklist
|
|
2
|
-
|
|
3
|
-
## Summary
|
|
4
|
-
|
|
5
|
-
Describe the changes in this pull request.
|
|
6
|
-
|
|
7
|
-
## Related Issues
|
|
8
|
-
|
|
9
|
-
Link related issues (e.g. closes #123).
|
|
10
|
-
|
|
11
|
-
## Testing
|
|
12
|
-
|
|
13
|
-
- [ ] `npm install`
|
|
14
|
-
- [ ] `npm test`
|
|
15
|
-
- [ ] `npm run release -- --dry-run` (if release-related)
|
|
16
|
-
|
|
17
|
-
## Checklist
|
|
18
|
-
|
|
19
|
-
- [ ] I've read the [Code of Conduct](../CODE_OF_CONDUCT.md)
|
|
20
|
-
- [ ] I've read the [Contributing Guidelines](../CONTRIBUTING.md)
|
|
21
|
-
- [ ] My commits follow the Conventional Commits format (`type(scope): subject`)
|
|
22
|
-
- [ ] Documentation has been updated if needed
|
|
23
|
-
- [ ] New dependencies are justified and added to `package.json`
|
|
24
|
-
- [ ] No `any` types were introduced (TypeScript rule)
|
|
1
|
+
# Pull Request Checklist
|
|
2
|
+
|
|
3
|
+
## Summary
|
|
4
|
+
|
|
5
|
+
Describe the changes in this pull request.
|
|
6
|
+
|
|
7
|
+
## Related Issues
|
|
8
|
+
|
|
9
|
+
Link related issues (e.g. closes #123).
|
|
10
|
+
|
|
11
|
+
## Testing
|
|
12
|
+
|
|
13
|
+
- [ ] `npm install`
|
|
14
|
+
- [ ] `npm test`
|
|
15
|
+
- [ ] `npm run release -- --dry-run` (if release-related)
|
|
16
|
+
|
|
17
|
+
## Checklist
|
|
18
|
+
|
|
19
|
+
- [ ] I've read the [Code of Conduct](../CODE_OF_CONDUCT.md)
|
|
20
|
+
- [ ] I've read the [Contributing Guidelines](../CONTRIBUTING.md)
|
|
21
|
+
- [ ] My commits follow the Conventional Commits format (`type(scope): subject`)
|
|
22
|
+
- [ ] Documentation has been updated if needed
|
|
23
|
+
- [ ] New dependencies are justified and added to `package.json`
|
|
24
|
+
- [ ] No `any` types were introduced (TypeScript rule)
|
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,22 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
### [1.1.3](https://github.com/programinglive/commiter/compare/v1.1.2...v1.1.3) (2025-11-05)
|
|
6
|
+
|
|
7
|
+
### [1.1.2](https://github.com/programinglive/commiter/compare/v1.1.1...v1.1.2) (2025-11-05)
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
### 🧹 Chores
|
|
11
|
+
|
|
12
|
+
* auto-update release notes during release ([99d1043](https://github.com/programinglive/commiter/commit/99d104374794a6a46dc34e8a91fa8b30ae9b297b))
|
|
13
|
+
|
|
14
|
+
### [1.1.1](https://github.com/programinglive/commiter/compare/v1.1.0...v1.1.1) (2025-11-05)
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
### 🐛 Bug Fixes
|
|
18
|
+
|
|
19
|
+
* remove fs.F_OK deprecation warning ([1b0652b](https://github.com/programinglive/commiter/commit/1b0652b88d1b095e1045994948f75ce8194f9d3a))
|
|
20
|
+
|
|
5
21
|
## [1.1.0](https://github.com/programinglive/commiter/compare/v1.0.12...v1.1.0) (2025-10-29)
|
|
6
22
|
|
|
7
23
|
|
|
@@ -46,46 +62,46 @@ All notable changes to this project will be documented in this file. See [standa
|
|
|
46
62
|
|
|
47
63
|
* add release helper script and tests ([93f4235](https://github.com/programinglive/commiter/commit/93f4235c3cf2e34b77b78ba51c0337cf89e564df))
|
|
48
64
|
|
|
49
|
-
### [1.0.6](https://github.com/programinglive/commiter/compare/v1.0.5...v1.0.6) (2025-10-19)
|
|
50
|
-
|
|
51
|
-
### [1.0.5](https://github.com/programinglive/commiter/compare/v1.0.4...v1.0.5) (2025-10-19)
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
### 🐛 Bug Fixes
|
|
55
|
-
|
|
56
|
-
* allow release commits with emoji ([26c4afa](https://github.com/programinglive/commiter/commit/26c4afa26fc7c11c91ac576dcba197cba5d3d98a))
|
|
57
|
-
|
|
58
|
-
### [1.0.4](https://github.com/programinglive/commiter/compare/v1.0.3...v1.0.4) (2025-10-19)
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
### 🐛 Bug Fixes
|
|
62
|
-
|
|
63
|
-
* ensure safe test default for initial release ([27d2ee3](https://github.com/programinglive/commiter/commit/27d2ee35d1e558ef459a61e41627305997621392))
|
|
64
|
-
|
|
65
|
-
### [1.0.3](https://github.com/programinglive/commiter/compare/v1.0.2...v1.0.3) (2025-10-19)
|
|
66
|
-
|
|
67
|
-
### [1.0.2](https://github.com/programinglive/commiter/compare/v1.0.1...v1.0.2) (2025-10-19)
|
|
68
|
-
|
|
69
|
-
### [1.0.1](https://github.com/programinglive/commiter/compare/v1.0.0...v1.0.1) (2025-10-18)
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
### 🐛 Bug Fixes
|
|
73
|
-
|
|
74
|
-
* align commitlint config with project module type ([d051eac](https://github.com/programinglive/commiter/commit/d051eace5471d0c54fd8de6a3bede6a0df020dad))
|
|
75
|
-
|
|
76
|
-
## 1.0.0 (2025-10-17)
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
### ✨ Features
|
|
80
|
-
|
|
81
|
-
* initial project setup with standard-version and conventional commits ([0accf6d](https://github.com/programinglive/commiter/commit/0accf6dba678c1946629aa3f1b691bea7e20cd95))
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
### 📝 Documentation
|
|
85
|
-
|
|
86
|
-
* add community health files and apply package tooling ([0fa802b](https://github.com/programinglive/commiter/commit/0fa802b6129053d3f32030cec561e5926dd09c42))
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
### 🧹 Chores
|
|
90
|
-
|
|
91
|
-
* update package metadata ([7c112f3](https://github.com/programinglive/commiter/commit/7c112f3d82e2c92ed31fa3e60fafd5ca0429184d))
|
|
65
|
+
### [1.0.6](https://github.com/programinglive/commiter/compare/v1.0.5...v1.0.6) (2025-10-19)
|
|
66
|
+
|
|
67
|
+
### [1.0.5](https://github.com/programinglive/commiter/compare/v1.0.4...v1.0.5) (2025-10-19)
|
|
68
|
+
|
|
69
|
+
|
|
70
|
+
### 🐛 Bug Fixes
|
|
71
|
+
|
|
72
|
+
* allow release commits with emoji ([26c4afa](https://github.com/programinglive/commiter/commit/26c4afa26fc7c11c91ac576dcba197cba5d3d98a))
|
|
73
|
+
|
|
74
|
+
### [1.0.4](https://github.com/programinglive/commiter/compare/v1.0.3...v1.0.4) (2025-10-19)
|
|
75
|
+
|
|
76
|
+
|
|
77
|
+
### 🐛 Bug Fixes
|
|
78
|
+
|
|
79
|
+
* ensure safe test default for initial release ([27d2ee3](https://github.com/programinglive/commiter/commit/27d2ee35d1e558ef459a61e41627305997621392))
|
|
80
|
+
|
|
81
|
+
### [1.0.3](https://github.com/programinglive/commiter/compare/v1.0.2...v1.0.3) (2025-10-19)
|
|
82
|
+
|
|
83
|
+
### [1.0.2](https://github.com/programinglive/commiter/compare/v1.0.1...v1.0.2) (2025-10-19)
|
|
84
|
+
|
|
85
|
+
### [1.0.1](https://github.com/programinglive/commiter/compare/v1.0.0...v1.0.1) (2025-10-18)
|
|
86
|
+
|
|
87
|
+
|
|
88
|
+
### 🐛 Bug Fixes
|
|
89
|
+
|
|
90
|
+
* align commitlint config with project module type ([d051eac](https://github.com/programinglive/commiter/commit/d051eace5471d0c54fd8de6a3bede6a0df020dad))
|
|
91
|
+
|
|
92
|
+
## 1.0.0 (2025-10-17)
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
### ✨ Features
|
|
96
|
+
|
|
97
|
+
* initial project setup with standard-version and conventional commits ([0accf6d](https://github.com/programinglive/commiter/commit/0accf6dba678c1946629aa3f1b691bea7e20cd95))
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
### 📝 Documentation
|
|
101
|
+
|
|
102
|
+
* add community health files and apply package tooling ([0fa802b](https://github.com/programinglive/commiter/commit/0fa802b6129053d3f32030cec561e5926dd09c42))
|
|
103
|
+
|
|
104
|
+
|
|
105
|
+
### 🧹 Chores
|
|
106
|
+
|
|
107
|
+
* update package metadata ([7c112f3](https://github.com/programinglive/commiter/commit/7c112f3d82e2c92ed31fa3e60fafd5ca0429184d))
|
package/CODE_OF_CONDUCT.md
CHANGED
|
@@ -1,36 +1,36 @@
|
|
|
1
|
-
# Contributor Covenant Code of Conduct
|
|
2
|
-
|
|
3
|
-
## Our Pledge
|
|
4
|
-
We pledge to make participation in `@programinglive/commiter` open, welcoming, and harassment-free for everyone, regardless of age, body size, disability, ethnicity, gender identity or expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
5
|
-
|
|
6
|
-
## Our Standards
|
|
7
|
-
**Positive behaviours**
|
|
8
|
-
- Showing empathy and kindness toward other people
|
|
9
|
-
- Respecting differing opinions, viewpoints, and experiences
|
|
10
|
-
- Giving and gracefully accepting constructive feedback
|
|
11
|
-
- Accepting responsibility and apologizing when mistakes occur
|
|
12
|
-
|
|
13
|
-
**Unacceptable behaviours**
|
|
14
|
-
- Use of sexualized language or imagery, or unwelcome sexual attention
|
|
15
|
-
- Trolling, insulting or derogatory comments, and personal attacks
|
|
16
|
-
- Public or private harassment
|
|
17
|
-
- Publishing others' private information without permission
|
|
18
|
-
- Other conduct which would reasonably be considered inappropriate in a professional setting
|
|
19
|
-
|
|
20
|
-
## Enforcement Responsibilities
|
|
21
|
-
Project maintainers are responsible for clarifying standards of acceptable behaviour and will take appropriate corrective action in response to unacceptable behaviour. Maintainers have the right to remove, edit, or reject contributions that do not align with this Code of Conduct.
|
|
22
|
-
|
|
23
|
-
## Scope
|
|
24
|
-
This Code of Conduct applies within all project spaces and when an individual is officially representing the project in public spaces.
|
|
25
|
-
|
|
26
|
-
## Enforcement
|
|
27
|
-
Report incidents to `security@programinglive.com`. All complaints will be reviewed promptly and treated confidentially.
|
|
28
|
-
|
|
29
|
-
## Enforcement Guidelines
|
|
30
|
-
1. **Correction** – Private warning for minor violations and clarification of expectations.
|
|
31
|
-
2. **Warning** – Consequence for a single serious violation or repeated minor violations.
|
|
32
|
-
3. **Temporary Ban** – Temporary exclusion from community interactions when behaviour is unacceptable.
|
|
33
|
-
4. **Permanent Ban** – Permanent removal from the community for sustained inappropriate behaviour or harassment.
|
|
34
|
-
|
|
35
|
-
## Attribution
|
|
36
|
-
Adapted from the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
|
|
1
|
+
# Contributor Covenant Code of Conduct
|
|
2
|
+
|
|
3
|
+
## Our Pledge
|
|
4
|
+
We pledge to make participation in `@programinglive/commiter` open, welcoming, and harassment-free for everyone, regardless of age, body size, disability, ethnicity, gender identity or expression, level of experience, education, socio-economic status, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
|
5
|
+
|
|
6
|
+
## Our Standards
|
|
7
|
+
**Positive behaviours**
|
|
8
|
+
- Showing empathy and kindness toward other people
|
|
9
|
+
- Respecting differing opinions, viewpoints, and experiences
|
|
10
|
+
- Giving and gracefully accepting constructive feedback
|
|
11
|
+
- Accepting responsibility and apologizing when mistakes occur
|
|
12
|
+
|
|
13
|
+
**Unacceptable behaviours**
|
|
14
|
+
- Use of sexualized language or imagery, or unwelcome sexual attention
|
|
15
|
+
- Trolling, insulting or derogatory comments, and personal attacks
|
|
16
|
+
- Public or private harassment
|
|
17
|
+
- Publishing others' private information without permission
|
|
18
|
+
- Other conduct which would reasonably be considered inappropriate in a professional setting
|
|
19
|
+
|
|
20
|
+
## Enforcement Responsibilities
|
|
21
|
+
Project maintainers are responsible for clarifying standards of acceptable behaviour and will take appropriate corrective action in response to unacceptable behaviour. Maintainers have the right to remove, edit, or reject contributions that do not align with this Code of Conduct.
|
|
22
|
+
|
|
23
|
+
## Scope
|
|
24
|
+
This Code of Conduct applies within all project spaces and when an individual is officially representing the project in public spaces.
|
|
25
|
+
|
|
26
|
+
## Enforcement
|
|
27
|
+
Report incidents to `security@programinglive.com`. All complaints will be reviewed promptly and treated confidentially.
|
|
28
|
+
|
|
29
|
+
## Enforcement Guidelines
|
|
30
|
+
1. **Correction** – Private warning for minor violations and clarification of expectations.
|
|
31
|
+
2. **Warning** – Consequence for a single serious violation or repeated minor violations.
|
|
32
|
+
3. **Temporary Ban** – Temporary exclusion from community interactions when behaviour is unacceptable.
|
|
33
|
+
4. **Permanent Ban** – Permanent removal from the community for sustained inappropriate behaviour or harassment.
|
|
34
|
+
|
|
35
|
+
## Attribution
|
|
36
|
+
Adapted from the [Contributor Covenant](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
|
package/LICENSE
CHANGED
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
MIT License
|
|
2
|
-
|
|
3
|
-
Copyright (c) 2025 Programming Live
|
|
4
|
-
|
|
5
|
-
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
-
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
-
in the Software without restriction, including without limitation the rights
|
|
8
|
-
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
-
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
-
furnished to do so, subject to the following conditions:
|
|
11
|
-
|
|
12
|
-
The above copyright notice and this permission notice shall be included in all
|
|
13
|
-
copies or substantial portions of the Software.
|
|
14
|
-
|
|
15
|
-
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
-
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
-
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
-
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
-
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
-
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
-
SOFTWARE.
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2025 Programming Live
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/PRD.md
ADDED
|
@@ -0,0 +1,86 @@
|
|
|
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`).
|
|
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` with additional flags (e.g., preload patch for deprecated APIs).
|
|
31
|
+
- **Preload Patching (`scripts/preload/fs-f-ok.cjs`)**
|
|
32
|
+
- Hooks Node’s module loader to transparently replace deprecated `fs.F_OK` usages in `standard-version` without altering `node_modules`.
|
|
33
|
+
- **Testing**
|
|
34
|
+
- Suite executed via `node --test` covers setup utilities, release argument parsing, and the preload patch.
|
|
35
|
+
|
|
36
|
+
## 6. Functional Requirements
|
|
37
|
+
1. Running `npx @programinglive/commiter` inside a Node project should configure release tooling without manual edits.
|
|
38
|
+
2. `npm run release` must:
|
|
39
|
+
- Run the project’s tests (if defined) with the correct package manager.
|
|
40
|
+
- Execute `standard-version`, passing the preload script via `NODE_OPTIONS`.
|
|
41
|
+
- Exit with non-zero status if tests or standard-version commands fail.
|
|
42
|
+
3. CLI should provide friendly console output (status icons, instructions).
|
|
43
|
+
4. The preload script must eliminate `[DEP0176] fs.F_OK` warnings on supported Node versions.
|
|
44
|
+
5. Documentation (README, PRD, release notes) remains shipped with the package.
|
|
45
|
+
|
|
46
|
+
## 7. Non-Functional Requirements
|
|
47
|
+
- **Compatibility**: Supports Node.js 18+ (aligning with dependencies); tested on Windows/macOS/Linux.
|
|
48
|
+
- **Maintainability**: Avoid direct edits to dependencies; wrap behavior in Commiter-controlled modules.
|
|
49
|
+
- **Performance**: Release command overhead minimal (<1s additional startup time) beyond running tests and standard-version.
|
|
50
|
+
- **Security**: No network requests during CLI execution beyond npm installs triggered by the user.
|
|
51
|
+
|
|
52
|
+
## 8. User Journeys
|
|
53
|
+
1. **Initial Setup**
|
|
54
|
+
- Run `npx @programinglive/commiter`.
|
|
55
|
+
- Tool installs dependencies, updates `package.json`, and scaffolds Husky hooks.
|
|
56
|
+
- Maintainer confirms success message and new scripts.
|
|
57
|
+
2. **Standard Release**
|
|
58
|
+
- Developer runs `npm run release minor`.
|
|
59
|
+
- Commiter runs tests, ensures preload patch prevents deprecation warnings, executes `standard-version`.
|
|
60
|
+
- Release completes with updated changelog and git tag.
|
|
61
|
+
3. **CI Pipeline**
|
|
62
|
+
- CI job executes `npm run release -- --prerelease beta`.
|
|
63
|
+
- Logs show tests executed, no deprecation warnings, and release artifacts generated.
|
|
64
|
+
|
|
65
|
+
## 9. Milestones & Roadmap
|
|
66
|
+
- **v1.1.x** (current)
|
|
67
|
+
- Deprecation warning mitigation, enhanced tests, PRD + release documentation.
|
|
68
|
+
- **Future Considerations**
|
|
69
|
+
- Support for monorepo detection (Lerna/Nx) to run scoped releases.
|
|
70
|
+
- Optional lint/test command customization via config file.
|
|
71
|
+
- Telemetry opt-in for release statistics (downloads, success rates).
|
|
72
|
+
|
|
73
|
+
## 10. Risks & Mitigations
|
|
74
|
+
- **Dependency API Changes**: Upstream packages may alter file paths. Mitigate with targeted module resolution and tests.
|
|
75
|
+
- **User Customization Conflicts**: Custom scripts might skip tests. Provide documentation for overriding behavior.
|
|
76
|
+
- **Platform Differences**: Windows path quoting; addressed via `buildPreloadFlag` helper.
|
|
77
|
+
|
|
78
|
+
## 11. Release & QA Checklist
|
|
79
|
+
- [x] `npm test` (alias for `node --test`) passes.
|
|
80
|
+
- [x] Manual run of `node scripts/release.js --help` shows no `[DEP0176]` warning.
|
|
81
|
+
- [ ] Update `CHANGELOG.md` (handled by standard-version during actual release).
|
|
82
|
+
- [ ] Verify README reflects latest setup instructions before shipping.
|
|
83
|
+
|
|
84
|
+
## 12. Appendices
|
|
85
|
+
- **Release Notes**: See `docs/release-notes/` for per-change summaries.
|
|
86
|
+
- **Testing Artifacts**: `test/` directory contains Node test runner suites.
|