An open API service indexing awesome lists of open source software.

https://github.com/nasa-pds/ldd-manager

tools and software needed for managing PDS4 Sub-Models (formerly known as Data Dictionaries)
https://github.com/nasa-pds/ldd-manager

Last synced: 3 months ago
JSON representation

tools and software needed for managing PDS4 Sub-Models (formerly known as Data Dictionaries)

Awesome Lists containing this project

README

          

# PDS4 Local Data Dictionary Management

This repo contains tools and software needed for managing PDS4 Local Data Dictionaries

## Prerequisites

Python 3.13.

## User Quickstart

Install with:

pip install pds.ldd-manager

To execute, run:

ldd-generate --help
ldd-validate --help
ldd-release --help

## Code of Conduct

All users and developers of the NASA-PDS software are expected to abide by our [Code of Conduct](https://github.com/NASA-PDS/.github/blob/main/CODE_OF_CONDUCT.md). Please read this to ensure you understand the expectations of our community.

## Development

To develop this project, use your favorite text editor, or an integrated development environment with Python support, such as [PyCharm](https://www.jetbrains.com/pycharm/).

### Contributing

For information on how to contribute to NASA-PDS codebases please take a look at our [Contributing guidelines](https://github.com/NASA-PDS/.github/blob/main/CONTRIBUTING.md).

### Documentation

Your project should use [Sphinx](https://www.sphinx-doc.org/en/master/) to build its documentation. PDS' documentation template is already configured as part of the default build. You can build your projects docs with:

sphinx-build -b html docs/source docs/build

You can access the build files in the following directory relative to the project root:

docs/build/index.html

## Build

pip install build
python3 -m build .

## Publication

NASA PDS packages can publish automatically using the [Roundup Action](https://github.com/NASA-PDS/roundup-action), which leverages GitHub Actions to perform automated continuous integration and continuous delivery. A default workflow that includes the Roundup is provided in the `.github/workflows/unstable-cicd.yaml` file. (Unstable here means an interim release.)

### Manual Publication

Create the package:

pip install build
python3 -m build .

Publish it as a Github release.

Publish on PyPI (you need a PyPI account and configure `$HOME/.pypirc`):

pip install twine
twine upload dist/*

Or publish on the Test PyPI (you need a Test PyPI account and configure `$HOME/.pypirc`):

pip install twine
twine upload --repository testpypi dist/*

## CI/CD

The template repository comes with our two "standard" CI/CD workflows, `stable-cicd` and `unstable-cicd`. The unstable build runs on any push to `main` (± ignoring changes to specific files) and the stable build runs on push of a release branch of the form `release/`. Both of these make use of our GitHub actions build step, [Roundup](https://github.com/NASA-PDS/roundup-action). The `unstable-cicd` will generate (and constantly update) a SNAPSHOT release. If you haven't done a formal software release you will end up with a `v0.0.0-SNAPSHOT` release (see NASA-PDS/roundup-action#56 for specifics).