This Contributing Guide is intended for those that would like to contribute to Micrometer Tracing.
If you would like to use any of the published Micrometer Tracing modules as a library in your project, you can instead include the Micrometer Tracing artifacts from the Maven Central repository using your build tool of choice.
See our Contributor Code of Conduct.
Contributions come in various forms and are not limited to code changes. The Micrometer Tracing community benefits from contributions in all forms.
For example, those with Micrometer Tracing knowledge and experience can contribute by:
- Contributing documentation
- Answering Stackoverflow questions
- Answering questions on the Micrometer slack
- Share Micrometer Tracing knowledge in other ways (e.g. presentations, blogs)
The remainder of this document will focus on guidance for contributing code changes. It will help contributors to build, modify, or test the Micrometer Tracing source code.
Contributions in the form of source changes require that you fill out and submit the Contributor License Agreement if you have not done so previously.
The Micrometer Tracing source code is hosted on GitHub at https://github.com/micrometer-metrics/tracing. You can use a Git client to clone the source code to your local machine.
Micrometer Tracing targets Java 8 but requires JDK 11 or later to build.
The Gradle wrapper is provided and should be used for building with a consistent version of Gradle.
The wrapper can be used with a command, for example, ./gradlew check
to build the project and check conventions.
This repository should be imported as a Gradle project into your IDE of choice.
Specific modules or a test class can be run from your IDE for convenience.
The Gradle check
task depends on the test
task, and so tests will be run as part of a build as described previously.
Run ./gradlew pTML
to publish a Maven-style snapshot to your Maven local repo. The build automatically calculates
the "next" version for you when publishing snapshots.
These local snapshots can be used in another project to test the changes. For example:
repositories {
mavenLocal()
}
dependencies {
implementation 'io.micrometer:micrometer-tracing:latest.integration'
}