From 519021c6847bbae666eff86f6099b14b6949bc2f Mon Sep 17 00:00:00 2001 From: Mudit Chaudhary Date: Wed, 12 Mar 2025 16:38:01 +0000 Subject: [PATCH 1/3] adds Zig Version validation in build.gradle Signed-off-by: Mudit Chaudhary --- CedarJava/build.gradle | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/CedarJava/build.gradle b/CedarJava/build.gradle index ef81c444..512a4ad2 100644 --- a/CedarJava/build.gradle +++ b/CedarJava/build.gradle @@ -124,8 +124,28 @@ tasks.register('installCargoZigbuild', Exec) { commandLine 'cargo', '+' + RustVersion, 'install', 'cargo-zigbuild@0.19.7' } +def ZigVersion = '0.11' +tasks.register('validateZigVersion') { + group = 'Build' + description = 'Validates that the correct zig version is installed' + + doLast { + def output = new ByteArrayOutputStream() + exec { + commandLine 'zig', 'version' + standardOutput = output + } + def version = output.toString().trim() + println "Detected Zig version: ${version}" + if (!version.startsWith(ZigVersion)) { + throw new GradleException("Zig version must be ${ZigVersion} but found: ${version}") + } + println "Zig version validation successful" + } +} + tasks.register('compileFFI') { - dependsOn('installCargoZigbuild') + dependsOn('installCargoZigbuild', 'validateZigVersion') group 'Build' description 'Compiles Foreign Function Interface libraries.' exec { From cbbb4891a203d2380b027dd6084130a59e7bdc1e Mon Sep 17 00:00:00 2001 From: Mudit Chaudhary Date: Wed, 12 Mar 2025 19:53:38 +0000 Subject: [PATCH 2/3] validates ZigVersion only on publish Signed-off-by: Mudit Chaudhary --- CedarJava/build.gradle | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/CedarJava/build.gradle b/CedarJava/build.gradle index 512a4ad2..d0a4da70 100644 --- a/CedarJava/build.gradle +++ b/CedarJava/build.gradle @@ -145,7 +145,7 @@ tasks.register('validateZigVersion') { } tasks.register('compileFFI') { - dependsOn('installCargoZigbuild', 'validateZigVersion') + dependsOn('installCargoZigbuild') group 'Build' description 'Compiles Foreign Function Interface libraries.' exec { @@ -272,6 +272,7 @@ java { /* Configures Maven publishing */ +publish.dependsOn('validateZigVersion') publishing { publications { mavenJava(MavenPublication) { From 620254ea3386dd0d7fd46805c1134331dd6b70e3 Mon Sep 17 00:00:00 2001 From: Mudit Chaudhary Date: Wed, 12 Mar 2025 21:54:24 +0000 Subject: [PATCH 3/3] updates CHANGELOG Signed-off-by: Mudit Chaudhary --- CedarJava/CHANGELOG.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/CedarJava/CHANGELOG.md b/CedarJava/CHANGELOG.md index fd16ae48..dc1fe4b7 100644 --- a/CedarJava/CHANGELOG.md +++ b/CedarJava/CHANGELOG.md @@ -2,6 +2,10 @@ ## Unreleased ### Added +* Added Zig version validation for publishing artifacts [#306](https://github.com/cedar-policy/cedar-java/pull/306) + +## 4.3.0 +### Added * Introduced new model classes for improved type safety and functionality: * `com.cedarpolicy.model.Context` - Policy context representation (will replace `Map`) [#286](https://github.com/cedar-policy/cedar-java/pull/286) * `com.cedarpolicy.model.entity.Entities` - Entity collection management (will replace `Set`) [#293](https://github.com/cedar-policy/cedar-java/pull/293)