[ ] This PR addresses an already opened issue (for bug fixes / features)
This PR fixes issue #xyz
[x] Tests for the changes have been added (for bug fixes / features)
[x] Documentation has been added / updated (for bug fixes / features)
[x] HISTORY.rst has been updated (with summary of main changes)
[x] I have added my relevant user information to AUTHORS.md
What kind of change does this PR introduce?:
New Features
clisops has adopted PEP 517 and PEP 621 and now uses pyproject.toml files (using the flit backend) for package configuration.
Metadata has been modified to reflect current development status and scope of CLISOPS.
New file (requirements_upstream.txt) and Makefile recipe ("$ make upstream") for tracking and easily installing upstream dependencies.
Bug Fixes
The tests folder has been flattened and namespace files haves been removed in order to prevent pip from recognizing the folder as its own package.
The contribution guidelines were duplicated in two locations and contained conflicting information. The guidelines have now been consolidated into a single location and updated to reflect package changes.
Other Changes
GitHub Workflows for pure Python builds now use tox (4.0) to run tests.
GitHub Workflows for conda builds now test clisops using the mamba-org/setup-micromamba action.
The travis.yml file has been removed.
Does this PR introduce a breaking change?:
For developers, yes. The development tooling has changed slightly to better support the new structure. CLISOPS now uses flit, a mature PEP 517-compliant packaging library. wheel and twine are no longer needed and no longer installed. The requirements.txt, requirements_dev.txt, and MANIFEST.in are built into the pyproject.toml file. The contributing documentation notes the differences.
For users, no. CLISOPS can still be installed using $ pip install clisops. All existing behaviours of the library functions are untouched. Metadata is much more accurate.
Other information:
In order to prevent $ pip install clisops from also installing tests (i.e. import tests), I needed to flatten the folder structure, as including namespace identifiers (__init__.py) was causing the issue. All existing tests should function as normally, including those reliant on private testing data.
I noticed there were some missing authors so, as an added goodie, I also added a first_pull_request.yml workflow to remind new contributors to add their names to the AUTHORS.rst.
Pull Request Checklist:
AUTHORS.md
What kind of change does this PR introduce?:
New Features
clisops
has adopted PEP 517 and PEP 621 and now usespyproject.toml
files (using theflit
backend) for package configuration.requirements_upstream.txt
) and Makefile recipe ("$ make upstream"
) for tracking and easily installing upstream dependencies.Bug Fixes
tests
folder has been flattened and namespace files haves been removed in order to preventpip
from recognizing the folder as its own package.Other Changes
tox
(4.0) to run tests.clisops
using themamba-org/setup-micromamba
action.travis.yml
file has been removed.Does this PR introduce a breaking change?:
For developers, yes. The development tooling has changed slightly to better support the new structure. CLISOPS now uses flit, a mature PEP 517-compliant packaging library.
wheel
andtwine
are no longer needed and no longer installed. Therequirements.txt
,requirements_dev.txt
, andMANIFEST.in
are built into thepyproject.toml
file. The contributing documentation notes the differences.For users, no. CLISOPS can still be installed using
$ pip install clisops
. All existing behaviours of the library functions are untouched. Metadata is much more accurate.Other information:
In order to prevent
$ pip install clisops
from also installingtests
(i.e.import tests
), I needed to flatten the folder structure, as including namespace identifiers (__init__.py
) was causing the issue. All existing tests should function as normally, including those reliant on private testing data.I noticed there were some missing authors so, as an added goodie, I also added a
first_pull_request.yml
workflow to remind new contributors to add their names to theAUTHORS.rst
.