Migrate to spotless (#1748)
* Use spotless for formatting / license check * Apply formatting * README * Apply to example * google-java-format 1.8 for now * google-java-format 1.7 for now (last supporting Java 8)
This commit is contained in:
parent
eb4a18febc
commit
ed169645f7
|
|
@ -14,28 +14,29 @@ Make sure to review the projects [license](LICENSE) and sign the
|
||||||
[CNCF CLA](https://identity.linuxfoundation.org/projects/cncf). A signed CLA will be enforced by an
|
[CNCF CLA](https://identity.linuxfoundation.org/projects/cncf). A signed CLA will be enforced by an
|
||||||
automatic check once you submit a PR, but you can also sign it after opening your PR.
|
automatic check once you submit a PR, but you can also sign it after opening your PR.
|
||||||
|
|
||||||
|
## Checks
|
||||||
|
|
||||||
|
Before submitting a PR, you should make sure the style checks and unit tests pass. You can run these
|
||||||
|
with the `check` task.
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./gradlew check
|
||||||
|
```
|
||||||
|
|
||||||
## Style guideline
|
## Style guideline
|
||||||
|
|
||||||
We follow the [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html).
|
We follow the [Google Java Style Guide](https://google.github.io/styleguide/javaguide.html).
|
||||||
Our build will fail if source code is not formatted according to that style.
|
Our build will fail if source code is not formatted according to that style. To fix any
|
||||||
|
style failures the above [checks](#checks) show, automatically apply the formatting with
|
||||||
|
|
||||||
|
```bash
|
||||||
|
$ ./gradlew spotlessApply
|
||||||
|
```
|
||||||
|
|
||||||
To verify code style manually run the following command,
|
To verify code style manually run the following command,
|
||||||
which uses [google-java-format](https://github.com/google/google-java-format) library:
|
which uses [google-java-format](https://github.com/google/google-java-format) library:
|
||||||
|
|
||||||
`./gradlew verifyGoogleJavaFormat`
|
`./gradlew spotless`
|
||||||
|
|
||||||
or on Windows
|
|
||||||
|
|
||||||
`gradlew.bat verifyGoogleJavaFormat`
|
|
||||||
|
|
||||||
Instead of fixing style inconsistencies by hand, you can run gradle task `googleJavaFormat`
|
|
||||||
to automatically fix all found issues:
|
|
||||||
|
|
||||||
`./gradlew googleJavaFormat`
|
|
||||||
|
|
||||||
or on Windows
|
|
||||||
|
|
||||||
`gradlew.bat googleJavaFormat`
|
|
||||||
|
|
||||||
### Pre-commit hook
|
### Pre-commit hook
|
||||||
To completely delegate code style formatting to the machine,
|
To completely delegate code style formatting to the machine,
|
||||||
|
|
@ -43,11 +44,10 @@ you can add [git pre-commit hook](https://git-scm.com/docs/githooks).
|
||||||
We provide an example script in `buildscripts/pre-commit` file.
|
We provide an example script in `buildscripts/pre-commit` file.
|
||||||
Just copy or symlink it into `.git/hooks` folder.
|
Just copy or symlink it into `.git/hooks` folder.
|
||||||
|
|
||||||
|
|
||||||
### Editorconfig
|
### Editorconfig
|
||||||
As additional convenience for IntelliJ Idea users, we provide `.editorconfig` file.
|
As additional convenience for IntelliJ Idea users, we provide `.editorconfig` file.
|
||||||
Idea will automatically use it to adjust its code formatting settings.
|
Idea will automatically use it to adjust its code formatting settings.
|
||||||
It does not support all required rules, so you still have to run `googleJavaFormat` from time to time.
|
It does not support all required rules, so you still have to run `spotlessApply` from time to time.
|
||||||
|
|
||||||
### Javadoc
|
### Javadoc
|
||||||
|
|
||||||
|
|
|
||||||
2
Makefile
2
Makefile
|
|
@ -19,7 +19,7 @@ init-git-submodules:
|
||||||
|
|
||||||
.PHONY: verify-format
|
.PHONY: verify-format
|
||||||
verify-format:
|
verify-format:
|
||||||
./gradlew verGJF
|
./gradlew spotlessCheck
|
||||||
|
|
||||||
.PHONY: publish-snapshots
|
.PHONY: publish-snapshots
|
||||||
publish-snapshots:
|
publish-snapshots:
|
||||||
|
|
|
||||||
23
build.gradle
23
build.gradle
|
|
@ -1,5 +1,5 @@
|
||||||
plugins {
|
plugins {
|
||||||
id "com.github.sherter.google-java-format" apply false
|
id "com.diffplug.spotless" version "5.6.1"
|
||||||
id "com.jfrog.artifactory" apply false
|
id "com.jfrog.artifactory" apply false
|
||||||
id "com.jfrog.bintray" version "1.8.4" apply false // Need *specific* version.
|
id "com.jfrog.bintray" version "1.8.4" apply false // Need *specific* version.
|
||||||
id "net.ltgt.errorprone" apply false
|
id "net.ltgt.errorprone" apply false
|
||||||
|
|
@ -137,7 +137,7 @@ configure(opentelemetryProjects) {
|
||||||
apply plugin: 'signing'
|
apply plugin: 'signing'
|
||||||
apply plugin: 'jacoco'
|
apply plugin: 'jacoco'
|
||||||
|
|
||||||
apply plugin: 'com.github.sherter.google-java-format'
|
apply plugin: 'com.diffplug.spotless'
|
||||||
apply plugin: 'net.ltgt.errorprone'
|
apply plugin: 'net.ltgt.errorprone'
|
||||||
|
|
||||||
repositories {
|
repositories {
|
||||||
|
|
@ -299,8 +299,11 @@ configure(opentelemetryProjects) {
|
||||||
|
|
||||||
jacoco { toolVersion = "0.8.5" }
|
jacoco { toolVersion = "0.8.5" }
|
||||||
|
|
||||||
googleJavaFormat {
|
spotless {
|
||||||
toolVersion = '1.7'
|
java {
|
||||||
|
googleJavaFormat("1.7")
|
||||||
|
licenseHeaderFile rootProject.file('buildscripts/spotless.license.java'), '(package|import|class|// Includes work from:)'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
configurations {
|
configurations {
|
||||||
|
|
@ -363,17 +366,7 @@ configure(opentelemetryProjects) {
|
||||||
addBooleanOption('Xdoclint:all,-missing', true)
|
addBooleanOption('Xdoclint:all,-missing', true)
|
||||||
}
|
}
|
||||||
|
|
||||||
afterEvaluate { // Allow subproject to add more source sets.
|
afterEvaluate {
|
||||||
tasks.googleJavaFormat {
|
|
||||||
source = sourceSets*.allJava
|
|
||||||
include '**/*.java'
|
|
||||||
}
|
|
||||||
|
|
||||||
tasks.verifyGoogleJavaFormat {
|
|
||||||
source = sourceSets*.allJava
|
|
||||||
include '**/*.java'
|
|
||||||
}
|
|
||||||
|
|
||||||
jar {
|
jar {
|
||||||
inputs.property("moduleName", moduleName)
|
inputs.property("moduleName", moduleName)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,4 +0,0 @@
|
||||||
^/\*$
|
|
||||||
^ \* Copyright (The OpenTelemetry|\d\d\d\d(-\d\d)?, Guava) Authors$
|
|
||||||
^ \* SPDX-License-Identifier: Apache-2.0$
|
|
||||||
^ \*/$
|
|
||||||
|
|
@ -20,12 +20,6 @@
|
||||||
|
|
||||||
<property name="severity" value="error"/>
|
<property name="severity" value="error"/>
|
||||||
|
|
||||||
|
|
||||||
<module name="RegexpHeader">
|
|
||||||
<property name="headerFile" value="${rootDir}/buildscripts/checkstyle.license"/>
|
|
||||||
<property name="fileExtensions" value="java"/>
|
|
||||||
</module>
|
|
||||||
|
|
||||||
<property name="fileExtensions" value="java, properties, xml"/>
|
<property name="fileExtensions" value="java, properties, xml"/>
|
||||||
<!-- Checks for whitespace -->
|
<!-- Checks for whitespace -->
|
||||||
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
<!-- See http://checkstyle.sf.net/config_whitespace.html -->
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,3 @@
|
||||||
#!/usr/bin/env sh
|
#!/usr/bin/env sh
|
||||||
|
|
||||||
./gradlew googleJavaFormat
|
./gradlew spotlessApply
|
||||||
|
|
@ -0,0 +1,5 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
|
@ -1,6 +1,5 @@
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.github.sherter.google-java-format' apply false
|
id "com.diffplug.spotless"
|
||||||
id "com.jfrog.artifactory" apply false
|
|
||||||
}
|
}
|
||||||
|
|
||||||
subprojects {
|
subprojects {
|
||||||
|
|
@ -8,7 +7,7 @@ subprojects {
|
||||||
apply plugin: 'java'
|
apply plugin: 'java'
|
||||||
apply plugin: 'java-library'
|
apply plugin: 'java-library'
|
||||||
apply plugin: 'idea'
|
apply plugin: 'idea'
|
||||||
apply plugin: 'com.github.sherter.google-java-format'
|
apply plugin: 'com.diffplug.spotless'
|
||||||
|
|
||||||
group = "io.opentelemetry"
|
group = "io.opentelemetry"
|
||||||
version = "0.1.0-SNAPSHOT"
|
version = "0.1.0-SNAPSHOT"
|
||||||
|
|
@ -29,10 +28,11 @@ subprojects {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
googleJavaFormat {
|
spotless {
|
||||||
toolVersion = '1.7'
|
java {
|
||||||
|
googleJavaFormat("1.7")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
compileJava.dependsOn(verifyGoogleJavaFormat)
|
|
||||||
|
|
||||||
//create a single Jar with all dependencies
|
//create a single Jar with all dependencies
|
||||||
task fatJar(type: Jar) {
|
task fatJar(type: Jar) {
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,6 @@
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
plugins {
|
plugins {
|
||||||
id 'com.github.sherter.google-java-format' version "0.8"
|
id "com.diffplug.spotless" version "5.6.1"
|
||||||
id "com.jfrog.artifactory" version "4.13.0"
|
|
||||||
id 'com.google.protobuf' version '0.8.8'
|
id 'com.google.protobuf' version '0.8.8'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,3 +1,9 @@
|
||||||
|
/*
|
||||||
|
* Copyright The OpenTelemetry Authors
|
||||||
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
*/
|
||||||
|
|
||||||
|
// Includes work from:
|
||||||
/*
|
/*
|
||||||
* Copyright 2010, Guava Authors
|
* Copyright 2010, Guava Authors
|
||||||
* SPDX-License-Identifier: Apache-2.0
|
* SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
|
||||||
|
|
@ -1,8 +1,8 @@
|
||||||
pluginManagement {
|
pluginManagement {
|
||||||
plugins {
|
plugins {
|
||||||
|
id "com.diffplug.spotless" version "5.6.1"
|
||||||
id "com.github.ben-manes.versions" version "0.20.0"
|
id "com.github.ben-manes.versions" version "0.20.0"
|
||||||
id "com.github.kt3k.coveralls" version "2.0.1"
|
id "com.github.kt3k.coveralls" version "2.0.1"
|
||||||
id 'com.github.sherter.google-java-format' version "0.8"
|
|
||||||
id "com.google.protobuf" version "0.8.8"
|
id "com.google.protobuf" version "0.8.8"
|
||||||
id "com.jfrog.artifactory" version "4.13.0"
|
id "com.jfrog.artifactory" version "4.13.0"
|
||||||
id "io.morethan.jmhreport" version "0.9.0"
|
id "io.morethan.jmhreport" version "0.9.0"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue