Developer guide
Getting started
Contributions to this service are welcome.
A contribution can be either be a patch or a minor/major feature. Patches include bugfixes and small changes to the code. Features can either be minor or major developments and can include potentially disruptive changes.
Development cycle
Makefile targets have been included to facilitate easier and more consistent development. The general recipe is as follows:
Depending on the fix type, create a new major/minor/patch branch, e.g.
make patch-branch NAME=some-name
Note that this both creates and checkouts the branch.
Make your changes.
Add your changes to the branch:
git add ...
Either commit the changes manually (if no version increment is needed) or bump the version and commit, entering a commit message when prompted:
make bump-and-commitPush the changes upstream when ready:
make push
Adding a new ingestion backend
To incorporate a new ingestion backend, create a new class derived from the
ingestion.backends.backend.IngestionBackend base class and override the upload and add_metadata_to_existing_file
methods, ensuring that you maintain the base function’s signatures for these methods.
You will also need to amend the srcnet-tools-ingest “binary” and ingestion.ingest.Ingest class constructor to
accommodate the new class, as well as adding an entry to the ingestion.backends.backend.IngestionBackendTypes
enumerator.
Documentation
There is a Makefile target for generating documentation locally:
make docs
but you will need to ensure the necessary sphinx extensions are installed as these are not included in the core requirements.