Contributing Guidelines
November 14, 2017 ยท View on GitHub
Contributions are always welcome; however, it's helpful to read this document in its entirety before submitting a Pull Request, reporting a bug, or submitting a feature request.
Table of Contents
- Getting Started
- Reporting a bug
- Security disclosure
- Feature requests
- Opening a pull request
- Code of Conduct
- License
- Contributor license agreement
Getting Started
Torus' goal is to make it simple for any developers to securely store, share, and organize application secrets and configuration without having to understand cryptography, private key management, or other setup and configure complicated on-premise solutions.
We're always looking for feature ideas and contributers! Please, don't hesitate to open an issue or pull request, we'd love to work with you to better Torus.
Development Workflow
To get started as a contributor you'll need to have the following installed and configured:
- The latest version of Go
- An appropriately configured
$GOPATH(e.g.~/go) - A clone of the
torus-clirepository at$GOPATH/src/github.com/manifoldco/torus-cli - The
makeutility available on your system
Once done, you can install all of the required bootstrapping utilies required to build and test Torus using the make bootstrap command inside your torus-cli checkout.
Now, you can build the torus binary by running make binary, the tests and linters with make ci, and just the test with make test.
Getting Involved
Looking to contribute to Torus but not sure what to tackle? We've labelled all of the ready issues with help wanted. For those just looking to get their feet wet we've labelled bite sized issues with good first issue.
Have an idea but an issue doesn't exist or it's not labelled with help wanted? No problem, feel free to kick off the conversation by suggesting a possible solution or by opening a pull request!
If you ever need help, don't hesitate to ask!
Reporting a Bug
Think you've found a bug? Let us know by opening an issue in our tracker and applying the "bug" label!
Security disclosure
Security is a top priority for us. If you have encountered a security issue please responsibly disclose it by following our security disclosure document.
Before submitting
Make sure you're on the latest version, your bug may have already been fixed! You can consult our change log for high-level notes on recent versions.
Finally, search our issue tracker for your problem, someone may have already reported it. If so, please add your unique situation as a comment, any and all information helps us resolve it as quickly as possible!
Things to include
- Clear, reproducible steps to encounter the bug
- Current system state from
torus debug - Relevant logs from
~/.torus/daemon.log
Labels
If you've encountered a bug please ensure to assign the bug label!
Feature Requests
Torus is ever-evolving, and that's thanks to user feedback. If you have an idea for a feature, let us know by opening an issue or pull request!
Things to include
- How the tool operates today.
- Why the current functionality is problematic
- Use cases for the new functionality
- If possible a proposal (or pull request :)) for how the problem could be solved to kick off discussing solutions!
Opening a Pull Request
To contribute, fork torus-cli, commit your changes, and open a pull request.
You may be asked to make changes to your submission during the review process, we'll work with you on figuring out how to get your pull request ready to be merged and if any changes need to be made.
Before submitting
- Run the tests using
make testand linters usingmake lint - Review the manual QA guide
- Test your change thoroughly with unit tests where appropriate
- If you're adding a new command or modifying the behaviour of a command please ensure to update the relevant documentation in the
docsfolder. - Don't forget to add a relevant line to the CHANGELOG.md!
Continuous Integration
All pull requests are run against our continuous integration suite on Travis CI through a docker container. You can build this docker container locally via make docker and then run the full CI suite inside the container using make docker-test.
Body
- Supply examples of command behaviour (command output, daemon logs, etc)
- Explain why your particular changes were made the way they are
- Reference the issue your request closes in the body of the PR with
Closes #
Code of Conduct
All community members are expected to adhere to our code of conduct.
License
Manifold's torus-cli is released under the BSD 3-Clause License.
Contributor license agreement
For legal purposes all contributors must sign a contributor license agreement, either for an individual or corporation, before a pull request can be accepted.
You will be prompted to sign the agreement by CLA Assistant (bot) when you open a Pull Request for the first time.