Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge develop onto main for 0.3.0 release #75

Open
wants to merge 188 commits into
base: main
Choose a base branch
from
Open

Merge develop onto main for 0.3.0 release #75

wants to merge 188 commits into from

Conversation

amoeba
Copy link
Contributor

@amoeba amoeba commented Aug 10, 2022

This probably doesn't need a code review but I'd recommend testing it out by installing to the dev cluster and reviewing the results from there.

Changes:

  • Upgraded from Python 2 to 3
  • Complete rewrite using a much cleaner codebase and new patterns
  • Restructured code to follow recommended Python packaging guidelines
  • Added a first pass of a CLI for interacting with the service (not done yet)
  • Refactored tests into unit and integration sub-suites. pytest defaults to running just unit and pytest --integration runs all tests.
  • Primary deployment strategy switched from Docker Compose to Kuerbernetes (via Helm). Docker Compose still supported.
  • Rewrote triplification pattern to match Schema.org/Science-on-Schema pattern
  • Added Sphinx documentation
  • GitHub Actions Workflows for
    • Unit tests (pytest)
    • Sphinx documentation build and push to GitHub Actions
  • Container images use ghcr.io instead of Docker Hub

Remaining TODOs before merge:

  • Remove old deploy YAML files
  • Confirm the persistent volume configuration

TODO after merge:

  • Turn on GitHub Pages on this repo to enable the sphinx docs build
  • Tag and create a 0.3.0 Release
  • Decomission slinkythegraph DockerHub account (@ThomasThelen )

mbjones and others added 30 commits March 19, 2021 15:01
Test suite now passes on Python 3.9.1
Port the essential services from Docker to Kubernetes
Add instructions for an authenticated SPARQL endpoint
(Just needed to run out for the day)
The old Interface and Graph classes had a lot of cruft and were really confusing to keep straight. I've done a refactor that uses a different class structure that's a lot easier for me to understand. Hopefully it's easier for you too.

See the README for more info, including a fancy picture, but the Interface class is now wrapped into a top-level SlinkyClient class and the old Graph class is now tied into a SparqlTripleStore class. With the old setup, you had to instantiate an Interface and a Graph. Now you just instantiate a SlinkyClient and you're good to go.

Here's some more detail, copied from the README:

- `SlinkyClient`: Entrypoint class that manages a connection to DataONE, a triple store, and Redis for short-term persistence and delayed jobs
- `FilteredCoordinatingNodeClient`: A view into a Coordinating Node that can limit what content appears to be available based on a Solr query. e.g., a CN client that can only see datasets that are part of a specific EML project or in a particular region
- `SparqlTripleStore`: Handles inserting into and querying a generic SPARQL-compliant RDF triplestore via SPARQL queries. Designed to be used with multiple triple stores.
- `Processor`: Set of classes that convert documents of various formats (e.g., XML, JSON-LD) into a set of RDF statements

The old package code is left in the legacy submodule (to be deleted in the future) and its tests are still alive and working via pytest.
This is pretty basic but you can run this container and hit /get?id=foo to get the Slinky RDF for given DataONE PID.
@amoeba amoeba added this to the 0.3.0 milestone Aug 10, 2022
@amoeba amoeba requested review from mbjones and ThomasThelen August 10, 2022 03:10
@amoeba amoeba self-assigned this Aug 10, 2022
@amoeba amoeba changed the title [WIP] Merge develop onto main for 0.3.0 release Merge develop onto main for 0.3.0 release Aug 13, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants