Confirming a Repo is ready to run on Python 3

The edX Python inventory contains many repos that we suspect are capable of running on python 3 but we don't know for sure because the various indicators that all us to see this are not in place.


Given the list of repos that we think might be ready for python 3, here is how to confirm this fact and what to do next.

First: Take ownership of the review of a repo

Put your name in the Review Owner column (O) of the spreadsheet for an unclaimed repo.

Second: Confirm Python 3 Readiness

  1. Confirm that the test config(.travis.yml) is configured to run tests on python 3.6.
    1. If it is running on python 3.6, look at travis to confirm that tests on 3.6 are passing on master. eg. Go to something like https://travis-ci.org/edx/registrar/branches
      1. If tests are running and passing on master for a python 3.6 environment then do all the steps to update the repo as python 3 ready
    2. If it is running only on older versions(3.4, 3.5, etc)
      1. Make a PR to update the tests to run on python 3.6 instead
      2. If this passes, merge it and then do all the steps to update the repo as python 3 ready.
    3. If no tests are running on python 3.x
      1. Make a note in the inventory spreadsheet and mark the repo as needing follow-up.
      2. Consider updating openedx.yaml to incidate that the repo is not OEP-7 compliant, with a brief reason if applicable.

Third: Update a repo to indicate it's python 3 ready

  1. Update openedx.yaml to indicate that the repo is OEP-7 compliant.
    1. eg. https://github.com/edx/registrar/blob/master/openedx.yaml#L9
  2. If the repo has a setup.py
    1. Update the list of classifiers to include the following classifiers:
      1. "Programming Language :: Python :: 3.6"

      2. "Programming Language :: Python :: 3"
  3. If the repo has a setup.cfg and already has a '[metadata]' section

    1. Update the list of classifiers in the '[metadata]' section to include the following classifier:
      1. "Programming Language :: Python :: 3.6"
      2. "Programming Language :: Python :: 3"