Update setuptools configuration to align with PEP 517/518 #780
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.
PEP 517 and PEP 518 outline some ideals for the format of build system configuration.
This PR serves to align Arcade's build system more closely with these PEPs. From an end-user perspective there shouldn't be any noticeable difference. However this should serve to cleanup the development install process and simplify the build system. As well as help serve as an example of good standards for project setup.
The key change here is primarily using the
setup.cfg
file rather than thesetup.py
file, and switching to the pep517 package for building the wheel for distribution.To install the arcade from source after these changes, the below command can be used:
pip install -e "."
Extra package groups can be defined as desired by using:
pip install -e ".[dev, build, docs]"
With this change in order to build the wheel all that's needed(assuming the build package group was defined during install) is:
mkdir dist python -m pep517.build .
This will build the wheel and tar.gz file into the dist directory.
Another change this makes is pinning crucial dependency versions, specifically, pyglet, pillow, pymunk, numpy, pytiled_parser. They are pinned at their current latest versions which is what was previously being installed and tested with. Not having the versions of these packages does not feel safe as at any time breaking changes could be released on them and Arcade would always be installing the latest version from PyPi