-
Notifications
You must be signed in to change notification settings - Fork 0
docs: prepare public distribution path #6
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,48 @@ | ||
| # Distribution | ||
|
|
||
| GitHub Repo Auditor is public and currently distributed through GitHub Releases. | ||
|
|
||
| ## Current Public Path | ||
|
|
||
| Use the latest release binary when you want the fastest no-clone install: | ||
|
|
||
| ```bash | ||
| curl -LO https://github.com/saagpatel/GithubRepoAuditor/releases/latest/download/audit.pyz | ||
| chmod +x audit.pyz | ||
| ./audit.pyz --help | ||
| ``` | ||
|
|
||
| Use the public GitHub source when you want an isolated tool install: | ||
|
|
||
| ```bash | ||
| uv tool install 'git+https://github.com/saagpatel/GithubRepoAuditor.git' | ||
| pipx install 'git+https://github.com/saagpatel/GithubRepoAuditor.git' | ||
| ``` | ||
|
|
||
| ## PyPI Status | ||
|
|
||
| PyPI publishing is not active yet. The package name `github-repo-auditor` was | ||
| available when checked during the public-readiness pass on 2026-05-18, but that | ||
| can change and should be rechecked immediately before first publication. | ||
|
|
||
| The repository is prepared for a future PyPI release: | ||
|
|
||
| - package metadata lives in `pyproject.toml` | ||
| - `make build` creates the wheel and source distribution | ||
| - `make dist-check` runs `twine check` | ||
| - `scripts/release.sh` builds and checks artifacts by default | ||
| - `scripts/release.sh --publish-pypi` is the only script path that uploads to PyPI | ||
|
|
||
| ## Activation Checklist | ||
|
|
||
| Before the first PyPI release: | ||
|
|
||
| 1. Recheck that the `github-repo-auditor` PyPI name is still available. | ||
| 2. Create the PyPI project through a first upload or configure Trusted Publishing. | ||
| 3. Prefer PyPI Trusted Publishing from GitHub Actions over long-lived API tokens. | ||
| 4. Run the standard and distribution gates from [release-gates.md](release-gates.md). | ||
| 5. Publish the same version that is tagged on GitHub. | ||
| 6. Smoke-test `pipx install github-repo-auditor` or `uv tool install github-repo-auditor`. | ||
|
|
||
| Until that checklist is complete, GitHub Releases remain the supported public | ||
| distribution channel. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,40 @@ | ||
| """Distribution policy checks for the public package surface.""" | ||
|
|
||
| from __future__ import annotations | ||
|
|
||
| import tomllib | ||
| from pathlib import Path | ||
|
|
||
| ROOT = Path(__file__).parent.parent | ||
|
|
||
|
|
||
| def test_pyproject_has_public_package_metadata() -> None: | ||
| with open(ROOT / "pyproject.toml", "rb") as fh: | ||
| project = tomllib.load(fh)["project"] | ||
|
|
||
| assert project["name"] == "github-repo-auditor" | ||
| assert project.get("authors"), "PyPI metadata should include an author entry." | ||
| assert project.get("classifiers"), "PyPI metadata should include classifiers." | ||
| assert project.get("keywords"), "PyPI metadata should include package keywords." | ||
| assert "Documentation" in project.get("urls", {}) | ||
| assert "Changelog" in project.get("urls", {}) | ||
|
|
||
|
|
||
| def test_release_script_requires_explicit_pypi_publish_flag() -> None: | ||
| release_script = (ROOT / "scripts" / "release.sh").read_text() | ||
|
|
||
| assert "PUBLISH_PYPI=false" in release_script | ||
| assert "--publish-pypi" in release_script | ||
| assert 'if [ "$PUBLISH_PYPI" != "true" ]' in release_script | ||
| assert "PyPI publish not requested" in release_script | ||
|
|
||
|
|
||
| def test_distribution_docs_name_supported_public_channel() -> None: | ||
| distribution_doc = (ROOT / "docs" / "distribution.md").read_text() | ||
| readme = (ROOT / "README.md").read_text() | ||
| release_gates = (ROOT / "docs" / "release-gates.md").read_text() | ||
|
|
||
| assert "GitHub Releases remain the supported public" in distribution_doc | ||
| assert "PyPI publishing is not active yet" in distribution_doc | ||
| assert "docs/distribution.md" in readme | ||
| assert "scripts/release.sh --publish-pypi" in release_gates |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
With this commit the file mode changes from
100755to100644, so the documented direct invocation path (scripts/release.sh --publish-pypiin the updated release docs and the script's shebang-based usage) now fails withPermission deniedon a normal checkout. Either keep the helper executable or make all docs/targets consistently invoke it viabash.Useful? React with 👍 / 👎.