Repository navigation
Releases
v0.15.0
Breaking changes
Rename the Swift module to ReachableKit; lower the AAR's compileSdk floor (#16)
Swift consumers now import ReachableKit from the reachable-kmp package. Android consumers need compileSdk 34 or later instead of 36.
Swift: the module is now ReachableKit
The XCFramework, its Swift module and the SPM product are renamed from
Reachable to ReachableKit, following the <Name>Kit convention that keeps
the module name distinct from the library's public types. The repository is
now happycodelucky/reachable-kmp (the old URL redirects), so SPM's package
identity changes too.
// Before
.package(url: "https://github.com/happycodelucky/reachable.git", from: "0.14.0")
.product(name: "Reachable", package: "reachable")
import Reachable
// After
.package(url: "https://github.com/happycodelucky/reachable-kmp.git", from: "0.15.0")
.product(name: "ReachableKit", package: "reachable-kmp")
import ReachableKitThe Swift API itself is unchanged. Kotlin consumers are unaffected: the Maven
coordinates stay com.happycodelucky.reachable:reachable.
Android: a lower compileSdk floor
The AAR used to require consumers to compile against the SDK the library was
built with (36). It now declares a deliberate floor of 34, so the library
no longer forces a compileSdk bump on your app when ours moves.
JVM bytecode
The Android and JVM artifacts now pin Java 21 bytecode explicitly, rather than
following the JDK the release happened to be built on.
v0.14.0
What's Changed
- feat: add jvm target (desktop / server) by @happycodelucky in #13
Full Changelog: v0.13.0...v0.14.0
v0.13.0
What's Changed
- fix(release): bind release job to continuous-deployment environment by @happycodelucky in #5
- docs: add consolidated install section, strip internal-file refs by @happycodelucky in #7
- fix(release): bump real semver patch instead of run number by @happycodelucky in #6
- build: convention plugins, detekt, full-module checks, wired-Ethernet fix by @happycodelucky in #8
- SPM distribution via KMMBridge + GitHub Release assets; dependency bumps by @happycodelucky in #9
- docs: keep the mkdocs site to the public API — scrub internal tooling references by @happycodelucky in #10
- chore: reorganise repo layout — apps/ subtree, CONTRIBUTING.md, PUBLISHING.md by @happycodelucky in #11
- chore: add .claude/lessons/LESSONS.md and wire into CLAUDE.md task workflow by @happycodelucky in #12
Full Changelog: v0.12.11...v0.13.0
v0.12.11
Full Changelog: v0.11.10...v0.12.11
v0.11.10
Full Changelog: v0.10.9...v0.11.10
v0.10.9
What's Changed
- feat(reachable-testing): new module with FakeReachability + install hook by @happycodelucky in #4
Full Changelog: v0.9.0...v0.10.9
v0.9.0
Backfill tag matching the existing com.happycodelucky.reachable:reachable:0.9.0 artifact on Maven Central.
This release was originally published via a release-workflow run that should have stopped at staging (dryRun=true), but a misconfigured automaticRelease = true flag in the vanniktech publishing block caused dry runs to auto-release to public Maven Central. The artifact is real and consumable; no GitHub tag was created at the time, and the tag now exists for forward-looking purposes.
The cascade is fixed in d47562a ("release: stop dry-run from actually publishing"). Future release runs read this tag as the base for the version-compute step — patch bumps now produce 0.9.<run_number>, minor produces 0.10.<run_number>, etc.
The tag points at the current main (the commit that fixed the release flow), not the historical commit that produced the 0.9.0 artifact. The Maven Central artifact's actual git provenance is in the artifact's POM scm block.