👩‍💻 Development

Quick start

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

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

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

python3 -m venv venv

Activate the new virtual environment:

. venv/bin/activate

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.

Testing

The code base includes unit tests. Once you’ve installed the service, you can run the unit tests with the following command (assuming the virtual environment has been activated, see above):

tox py39

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 tag named release/<version number>, and push it to the GitHub origin (https://github.com/NASA-PDS/data-upload-manager.git) to trigger the Actions framework for release. Note that <version number> must be a fully-qualified X.Y.Z version. For example:

git tag --annotate --message "Release 1.2.0" release/1.2.0
git push origin release/1.2.0

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/data-upload-manager 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.