Temporary disable all workflows except wheels#401
Open
Conversation
9239acc to
f431eca
Compare
7dd10a9 to
f001bd7
Compare
Extract static dependency preparation into a reusable builder and wire CI to
reuse downloaded archives across jobs/platforms. This reduces duplicated build
logic, improves maintainability, and speeds up wheel/sdist workflows.
- Introduce `build_support/lib_xmlsec_dependency_builder.py`:
- Centralize dependency version resolution, source/archive download, extract,
and build steps for OpenSSL, zlib, libiconv, libxml2, libxslt, and xmlsec1.
- Support both Unix and Windows dependency preparation paths.
- Preserve cross-compilation handling via `CrossCompileInfo` (now a dataclass).
- Expose resolved library versions for callers.
- Add `build_libs_xmlsec.py` CLI:
- Provide a standalone entrypoint to prepare dependencies.
- Support `--download-only`, custom `--libs-dir`, custom `--buildroot`,
and target platform/plat-name overrides.
- Refactor `build_support/static_build.py`:
- Delegate dependency preparation to `LibXmlsecDependencyBuilder`.
- Keep extension configuration focused on platform-specific compiler/linker
flags and include/lib wiring.
- Preserve static-link behavior while removing duplicated dependency logic.
- Update `build_support/build_ext.py`:
- Initialize build flags (`PYXMLSEC_ENABLE_DEBUG`, `PYXMLSEC_STATIC_DEPS`,
`PYXMLSEC_OPTIMIZE_SIZE`) in `__init__`.
- Keep build flow unchanged, but use the refactored static helper path.
- Modernize packaging metadata:
- Move project metadata from `setup.py` into PEP 621 fields in
`pyproject.toml` (`[project]`, `[project.urls]`, `[tool.setuptools]`).
- Simplify `setup.py` to extension setup only.
- Delete legacy `setup.cfg`.
- Relax build-system pins and align build requirements with setuptools_scm>=8.
- Bump `ruff[format]` in `requirements-test.txt` to `0.14.4`.
- Add reusable dependency-cache workflow:
- New `.github/workflows/cache_libs.yml` workflow_call job that downloads and
caches `libs/*.{xz,gz,zip}` per OS/arch/version inputs.
- Export cache/version outputs for downstream jobs.
- Validate expected Windows archive filenames.
- Rework wheel/manylinux CI to consume cached libs:
- `manylinux.yml` now depends on `cache_libs`, restores cache, and runs build
+ test inside container via new script
`.github/scripts/manylinux_build_and_test.sh`.
- Script sets `PYTHONPATH` and `PYXMLSEC_LIBS_DIR` explicitly so isolated PEP
517 builds can import local helpers and reuse cached archives.
- `wheels.yml` now depends on `cache_libs`, restores cache before
cibuildwheel, updates action versions, and refreshes matrix generation
(`generate_wheels_matrix`) including ARM Linux runner mapping.
- `sdist.yml` installs `setuptools_scm>=8` during build deps setup.
- Minor workflow hygiene updates:
- Normalize formatting and small ordering/conditional tweaks in
`linuxbrew.yml` and `macosx.yml`.
f001bd7 to
f1d8dab
Compare
There was a problem hiding this comment.
Pull request overview
This PR modernizes the Python packaging configuration by migrating from setup.py/setup.cfg to PEP 621-compliant pyproject.toml, refactors build tooling into a reusable dependency builder, and introduces a workflow caching system. Despite the title "Temporary disable all workflows except wheels," all workflows remain active.
Changes:
- Migrated package metadata from setup.py/setup.cfg to pyproject.toml using PEP 621 standards
- Refactored static dependency building into a standalone LibXmlsecDependencyBuilder class with CLI tool
- Added cache_libs.yml workflow to pre-download and cache library dependencies across builds
- Updated GitHub Actions workflows with dependency caching and manylinux containerized builds
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 9 comments.
Show a summary per file
| File | Description |
|---|---|
| pyproject.toml | Migrated all package metadata to PEP 621 format; added project URLs pointing to xmlsec org; configured setuptools_scm>=8 |
| setup.py | Simplified to only define extension module; removed all metadata (now in pyproject.toml); changed to relative paths |
| setup.cfg | Completely removed; functionality migrated to pyproject.toml |
| requirements-test.txt | Updated ruff from 0.13.0 to 0.14.4 |
| build_support/static_build.py | Refactored to delegate dependency building to LibXmlsecDependencyBuilder; simplified from 282 to 116 lines |
| build_support/lib_xmlsec_dependency_builder.py | New 401-line module extracting dependency building logic; supports download-only mode; includes platform-specific version defaults |
| build_support/build_ext.py | Moved instance variable initialization to init; added type hints |
| build_libs_xmlsec.py | New CLI tool for downloading/building dependencies outside main build process |
| .github/workflows/cache_libs.yml | New reusable workflow for caching library dependencies across platforms |
| .github/workflows/wheels.yml | Updated actions versions; added cache_libs dependency; switched to ARM runner labels for aarch64 |
| .github/workflows/manylinux.yml | Refactored to use cache_libs workflow; moved build/test into containerized script |
| .github/workflows/sdist.yml | Minor formatting and dependency updates |
| .github/workflows/macosx.yml | Formatting improvements; reordered codecov step |
| .github/workflows/linuxbrew.yml | Formatting improvements only |
| .github/scripts/manylinux_build_and_test.sh | New shell script to run manylinux builds inside containers |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
b846125 to
bcfe41d
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.
No description provided.