Project: Easegress (Orchestration & Management / API Gateway)
File: CONTRIBUTING.md

Welcome to the Easegress contributing guide. Are you looking for help or a way to create bug tickets or discuss new potential features? Perhaps you want to fix a typo in the documentation or are you interested in getting involved in the project? You can find answers to these questions and how to contribute to Easegress in this document. If you have not already, please check the and the Easegress . If you dont find an answer to your problem, you can ask your question at or in other community channels. Do you want to suggest an idea for the project? Use this Feature request to describe your idea. There are many scenarios when you could open an issue, including: Feature request Feature proposal (new filter, new object) Feature design Bug found Performance issues Help wanted Documentation out of date Test improvement Any questions on project Please describe clearly and explicitly your issue. Try to add as many details as you can. You can follow the instructions in the issue ticket to ensure that the issue contains enough background: https://github.com/megaease/easegress/issues/new/choose All contributions to Easegress are welcome! It does not necessary need to be coding; you can also contribute without coding by Reporting a bug Helping other members of the community at Slack channel Fixing a typo in the code Fixing a typo in the documentation Providing your feedback on the proposed features and designs Reviewing Pull Requests Contributing code, like bug fixes or new features are equally encouraged! Easegress accepts proposals for new Filters and new Objects or any other useful code changes. Heres incomplete list of possible code contributions: New Filter New Object New feature (other than filter or object) Fixing a bug in the code Code refactoring Performance improvement New unit test or improvement of existing test If youre unsure, whether your code contribution will be beneficial, open a ticket or ask in Slack. You can check the to understand the high level architecture and Filter and Object extensions of Easegress. For any code or documentation change, please read the following Pull request guide. For coding standards, refer to the . When contributing to Easegress, its good idea to follow these steps: If there is no issue yet, create an issue of the fix or improvement Fork the repository and clone your fork: `git clone https://github.com/<yourusername>/easegress.git` Track the upstream remote `git remote add upstream https://github.com/megaease/easegress.git` Create your branch, for example `git checkout -b fix/<micro-title>-<issue-number>` Do your changes and commit them `git commit -am '<descriptive-message>'` Rebase latest changes from upstream remote. `git checkout main` `git pull --rebase origin main` `git pull --rebase upstream main` `git checkout <your-branch>` `git rebase main` Push your changes to your branch. `git push -f origin <your-branch>` You can now open PR. Add a description for your PR. For code changes, remember to add unit tests. Before opening PR, you can use Makefile entries (`make fmt`, `make test`, `make integration_test`) to run unit tests and formatting. CI runs Revive code analysis that you can install and execute locally following .