airavata-django-portal-sdk

Apache Airavata Django Portal SDK

APACHE-2.0 License

Downloads
1.4K
Stars
0
Committers
2

Airavata Django Portal SDK

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/*