Skip to content

Commit 31cc003

Browse files
jacoblee93stainless-app[bot]ericdong-langchaindependabot[bot]
authored
feat: Adds package version resource to build (#100)
* codegen metadata * codegen metadata * chore: make `Properties` more resilient to `null` * chore: drop apache dependency * codegen metadata * codegen metadata * codegen metadata * chore(internal): expand imports * feat(api): manual updates * codegen metadata * feat(api): manual updates * codegen metadata * feat(api): manual updates * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * feat(api): manual updates removed endpoints not in openAPI spec * codegen metadata * codegen metadata * codegen metadata * chore: align user agent format (#96) * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * chore(internal): codegen related update * chore(internal): bump palantir-java-format * chore(ci): skip uploading artifacts on stainless-internal branches * chore: update placeholder string * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * fix(client): incorrect `Retry-After` parsing * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * chore(internal): tweak CI branches * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * chore(internal): update retry delay tests * fix(client): allow updating header/query affecting fields in `toBuilder()` * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * chore(internal): bump ktfmt * chore: remove old test (#97) * codegen metadata * feat(api): manual updates * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * chore(internal): update gitignore * codegen metadata * codegen metadata * codegen metadata * chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. * Fix error messages (#102) * codegen metadata * Merge * Merge * Lint * Add debug log * main to next (#108) * codegen metadata * codegen metadata * chore: make `Properties` more resilient to `null` * chore: drop apache dependency * codegen metadata * codegen metadata * codegen metadata * chore(internal): expand imports * feat(api): manual updates * codegen metadata * feat(api): manual updates * codegen metadata * feat(api): manual updates * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * feat(api): manual updates removed endpoints not in openAPI spec * codegen metadata * codegen metadata * codegen metadata * chore: align user agent format (#96) * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * chore(internal): codegen related update * chore(internal): bump palantir-java-format * chore(ci): skip uploading artifacts on stainless-internal branches * chore: update placeholder string * codegen metadata * codegen metadata * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * fix(client): incorrect `Retry-After` parsing * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * codegen metadata * feat(api): api update * codegen metadata * chore(internal): tweak CI branches * codegen metadata * codegen metadata * codegen metadata * codegen metadata * codegen metadata * chore(internal): update retry delay tests * fix(client): allow updating header/query affecting fields in `toBuilder()` * codegen metadata * codegen metadata * feat(api): api update * feat(api): api update * codegen metadata * chore(internal): bump ktfmt * chore: remove old test (#97) * codegen metadata * feat(api): manual updates * codegen metadata * feat(api): api update * codegen metadata * codegen metadata * codegen metadata * chore(internal): update gitignore * codegen metadata * codegen metadata * codegen metadata * chore(ci): skip lint on metadata-only changes Note that we still want to run tests, as these depend on the metadata. * Fix error messages (#102) * codegen metadata * release: 0.1.0-alpha.24 * fix: lint and remove outdated method count ci test (#103) Made-with: Cursor * chore(deps): bump gradle/actions from 5 to 6 in the all-actions group (#99) Bumps the all-actions group with 1 update: [gradle/actions](https://github.com/gradle/actions). Updates `gradle/actions` from 5 to 6 - [Release notes](https://github.com/gradle/actions/releases) - [Commits](gradle/actions@v5...v6) --- updated-dependencies: - dependency-name: gradle/actions dependency-version: '6' dependency-type: direct:production update-type: version-update:semver-major dependency-group: all-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Jacob Lee <jacoblee93@gmail.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Change to warning and add a test --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: ericdong-langchain <ericdong@langchain.dev> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
1 parent 30813f8 commit 31cc003

6 files changed

Lines changed: 86 additions & 7 deletions

File tree

.github/workflows/ci.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ jobs:
3434
cache: gradle
3535

3636
- name: Set up Gradle
37-
uses: gradle/actions/setup-gradle@v5
37+
uses: gradle/actions/setup-gradle@v6
3838

3939
- name: Run lints
4040
run: ./scripts/lint
@@ -61,7 +61,7 @@ jobs:
6161
cache: gradle
6262

6363
- name: Set up Gradle
64-
uses: gradle/actions/setup-gradle@v5
64+
uses: gradle/actions/setup-gradle@v6
6565

6666
- name: Build SDK
6767
run: ./scripts/build

.github/workflows/codeql.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ jobs:
2828
8
2929
21
3030
- name: Set up Gradle
31-
uses: gradle/actions/setup-gradle@v5
31+
uses: gradle/actions/setup-gradle@v6
3232

3333
- name: Initialize CodeQL
3434
uses: github/codeql-action/init@v4

.gitignore

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
.gradle
44
.idea
55
.kotlin
6+
**/bin/main/
7+
**/bin/test/
68
build/
79
codegen.log
810
kls_database.db

langsmith-java-core/build.gradle.kts

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,22 @@ plugins {
33
id("langchain.publish")
44
}
55

6+
val generateVersionProperties by tasks.registering {
7+
val outputDir = layout.buildDirectory.dir("generated/resources/version")
8+
val projectVersion = provider { project.version.toString() }
9+
outputs.dir(outputDir)
10+
inputs.property("version", projectVersion)
11+
doLast {
12+
val dir = outputDir.get().asFile.resolve("com/langchain/smith")
13+
dir.mkdirs()
14+
dir.resolve("version.properties").writeText("version=${projectVersion.get()}\n")
15+
}
16+
}
17+
18+
sourceSets.main {
19+
resources.srcDir(generateVersionProperties)
20+
}
21+
622
configurations.all {
723
resolutionStrategy {
824
// Compile and test against a lower Jackson version to ensure we're compatible with it. Note that
@@ -29,13 +45,13 @@ dependencies {
2945
implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.18.2")
3046
implementation("org.apache.httpcomponents.core5:httpcore5:5.2.4")
3147
implementation("org.apache.httpcomponents.client5:httpclient5:5.3.1")
32-
48+
3349
// OpenTelemetry dependencies
3450
api("io.opentelemetry:opentelemetry-api:1.32.0")
3551
api("io.opentelemetry:opentelemetry-sdk:1.32.0")
3652
api("io.opentelemetry:opentelemetry-exporter-otlp:1.32.0")
3753
api("io.opentelemetry.semconv:opentelemetry-semconv:1.23.1-alpha")
38-
54+
3955
// OpenAI SDK (for OpenTelemetry wrappers)
4056
api("com.openai:openai-java:4.6.1")
4157

langsmith-java-core/src/main/kotlin/com/langchain/smith/core/Properties.kt

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,9 @@
33
package com.langchain.smith.core
44

55
import com.langchain.smith.client.LangsmithClient
6+
import org.slf4j.LoggerFactory
7+
8+
private val logger = LoggerFactory.getLogger("com.langchain.smith.core.Properties")
69

710
fun getOsArch(): String {
811
val osArch = System.getProperty("os.arch")
@@ -12,8 +15,10 @@ fun getOsArch(): String {
1215
"i386",
1316
"x32",
1417
"x86" -> "x32"
18+
1519
"amd64",
1620
"x86_64" -> "x64"
21+
1722
"arm" -> "arm"
1823
"aarch64" -> "arm64"
1924
else -> "other:$osArch"
@@ -36,7 +41,21 @@ fun getOsName(): String {
3641

3742
fun getOsVersion(): String = System.getProperty("os.version", "unknown") ?: "unknown"
3843

39-
fun getPackageVersion(): String =
40-
LangsmithClient::class.java.`package`?.implementationVersion ?: "unknown"
44+
fun getPackageVersion(): String {
45+
try {
46+
val props = java.util.Properties()
47+
LangsmithClient::class
48+
.java
49+
.classLoader
50+
.getResourceAsStream("com/langchain/smith/version.properties")
51+
?.use { props.load(it) }
52+
props.getProperty("version")?.let {
53+
return it
54+
}
55+
} catch (e: Exception) {
56+
logger.warn("Failed to read version from version.properties", e)
57+
}
58+
return LangsmithClient::class.java.`package`.implementationVersion ?: "unknown"
59+
}
4160

4261
fun getJavaVersion(): String = System.getProperty("java.version", "unknown") ?: "unknown"
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.langchain.smith.core
2+
3+
import org.assertj.core.api.Assertions.assertThat
4+
import org.junit.jupiter.api.Test
5+
6+
internal class PropertiesTest {
7+
8+
@Test
9+
fun getPackageVersion_returnsNonBlankValue() {
10+
val version = getPackageVersion()
11+
12+
assertThat(version).isNotBlank()
13+
}
14+
15+
@Test
16+
fun getOsArch_returnsNonBlankValue() {
17+
val osArch = getOsArch()
18+
19+
assertThat(osArch).isNotBlank()
20+
}
21+
22+
@Test
23+
fun getOsName_returnsNonBlankValue() {
24+
val osName = getOsName()
25+
26+
assertThat(osName).isNotBlank()
27+
}
28+
29+
@Test
30+
fun getOsVersion_returnsNonBlankValue() {
31+
val osVersion = getOsVersion()
32+
33+
assertThat(osVersion).isNotBlank()
34+
}
35+
36+
@Test
37+
fun getJavaVersion_returnsNonBlankValue() {
38+
val javaVersion = getJavaVersion()
39+
40+
assertThat(javaVersion).isNotBlank()
41+
}
42+
}

0 commit comments

Comments
 (0)