The Microsoft Graph Core SDK for Java is available for all manner of contribution. There are a couple of different recommended paths to get contributions into the released version of this SDK.
NOTE A signed a contribution license agreement is required for all contributions, and is checked automatically on new pull requests. Please read and sign the agreement https://cla.microsoft.com/ before starting any work for this repository.
The best way to get started with a contribution is to start a dialog with the owners of this repository. Sometimes features will be under development or out of scope for this SDK and it's best to check before starting work on contribution.
If you are making a change that does not affect the interface components and does not affect other downstream callers, feel free to make a pull request against the main branch. The main branch will be updated frequently.
Revisions of this nature will result in a 0.0.X change of the version number.
If major functionality is being added, or there will need to be gestation time for a change, it should be submitted against the feature branch.
Revisions of this nature will result in a 0.X.X change of the version number.
To support our automated release process, pull requests are required to follow the Conventional Commit format.
Each commit message consists of a header, an optional body and an optional footer. The header is the first line of the commit and MUST have a type (see below for a list of types) and a description. An optional scope can be added to the header to give extra context.
<type>[optional scope]: <short description>
<BLANK LINE>
<optional body>
<BLANK LINE>
<optional footer(s)>
The recommended commit types used are:
- feat for feature updates (increments the minor version)
- fix for bug fixes (increments the patch version)
- perf for performance related changes e.g. optimizing an algorithm
- refactor for code refactoring changes
- test for test suite updates e.g. adding a test or fixing a test
- style for changes that don't affect the meaning of code. e.g. formatting changes
- docs for documentation updates e.g. ReadMe update or code documentation updates
- build for build system changes (gradle updates, external dependency updates)
- ci for CI configuration file changes e.g. updating a pipeline
- chore for miscallaneous non-sdk changesin the repo e.g. removing an unused file
Adding a footer with the prefix BREAKING CHANGE: will cause an increment of the major version.
This project follows the all contributors specification. When making a contribution, please add yourself to the table of contributors:
-
In section 5. of the README.md, after the last "|", copy and paste a new blank contributor element
[<img src="https://avatars.githubusercontent.com/u/<your-uid>?v=4" width="100px;"/><br /> <sub><b>Your Name</b></sub>](your website or github page)<br /> [emoji](link "alt-text") |
You can get your GitHub UID by inspecting your GitHub avatar image.
-
For each contribution type (see emoji key for a list of contribution types), add an emoji and a relevant link and alt-text.
For example, if you write a blogpost on how to use the SDK, you would include:
[??]("https://myblog.com/using-the-java-sdk" "Blog Post")