Growing our open source
We're always open to accepting patches, feature upgrades, and adapters that can make our open source software better. To make contributions, 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:
Our Corporate CLA
Our 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 repositories.

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:
If you added a contributor by mistake, you can remove them in a comment with:
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 outside reviewers, but a review by Spruce is still the condition of acceptance.

Code of Conduct

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