build: Remove legacy setup.py and modernize build tooling - #502
Open
kunaaaalcodes wants to merge 1 commit into
Open
build: Remove legacy setup.py and modernize build tooling#502kunaaaalcodes wants to merge 1 commit into
kunaaaalcodes wants to merge 1 commit into
Conversation
Removes the legacy 505-line setup.py now that the project builds with scikit-build-core and CMake, and makes pedalboard/version.py the single source of truth for versioning via dynamic-metadata. Also updates tox.ini to use ruff instead of black/flake8, removes the obsolete ccache wrapper scripts (CMake handles ccache natively), and updates CONTRIBUTING.md to reflect the CMake-based build workflow.
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.
PR Description
Summary
Fixes #470. Completes the build system migration started in #418 (scikit-build-core + CMake) and #458 (version.py as single source of truth) by removing all remaining legacy tooling and updating the documentation to match the modern workflow.
Problem
PR #418 migrated the build system to scikit-build-core + CMake, but the legacy 505-line
setup.pyremained in the repository alongside several files that still referenced outdated tooling:setup.py— dead code; scikit-build-core handles the build entirelyscripts/ccache_g++/scripts/ccache_clang++— obsolete wrapper scripts;CMakeLists.txtalready detects and wires up ccache natively viafind_program(CCACHE_PROGRAM ccache)tox.ini— referencedblackandflake8, which have been replaced byruffin CICONTRIBUTING.md— documented the oldsetup.pyworkflow, ccache wrapper scripts, and a--no-setup-pyflag that no longer exists in pybind11-stubgenSolution
setup.py(505 lines) — confirmed no remaining code references it.scripts/ccache_g++andscripts/ccache_clang++— CMake handles ccache natively; CI configures ccache viaCC/CXXenv vars.pedalboard/version.pythe single source of truth for versioning — removed the hardcodedversion = "0.9.24"frompyproject.toml, addeddynamic = ["version"], and wired up a[[tool.dynamic-metadata]]block using scikit-build-core's built-inregexprovider pointed atversion.py. No new dependencies required.tox.ini— replaced the deadblack/flake8/formatenvs withruffenvs that mirror the CI checks in.github/workflows/all.yml(ruff check pedalboard,ruff format --check pedalboard --diff), and removed the obsolete[flake8]config section.CONTRIBUTING.md— replacedpython3 setup.py build developwithpip install -e . --config-settings=cmake.build-type=Debug, simplified the ccache docs to reflect automatic detection, fixed thesetup.pyreference to point atCMakeLists.txt, and dropped the removed--no-setup-pyflag.Result
pedalboard/version.pyVerification
pyproject.tomlparses as valid TOML[[tool.dynamic-metadata]]entry resolves to the correct version (0.9.24) fromversion.pyusing scikit-build-core's metadata resolutionReferences
version.pythe single source of truth for version. #458 — Make version.py the single source of truth