File tree Expand file tree Collapse file tree
main/kotlin/com/langchain/smith/core
test/kotlin/com/langchain/smith/core Expand file tree Collapse file tree Original file line number Diff line number Diff line change 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
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
Original file line number Diff line number Diff line change 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
Original file line number Diff line number Diff line change 33.gradle
44.idea
55.kotlin
6+ ** /bin /main /
7+ ** /bin /test /
68build /
79codegen.log
810kls_database.db
Original file line number Diff line number Diff 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+
622configurations.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
Original file line number Diff line number Diff line change 33package com.langchain.smith.core
44
55import com.langchain.smith.client.LangsmithClient
6+ import org.slf4j.LoggerFactory
7+
8+ private val logger = LoggerFactory .getLogger(" com.langchain.smith.core.Properties" )
69
710fun 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
3742fun 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
4261fun getJavaVersion (): String = System .getProperty(" java.version" , " unknown" ) ? : " unknown"
Original file line number Diff line number Diff line change 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+ }
You can’t perform that action at this time.
0 commit comments