Conversation
…e data python -m build builds wheel from sdist, so the wheel force-include was applied twice — once into the sdist and again when building the wheel from the sdist. Removing the sdist force-include lets the build hook handle submodule inclusion for sdist, while the wheel force-include correctly maps it once.
Insert a 'validate' job between build and publish-pypi that installs the built wheel and sdist in separate fresh environments, then runs the full test suite against both. Only if both matrix legs pass does the pipeline proceed to publish. - Sparse-checkout tests/ only (no src/ to avoid shadowing installed pkg) - Override pythonpath= so pytest uses installed package, not source tree - Matrix strategy: wheel and sdist validated in parallel - System deps installed for bleak/bluepy test requirements - Coverage threshold 85% maintained
- Add 'packaging' pytest marker for tests that validate installed package - Mark 5 tests: service/characteristic resolution, YAML presence/loading, UUID roundtrip - Simplify validate job: full checkout, minimal deps (pytest + pytest-asyncio only) - Drop system BLE libraries, coverage, parallel execution from validate - Guard test_connection_managers.py imports with pytest.importorskip(bleak)
post-release generates invalid PEP 440 versions (e.g. 0.2.0.dev4.post1)
when commits exist past a dev-suffixed tag.
no-guess-dev is the documented replacement per setuptools-scm docs:
- On tag: produces exact version (e.g. 0.2.0)
- Past tag: produces {tag}.post1.devN (valid PEP 440)
Also removed fallback_version as it is no longer needed.
tests/docs/conftest.py defines pytest_xdist_auto_num_workers hook which requires pytest-xdist. Since validate only runs -m packaging tests, ignoring these directories avoids loading their plugin-dependent conftest files.
- Add test-core extra (pytest framework deps shared by dev/test/validate) - Add ble extra (BLE client libs shared by test/examples) - dev, test, examples now self-reference shared extras - Validate job uses test-core: lightweight, no playwright/bleak/bluepy - Scope validate pytest to tests/gatt/ (packaging-marked tests only)
45d8b96 to
65e63ef
Compare
bb15c51 to
a444358
Compare
a444358 to
7ba8973
Compare
7ba8973 to
6c6a3f7
Compare
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.
This pull request updates the GitHub Actions workflows and documentation to streamline CI/CD processes, improve clarity, and ensure consistency with recent tooling and project structure changes. The most significant changes include updating the documentation for new release workflows and tool usage, upgrading GitHub Actions dependencies, and aligning configuration and coverage thresholds.
Documentation and Workflow Updates:
Expanded
.github/workflows/README.mdto include details about the new release workflow (release.yml), updated instructions for running tests, linting, and type checking locally, and clarified the use ofruffas the unified linting/formatting tool. Also raised the coverage threshold to 85% and updated terminology for consistency (e.g., "initialise" instead of "initialize"). [1] [2] [3] [4] [5]Added
[tool.hatch.build.targets.sdist.force-include]topyproject.tomlto ensure thebluetooth_sigpackage is included in source distributions, matching the wheel configuration.CI/CD Dependency and Version Updates:
Updated all uses of
actions/cachefrom version 4 to version 5 across workflow files for improved caching performance and support. [1] [2] [3] [4] [5]Updated
dawidd6/action-download-artifactfrom v12 to v16 intest-coverage.ymlfor artifact download steps, ensuring compatibility and access to the latest features. [1] [2]Workflow Logic Corrections:
release.ymlso that thepublish-pypijob now depends on thebuildjob (instead ofpublish-testpypi), aligning with the actual workflow structure.