.. _DESC checklist: The DESC CI checklist ===================== Below is our recommended CI checklist for DESC repositories written in Python. Note that ``ci_example_2.yml`` includes the first four points of the checklist and ``ci_example_3.yml`` and ``ci_example_4.yml`` cover all five points. This checklist was last updated January 2023. 1. Test your code using ``ubuntu-20.04``, ``ubuntu-22.04`` and ``macos-latest``. 2. Test your code using ``Python 3.8`` and above. 3. Use ``Flake8`` (or similar tool) to automatically lint and check your code for basic formatting errors. .. tip:: If you are starting a codebase from scratch, try and adhere as best you can to the `PEP 8 `__ coding standard right from the get-go to avoid any programming style clashes down the line. 4. Check the code coverage of your test suite using an automated tool like `pytest `__. .. tip:: Think about uploading your code coverage results to a site like codecov.io and putting a code coverage badge on your repositories front page. 5. If your software package is a dependency for other DESC software, or it builds into a larger DESC pipeline, test your code within the ``desc-python`` *Conda* environment using the *DESC* docker image. .. note:: We understand that setting up the ``desc-python`` environment can be considerably slower than only working with the minimum packages required to operate your code. If this overhead proves to costly, we recommend creating two workflows: (1) a regularly used workflow operating from push and pull requests that only meets the minimum requirements needed to run the code, and (2) a periodically triggered workflow, say once a week, that operates within the ``desc-python`` environment docker container.