Skip to content

Would you accept Scala 2.12 cross-building for the Scala 2 modules? #586

Description

@jonoabroad

We'd like to use sttp-ai from a large Scala 2.12 codebase where the 2.13 migration is a multi-month project in its own right. Looking into what 2.12 support would take, the gap turned out to be small: every dependency the build pins (sttp client4 4.0.26, tapir-apispec-docs 1.13.31, circe 0.14.16, circe-generic-extras 0.14.4, sttp-apispec 0.11.10, pekko 1.6.0, akka 2.6.20, scalatest 3.2.20) already publishes _2.12 artifacts at those exact versions.

We have a working branch: 2.12.20 added to the scala2 matrix row (core, openai, claude, gemini, agent-testkit, fs2/zio/pekko/akka streaming), ~14 small cross-compatible source adjustments, no change for 2.13/3 users, full test suite green on all three versions. The port also surfaced one latent bug worth having regardless: Attachment binds the wrong Tool type on 2.12 due to scala/bug#4695 import precedence.

PR to follow shortly with an ADR documenting the compat mechanisms and an explicit exit criterion (first pinned dependency to drop _2.12 removes the row in the next breaking release, rather than holding updates back).

Completely understand if an extra Scala version isn't a maintenance commitment you want to carry — in that case we'll maintain a fork and this issue can simply be closed.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions