Thank you for your interest in @spdx/tools.
There is a list of issues for @spdx/tools. We use labels to identify bugs and issues that are good for beginners or particularly small. For bugs, improvements or suggestions, feel free to create a new issue. Please keep the issues small and concise. Issues that aim at solving multiple things at once tend to create lots of problems. For open questions or other discussions, please contact the SPDX working group technical team through its mailing list, [email protected].
If you want to work on an issue, please assign the ticket to yourself or leave a comment on the issue.
For contributing to @spdx/tools, please follow the GitHub flow:
- Select an issue to work on or create a new issue. Assign the issue to yourself. Consider reviewing open pull requests to avoid duplicate work.
- Fork the repository, as described here. Clone the fork to your local machine and make sure to keep the fork in sync with the upstream repository.
- Install all dependencies and create a new branch for your work:
npm install
git checkout -b your-new-feature
- Make your changes and ensure to write tests that cover the new code and functionality.
- Commit the changes to your branch:
git commit --signoff -m "Add new feature"
Please sign off every commit in order to acknowledge that you agree to the Developer Certificate of Origin. 6. Push the changes to your fork:
git push origin your-new-feature
- Create a pull request from your fork to the upstream repository. Make sure that all CI workflows are green. Please reference the fixed issue in the pull request.
We use the testing framework Jest for testing. To run the tests, navigate to the library root and run:
npm run test
We use Rollup for building. To build the library, navigate to the library root and run:
npm run build
Note: To create a new release, you need to be part of the SPDX organization on npm. To create a new release, follow these steps:
- Make sure that the changelog is up to date and that all CI workflows are green.
- Depending on the changes, since the last release, run
npm run major-release
,npm run minor-release
, ornpm run patch-release
. This will create a new release and a new commit and tag with the new version. Note: You do not need to manually update the version inpackage.json
, this is done automatically by the release script. - Push the newly created commit to the remote repository.
- Push the newly created tag to the remote repository with
git push origin <tagname>
.
- SPDX 2.3 specification
- JSON schema
- Yarn plugin that uses this library: yarn-plugin-spdx
- Rollup plugin that uses this library: rollup-plugin-spdx