diff --git a/conjure-python-core/src/main/java/com/palantir/conjure/python/ConjurePythonGenerator.java b/conjure-python-core/src/main/java/com/palantir/conjure/python/ConjurePythonGenerator.java index 662d1a0fb..68821968e 100644 --- a/conjure-python-core/src/main/java/com/palantir/conjure/python/ConjurePythonGenerator.java +++ b/conjure-python-core/src/main/java/com/palantir/conjure/python/ConjurePythonGenerator.java @@ -109,6 +109,7 @@ public List generate(ConjureDefinition conjureDefinition) { .map(f -> { if (f.build().packageName().indexOf('.') < 0) { f.addContents(versionAttribute(f.build().packageName())); + f.addContents(generatorVersionAttribute(f.build().packageName())); } return f; }) @@ -144,6 +145,13 @@ private PythonClass versionAttribute(String packageName) { .build(); } + private PythonClass generatorVersionAttribute(String packageName) { + return PythonLine.builder() + .text(String.format("__conjure_generator_version__ = \"%s\"", config.generatorVersion())) + .packageName(packageName) + .build(); + } + private PythonFile buildPythonSetupFile() { PythonSetup.Builder builder = PythonSetup.builder() .putOptions("name", config.packageName()) diff --git a/conjure-python-core/src/main/java/com/palantir/conjure/python/GeneratorConfiguration.java b/conjure-python-core/src/main/java/com/palantir/conjure/python/GeneratorConfiguration.java index 013e7fbe4..bd2d9149a 100644 --- a/conjure-python-core/src/main/java/com/palantir/conjure/python/GeneratorConfiguration.java +++ b/conjure-python-core/src/main/java/com/palantir/conjure/python/GeneratorConfiguration.java @@ -22,6 +22,8 @@ public interface GeneratorConfiguration { Optional packageAuthor(); + String generatorVersion(); + String minConjureClientVersion(); boolean shouldWriteCondaRecipe(); diff --git a/conjure-python-core/src/test/java/com/palantir/conjure/python/ConjurePythonGeneratorTest.java b/conjure-python-core/src/test/java/com/palantir/conjure/python/ConjurePythonGeneratorTest.java index c22b2ec18..7dc1f03d4 100644 --- a/conjure-python-core/src/test/java/com/palantir/conjure/python/ConjurePythonGeneratorTest.java +++ b/conjure-python-core/src/test/java/com/palantir/conjure/python/ConjurePythonGeneratorTest.java @@ -45,6 +45,7 @@ public final class ConjurePythonGeneratorTest { .packageVersion("0.0.0") .packageDescription("project description") .minConjureClientVersion("1.0.0") + .generatorVersion("0.0.0") .shouldWriteCondaRecipe(true) .build()); private final InMemoryPythonFileWriter pythonFileWriter = new InMemoryPythonFileWriter(); diff --git a/conjure-python-core/src/test/resources/services/expected/package/__init__.py b/conjure-python-core/src/test/resources/services/expected/package/__init__.py index 2e28a192d..ca72ab67e 100644 --- a/conjure-python-core/src/test/resources/services/expected/package/__init__.py +++ b/conjure-python-core/src/test/resources/services/expected/package/__init__.py @@ -8,3 +8,5 @@ __version__ = "0.0.0" +__conjure_generator_version__ = "0.0.0" + diff --git a/conjure-python-core/src/test/resources/types/expected/package/__init__.py b/conjure-python-core/src/test/resources/types/expected/package/__init__.py index 8e4c79897..b4beeb34f 100644 --- a/conjure-python-core/src/test/resources/types/expected/package/__init__.py +++ b/conjure-python-core/src/test/resources/types/expected/package/__init__.py @@ -12,3 +12,5 @@ __version__ = "0.0.0" +__conjure_generator_version__ = "0.0.0" + diff --git a/conjure-python/build.gradle b/conjure-python/build.gradle index 14af2a0a9..d9076bb0a 100644 --- a/conjure-python/build.gradle +++ b/conjure-python/build.gradle @@ -33,7 +33,8 @@ task generateBuildConfiguration() { def minConjureClientVersion = dependencyRecommendations.getRecommendedVersion('com.palantir.conjure.python', 'conjure-python-client') def props = new File("$projectDir/src/main/resources/buildConfiguration.yml") props.getParentFile().mkdirs() - props.text = "minConjureClientVersion: $minConjureClientVersion" + props.text = "generatorVersion: ${project.version}\n" + props.text += "minConjureClientVersion: $minConjureClientVersion\n" } } diff --git a/conjure-python/src/main/java/com/palantir/conjure/python/cli/BuildConfiguration.java b/conjure-python/src/main/java/com/palantir/conjure/python/cli/BuildConfiguration.java index 12539776a..de28366e0 100644 --- a/conjure-python/src/main/java/com/palantir/conjure/python/cli/BuildConfiguration.java +++ b/conjure-python/src/main/java/com/palantir/conjure/python/cli/BuildConfiguration.java @@ -18,6 +18,8 @@ public abstract class BuildConfiguration { private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper(new YAMLFactory()); + abstract String generatorVersion(); + abstract String minConjureClientVersion(); static BuildConfiguration load() { diff --git a/conjure-python/src/main/java/com/palantir/conjure/python/cli/ConjurePythonCli.java b/conjure-python/src/main/java/com/palantir/conjure/python/cli/ConjurePythonCli.java index c4e66652b..91ec6ca9a 100644 --- a/conjure-python/src/main/java/com/palantir/conjure/python/cli/ConjurePythonCli.java +++ b/conjure-python/src/main/java/com/palantir/conjure/python/cli/ConjurePythonCli.java @@ -108,6 +108,7 @@ static CliConfiguration resolveCliConfiguration(String[] args) { static GeneratorConfiguration resolveGeneratorConfiguration(CliConfiguration cliConfig, BuildConfiguration buildConfig) { return GeneratorConfiguration.builder() + .generatorVersion(buildConfig.generatorVersion()) .minConjureClientVersion(buildConfig.minConjureClientVersion()) .packageAuthor(cliConfig.packageAuthor()) .packageDescription(cliConfig.packageDescription())