This repository is part of the Find Case Law project at The National Archives. For more information on the project, check the documentation.
This is an API Client for connecting to Marklogic for The National Archive's Caselaw site.
This package is published on PyPI: https://pypi.org/project/ds-caselaw-marklogic-api-client/
You can find documentation of the client class and available methods here.
To run the test suite:
poetry install
poetry run pytest
There are also some smoketests in smoketests.py
which run against a MarkLogic database but do not run in CI currently.
To run them locally you can set the environment variables as detailed in the file in a .env
file or just hardcode them in, as long as you don't commit those changes to the repo.
And then run
poetry run pytest smoketest.py
To start with when running this, we have been choosing to point to the staging MarkLogic to have more confidence that the setup is a good representation of production as opposed to a local MarkLogic instance but that can work too.
Eventually we will make it so that we run these tests in CI and probably point to a dedicated testing MarkLogic instance so we don't get conflicts with people using staging for manual testing.
When making a change, update the changelog using the Keep a Changelog 1.0.0 format. Pull requests should not be merged before any relevant updates are made.
When making a new release, update the changelog in the release pull request.
The package will only be released to PyPI if the branch is tagged. A merge to main alone will not trigger a release to PyPI.
To create a release:
- Update the version number in
pyproject.toml
- Create a branch
release/v{major}.{minor}.{patch}
- Update
CHANGELOG.md
for the release - Commit and push
- Open a PR from that branch to main
- Get approval on the PR
- Merge the PR to main and push
- Tag the merge commit on
main
withv{major}.{minor}.{patch}
and push the tag - Create a release in Github releases using the created tag
If the release fails to push to PyPI, you can delete the tag with git pull
, git push --delete origin v1.2.3
and try again.