-
Notifications
You must be signed in to change notification settings - Fork 302
Labels
choreLinting, formatting, dependency hygiene, or project maintenance choresLinting, formatting, dependency hygiene, or project maintenance chorescicdIssue with CI/CD process (GitHub Actions, scaffolding)Issue with CI/CD process (GitHub Actions, scaffolding)devopsDevOps activities (containers, automation, deployment, makefiles, etc)DevOps activities (containers, automation, deployment, makefiles, etc)triageIssues / Features awaiting triageIssues / Features awaiting triage
Milestone
Description
[CHORE]: Add PyPI package linters to GitHub Actions
Description
Add PyPI packaging quality checks to the python-package.yml
workflow to ensure our distributions are properly built and ready for publishing.
Tasks
- Add
twine check
to validate wheel and sdist metadata - Add
check-manifest
to verify MANIFEST.in completeness - Add
pyroma
to assess package metadata quality - Update python-package.yml workflow to run these checks after build
Implementation
Add new steps after the "Build distributions" step in .github/workflows/python-package.yml
:
# 5️⃣ Install package quality tools
- name: Install package linters
run: |
python3 -m pip install twine check-manifest pyroma
# 6️⃣ Validate wheel/sdist metadata
- name: Check distribution metadata (twine)
run: twine check dist/*
# 7️⃣ Verify MANIFEST.in completeness
- name: Check manifest (check-manifest)
run: check-manifest
# 8️⃣ Assess package quality
- name: Check package quality (pyroma)
run: pyroma -d .
Benefits
- Early detection of packaging issues before PyPI upload
- Ensures all necessary files are included in distributions
- Validates package metadata meets PyPI standards
- Prevents broken releases
References
Metadata
Metadata
Assignees
Labels
choreLinting, formatting, dependency hygiene, or project maintenance choresLinting, formatting, dependency hygiene, or project maintenance chorescicdIssue with CI/CD process (GitHub Actions, scaffolding)Issue with CI/CD process (GitHub Actions, scaffolding)devopsDevOps activities (containers, automation, deployment, makefiles, etc)DevOps activities (containers, automation, deployment, makefiles, etc)triageIssues / Features awaiting triageIssues / Features awaiting triage