2021-08-10 13:44:23 +03:00
# Contributing
2021-07-21 02:03:18 +03:00
This project welcomes contributions and suggestions. Most contributions require you to
agree to a Contributor License Agreement (CLA) declaring that you have the right to,
and actually do, grant us the rights to use your contribution. For details, visit
2021-08-10 13:44:23 +03:00
[https://cla.microsoft.com ](https://cla.microsoft.com ).
2021-07-21 02:03:18 +03:00
When you submit a pull request, a CLA-bot will automatically determine whether you need
to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the
instructions provided by the bot. You will only need to do this once across all repositories using our CLA.
This project has adopted the [Microsoft Open Source Code of Conduct ](https://opensource.microsoft.com/codeofconduct/ ).
For more information see the [Code of Conduct FAQ ](https://opensource.microsoft.com/codeofconduct/faq/ )
or contact [opencode@microsoft.com ](mailto:opencode@microsoft.com ) with any additional questions or comments.
2021-08-18 15:56:53 +03:00
2021-09-21 18:18:31 +03:00
## Submit an Issue
2021-08-18 15:56:53 +03:00
2021-10-11 16:12:47 +03:00
if you wish to contribute to GCToolKit we would kindly ask that you submit an issue to the issue tracker. Doing so will help with the management of the project.
2024-01-02 23:52:02 +03:00
2021-08-25 14:12:59 +03:00
## Build
2021-08-18 15:56:53 +03:00
2024-01-02 23:52:02 +03:00
The build requires JDK 11 and uses the Maven wrapper (`mvnw`) to help ensure reproducible builds and so we don't force you to change your system Maven install. If you prefer to build with your local Maven installation, make sure the version matches the one in the project's [.mvn/wrapper/maven-wrapper.properties ](https://github.com/microsoft/gctoolkit/blob/main/.mvn/wrapper/maven-wrapper.properties ) file. You can also use JDK 17 or 21 by passing in `-Dmaven.compiler.release=<17|21>` as an extra property to any of the `./mvnw` commands below.
2021-08-18 15:56:53 +03:00
2024-01-02 23:52:02 +03:00
* `./mvnw clean` - remove build artifacts
* `./mvnw compile` - compile the source code.
2021-08-18 15:56:53 +03:00
2021-08-25 14:12:59 +03:00
## Test
2021-10-11 16:12:47 +03:00
You can execute test cases with following command.
2021-08-25 14:12:59 +03:00
2024-01-02 23:52:02 +03:00
* `./mvnw test` - run unit tests (this project uses JUnit 5)
2021-08-25 14:12:59 +03:00
## Package
The packaging is vanilla Maven.
2024-01-02 23:52:02 +03:00
* `./mvnw package` - create the binaries.
## Site
The packaging is vanilla Maven.
* `./mvnw site` - create the site with reports on source code analysis etc.
2021-09-01 19:07:53 +03:00
## Deploy / Publish
This is a task performed by the core project maintainers, if you think they're behind or would like to get a release out please raise a GitHub issue.