Skip to content

Commit 0f3e5ad

Browse files
release: 0.1.0-alpha.3 (#12)
* feat(api): Enable publishing for Java SDK The default setting publishes to Sonatype OSSRH server which has been EoL'd, this setting configures the build to use the newer publishing API. * feat(api): api update * feat(api): api update * chore(internal): codegen related update * chore(internal): bump palantir-java-format * chore(test): do not count install time for mock server timeout * chore(ci): skip uploading artifacts on stainless-internal branches * feat(api): api update * ci: Update arcade-java deployment to use Sonatype Portal The Stainless default for publishing Maven packages is EOL, new projects need to use the newer Sonatype portal * feat(api): api update * Fix lint errors (#13) * release: 0.1.0-alpha.3 --------- Co-authored-by: stainless-app[bot] <142633134+stainless-app[bot]@users.noreply.github.com> Co-authored-by: Brian Demers <brian.demers@gmail.com>
1 parent 4a640c1 commit 0f3e5ad

File tree

10 files changed

+69
-49
lines changed

10 files changed

+69
-49
lines changed

.github/workflows/ci.yml

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,14 +65,18 @@ jobs:
6565
run: ./scripts/build
6666

6767
- name: Get GitHub OIDC Token
68-
if: github.repository == 'stainless-sdks/arcade-engine-java'
68+
if: |-
69+
github.repository == 'stainless-sdks/arcade-engine-java' &&
70+
!startsWith(github.ref, 'refs/heads/stl/')
6971
id: github-oidc
7072
uses: actions/github-script@v8
7173
with:
7274
script: core.setOutput('github_token', await core.getIDToken());
7375

7476
- name: Build and upload Maven artifacts
75-
if: github.repository == 'stainless-sdks/arcade-engine-java'
77+
if: |-
78+
github.repository == 'stainless-sdks/arcade-engine-java' &&
79+
!startsWith(github.ref, 'refs/heads/stl/')
7680
env:
7781
URL: https://pkg.stainless.com/s
7882
AUTH: ${{ steps.github-oidc.outputs.github_token }}

.release-please-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,3 @@
11
{
2-
".": "0.1.0-alpha.2"
2+
".": "0.1.0-alpha.3"
33
}

CHANGELOG.md

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,25 @@
11
# Changelog
22

3+
## 0.1.0-alpha.3 (2026-03-09)
4+
5+
Full Changelog: [v0.1.0-alpha.2...v0.1.0-alpha.3](https://github.com/ArcadeAI/arcade-java/compare/v0.1.0-alpha.2...v0.1.0-alpha.3)
6+
7+
### Features
8+
9+
* **api:** api update ([4a4a38b](https://github.com/ArcadeAI/arcade-java/commit/4a4a38bd6eb8848183c7a553ab23d28f44a7ca6e))
10+
* **api:** api update ([b62bebe](https://github.com/ArcadeAI/arcade-java/commit/b62bebeaa3c5341aed692f28cdb76c24ef4588d7))
11+
* **api:** api update ([ab083dc](https://github.com/ArcadeAI/arcade-java/commit/ab083dc5b22c66bd1a216107ed5d427270f7535f))
12+
* **api:** api update ([a9067a6](https://github.com/ArcadeAI/arcade-java/commit/a9067a6b9e05ec27d0a4c3bd5a50b5fd568a617f))
13+
* **api:** Enable publishing for Java SDK ([4e1dd23](https://github.com/ArcadeAI/arcade-java/commit/4e1dd23facb1daf92135fde91bbeb1fefc9e1b76))
14+
15+
16+
### Chores
17+
18+
* **ci:** skip uploading artifacts on stainless-internal branches ([e37cb5d](https://github.com/ArcadeAI/arcade-java/commit/e37cb5d7f6f23e6be986ae5e3784898e3854a79c))
19+
* **internal:** bump palantir-java-format ([b1ebae8](https://github.com/ArcadeAI/arcade-java/commit/b1ebae8ff127b1402785df354f2687408ff248b0))
20+
* **internal:** codegen related update ([8837560](https://github.com/ArcadeAI/arcade-java/commit/883756053127934e8dc3d1ee90148f51c0a48f28))
21+
* **test:** do not count install time for mock server timeout ([4432b39](https://github.com/ArcadeAI/arcade-java/commit/4432b393c3ce20da89bb217f019dbf3221d41d0e))
22+
323
## 0.1.0-alpha.2 (2026-02-28)
424

525
Full Changelog: [v0.1.0-alpha.1...v0.1.0-alpha.2](https://github.com/ArcadeAI/arcade-java/compare/v0.1.0-alpha.1...v0.1.0-alpha.2)

README.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22

33
<!-- x-release-please-start-version -->
44

5-
[![Maven Central](https://img.shields.io/maven-central/v/dev.arcade/arcade-java)](https://central.sonatype.com/artifact/dev.arcade/arcade-java/0.1.0-alpha.2)
6-
[![javadoc](https://javadoc.io/badge2/dev.arcade/arcade-java/0.1.0-alpha.2/javadoc.svg)](https://javadoc.io/doc/dev.arcade/arcade-java/0.1.0-alpha.2)
5+
[![Maven Central](https://img.shields.io/maven-central/v/dev.arcade/arcade-java)](https://central.sonatype.com/artifact/dev.arcade/arcade-java/0.1.0-alpha.3)
6+
[![javadoc](https://javadoc.io/badge2/dev.arcade/arcade-java/0.1.0-alpha.3/javadoc.svg)](https://javadoc.io/doc/dev.arcade/arcade-java/0.1.0-alpha.3)
77

88
<!-- x-release-please-end -->
99

@@ -13,7 +13,7 @@ It is generated with [Stainless](https://www.stainless.com/).
1313

1414
<!-- x-release-please-start-version -->
1515

16-
The REST API documentation can be found on [docs.arcade.dev](https://docs.arcade.dev). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dev.arcade/arcade-java/0.1.0-alpha.2).
16+
The REST API documentation can be found on [docs.arcade.dev](https://docs.arcade.dev). Javadocs are available on [javadoc.io](https://javadoc.io/doc/dev.arcade/arcade-java/0.1.0-alpha.3).
1717

1818
<!-- x-release-please-end -->
1919

@@ -24,7 +24,7 @@ The REST API documentation can be found on [docs.arcade.dev](https://docs.arcade
2424
### Gradle
2525

2626
```kotlin
27-
implementation("dev.arcade:arcade-java:0.1.0-alpha.2")
27+
implementation("dev.arcade:arcade-java:0.1.0-alpha.3")
2828
```
2929

3030
### Maven
@@ -33,7 +33,7 @@ implementation("dev.arcade:arcade-java:0.1.0-alpha.2")
3333
<dependency>
3434
<groupId>dev.arcade</groupId>
3535
<artifactId>arcade-java</artifactId>
36-
<version>0.1.0-alpha.2</version>
36+
<version>0.1.0-alpha.3</version>
3737
</dependency>
3838
```
3939

arcade-java-core/src/main/kotlin/dev/arcade/core/http/RetryingHttpClient.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -214,13 +214,8 @@ private constructor(
214214
}
215215
}
216216
?.let { retryAfterNanos ->
217-
// If the API asks us to wait a certain amount of time (and it's a reasonable
218-
// amount), just
219-
// do what it says.
220-
val retryAfter = Duration.ofNanos(retryAfterNanos.toLong())
221-
if (retryAfter in Duration.ofNanos(0)..Duration.ofMinutes(1)) {
222-
return retryAfter
223-
}
217+
// If the API asks us to wait a certain amount of time, do what it says.
218+
return Duration.ofNanos(retryAfterNanos.toLong())
224219
}
225220

226221
// Apply exponential backoff, but not more than the max.

arcade-java-example/src/main/java/dev/arcade/example/QuickStartExample.java

Lines changed: 15 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -67,19 +67,16 @@ public static void main(String[] args) {
6767
userId);
6868

6969
// Print the response from the tool call
70-
logger.info(
71-
"""
72-
Success! Check your email at {}
73-
74-
You just chained 3 tools together:
75-
1. Searched Google News for stories about MCP URL mode elicitation
76-
2. Created a Google Doc with the results
77-
3. Sent yourself an email with the document link
78-
79-
Email metadata: {}
80-
""",
81-
userId,
82-
sendEmailResult);
70+
logger.info("""
71+
Success! Check your email at {}
72+
73+
You just chained 3 tools together:
74+
1. Searched Google News for stories about MCP URL mode elicitation
75+
2. Created a Google Doc with the results
76+
3. Sent yourself an email with the document link
77+
78+
Email metadata: {}
79+
""", userId, sendEmailResult);
8380
}
8481

8582
/**
@@ -101,14 +98,11 @@ public static Map<String, JsonValue> authorizeAndRunTool(
10198
.status()
10299
.filter(status -> status != AuthorizationResponse.Status.COMPLETED)
103100
.flatMap(status -> authResponse.url())
104-
.ifPresent(url -> logger.info(
105-
"""
106-
Click this link to authorize {}:
107-
{}.
108-
The process will continue once you have authorized the app.
109-
""",
110-
toolName,
111-
url));
101+
.ifPresent(url -> logger.info("""
102+
Click this link to authorize {}:
103+
{}.
104+
The process will continue once you have authorized the app.
105+
""", toolName, url));
112106
client.auth().waitForCompletion(authResponse);
113107

114108
// Execute the tool and extract the output as a Map

arcade-java-example/src/main/java/dev/arcade/example/springai/SpringAIExample.java

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,7 @@
2222
@SpringBootApplication
2323
public class SpringAIExample {
2424

25-
private static final String SYSTEM_PROMPT =
26-
"""
25+
private static final String SYSTEM_PROMPT = """
2726
You are a specialized Music Assistant with access to two MCP tools: get_spotify_state and play_song.
2827
Your goal is to provide a seamless, proactive audio experience. Follow these operational guidelines:
2928
Context Awareness: Before playing any music, always use get_spotify_state to see if music is already playing. If it is, acknowledge what is currently playing before switching to the new track.
@@ -86,14 +85,11 @@ String play(@ToolParam(description = "The name of the artist to play") String na
8685
*
8786
* @return A string object of the playback state.
8887
*/
89-
@Tool(
90-
name = "get_spotify_state",
91-
description =
92-
"""
93-
Get information about the user's current playback state,
94-
including track or episode, and active device.
95-
This tool does not perform any actions. Use other tools to control playback.
96-
""")
88+
@Tool(name = "get_spotify_state", description = """
89+
Get information about the user's current playback state,
90+
including track or episode, and active device.
91+
This tool does not perform any actions. Use other tools to control playback.
92+
""")
9793
String playbackState() {
9894
return executeTool("Spotify.GetPlaybackState", Map.of());
9995
}

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ repositories {
99

1010
allprojects {
1111
group = "dev.arcade"
12-
version = "0.1.0-alpha.2" // x-release-please-version
12+
version = "0.1.0-alpha.3" // x-release-please-version
1313
}
1414

1515
subprojects {

buildSrc/src/main/kotlin/arcade.java.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ tasks.withType<Test>().configureEach {
5454

5555
val palantir by configurations.creating
5656
dependencies {
57-
palantir("com.palantir.javaformat:palantir-java-format:2.73.0")
57+
palantir("com.palantir.javaformat:palantir-java-format:2.89.0")
5858
}
5959

6060
fun registerPalantir(

scripts/mock

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,11 +21,22 @@ echo "==> Starting mock server with URL ${URL}"
2121

2222
# Run prism mock on the given spec
2323
if [ "$1" == "--daemon" ]; then
24+
# Pre-install the package so the download doesn't eat into the startup timeout
25+
npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism --version
26+
2427
npm exec --package=@stainless-api/prism-cli@5.15.0 -- prism mock "$URL" &> .prism.log &
2528

26-
# Wait for server to come online
29+
# Wait for server to come online (max 30s)
2730
echo -n "Waiting for server"
31+
attempts=0
2832
while ! grep -q "✖ fatal\|Prism is listening" ".prism.log" ; do
33+
attempts=$((attempts + 1))
34+
if [ "$attempts" -ge 300 ]; then
35+
echo
36+
echo "Timed out waiting for Prism server to start"
37+
cat .prism.log
38+
exit 1
39+
fi
2940
echo -n "."
3041
sleep 0.1
3142
done

0 commit comments

Comments
 (0)