Skip to content

apache/airavata-django-portal-sdk

Airavata Django Portal SDK

Build Status

The Airavata Django Portal SDK provides libraries that assist in developing custom Django app extensions to the Airavata Django Portal.

See the documentation at https://airavata-django-portal-sdk.readthedocs.io/ for more details.

Getting Started

To integrate the SDK with an Airavata Django Portal custom app, add

airavata-django-portal-sdk

to the install_requires list in your setup.cfg or setup.py file. Then reinstall the Django app with

pip install -e .

(see your Airavata Django custom app's README for details)

You can also just install the library with:

pip install airavata-django-portal-sdk

Migrations

django-admin makemigrations --settings=airavata_django_portal_sdk.tests.test_settings airavata_django_portal_sdk

Developing

Setting up dev environment

To generate the documentation, create a virtual environment and then:

source venv/bin/activate
pip install --upgrade pip setuptools wheel
pip install -r requirements-dev.txt

Documentation

mkdocs serve

Running tests

pytest

or

django-admin test --settings airavata_django_portal_sdk.tests.test_settings

or use tox to run the tests in all supported Python environments

tox

Running flake8

flake8 .

Automatically formatting Python code

autopep8 -i -aaa -r .
isort .

Making a new release

  1. Update the version in setup.py

  2. Tag the repo with the same version, with the format v${version_number}. For example, if the version number in setup.py is "1.2" then tag the repo with "v1.2".

    VERSION=...
    git tag -m $VERSION $VERSION
    git push --follow-tags
    
  3. In a clean checkout

    cd /tmp/
    git clone /path/to/airavata-django-portal-sdk/ -b $VERSION
    cd airavata-django-portal-sdk
    python3 -m venv venv
    source venv/bin/activate
    python3 -m pip install --upgrade build
    python3 -m build
    
  4. Push to pypi.org. Optionally can push to test.pypi.org. See https://packaging.python.org/tutorials/packaging-projects/ for more info.

    python3 -m pip install --upgrade twine
    python3 -m twine upload dist/*