|
| 1 | +# <a name="contributing">Contributing Overview</a> |
| 2 | +Please do! Thanks for your help improving the project! :balloon: |
| 3 | + |
| 4 | +All contributors are welcome. Please see the [newcomers welcome guide](https://layer5.io/community/newcomers) for how, where and why to contribute. This project is community-built and welcomes collaboration. Contributors are expected to adhere to our [Code of Conduct](.CODE_OF_CONDUCT.md). |
| 5 | + |
| 6 | +Not sure where to start? First, see the [newcomers welcome guide](https://docs.google.com/document/d/17OPtDE_rdnPQxmk2Kauhm3GwXF1R5dZ3Cj8qZLKdo5E/edit). Grab an open issue with the [help-wanted label](../../labels/help%20wanted) and jump in. Join the [Slack account](http://slack.layer5.io) and engage in conversation. Create a [new issue](/../../issues/new/choose) if needed. All [pull requests](/../../pulls) should reference an open [issue](/../../issues). Include keywords in your pull request descriptions, as well as commit messages, to [automatically close issues in GitHub](https://help.github.com/en/github/managing-your-work-on-github/closing-issues-using-keywords). |
| 7 | + |
| 8 | +**Sections** |
| 9 | +- <a name="contributing">General Contribution Flow</a> |
| 10 | + - <a href="#commit-signing">Developer Certificate of Origin</a> |
| 11 | + |
| 12 | +Relevant coding style guidelines are the Go Code Review Comments and the Formatting and style section of Peter Bourgon's Go: Best Practices for Production Environments. |
| 13 | + |
| 14 | +# <a name="contributing">General Contribution Flow</a> |
| 15 | + |
| 16 | +In order to contribute to Meshery, please follow the fork-and-pull request workflow described [here](./CONTRIBUTING-gitflow.md). |
| 17 | + |
| 18 | +## <a name="commit-signing">Signing-off on Commits (Developer Certificate of Origin)</a> |
| 19 | + |
| 20 | +To contribute to this project, you must agree to the Developer Certificate of |
| 21 | +Origin (DCO) for each commit you make. The DCO is a simple statement that you, |
| 22 | +as a contributor, have the legal right to make the contribution. |
| 23 | + |
| 24 | +See the [DCO](https://developercertificate.org) file for the full text of what you must agree to |
| 25 | +and how it works [here](https://github.com/probot/dco#how-it-works). |
| 26 | +To signify that you agree to the DCO for contributions, you simply add a line to each of your |
| 27 | +git commit messages: |
| 28 | + |
| 29 | +``` |
| 30 | +Signed-off-by: Jane Smith <jane.smith@example.com> |
| 31 | +``` |
| 32 | + |
| 33 | +In most cases, you can add this signoff to your commit automatically with the |
| 34 | +`-s` or `--signoff` flag to `git commit`. You must use your real name and a reachable email |
| 35 | +address (sorry, no pseudonyms or anonymous contributions). An example of signing off on a commit: |
| 36 | +``` |
| 37 | +$ commit -s -m “my commit message w/signoff” |
| 38 | +``` |
| 39 | + |
| 40 | +To ensure all your commits are signed, you may choose to add this alias to your global ```.gitconfig```: |
| 41 | + |
| 42 | +*~/.gitconfig* |
| 43 | +``` |
| 44 | +[alias] |
| 45 | + amend = commit -s --amend |
| 46 | + cm = commit -s -m |
| 47 | + commit = commit -s |
| 48 | +``` |
| 49 | +Or you may configure your IDE, for example, Visual Studio Code to automatically sign-off commits for you: |
| 50 | + |
| 51 | +<a href="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" ><img src="https://user-images.githubusercontent.com/7570704/64490167-98906400-d25a-11e9-8b8a-5f465b854d49.png" width="50%"><a> |
| 52 | + |
| 53 | +## <a name="contributing-docs">Documentation Contribution Flow</a> |
| 54 | +Please contribute! Layer5 documentation uses Jekyll and GitHub Pages to host docs sites. Learn more about [Layer5's documentation framework](https://docs.google.com/document/d/17guuaxb0xsfutBCzyj2CT6OZiFnMu9w4PzoILXhRXSo/edit?usp=sharing). The process of contributing follows this flow: |
| 55 | + |
| 56 | +1. Create a fork, if you have not already, by following the steps described [here](./CONTRIBUTING-gitflow.md) |
| 57 | +1. In the local copy of your fork, navigate to the docs folder. |
| 58 | +`cd docs` |
| 59 | +1. Create and checkout a new branch to make changes within |
| 60 | +`git checkout -b <my-changes>` |
| 61 | +1. Edit/add documentation. |
| 62 | +`vi <specific page>.md` |
| 63 | +1. Run site locally to preview changes. |
| 64 | +`make site` |
| 65 | +1. Commit, [sign-off](#commit-signing), and push changes to your remote branch. |
| 66 | +`git push origin <my-changes>` |
| 67 | +1. Open a pull request (in your web browser) against the repo. |
| 68 | + |
| 69 | + |
| 70 | +#### Tests |
| 71 | +Users can now test their code on their local machine against the CI checks implemented using `make run-tests`. |
| 72 | + |
| 73 | +To test code changes on your local machine, run the following command: |
| 74 | +``` |
| 75 | +make run-tests |
| 76 | +``` |
| 77 | + |
| 78 | +#### Building Docker image |
| 79 | +To build a Docker image of the project, please ensure you have `Docker` installed to be able to build the image. Now, run the following command to build the Docker image: |
| 80 | +```sh |
| 81 | +make docker |
| 82 | +``` |
| 83 | + |
| 84 | +### UI Lint Rules |
| 85 | + |
| 86 | +Layer5 uses ES-Lint to maintain code quality & consistency in our UI Code. |
| 87 | + |
| 88 | +# <a name="maintaining"> Reviews</a> |
| 89 | +All contributors are invited to review pull requests. See this short video on [how to review a pull request](https://www.youtube.com/watch?v=isLfo7jfE6g&feature=youtu.be). |
| 90 | + |
| 91 | +# New to Git? |
| 92 | +Resources: https://lab.github.com and https://try.github.com/ |
| 93 | + |
| 94 | +### License |
| 95 | + |
| 96 | +This repository and site are available as open source under the terms of the [Apache 2.0 License](https://opensource.org/licenses/Apache-2.0). |
| 97 | + |
| 98 | +### About Layer5 |
| 99 | + |
| 100 | +**Community First** |
| 101 | +<p>The <a href="https://layer5.io/community">Layer5 community</a> represents the largest collection of service mesh projects and their maintainers in the world.</p> |
| 102 | + |
| 103 | +**Open Source First** |
| 104 | +<p>At Layer5, we champion developer-defined infrastructure, giving engineers the power to reshape application delivery. We empower operators in reimagining how they manage modern infrastructure: collaboratively.</p> |
0 commit comments