From d6060cc9b28b238bf84829059fceaf586575b746 Mon Sep 17 00:00:00 2001 From: "maarten.vercruysse" Date: Tue, 20 Oct 2026 11:32:45 +0200 Subject: [PATCH] Release 1.0.0-rc.1 & add CHANGELOG.md --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ README.md | 2 -- gradle.properties | 3 +-- 3 files changed, 33 insertions(+), 4 deletions(-) create mode 100644 CHANGELOG.md diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 000000000..1c93cdf3f --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,32 @@ +# Changelog + +All notable changes to this project are documented here. + +## [1.0.0-rc.1] - 2026-10-20 + +The first release candidate for the stable 1.0.0 API. + +### Added + +- Lemmy 1.0 API support, including version-specific routing, datatypes, transformations, and unified wrappers. +- Unified datatypes based on the Lemmy 1.0 API while retaining compatibility with supported 0.18 and 0.19 instances. +- Version-aware feature flags and supported enum entry discovery. +- A dedicated `NodeInfoClient` for instance discovery and version detection. +- `LemmyAuth.fromToken()` for creating authentication from an existing token. +- End-to-end coverage for major Lemmy 1.0 endpoints. + +### Changed + +- Refined `connect()` and `connectForVersion()` around typed instances, authentication, and resolved Lemmy versions. +- Added explicit authentication lifecycle operations through `updateAuth()` and `clearAuth()`. +- Improved HTTP client ownership, resource cleanup, request cancellation, and retry/timeout handling. +- Reworked image uploads and deletion behind `uploadImage()` and `deleteMedia()`, including legacy pictrs compatibility for pre-1.0 instances. +- Consolidated unified routes and removed obsolete API surface. + +### Breaking changes + +- Unified request and response types now follow Lemmy 1.0 where the API changed; older instances are adapted internally by the version-specific wrappers. +- Consumers should use `uploadImage()` and `deleteMedia()` instead of calling legacy pictrs APIs directly. +- Consumers using page-based pagination should provide both `page` and `page_cursor` when supporting both pre-1.0 and 1.x instances. + +[1.0.0-rc.1]: https://github.com/MV-GH/LemmyBackwardsCompatibleAPI/releases/tag/1.0.0-rc.1 diff --git a/README.md b/README.md index ae7204d58..b1b09188f 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,6 @@ # LemmyBackwardsCompatibleAPI -## Project Overview A **Kotlin Multiplatform** library that provides a single, unified API surface over multiple Lemmy server versions (0.18+, 0.19+, 1.0+). Consumers call one interface (`LemmyApiBaseController`) and receive unified ("uni") datatypes regardless of which Lemmy version the target instance is running. @@ -77,7 +76,6 @@ Use `connectForVersion(LemmyInstance(...), LemmyVersion(...))` when the server v ```kts implementation("it.vercruysse.lemmyapi:lemmy-api:VERSION") ``` -It is currently in beta. ## Architecture diff --git a/gradle.properties b/gradle.properties index 7ad68f1bc..16b10eaf8 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,5 +24,4 @@ POM_DEVELOPER_URL=https://github.com/MV-GH POM_ARTIFACT_ID=lemmy-api GROUP=it.vercruysse.lemmyapi -VERSION_NAME=0.7.0-beta.0 - +VERSION_NAME=1.0.0-rc.1