Skip to content

Bump retrofit to 3.0.0 and release as 1.22.1 - #209

Merged
edridudi merged 1 commit into
mainfrom
claude/retrofit3
Sep 12, 2026
Merged

edridudi merged 1 commit into
mainfrom
claude/retrofit3

Conversation

@edridudi

@edridudi edridudi commented Sep 12, 2026 •

Copy link
Copy Markdown
Collaborator

Supersedes #201, which proposed the same bump but was never built — fork PRs do not trigger the workflows here.

retrofit.version drives both retrofit and converter-jackson, so this moves the whole HTTP layer to 3.x, not just the converter its title named.

The Kotlin question, checked rather than assumed

The obvious objection to retrofit 3 is that it pulls in kotlin-stdlib. It turns out Kotlin is already there:

Before (retrofit 2.11.0)

logging-interceptor 4.12.0 -> kotlin-stdlib-jdk8 1.8.21 -> kotlin-stdlib 1.8.21

After (retrofit 3.0.0)

converter-jackson 3.0.0 -> retrofit 3.0.0 -> kotlin-stdlib 2.1.21
logging-interceptor 4.12.0 -> kotlin-stdlib-jdk8 1.8.21

So the change is kotlin-stdlib 1.8.21 → 2.1.21 — an upgrade of something consumers already resolve, not a new dependency on their classpath. Kotlin's stdlib is backward compatible, so a consumer on Kotlin 1.8 is not broken by 2.1 being present.

Compatibility note

BaseService is annotated @Getter, so getRetrofit() returns retrofit2.Retrofit to callers. A consumer using that accessor while pinning retrofit 2 will conflict. Everything else in the public API is unaffected.

Testing

mvn test -Dtest='*Preview*,BaseServiceErrorHandlingTest,ProposalDeserializationTest,*Bech32*'   # 139/139 pass

Includes the MockWebServer suite from #205, which exercises the Retrofit/OkHttp/Jackson stack directly — success, 4xx/5xx, malformed JSON and the retry loop all behave unchanged on 3.0.0.

Version bumped to 1.22.1 in pom.xml and the README (dependency snippets plus a compatibility chart row).

🤖 Generated with Claude Code

retrofit.version drives both retrofit and converter-jackson, so this moves
the whole HTTP layer to the 3.x line, which is where maintenance now goes.

The transitive effect is smaller than it first appears: kotlin-stdlib is
already a compile dependency via logging-interceptor (1.8.21), so retrofit
3 upgrades it to 2.1.21 rather than introducing Kotlin to consumers.

BaseService exposes retrofit2.Retrofit through getRetrofit(), so consumers
using that accessor while pinning retrofit 2 will conflict.

Supersedes #201, which proposed the same bump but could not be built -
fork PRs do not trigger the workflows here.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@edridudi
edridudi force-pushed the claude/retrofit3 branch 2 times, most recently from c26cce1 to 52e9a39 Compare September 12, 2026 18:54
@edridudi edridudi changed the title Bump retrofit to 3.0.0 and release as 1.23.0 Bump retrofit to 3.0.0 and release as 1.22.1 Sep 12, 2026
@edridudi
edridudi merged commit fd27042 into main Sep 12, 2026
4 checks passed
@edridudi
edridudi deleted the claude/retrofit3 branch September 12, 2026 18:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant