Contributing

Getting Started#

We'd love to accept your patches, feature upgrades, and adapters that can make DIDKit, Credible, and/or ssi compatible with other SSI systems and legacy systems. To make contributions like these, there are just a few small guidelines you need to follow.

Contributor License Agreement#

Contributions to Spruce's OS projects must be accompanied by a Contributor License Agreement. (Don't worry about signing a CLA just for documentation bugs and requests, those are not licensed the same way as our software releases).

By signing a "CLA", you (and/or your employer) retain all copyrights to your contribution; this simply gives us permission to use and redistribute your contributions as part of the project and, if necessary, update the project's licensing without having to track down all contributors for explicit consent.

Please note that there are two distinct contributor agreements: a Corporate CLA and an Individual CLA. If your employment contract gives blanket or scoped control and ownership of your contributions to your employer (as almost all do in the modern software industry), the corporate contributor agreement is recommended. Please check with your employer, counsel, or HR staff if you have any questions about what you are signing or on whose behalf. Do not sign an individual CLA unless you are certain it does not contradict a pre-existing contract with your employer.

You generally only need to submit a CLA to Spruce once, so if you've already submitted one (even if it was for a different Spruce project), you don't need to do it again. Within two business days of being received, the submitted github handle(s) will be added to the allowlist for all our repos.

Attribution Requirement#

If you are not the sole contributor to a contribution (pull request), please identify all contributors in the pull request comment.

To add a contributor (other than yourself, that's automatic), mark them one per line as follows:

+@github_username If you added a contributor by mistake, you can remove them in a comment with:

-@github_username

If you are making a pull request on behalf of someone else but you had no part in designing the feature, you can remove yourself with the above syntax. This updates the list of contributors to a given PR that must be checked against the CLA signees list to be accepted.

Code Reviews#

All submissions, including submissions by full-time Spruce employees, require review. We use GitHub pull requests for this purpose. Consult GitHub Help for more information on using pull requests. You may tag oustide reviewers additionally, but review by Spruce is still the condition of acceptance.

Code of Conduct#

All our OS projects follows Spruce's overall Code of Conduct.