feat: build package #5
Merged
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.
🚀 Add Automated Deployment Workflow to PyPI
Description
This pull request introduces a comprehensive GitHub Actions workflow (
.github/workflows/deployment.yml) to automate the testing, building, and deployment of thescikit-samplinglibrary.The new workflow establishes a full Continuous Integration and Continuous Deployment (CI/CD) pipeline, ensuring that every change is validated and that releases to PyPI are seamless and reliable.
Workflow Breakdown
The workflow is composed of several sequential jobs that run on
ubuntu-22.04and leverage the high-performanceuvtool for all package management tasks:pre-commit:main.pre-commit run --all-filesto enforce code style, formatting, and other quality checks across the entire repository.tests:main.pytestsuite, including coverage checks, to ensure the library's functionality is correct and to prevent regressions.build:mainbranch, afterpre-commitandtestshave passed successfully.sdist) and wheel (.whl) usinguv buildand archives them as artifacts.deploy:buildon themainbranch.uv publish. This step is protected and requires theUV_PUBLISH_TOKENsecret, ensuring that only authorized changes tomainresult in a new release.Benefits
mainpasses both linting and all tests before a release is even considered.This workflow is a critical step in professionalizing the project's development and release cycle.