diff options
Diffstat (limited to 'DEVELOPMENT.rst')
-rw-r--r-- | DEVELOPMENT.rst | 123 |
1 files changed, 123 insertions, 0 deletions
diff --git a/DEVELOPMENT.rst b/DEVELOPMENT.rst new file mode 100644 index 0000000..b350f46 --- /dev/null +++ b/DEVELOPMENT.rst @@ -0,0 +1,123 @@ +Development And Publishing +========================== + +Environment Setup +----------------- + +To create a local virtualenv, run:: + + make setup + +This will create a virtualenv at ``./venv``, install dependencies with pip, +and install pyright using npm. + +To activate the environment in your shell:: + + . ./venv/bin/activate + +Alternately, run everything with the make tasks, which source the activate +script before running commands. + +conda +~~~~~ + +To create a Conda environment, run:: + + conda env create + npm i + +To update the environment, run:: + + conda env update + npm i --update + +To activate the environment, run:: + + conda activate pyee + +The other Makefile tasks should operate normally if the environment is +activated. + +Formatting, Linting and Testing +------------------------------- + +The basics are wrapped with a Makefile:: + + make format # runs black + make lint # runs flake8 + make test # runs pytest + +Generating Docs +--------------- + +Docs for published projects are automatically generated by readthedocs, but +you can also preview them locally by running:: + + make build_docs + +Then, you can serve them with Python's dev server with:: + + make serve_docs + +Publishing +---------- + +Do a Final Check +~~~~~~~~~~~~~~~~ + +Make sure that formatting looks good and that linting and testing are passing. + +Update the Changelog +~~~~~~~~~~~~~~~~~~~~ + +Update the CHANGELOG.rst file to detail the changes being rolled into the new +version. + +Update the Version in setup.py +~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + +This project *used* to use ``vcversioner`` and versioning of the package +would automatically leverage the appropriate git tag, but that is no longer the +case. + +I do my best to follow `semver <https://semver.org>` when updating versions. + +Add a Git Tag +~~~~~~~~~~~~~ + +This project uses git tags to tag versions:: + + git tag -a {version} -m 'Release {version}' + +You don't need to prefix the version with a ``v``. + +Build and Publish +~~~~~~~~~~~~~~~~~ + +To package everything, run:: + + make package + +To publish:: + + make publish + +Push the Tag to GitHub +~~~~~~~~~~~~~~~~~~~~~~ + +:: + + git push origin main --tags + +Check on RTD +~~~~~~~~~~~~ + +RTD should build automatically but I find there's a delay so I like to kick it +off manually. Log into `RTD <https://readthedocs.org>`, log in, then go +to `the pyee project page <https://readthedocs.org/projects/pyee/>` and build +latest and stable. + +Announce on Twitter +~~~~~~~~~~~~~~~~~~~ + +It's not official, but I like to announce the release on Twitter. |