Skip to content

The software tools and data necessary for generating the Information Model including PDS4 ontology, data, and information model.

License

Notifications You must be signed in to change notification settings

NASA-PDS/pds4-information-model

Repository files navigation

πŸͺ NASA PDS4 Information Model Repo

DOI πŸ€ͺ Unstable integration & delivery 😌 Stable integration & delivery

The software tools and data necessary for generating the Information Model including PDS4 ontology, data, and information model.

Please visit our website at https://nasa-pds.github.io/pds4-information-model/ for information about the modules that comrpise the information model.

πŸ‘₯ Contributing

Within the NASA Planetary Data System, we value the health of our community as much as the code. Towards that end, we ask that you read and practice what's described in these documents:

  • Our contributor's guide delineates the kinds of contributions we accept.
  • Our code of conduct outlines the standards of behavior we practice and expect by everyone who participates with our software.

πŸ“€ Installation

Installation instructions are broken into sections for operational and development installations.

Operational

For operational installation of LDDTool, see the deployed documentation for installation instructions: https://nasa-pds.github.io/pds4-information-model/model-lddtool/install/index.html

Development

For development installation, use maven:

$ # Package the software
$ mvn clean package

$ # Generate the site (must run package first)
$ mvn site:site site:stage

$ # To view generated docs
$ open target/staging/model/index.html

Testing

Tests are ran using Cucumber and Maven.

Running Tests

# Package the software
mvn clean package

# Run Cucumber tests
mvn clean test

Adding New Tests

To add additional tests:

  • Create a directory within the resources directory and place your test data there
  • In either the developer or integration feature file, add your test case to the table under Examples. For example,
| testName | resourceDirectory    | testDirectory | commandArgs | expectedResponse |
| "NASA-PDS/pds4-information-model#738 LDDTool is not creating valid URL for KPLO" | "src/test/resources" | "github738"   | "-lpJ {resourceDirectory}/{testDirectory}/PDS4_KPLO_IngestLDD.xml" | "0 error(s)"     |

Update Site Documentation

To update the site documentation, see each components src/site directory (this is common for all Java Maven software):

Component Site Directory Online Documentation
Top-level Page src/site https://nasa-pds.github.io/pds4-information-model/
LDDTool model-lddtool/src/site https://nasa-pds.github.io/pds4-information-model/model-lddtool/
DMDocument model-dmdocument/src/site https://nasa-pds.github.io/pds4-information-model/model-dmdocument/
Ontology model-ontology/src/site https://nasa-pds.github.io/pds4-information-model/model-ontology/

Detect Secrets

The Planetary Data System's Engineering Node uses detect-secrets, specifically a version forked by the SLIM Team, called slim-detect-secrets. This tool replaces Git Secrets but serves the same purpose: it helps prevent committing information to a repository that should remain secret. Unlike Git Secrets, though, the kinds of secrets detect-secrets finds includes not just passwords or API keys, but also hostnames and email addresses. It also uses entropy analysis to detect randomized strings that could be passwords.

To install, see the wiki. To update a new .secrets.baseline file, run the custom script in the repo to generate the secrets. https://github.com/NASA-PDS/pds4-information-model/tree/main/bin. This is needed because there are numerous additional files that should be ignored in this repo.

πŸ’β€β™€οΈ Usage

See the deployed documentation for usage details for the various components: https://nasa-pds.github.io/pds4-information-model/

πŸ‘₯ Contributing

Please see the contribution guidelines but also be sure to see our code of conduct.

πŸ”’ Versioning

We use the SemVer philosophy for versioning this software.

πŸ“ƒ License

The project is licensed under the Apache version 2 license.