Build improvements - #7
Merged
Merged
Conversation
There was a problem hiding this comment.
Pull request overview
This PR modernizes the project’s build/release pipeline around pyproject.toml + scikit-build-core, adds repo linting checks, and updates CI to build distributable wheels (including manylinux) across multiple Python versions while bumping the package version to 1.5.0.
Changes:
- Migrate packaging from
setup.pytopyproject.toml(scikit-build-core/CMake) and update docs/manifests accordingly. - Add CI workflows to build/release wheels across Python 3.10–3.14 (manylinux for Linux) and introduce repo-wide Black/Flake8 checks as tests.
- Reformat/clean up Python code and test-data generation scripts; bump version to
1.5.0.
Reviewed changes
Copilot reviewed 56 out of 59 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
| update-submodules.sh | Removed legacy submodule update helper script. |
| setup.py | Removed legacy setuptools-based build script in favor of pyproject.toml. |
| pyproject.toml | Defines scikit-build-core build configuration and project metadata for v1.5.0. |
| MANIFEST.in | Prunes build artifacts and excludes Python bytecode/cache files from sdist. |
| README.md | Updates installation/build instructions for wheels/sdist and toolchain requirements. |
| scripts/build-manylinux-wheel.sh | Adds a local helper to build/repair manylinux wheels via Docker. |
| .flake8 | Adds flake8 configuration and per-file ignores to support repo linting. |
| .github/workflows/ci.yml | Builds wheels for 3.10–3.14 across Linux/macOS/Windows and runs tests conditionally. |
| .github/workflows/release.yml | Adds workflow to tag, build artifacts via CI, create GitHub release, and publish to (Test)PyPI. |
| tests/test_linting.py | Adds pytest-based Black and Flake8 checks for the repository. |
| tests/common.py | Minor formatting and trailing-comma adjustments in shared test helpers. |
| tests/tracefield/test_tracefield_data.py | Removes stray blank line (formatting). |
| tests/modelfield/test_modelfield_wrapper.py | Removes stray blank line (formatting). |
| tests/modelfield/test_modelfield_data.py | Adjusts import ordering and adds noqa for E402. |
| tests/modelfield/test_common_helper_config_safety.py | Adds noqa for E402 on delayed import. |
| tests/internal/test_internal_field_behavior.py | Reformats a long assert for readability. |
| tests/internal/test_internal_data.py | Removes blank line and refactors case-id formatting. |
| tests/internal/test_internal_config.py | Removes stray blank line (formatting). |
| tests/coordconv/test_coordconv_data.py | Removes stray blank line (formatting). |
| tests/con2020/test_con2020_data.py | Removes stray blank line (formatting). |
| tests/con2020/test_con2020_config.py | Minor formatting tweak in teardown call. |
| tests/con2020/test_con2020_aliases.py | Removes stray blank line (formatting). |
| tests/savedata/savedata.py | Cleans unused imports and reformats function call layout. |
| tests/savedata/save_trace_data.py | Cleans unused imports, adds noqa for E402, and reformats generated JSON structures. |
| tests/savedata/save_modelfield_data.py | Adds noqa for E402 and reformats test input/output structures. |
| tests/savedata/save_internal_data.py | Adds noqa for E402 and reformats config lists / JSON output. |
| tests/savedata/save_coordconv_data.py | Fixes float literal style and reformats JSON output structures. |
| tests/savedata/save_con2020_data.py | Adds noqa for E402 and reformats config generation / JSON output. |
| JupiterMag/init.py | Bumps __version__ to 1.5.0 and minor formatting. |
| JupiterMag/Globals.py | Normalizes ModulePath formatting. |
| JupiterMag/ct.py | Reformats ctypes helpers and docstrings; normalizes spacing. |
| JupiterMag/_ptr2D.py | Reformats pointer helper to Black-compatible style. |
| JupiterMag/_CFunctions.py | Reformats ctypes argtypes and imports for readability. |
| JupiterMag/_CppLib.py | Refactors native library discovery/loading logic across OSes. |
| JupiterMag/ModelField.py | Reformats docstring and call to native wrapper for consistency. |
| JupiterMag/TraceField.py | Large-scale reformatting of TraceField implementation and docstrings. |
| JupiterMag/Tools/init.py | Reformats imports. |
| JupiterMag/Tools/Timer.py | Reformats timing helper and docstrings. |
| JupiterMag/Tools/Python.py | Reformats docstring (partial timer stub). |
| JupiterMag/Tools/PlotJupiter.py | Reformats plotting helpers and docstrings. |
| JupiterMag/Tools/GetLegendHandLab.py | Reformats legend helper; retains broad exception handling. |
| JupiterMag/Tools/TestTrace.py | Reformats example trace plotting helpers. |
| JupiterMag/Tools/TestPigtail.py | Reformats example pigtail plotting helper. |
| JupiterMag/Tools/JupiterOval.py | Reformats static oval coordinate arrays for readability. |
| JupiterMag/Internal/init.py | Reformats exports. |
| JupiterMag/Internal/_ReadTestPos.py | Reformats file read helper. |
| JupiterMag/Internal/_CFunctions.py | Reformats ctypes bindings for internal model. |
| JupiterMag/Internal/Field.py | Reformats internal field wrapper function. |
| JupiterMag/Internal/Config.py | Reformats internal config get/set logic and docstrings. |
| JupiterMag/Internal/Test.py | Reformats plotting test utilities and timing helpers. |
| JupiterMag/CoordConv/init.py | Minor formatting. |
| JupiterMag/CoordConv/SIIItoMag.py | Reformats coordinate conversion helper and docstring. |
| JupiterMag/CoordConv/MagtoSIII.py | Reformats coordinate conversion helper and docstring. |
| JupiterMag/Con2020/_ReadTestData.py | Reformats Con2020 test-data reader. |
| JupiterMag/Con2020/_CFunctions.py | Reformats ctypes bindings for Con2020 model. |
| JupiterMag/Con2020/Field.py | Reformats Con2020 field wrapper function. |
| JupiterMag/Con2020/Config.py | Reformats Con2020 config get/set logic and docstrings. |
| JupiterMag/Con2020/Test.py | Reformats Con2020 plotting test utilities. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
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.
Uh oh!
There was an error while loading. Please reload this page.