maintainer-readiness-kit 0.6.1__tar.gz
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.
- maintainer_readiness_kit-0.6.1/LICENSE +21 -0
- maintainer_readiness_kit-0.6.1/PKG-INFO +275 -0
- maintainer_readiness_kit-0.6.1/README.md +251 -0
- maintainer_readiness_kit-0.6.1/pyproject.toml +39 -0
- maintainer_readiness_kit-0.6.1/setup.cfg +4 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/__init__.py +4 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/__main__.py +5 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/badge.py +17 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/checks.py +247 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/cli.py +117 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/github.py +98 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/report.py +100 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/sarif.py +106 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness/templates.py +119 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness_kit.egg-info/PKG-INFO +275 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness_kit.egg-info/SOURCES.txt +23 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness_kit.egg-info/dependency_links.txt +1 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness_kit.egg-info/entry_points.txt +2 -0
- maintainer_readiness_kit-0.6.1/src/maintainer_readiness_kit.egg-info/top_level.txt +1 -0
- maintainer_readiness_kit-0.6.1/tests/test_badge.py +21 -0
- maintainer_readiness_kit-0.6.1/tests/test_checks.py +79 -0
- maintainer_readiness_kit-0.6.1/tests/test_cli.py +104 -0
- maintainer_readiness_kit-0.6.1/tests/test_github.py +39 -0
- maintainer_readiness_kit-0.6.1/tests/test_sarif.py +41 -0
- maintainer_readiness_kit-0.6.1/tests/test_templates.py +30 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 YUUDAI-s
|
|
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.
|
|
@@ -0,0 +1,275 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: maintainer-readiness-kit
|
|
3
|
+
Version: 0.6.1
|
|
4
|
+
Summary: Generate maintainer-readiness reports for open source repositories.
|
|
5
|
+
Author: YUUDAI-s
|
|
6
|
+
License-Expression: MIT
|
|
7
|
+
Project-URL: Homepage, https://github.com/YUUDAI-s/maintainer-readiness-kit
|
|
8
|
+
Project-URL: Repository, https://github.com/YUUDAI-s/maintainer-readiness-kit
|
|
9
|
+
Project-URL: Issues, https://github.com/YUUDAI-s/maintainer-readiness-kit/issues
|
|
10
|
+
Keywords: open-source,maintainer,github,security,triage
|
|
11
|
+
Classifier: Development Status :: 3 - Alpha
|
|
12
|
+
Classifier: Environment :: Console
|
|
13
|
+
Classifier: Intended Audience :: Developers
|
|
14
|
+
Classifier: Programming Language :: Python :: 3
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
16
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
17
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
18
|
+
Classifier: Topic :: Software Development :: Quality Assurance
|
|
19
|
+
Classifier: Topic :: Software Development :: Version Control :: Git
|
|
20
|
+
Requires-Python: >=3.10
|
|
21
|
+
Description-Content-Type: text/markdown
|
|
22
|
+
License-File: LICENSE
|
|
23
|
+
Dynamic: license-file
|
|
24
|
+
|
|
25
|
+
# Maintainer Readiness Kit
|
|
26
|
+
|
|
27
|
+
[](https://github.com/YUUDAI-s/maintainer-readiness-kit/actions/workflows/maintainer-readiness.yml)
|
|
28
|
+
[](action.yml)
|
|
29
|
+
[](LICENSE)
|
|
30
|
+
[](pyproject.toml)
|
|
31
|
+
|
|
32
|
+
Maintainer Readiness Kit is a small, dependency-light CLI that audits an open
|
|
33
|
+
source repository for maintainer-facing signals: documentation, license files,
|
|
34
|
+
security policy, issue and pull request templates, CI, tests, recent git
|
|
35
|
+
activity, and high-risk local secret files.
|
|
36
|
+
|
|
37
|
+
The goal is simple: give solo and small-team maintainers a repeatable report
|
|
38
|
+
they can use before publishing a repository, onboarding contributors, or asking
|
|
39
|
+
for support from open source maintainer programs.
|
|
40
|
+
|
|
41
|
+
## Who Should Use It
|
|
42
|
+
|
|
43
|
+
- Maintainers preparing a repository for public contributors.
|
|
44
|
+
- Solo developers who need a concrete pre-release checklist.
|
|
45
|
+
- Teams that want CI to fail when maintainer basics regress.
|
|
46
|
+
- Open source applicants who need honest, shareable evidence instead of vague
|
|
47
|
+
claims.
|
|
48
|
+
|
|
49
|
+
## What It Helps You Decide
|
|
50
|
+
|
|
51
|
+
Use it when you need a quick answer to:
|
|
52
|
+
|
|
53
|
+
- Is this repository ready to make public?
|
|
54
|
+
- What maintainer files are missing before I invite contributors?
|
|
55
|
+
- Will CI fail if the repository falls below a readiness threshold?
|
|
56
|
+
- What ecosystem-specific maintenance steps should I add next?
|
|
57
|
+
- Can I share a report without leaking my local machine path?
|
|
58
|
+
|
|
59
|
+
## Features
|
|
60
|
+
|
|
61
|
+
- Scores maintainer-readiness signals with evidence and suggested fixes.
|
|
62
|
+
- Reads local git activity without requiring network access.
|
|
63
|
+
- Optionally enriches the report with public GitHub repository signals.
|
|
64
|
+
- Summarizes stale open issues and pull requests for public GitHub reports.
|
|
65
|
+
- Generates starter maintainer templates for `CONTRIBUTING.md`,
|
|
66
|
+
`SECURITY.md`, issue templates, pull request templates, and a GitHub Actions
|
|
67
|
+
smoke workflow.
|
|
68
|
+
- Performs a conservative high-risk file check before public release.
|
|
69
|
+
- Outputs Markdown or JSON for CI and handoff docs.
|
|
70
|
+
- Outputs SARIF for CI and code-scanning workflows.
|
|
71
|
+
- Outputs Shields endpoint badge JSON for project dashboards.
|
|
72
|
+
- Runs as a reusable GitHub Action.
|
|
73
|
+
- Classifies readiness as `ready`, `nearly-ready`, or `needs-work`.
|
|
74
|
+
- Detects Python, Node.js, Rust, Go, and Java/JVM manifests and adds
|
|
75
|
+
ecosystem-specific maintainer recommendations.
|
|
76
|
+
|
|
77
|
+
## Quick Start
|
|
78
|
+
|
|
79
|
+
Install from the repository:
|
|
80
|
+
|
|
81
|
+
```powershell
|
|
82
|
+
git clone https://github.com/YUUDAI-s/maintainer-readiness-kit.git
|
|
83
|
+
cd maintainer-readiness-kit
|
|
84
|
+
python -m pip install -e .
|
|
85
|
+
maintainer-readiness inspect . --output readiness-report.md
|
|
86
|
+
maintainer-readiness inspect . --fail-under 90
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
Use it directly in GitHub Actions:
|
|
90
|
+
|
|
91
|
+
```yaml
|
|
92
|
+
steps:
|
|
93
|
+
- uses: actions/checkout@v4
|
|
94
|
+
- uses: YUUDAI-s/maintainer-readiness-kit@v0.6.0
|
|
95
|
+
with:
|
|
96
|
+
repo: owner/name
|
|
97
|
+
fail-under: "80"
|
|
98
|
+
output: readiness-report.md
|
|
99
|
+
sarif: readiness.sarif
|
|
100
|
+
badge-json: readiness-badge.json
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Public demo repository:
|
|
104
|
+
[`YUUDAI-s/maintainer-readiness-kit-action-demo`](https://github.com/YUUDAI-s/maintainer-readiness-kit-action-demo)
|
|
105
|
+
uses `YUUDAI-s/maintainer-readiness-kit@v0.6.0` in CI.
|
|
106
|
+
|
|
107
|
+
After the package is published to PyPI:
|
|
108
|
+
|
|
109
|
+
```powershell
|
|
110
|
+
python -m pip install maintainer-readiness-kit
|
|
111
|
+
maintainer-readiness inspect . --output readiness-report.md
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
For local source development without installation:
|
|
115
|
+
|
|
116
|
+
```powershell
|
|
117
|
+
$env:PYTHONPATH = "src"
|
|
118
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
119
|
+
python -m maintainer_readiness inspect . --fail-under 90
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
Typical output:
|
|
123
|
+
|
|
124
|
+
```text
|
|
125
|
+
Score: 100 / 100 (100.0%)
|
|
126
|
+
Level: ready
|
|
127
|
+
Ecosystem Recommendations: Python
|
|
128
|
+
High-Risk File Warnings: No high-risk credential filenames found.
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
To include public GitHub signals:
|
|
132
|
+
|
|
133
|
+
```powershell
|
|
134
|
+
python -m maintainer_readiness inspect . --repo YUUDAI-s/maintainer-readiness-kit --output readiness-report.md
|
|
135
|
+
```
|
|
136
|
+
|
|
137
|
+
To add starter maintainer files to another repository:
|
|
138
|
+
|
|
139
|
+
```powershell
|
|
140
|
+
python -m maintainer_readiness init C:\path\to\repo
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
Use `--force` only when you intentionally want to overwrite an existing starter
|
|
144
|
+
file.
|
|
145
|
+
|
|
146
|
+
## Commands
|
|
147
|
+
|
|
148
|
+
### `inspect`
|
|
149
|
+
|
|
150
|
+
```powershell
|
|
151
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
152
|
+
python -m maintainer_readiness inspect . --json
|
|
153
|
+
python -m maintainer_readiness inspect . --repo owner/name
|
|
154
|
+
python -m maintainer_readiness inspect . --root-label public-sample
|
|
155
|
+
python -m maintainer_readiness inspect . --repo owner/name --stale-days 14
|
|
156
|
+
python -m maintainer_readiness inspect . --sarif readiness.sarif
|
|
157
|
+
python -m maintainer_readiness inspect . --badge-json readiness-badge.json
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
The Markdown report includes:
|
|
161
|
+
|
|
162
|
+
- overall readiness score,
|
|
163
|
+
- readiness level,
|
|
164
|
+
- passing and missing signals,
|
|
165
|
+
- local git maintenance evidence,
|
|
166
|
+
- optional public GitHub evidence,
|
|
167
|
+
- stale open issue and pull request counts when `--repo` is used,
|
|
168
|
+
- high-risk file warnings,
|
|
169
|
+
- ecosystem-specific recommendations,
|
|
170
|
+
- next actions before public release.
|
|
171
|
+
|
|
172
|
+
For CI, use `--fail-under` to make the command return a non-zero exit code when
|
|
173
|
+
the readiness percentage is below your chosen threshold.
|
|
174
|
+
|
|
175
|
+
Use `--stale-days` with `--repo` when your project has a shorter or longer
|
|
176
|
+
triage window than the default 30 days.
|
|
177
|
+
|
|
178
|
+
Use `--sarif readiness.sarif` when you want failed checks and high-risk file
|
|
179
|
+
warnings in a code-scanning compatible format.
|
|
180
|
+
|
|
181
|
+
Use `--badge-json readiness-badge.json` when you want a Shields-compatible
|
|
182
|
+
endpoint JSON payload for a dashboard or docs site.
|
|
183
|
+
|
|
184
|
+
### GitHub Actions
|
|
185
|
+
|
|
186
|
+
```yaml
|
|
187
|
+
name: Maintainer readiness
|
|
188
|
+
|
|
189
|
+
on:
|
|
190
|
+
pull_request:
|
|
191
|
+
push:
|
|
192
|
+
branches: [main]
|
|
193
|
+
|
|
194
|
+
jobs:
|
|
195
|
+
smoke:
|
|
196
|
+
runs-on: ubuntu-latest
|
|
197
|
+
steps:
|
|
198
|
+
- uses: actions/checkout@v4
|
|
199
|
+
- uses: YUUDAI-s/maintainer-readiness-kit@v0.6.0
|
|
200
|
+
with:
|
|
201
|
+
repo: owner/name
|
|
202
|
+
fail-under: "80"
|
|
203
|
+
output: readiness-report.md
|
|
204
|
+
sarif: readiness.sarif
|
|
205
|
+
badge-json: readiness-badge.json
|
|
206
|
+
- uses: github/codeql-action/upload-sarif@v3
|
|
207
|
+
if: always()
|
|
208
|
+
with:
|
|
209
|
+
sarif_file: readiness.sarif
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
### `init`
|
|
213
|
+
|
|
214
|
+
```powershell
|
|
215
|
+
python -m maintainer_readiness init .
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
This writes starter maintainer files only when they do not already exist:
|
|
219
|
+
|
|
220
|
+
- `CONTRIBUTING.md`
|
|
221
|
+
- `SECURITY.md`
|
|
222
|
+
- `MAINTAINERS.md`
|
|
223
|
+
- `.github/ISSUE_TEMPLATE/bug_report.yml`
|
|
224
|
+
- `.github/ISSUE_TEMPLATE/feature_request.yml`
|
|
225
|
+
- `.github/PULL_REQUEST_TEMPLATE.md`
|
|
226
|
+
- `.github/workflows/maintainer-readiness.yml`
|
|
227
|
+
|
|
228
|
+
## Design Principles
|
|
229
|
+
|
|
230
|
+
- Honest evidence over vanity metrics.
|
|
231
|
+
- Minimal runtime dependencies.
|
|
232
|
+
- Useful defaults for maintainers who work alone.
|
|
233
|
+
- No external writes from `inspect`.
|
|
234
|
+
- No claims that a repository qualifies for any external program.
|
|
235
|
+
|
|
236
|
+
## Maintainer Workflows
|
|
237
|
+
|
|
238
|
+
This project is built for routine maintainer tasks:
|
|
239
|
+
|
|
240
|
+
- pre-publication checks before making a repository public,
|
|
241
|
+
- contributor onboarding checks before accepting outside PRs,
|
|
242
|
+
- release-readiness checks before tagging a version,
|
|
243
|
+
- safety checks before attaching reports to sponsorship or maintainer-support
|
|
244
|
+
applications,
|
|
245
|
+
- CI-friendly JSON output for repeatable repository hygiene reviews.
|
|
246
|
+
|
|
247
|
+
## Limitations
|
|
248
|
+
|
|
249
|
+
This tool cannot prove that a repository is widely adopted, safe, or eligible
|
|
250
|
+
for any benefit. It only turns common maintainer signals into a compact,
|
|
251
|
+
verifiable report. Program applications still require accurate information
|
|
252
|
+
about the applicant, repository, role, usage, and maintainer status.
|
|
253
|
+
|
|
254
|
+
## Development
|
|
255
|
+
|
|
256
|
+
```powershell
|
|
257
|
+
$env:PYTHONPATH = "src"
|
|
258
|
+
python -m unittest discover -s tests
|
|
259
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
260
|
+
```
|
|
261
|
+
|
|
262
|
+
See [ROADMAP.md](ROADMAP.md) for near-term maintainer-focused work.
|
|
263
|
+
See [examples/reports](examples/reports) for generated reports from real
|
|
264
|
+
repositories.
|
|
265
|
+
See the public action demo at
|
|
266
|
+
[YUUDAI-s/maintainer-readiness-kit-action-demo](https://github.com/YUUDAI-s/maintainer-readiness-kit-action-demo).
|
|
267
|
+
See [docs/pypi.md](docs/pypi.md) for package build and publishing notes.
|
|
268
|
+
See [docs/community-launch.md](docs/community-launch.md) for community launch
|
|
269
|
+
copy and posting rules.
|
|
270
|
+
See [examples/github-action.yml](examples/github-action.yml) for a copyable
|
|
271
|
+
GitHub Actions workflow.
|
|
272
|
+
|
|
273
|
+
## License
|
|
274
|
+
|
|
275
|
+
MIT
|
|
@@ -0,0 +1,251 @@
|
|
|
1
|
+
# Maintainer Readiness Kit
|
|
2
|
+
|
|
3
|
+
[](https://github.com/YUUDAI-s/maintainer-readiness-kit/actions/workflows/maintainer-readiness.yml)
|
|
4
|
+
[](action.yml)
|
|
5
|
+
[](LICENSE)
|
|
6
|
+
[](pyproject.toml)
|
|
7
|
+
|
|
8
|
+
Maintainer Readiness Kit is a small, dependency-light CLI that audits an open
|
|
9
|
+
source repository for maintainer-facing signals: documentation, license files,
|
|
10
|
+
security policy, issue and pull request templates, CI, tests, recent git
|
|
11
|
+
activity, and high-risk local secret files.
|
|
12
|
+
|
|
13
|
+
The goal is simple: give solo and small-team maintainers a repeatable report
|
|
14
|
+
they can use before publishing a repository, onboarding contributors, or asking
|
|
15
|
+
for support from open source maintainer programs.
|
|
16
|
+
|
|
17
|
+
## Who Should Use It
|
|
18
|
+
|
|
19
|
+
- Maintainers preparing a repository for public contributors.
|
|
20
|
+
- Solo developers who need a concrete pre-release checklist.
|
|
21
|
+
- Teams that want CI to fail when maintainer basics regress.
|
|
22
|
+
- Open source applicants who need honest, shareable evidence instead of vague
|
|
23
|
+
claims.
|
|
24
|
+
|
|
25
|
+
## What It Helps You Decide
|
|
26
|
+
|
|
27
|
+
Use it when you need a quick answer to:
|
|
28
|
+
|
|
29
|
+
- Is this repository ready to make public?
|
|
30
|
+
- What maintainer files are missing before I invite contributors?
|
|
31
|
+
- Will CI fail if the repository falls below a readiness threshold?
|
|
32
|
+
- What ecosystem-specific maintenance steps should I add next?
|
|
33
|
+
- Can I share a report without leaking my local machine path?
|
|
34
|
+
|
|
35
|
+
## Features
|
|
36
|
+
|
|
37
|
+
- Scores maintainer-readiness signals with evidence and suggested fixes.
|
|
38
|
+
- Reads local git activity without requiring network access.
|
|
39
|
+
- Optionally enriches the report with public GitHub repository signals.
|
|
40
|
+
- Summarizes stale open issues and pull requests for public GitHub reports.
|
|
41
|
+
- Generates starter maintainer templates for `CONTRIBUTING.md`,
|
|
42
|
+
`SECURITY.md`, issue templates, pull request templates, and a GitHub Actions
|
|
43
|
+
smoke workflow.
|
|
44
|
+
- Performs a conservative high-risk file check before public release.
|
|
45
|
+
- Outputs Markdown or JSON for CI and handoff docs.
|
|
46
|
+
- Outputs SARIF for CI and code-scanning workflows.
|
|
47
|
+
- Outputs Shields endpoint badge JSON for project dashboards.
|
|
48
|
+
- Runs as a reusable GitHub Action.
|
|
49
|
+
- Classifies readiness as `ready`, `nearly-ready`, or `needs-work`.
|
|
50
|
+
- Detects Python, Node.js, Rust, Go, and Java/JVM manifests and adds
|
|
51
|
+
ecosystem-specific maintainer recommendations.
|
|
52
|
+
|
|
53
|
+
## Quick Start
|
|
54
|
+
|
|
55
|
+
Install from the repository:
|
|
56
|
+
|
|
57
|
+
```powershell
|
|
58
|
+
git clone https://github.com/YUUDAI-s/maintainer-readiness-kit.git
|
|
59
|
+
cd maintainer-readiness-kit
|
|
60
|
+
python -m pip install -e .
|
|
61
|
+
maintainer-readiness inspect . --output readiness-report.md
|
|
62
|
+
maintainer-readiness inspect . --fail-under 90
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Use it directly in GitHub Actions:
|
|
66
|
+
|
|
67
|
+
```yaml
|
|
68
|
+
steps:
|
|
69
|
+
- uses: actions/checkout@v4
|
|
70
|
+
- uses: YUUDAI-s/maintainer-readiness-kit@v0.6.0
|
|
71
|
+
with:
|
|
72
|
+
repo: owner/name
|
|
73
|
+
fail-under: "80"
|
|
74
|
+
output: readiness-report.md
|
|
75
|
+
sarif: readiness.sarif
|
|
76
|
+
badge-json: readiness-badge.json
|
|
77
|
+
```
|
|
78
|
+
|
|
79
|
+
Public demo repository:
|
|
80
|
+
[`YUUDAI-s/maintainer-readiness-kit-action-demo`](https://github.com/YUUDAI-s/maintainer-readiness-kit-action-demo)
|
|
81
|
+
uses `YUUDAI-s/maintainer-readiness-kit@v0.6.0` in CI.
|
|
82
|
+
|
|
83
|
+
After the package is published to PyPI:
|
|
84
|
+
|
|
85
|
+
```powershell
|
|
86
|
+
python -m pip install maintainer-readiness-kit
|
|
87
|
+
maintainer-readiness inspect . --output readiness-report.md
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
For local source development without installation:
|
|
91
|
+
|
|
92
|
+
```powershell
|
|
93
|
+
$env:PYTHONPATH = "src"
|
|
94
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
95
|
+
python -m maintainer_readiness inspect . --fail-under 90
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
Typical output:
|
|
99
|
+
|
|
100
|
+
```text
|
|
101
|
+
Score: 100 / 100 (100.0%)
|
|
102
|
+
Level: ready
|
|
103
|
+
Ecosystem Recommendations: Python
|
|
104
|
+
High-Risk File Warnings: No high-risk credential filenames found.
|
|
105
|
+
```
|
|
106
|
+
|
|
107
|
+
To include public GitHub signals:
|
|
108
|
+
|
|
109
|
+
```powershell
|
|
110
|
+
python -m maintainer_readiness inspect . --repo YUUDAI-s/maintainer-readiness-kit --output readiness-report.md
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
To add starter maintainer files to another repository:
|
|
114
|
+
|
|
115
|
+
```powershell
|
|
116
|
+
python -m maintainer_readiness init C:\path\to\repo
|
|
117
|
+
```
|
|
118
|
+
|
|
119
|
+
Use `--force` only when you intentionally want to overwrite an existing starter
|
|
120
|
+
file.
|
|
121
|
+
|
|
122
|
+
## Commands
|
|
123
|
+
|
|
124
|
+
### `inspect`
|
|
125
|
+
|
|
126
|
+
```powershell
|
|
127
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
128
|
+
python -m maintainer_readiness inspect . --json
|
|
129
|
+
python -m maintainer_readiness inspect . --repo owner/name
|
|
130
|
+
python -m maintainer_readiness inspect . --root-label public-sample
|
|
131
|
+
python -m maintainer_readiness inspect . --repo owner/name --stale-days 14
|
|
132
|
+
python -m maintainer_readiness inspect . --sarif readiness.sarif
|
|
133
|
+
python -m maintainer_readiness inspect . --badge-json readiness-badge.json
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
The Markdown report includes:
|
|
137
|
+
|
|
138
|
+
- overall readiness score,
|
|
139
|
+
- readiness level,
|
|
140
|
+
- passing and missing signals,
|
|
141
|
+
- local git maintenance evidence,
|
|
142
|
+
- optional public GitHub evidence,
|
|
143
|
+
- stale open issue and pull request counts when `--repo` is used,
|
|
144
|
+
- high-risk file warnings,
|
|
145
|
+
- ecosystem-specific recommendations,
|
|
146
|
+
- next actions before public release.
|
|
147
|
+
|
|
148
|
+
For CI, use `--fail-under` to make the command return a non-zero exit code when
|
|
149
|
+
the readiness percentage is below your chosen threshold.
|
|
150
|
+
|
|
151
|
+
Use `--stale-days` with `--repo` when your project has a shorter or longer
|
|
152
|
+
triage window than the default 30 days.
|
|
153
|
+
|
|
154
|
+
Use `--sarif readiness.sarif` when you want failed checks and high-risk file
|
|
155
|
+
warnings in a code-scanning compatible format.
|
|
156
|
+
|
|
157
|
+
Use `--badge-json readiness-badge.json` when you want a Shields-compatible
|
|
158
|
+
endpoint JSON payload for a dashboard or docs site.
|
|
159
|
+
|
|
160
|
+
### GitHub Actions
|
|
161
|
+
|
|
162
|
+
```yaml
|
|
163
|
+
name: Maintainer readiness
|
|
164
|
+
|
|
165
|
+
on:
|
|
166
|
+
pull_request:
|
|
167
|
+
push:
|
|
168
|
+
branches: [main]
|
|
169
|
+
|
|
170
|
+
jobs:
|
|
171
|
+
smoke:
|
|
172
|
+
runs-on: ubuntu-latest
|
|
173
|
+
steps:
|
|
174
|
+
- uses: actions/checkout@v4
|
|
175
|
+
- uses: YUUDAI-s/maintainer-readiness-kit@v0.6.0
|
|
176
|
+
with:
|
|
177
|
+
repo: owner/name
|
|
178
|
+
fail-under: "80"
|
|
179
|
+
output: readiness-report.md
|
|
180
|
+
sarif: readiness.sarif
|
|
181
|
+
badge-json: readiness-badge.json
|
|
182
|
+
- uses: github/codeql-action/upload-sarif@v3
|
|
183
|
+
if: always()
|
|
184
|
+
with:
|
|
185
|
+
sarif_file: readiness.sarif
|
|
186
|
+
```
|
|
187
|
+
|
|
188
|
+
### `init`
|
|
189
|
+
|
|
190
|
+
```powershell
|
|
191
|
+
python -m maintainer_readiness init .
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
This writes starter maintainer files only when they do not already exist:
|
|
195
|
+
|
|
196
|
+
- `CONTRIBUTING.md`
|
|
197
|
+
- `SECURITY.md`
|
|
198
|
+
- `MAINTAINERS.md`
|
|
199
|
+
- `.github/ISSUE_TEMPLATE/bug_report.yml`
|
|
200
|
+
- `.github/ISSUE_TEMPLATE/feature_request.yml`
|
|
201
|
+
- `.github/PULL_REQUEST_TEMPLATE.md`
|
|
202
|
+
- `.github/workflows/maintainer-readiness.yml`
|
|
203
|
+
|
|
204
|
+
## Design Principles
|
|
205
|
+
|
|
206
|
+
- Honest evidence over vanity metrics.
|
|
207
|
+
- Minimal runtime dependencies.
|
|
208
|
+
- Useful defaults for maintainers who work alone.
|
|
209
|
+
- No external writes from `inspect`.
|
|
210
|
+
- No claims that a repository qualifies for any external program.
|
|
211
|
+
|
|
212
|
+
## Maintainer Workflows
|
|
213
|
+
|
|
214
|
+
This project is built for routine maintainer tasks:
|
|
215
|
+
|
|
216
|
+
- pre-publication checks before making a repository public,
|
|
217
|
+
- contributor onboarding checks before accepting outside PRs,
|
|
218
|
+
- release-readiness checks before tagging a version,
|
|
219
|
+
- safety checks before attaching reports to sponsorship or maintainer-support
|
|
220
|
+
applications,
|
|
221
|
+
- CI-friendly JSON output for repeatable repository hygiene reviews.
|
|
222
|
+
|
|
223
|
+
## Limitations
|
|
224
|
+
|
|
225
|
+
This tool cannot prove that a repository is widely adopted, safe, or eligible
|
|
226
|
+
for any benefit. It only turns common maintainer signals into a compact,
|
|
227
|
+
verifiable report. Program applications still require accurate information
|
|
228
|
+
about the applicant, repository, role, usage, and maintainer status.
|
|
229
|
+
|
|
230
|
+
## Development
|
|
231
|
+
|
|
232
|
+
```powershell
|
|
233
|
+
$env:PYTHONPATH = "src"
|
|
234
|
+
python -m unittest discover -s tests
|
|
235
|
+
python -m maintainer_readiness inspect . --output readiness-report.md
|
|
236
|
+
```
|
|
237
|
+
|
|
238
|
+
See [ROADMAP.md](ROADMAP.md) for near-term maintainer-focused work.
|
|
239
|
+
See [examples/reports](examples/reports) for generated reports from real
|
|
240
|
+
repositories.
|
|
241
|
+
See the public action demo at
|
|
242
|
+
[YUUDAI-s/maintainer-readiness-kit-action-demo](https://github.com/YUUDAI-s/maintainer-readiness-kit-action-demo).
|
|
243
|
+
See [docs/pypi.md](docs/pypi.md) for package build and publishing notes.
|
|
244
|
+
See [docs/community-launch.md](docs/community-launch.md) for community launch
|
|
245
|
+
copy and posting rules.
|
|
246
|
+
See [examples/github-action.yml](examples/github-action.yml) for a copyable
|
|
247
|
+
GitHub Actions workflow.
|
|
248
|
+
|
|
249
|
+
## License
|
|
250
|
+
|
|
251
|
+
MIT
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
[build-system]
|
|
2
|
+
requires = ["setuptools>=77"]
|
|
3
|
+
build-backend = "setuptools.build_meta"
|
|
4
|
+
|
|
5
|
+
[project]
|
|
6
|
+
name = "maintainer-readiness-kit"
|
|
7
|
+
version = "0.6.1"
|
|
8
|
+
description = "Generate maintainer-readiness reports for open source repositories."
|
|
9
|
+
readme = "README.md"
|
|
10
|
+
requires-python = ">=3.10"
|
|
11
|
+
license = "MIT"
|
|
12
|
+
authors = [{ name = "YUUDAI-s" }]
|
|
13
|
+
keywords = ["open-source", "maintainer", "github", "security", "triage"]
|
|
14
|
+
classifiers = [
|
|
15
|
+
"Development Status :: 3 - Alpha",
|
|
16
|
+
"Environment :: Console",
|
|
17
|
+
"Intended Audience :: Developers",
|
|
18
|
+
"Programming Language :: Python :: 3",
|
|
19
|
+
"Programming Language :: Python :: 3.10",
|
|
20
|
+
"Programming Language :: Python :: 3.11",
|
|
21
|
+
"Programming Language :: Python :: 3.12",
|
|
22
|
+
"Topic :: Software Development :: Quality Assurance",
|
|
23
|
+
"Topic :: Software Development :: Version Control :: Git",
|
|
24
|
+
]
|
|
25
|
+
dependencies = []
|
|
26
|
+
|
|
27
|
+
[project.scripts]
|
|
28
|
+
maintainer-readiness = "maintainer_readiness.cli:main"
|
|
29
|
+
|
|
30
|
+
[project.urls]
|
|
31
|
+
Homepage = "https://github.com/YUUDAI-s/maintainer-readiness-kit"
|
|
32
|
+
Repository = "https://github.com/YUUDAI-s/maintainer-readiness-kit"
|
|
33
|
+
Issues = "https://github.com/YUUDAI-s/maintainer-readiness-kit/issues"
|
|
34
|
+
|
|
35
|
+
[tool.setuptools.packages.find]
|
|
36
|
+
where = ["src"]
|
|
37
|
+
|
|
38
|
+
[tool.setuptools]
|
|
39
|
+
include-package-data = true
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
from __future__ import annotations
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
def render_badge(result: dict) -> dict:
|
|
5
|
+
percent = float(result.get("percent", 0.0))
|
|
6
|
+
if percent >= 90:
|
|
7
|
+
color = "brightgreen"
|
|
8
|
+
elif percent >= 70:
|
|
9
|
+
color = "yellow"
|
|
10
|
+
else:
|
|
11
|
+
color = "red"
|
|
12
|
+
return {
|
|
13
|
+
"schemaVersion": 1,
|
|
14
|
+
"label": "maintainer readiness",
|
|
15
|
+
"message": f"{percent:.1f}%",
|
|
16
|
+
"color": color,
|
|
17
|
+
}
|