Skip to content

Build improvements - #7

Merged
mattkjames7 merged 28 commits into
mainfrom
build-improvements
Apr 15, 2026
Merged

Build improvements#7
mattkjames7 merged 28 commits into
mainfrom
build-improvements

Conversation

@mattkjames7

@mattkjames7 mattkjames7 commented Apr 13, 2026

Copy link
Copy Markdown
Owner
  • Linting of Python files.
  • Use CMake build of submodules.
  • Modify workflows to build and test wheels for Python versions 3.10 - 3.14.
  • Use manylinux build.
  • Add pyproject.toml.
  • Workflow to release binaries built in CI.
  • Bump version to 1.5.0.

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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.py to pyproject.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.

Comment thread JupiterMag/Tools/Timer.py Outdated
Comment thread JupiterMag/Tools/Python.py Outdated
Comment thread JupiterMag/_CppLib.py Outdated
Comment thread JupiterMag/TraceField.py Outdated
Comment thread .github/workflows/ci.yml
Comment thread JupiterMag/Internal/Test.py Outdated
@mattkjames7
mattkjames7 merged commit 8fa18a4 into main Apr 15, 2026
20 checks passed
@mattkjames7
mattkjames7 deleted the build-improvements branch April 15, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants