Hello There! Thank you very much for taking some time for contributing to Microgateway.
This will provide you the required guidelines for contributing to Microgateway
If you find an issue with the product, first search through the existing issues to find if the issue is already reported. If your issue is not already reported, fill the project issue template and submit a new issue. Be kind enough to provide all the details you can provide, when submitting your issue.
Not sure where to find a good issue to work on for the first time?
We mark issues with good first issue
label so that starters can easily find their way in to contributing.
Visit good first issue
label, read through the issues and select one for you to work on.
After selecting the issue, communicate that to others by adding a comment. Before starting to work on the issue, discuss your plan/approach with project maintainers.
Then follow Contributing with code section.
If you are familiar with the project and its technologies, you no longer need to check good first issue
. Browse through all open issues and pick one to work on. Check issues in help wanted
label, where we prioritize issues we need help from you.
We've two diffent components,
- Toolkit - Handles creating projects, importing APIs, building the project, etc...
- Runtime - Run the gateway by taking toolkit build artifact as input
Toolkit is implemented with java and Runtime is implemented with ballerina-lang. Code for toolkit can be found in micro-gateway-cli component. Code for runtime is in micro-gateway-core component. Also we've a small utility component based on Go-lang located at micro-gateway-tools
- JDK 8
- Maven 3(Tested on 3.6.0)
- Go
- IntelliJ IDEA or VSCode (Ballerina plugins currently support these two IDEs)
Pick the correct component from above. Go through the component code and find where you should add your solution. Implement it and use maven command mvn clean install
to build the product.
- Add remote debug configuration to your IDE.
- Run required micro-gw command with
--java.debug <debug_port>
parameter. All tooklit commands accept this dev parameter allowing developers to debug java code.
Ex: micro-gw init --java.debug 5005
- Follow the contribution guidelines.
- Run the build with tests before submitting your PR.
- Be polite and respectful when communicating with others.