Instructor Notes

This lesson is a process-oriented tutorial on creating a Python package for Research Software Engineers.

After giving an overview of all the files we’re going to touch (on the index page), it follows the process of creating a package: - Create a new repository (setup), - Create a virtual environment, - Add some code and tests, - Add important metadata files, - Configure the pyproject.toml file with detailed metadata, - Decide on and implement a versioning scheme, - Add automated checks like code linting, - Add continuous integration support, - Publish the package and make it citeable by adding an additional metadata file.

The lesson is intentionally more challenging than an entry-level how-to guide on packaging. At each step when a new concept is introduced, it dives deeper into the detail than a how-to guide would – for instance, we only get to code after setting up an environment and initializing the infrastructure needed for reproducible builds.

Environments and task runners


Code to Package


Other files that belong with your package


Metadata


Versioning


Publishing package and citation


Documentation Overview


Documentation with Sphinx


Documentation with Sphinx


Checks and tests


Task runners


Continuous Integration