👩‍💻 Development

Quick start

To obtain a copy of the code and work on a new branch:

git clone https://github.com/NASA-PDS/doi-service.git
git checkout -b "<issue number>_<issue name>"

Create a virtual environment in venv using Python 3.9 or later:

python3 -m venv venv

Install the package and its dependencies for development into the virtual environment:

pip install --editable '.[dev]'

At this point, the command line tools are now available in venv/bin as explained in usage.

Note

“Activating” the virtual environment is deprecated, as per the Python philosophy of “explict > implicit”. Instead, invoke the commands directly in venv/bin

Testing

The code base includes both unit and integration tests. Once you’ve installed the service, you can run the unit tests with the following command:

venv/bin/tox py39

You can run the integration tests with:

venv/bin/behave

Making Releases

Releases are done on GitHub and PyPI. This is implemented through the CI/CD framework using GitHub Actions on the main branch. To trigger a release via the CI/CD framework, create a branch named release/<version number>, and push it to the GitHub origin (https://github.com/NASA-PDS/doi-service.git) to trigger the Actions framework for release, for example:

git checkout -b release/1.2
git push --set-upstream origin release/1.2

From there, the Actions framework will determine an appropriate patch version number, tag and build a release, and push it to PyPI.

Contribute

Clone the repo from : https://github.com/NASA-PDS/doi-service and then submit a pull request for your branch when complete. At least one PDS Engineering Node developer must approve the request before it is merged.