...
- If you're not familiar with how to package a Python module and and share it on PyPI, get your bearings by reading this guide.
- Write a setup.py for your package.
- Make sure you:
- Indicate a license type, AGPL or Apache (
license
). Link to which license you should use: /wiki/spaces/OPEN/pages/13959332 - Indicate which packages your package requires in order to run (
install_requires
) - Use "edX" as the package author (
author
) - Use "oscm@edx.org" as the package author's email address (
author_email
)
- Indicate a license type, AGPL or Apache (
- A simple example is here.
- If your package includes console scripts, see this example.
- Make sure you:
- Test your setup.py by publishing your package to the PyPI staging server.
- Create an account at https://testpypi.python.org/pypi.
- Follow the instructions in the guide linked above.
- The first upload of your package has to be done manually.
- Get the pypi edX credentials from devops, or ask them Ask Devops to do these steps:
Install twine, build a kit, and upload it:
Code Block pip install twine wheel python setup.py sdist bdist_wheel twine upload -u edX -p Q6GQT_THE_PASSWORD_6H8DF dist/*
- Get the pypi edX credentials from devops, or ask them Ask Devops to do these steps:
- Modify your repo's Travis configuration so that a source distribution and a wheel for your package are published when new tags are pushed to master.
Contact DevOps to get credentials for the edX PyPI accountAsk Devops to add the deploy password to your travis yaml. Use the Travis CI command line client to encrypt the password:
Code Block language bash travis encrypt --add deploy.password
- An example
.travis.yml
is here. - Travis documentation on PyPI deployment.
- To publish a new version of your package to PyPI, update the version in setup.py, then push a corresponding tag to GitHub.
- You're done! Don't forget to update your requirements files so that they install your package from PyPI.
...