Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

  1. If you're not familiar with how to package a Python JS module and and share it on PyPINPM, get your bearings by reading this guide.
  2. Write a setup.py for your package.
    1. Make sure you:
      1. Indicate a license type, AGPL or Apache (license). Link to which license you should use: /wiki/spaces/OPEN/pages/13959332
      2. Indicate which packages your package requires in order to run (install_requires)
      3. Use "edX" as the package author (author)
      4. Use "oscm@edx.org" as the package author's email address (author_email)
    2. A simple example is here.
    3. If your package includes console scripts, see this example.
  3. Test your setup.py by publishing your package to the PyPI staging server.
    1. Create an account at https://testpypi.python.org/pypi.
    2. Follow the instructions in the guide linked above.
  4. The first upload of your package has to be done manually.
  5. Get the pypi edX credentials from devops, or ask them to do these steps
  6. 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/*
    their docs.
  7. 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 mastertagging a release results in a publish to npmjs.
    1. Contact DevOps to get

      credentials

      publish tokens for the edX

      PyPI

      NPMJS account. Use the Travis CI command line client to encrypt the

      password

      token

      Code Block
      languagebash
      travis encrypt --add deploy.password
      An example .travis.yml is here.
      api_key NPMTOKEN


    2. There are two options here, using the Stages feature of Travis (studio-frontend) or using Travis' simple built-in deploy
    3. Travis documentation on PyPI NPM deployment.
  8. To publish a new version of your package to PyPI, update the version in setup.py, then push a corresponding tag to GitHub.
  9. You're done! Don't forget to update your requirements webpack files so that they install your download the new package from PyPINPM.


Info

Find your package at https://pypi.python.org/pypi/[package-name]/[version]

...