Move OWNERS to be listed here explicitly, since the one in build/soong/compliance is going away. am: 126a7b6d67 am: 7e3a0ee6fc am: 6f62de9f88

Original change: https://android-review.googlesource.com/c/platform/external/spdx-tools/+/2461653

Change-Id: I08e229e16e018b9331b627db3475e6b397fc51ab
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
tree: c86a36ab097e88075a1f7f24324bdf9acd1e42f0
  1. .github/
  2. builder/
  3. docs/
  4. examples/
  5. idsearcher/
  6. json/
  7. licensediff/
  8. rdfloader/
  9. reporter/
  10. spdx/
  11. spdxlib/
  12. test/
  13. testdata/
  14. tvloader/
  15. tvsaver/
  16. utils/
  17. yaml/
  18. .gitignore
  19. CONTRIBUTING.md
  20. go.mod
  21. go.sum
  22. LICENSE
  23. LICENSE.code
  24. LICENSE.docs
  25. MAINTAINERS
  26. METADATA
  27. OWNERS
  28. README.md
  29. RELEASE-NOTES.md
  30. SECURITY.md
README.md

Build Status Coverage Status GitHub release Go Reference CII Best Practices

SPDX tools-golang

tools-golang is a collection of Go packages intended to make it easier for Go programs to work with SPDX® files.

Recent news

2022-01-11: v0.4.0: added support for SPDX v2.3 and YAML, as well as other improvements and bugfixes. See RELEASE-NOTES.md for full details.

What it does

tools-golang currently works with files conformant to versions 2.1 and 2.2 of the SPDX specification, available at: https://spdx.dev/specifications

tools-golang provides the following packages:

  • spdx - in-memory data model for the sections of an SPDX document
  • tvloader - tag-value document loader
  • tvsaver - tag-value document saver
  • rdfloader - RDF document loader
  • json - JSON document parser and writer
  • yaml - YAML document parser and writer
  • builder - builds “empty” SPDX document (with hashes) for directory contents
  • idsearcher - searches for SPDX short-form IDs and builds SPDX document
  • licensediff - compares concluded licenses between files in two packages
  • reporter - generates basic license count report from SPDX document
  • spdxlib - various utility functions for manipulating SPDX documents in memory
  • utils - various utility functions that support the other tools-golang packages

Examples for how to use these packages can be found in the examples/ directory.

What it doesn't do

tools-golang doesn't currently do any of the following:

  • work with files under any version of the SPDX spec prior to v2.1
  • convert between different versions of SPDX documents (e.g., from 2.1 to 2.2)
  • enable applications to interact with SPDX files without needing to care (too much) about the particular SPDX file version

We are working towards adding functionality for all of these. Code contributions are welcome!

Documentation

SPDX tools-golang documentation is available on the pkg.go.dev website at https://pkg.go.dev/github.com/spdx/tools-golang.

Contributors

Thank you to all of the contributors to spdx/tools-golang. A full list can be found in the GitHub repo and in the release notes.

In particular, thank you to the following for major contributions:

JSON parsing and saving support was added by @specter25 as part of his Google Summer of Code 2021 project.

RDF parsing support was added by @RishabhBhatnagar as part of his Google Summer of Code 2020 project.

Licenses

As indicated in LICENSE-code, tools-golang source code files are provided and may be used, at your option, under either:

  • Apache License, version 2.0 (Apache-2.0), OR
  • GNU General Public License, version 2.0 or later (GPL-2.0-or-later).

As indicated in LICENSE-docs, tools-golang documentation files are provided and may be used under the Creative Commons Attribution 4.0 International license (CC-BY-4.0).

This README.md file is documentation:

SPDX-License-Identifier: CC-BY-4.0

Security

For security policy and reporting security issues, please refer to SECURITY.md