Skip to content

Commit 265d689

Browse files
Fix remote generation usage conflicts (#13)
Locally generating and packaging protovalidate protos in this repo. Fixes: bufbuild/protovalidate#62 --------- Co-authored-by: Philip K. Warren <[email protected]>
1 parent d4a881c commit 265d689

File tree

840 files changed

+286894
-87
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

840 files changed

+286894
-87
lines changed

.gitattributes

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# This is similar to the git option core.autocrlf but it applies to all
2+
# users of the repository and therefore doesn't depend on a developers
3+
# local configuration.
4+
* text=auto
5+
6+
src/main/java/build/buf/validate/**/*.java linguist-generated=true
7+
conformance/src/main/java/build/buf/validate/**/*.java linguist-generated=true

.github/workflows/ci.yaml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,10 @@ jobs:
2424
distribution: 'temurin'
2525
java-version: '17'
2626
cache: 'gradle'
27+
- uses: actions/checkout@v3
28+
- uses: bufbuild/buf-setup-action@v1
29+
with:
30+
github_token: ${{ github.token }}
2731
- name: Lint
2832
run: make lint
2933
- name: Generate

Makefile

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,8 @@ help: ## Describe useful make targets
6060

6161
.PHONY: generate
6262
generate: generate-license ## Regenerate code and license headers
63+
buf generate --template buf.gen.yaml buf.build/bufbuild/protovalidate
64+
buf generate --template conformance/buf.gen.yaml -o conformance/ buf.build/bufbuild/protovalidate-testing
6365

6466
.PHONY: lint
6567
lint: ## Lint code

buf.gen.yaml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
version: v1
2+
managed:
3+
enabled: false
4+
plugins:
5+
- plugin: buf.build/protocolbuffers/java:v23.4
6+
out: src/main/java

build.gradle.kts

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,13 @@ buildscript {
4747
}
4848
}
4949

50+
apply(plugin = "com.diffplug.spotless")
51+
configure<SpotlessExtension> {
52+
java {
53+
targetExclude("src/main/java/build/buf/validate/**/*.java")
54+
}
55+
}
56+
5057
allprojects {
5158
repositories {
5259
mavenCentral()
@@ -120,15 +127,13 @@ mavenPublishing {
120127
dependencies {
121128
annotationProcessor(libs.nullaway)
122129
api(libs.protobuf.java)
123-
api(libs.protovalidate)
124130
implementation(enforcedPlatform(libs.cel))
125131
implementation(libs.cel.core)
126132
implementation(libs.guava)
127133
implementation(libs.jakarta.mail.api)
128134

129135
testImplementation(libs.assertj)
130136
testImplementation(libs.junit)
131-
testImplementation(libs.protovalidate.testing)
132137

133138
errorprone(libs.errorprone)
134139
}

conformance/buf.gen.yaml

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
version: v1
2+
managed:
3+
enabled: true
4+
java_package_prefix: "build"
5+
plugins:
6+
- plugin: buf.build/protocolbuffers/java:v23.4
7+
out: src/main/java

conformance/build.gradle.kts

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import com.diffplug.gradle.spotless.SpotlessExtension
2+
13
plugins {
24
`version-catalog`
35

@@ -27,12 +29,20 @@ tasks {
2729
}
2830
}
2931

32+
apply(plugin = "com.diffplug.spotless")
33+
configure<SpotlessExtension> {
34+
java {
35+
targetExclude("src/main/java/build/buf/validate/**/*.java")
36+
}
37+
}
38+
3039
dependencies {
3140
implementation(project(":"))
3241
implementation(libs.guava)
3342
implementation(libs.protobuf.java)
34-
implementation(libs.protovalidate)
35-
implementation(libs.protovalidate.testing)
43+
44+
implementation(libs.assertj)
45+
implementation(libs.junit)
3646

3747
errorprone(libs.errorprone)
3848
}

conformance/src/main/java/build/buf/Main.java

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -14,16 +14,17 @@
1414

1515
package build.buf;
1616

17-
import build.buf.gen.buf.validate.ValidateProto;
18-
import build.buf.gen.buf.validate.Violations;
19-
import build.buf.gen.buf.validate.conformance.harness.TestConformanceRequest;
20-
import build.buf.gen.buf.validate.conformance.harness.TestConformanceResponse;
21-
import build.buf.gen.buf.validate.conformance.harness.TestResult;
2217
import build.buf.protovalidate.Config;
2318
import build.buf.protovalidate.ValidationResult;
2419
import build.buf.protovalidate.Validator;
2520
import build.buf.protovalidate.exceptions.CompilationException;
2621
import build.buf.protovalidate.exceptions.ExecutionException;
22+
import build.buf.validate.ValidateProto;
23+
import build.buf.validate.Violation;
24+
import build.buf.validate.Violations;
25+
import build.buf.validate.conformance.harness.TestConformanceRequest;
26+
import build.buf.validate.conformance.harness.TestConformanceResponse;
27+
import build.buf.validate.conformance.harness.TestResult;
2728
import com.google.common.base.Splitter;
2829
import com.google.errorprone.annotations.FormatMethod;
2930
import com.google.protobuf.Any;
@@ -88,14 +89,12 @@ static TestResult testCase(
8889
private static TestResult validate(Validator validator, DynamicMessage dynamicMessage) {
8990
try {
9091
ValidationResult result = validator.validate(dynamicMessage);
91-
if (result.getViolations().isEmpty()) {
92+
List<Violation> violations = result.getViolations();
93+
if (violations.isEmpty()) {
9294
return TestResult.newBuilder().setSuccess(true).build();
93-
} else {
94-
return TestResult.newBuilder()
95-
.setValidationError(
96-
Violations.newBuilder().addAllViolations(result.getViolations()).build())
97-
.build();
9895
}
96+
Violations error = Violations.newBuilder().addAllViolations(violations).build();
97+
return TestResult.newBuilder().setValidationError(error).build();
9998
} catch (CompilationException e) {
10099
return TestResult.newBuilder().setCompilationError(e.getMessage()).build();
101100
} catch (ExecutionException e) {

conformance/src/main/java/build/buf/validate/conformance/cases/AnEnum.java

Lines changed: 122 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)