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.