Repository navigation
feat(package): PyPI packaging standardization and automated OIDC release workflow - #19
Merged
Merged
Conversation
…, and project urls
…installation guide
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Summary
dynamic = ["version"]inpyproject.tomltargetingsrc/stride/__init__.pyas the authoritative source of truth.keywordsand populated[project.urls]navigation tables (Homepage, Documentation, Repository, Issues, Changelog).README.mdwith absolute URLs to ensure correct rendering onpypi.org, and added PyPI badges along with PyPI quickstart installation instructions.CHANGELOG.mdfollowing Semantic Versioning and Keep a Changelog specifications for release 0.1.0..github/workflows/release.ymlfor PyPI and TestPyPI publishing via OpenID Connect (OIDC) Trusted Publishing (pypa/gh-action-pypi-publish), including automated distribution build verification viatwine check --strictand a TestPyPI smoke testing job.Motivation
Prepares STRIDE for public release on the Python Package Index (PyPI) under the package name
stride-xai, establishing reproducible build validation and credential-free OIDC publishing automation. Resolves #10.Key Changes
1. Packaging & Metadata (
pyproject.toml)versionto dynamic configuration (dynamic = ["version"]).[project.urls]) and search keywords.buildandtwineto[project.optional-dependencies] dev.2. Documentation & Assets (
README.md,CHANGELOG.md)assets/pipeline.pngto an absolute raw GitHub URL.pip install stride-xaiand optional extras in the Installation section.CHANGELOG.mddocumenting features for version0.1.0.3. CI/CD Release Automation (
.github/workflows/release.yml)workflow_dispatch).buildbackend.twine check --strict.pypa/gh-action-pypi-publish@release/v1for bothtestpypiandpypienvironments.4. Agent Context Maintenance (
.agents/project_context.md)Verification
python -m build) succeeded with clean sdist and wheel artifacts containingsrc/stride/py.typedtwine check --strict dist/*passed with zero warnings or errorsruff check .passed with 0 errorsruff format --check .passed cleanly across 106 filespython -m unittest discover testspassed with 28 tests passing and 0 failures