Repository navigation
Release 2.0.0 - #1257
Release 2.0.0#1257
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
No actionable comments were generated in the recent review.
|
| Layer / File(s) | Summary |
|---|---|
Document 2.0.0 changes CHANGELOG.md |
The dated release entry describes artifacts, clients, API changes, authentication, push-token persistence, removed APIs and options, host changes, and the Android API 24 minimum. It links to the release tag and full changelog. |
Priority:
Estimated code review effort: 1 (Trivial) | ~5 minutes
Change: Feature
Possibly related issues
- ably/ably-pubsub-java#1255 The changelog documents the checked
Channels.release()exception described in the issue.
Possibly related PRs
- ably/ably-pubsub-java#1256 Both PRs update the 2.0.0 changelog with builder behavior and shallow option copying.
- ably/ably-pubsub-java#1245 This PR introduces the 2.0.0 artifacts, builders, agent identifiers, and constructor deprecations that the changelog describes.
- ably/ably-pubsub-java#1251 This PR implements the
Channels.release()checked exception documented in the changelog.
Suggested reviewers: sacoo7
Merge Risk: 
Minimal · up to 78094
-
The release-note update has no identified merge-blocking issue and is ready to merge after normal checks.
Pre-merge checks: 
5
-
Full details: Docstring Coverage
-
Explanation
No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)
-
Finishing Touches
-
🧪 Generate unit tests (beta)
-
- Commit to this branch
- Create a new PR
-
- Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.
A rabbit reads the release notes bright,
New names and artifacts come to light.
The tokens find their names in store,
API changes line the shore.
One hop to two, the pages are set.
Comment @coderabbitai help to get the list of available commands.
The 2.0.0 release makes it clear what to use on a device and what to use on a server. The SDK is now split by where your code runs. Depend on
io.ably.pubsub:devicefor code that runs on an end user's device, such as an Android app or a desktop client, orio.ably.pubsub:serverfor code that runs on your own infrastructure. Each artifact offers only the clients that make sense on its side. The artifact names are also what coding assistants see in the dependency declaration and the builder call, so they get the choice right too.v2 also removes the APIs and client options deprecated in v1.
Below is an overview of the major changes in this release.
Please refer to the upgrade guide for the full details, including a list of all breaking changes and instructions on how to address them.
Per-side artifacts
This repository no longer publishes
io.ably:ably-javaorio.ably:ably-android. Depend on exactly one artifact, for the side of the connection your code runs on:io.ably.pubsub:devicefor code that runs on an end user's device: an Android app or a JVM desktop client. It is a Kotlin Multiplatform artifact; Maven consumers depend onio.ably.pubsub:device-jvmdirectly.io.ably.pubsub:serverfor code that runs on infrastructure you operate. It offers both a realtime client,PubSubRealtimeClient, and an HTTP client,PubSubHttpClient.Clients are created through builders instead of constructors:
PubSubDevice.clientBuilder()fromio.ably.pubsub:device, andPubSubServer.realtimeClientBuilder()andPubSubServer.httpClientBuilder()fromio.ably.pubsub:server.build()hands the client a shallow copy of the options, so a builder can be reused without affecting clients already built.Never depend on
io.ably.pubsub:coreorio.ably.pubsub:core-androiddirectly. The remaining artifacts change group only and release in lockstep at the same version:liveobjects,network-client-core,network-client-default,network-client-okhttpandpubsub-adaptermove fromio.ablytoio.ably.pubsub.Client API naming
io.ably.lib.*toio.ably.pubsub.*.AblyRealtimeis renamedPubSubRealtimeClientandAblyRestis renamedPubSubHttpClient.Restis renamedHttpacross the public API:io.ably.lib.rest.*moves toio.ably.pubsub.http.*,RestAnnotationsis nowHttpAnnotations,AblyBaseis nowPubSubBaseandio.ably.lib.http.Httpis nowHttpRequester.Server clients and authentication
ably-pubsub-java/<version>instead ofably-java/<version>in theAbly-Agentheader and the realtimeagentparameter, with anably-pubsub-serverorably-pubsub-deviceentry for the side.PubSubServerdeclare themselves as servers. Authenticate them with an API key. A realtime connection with token authentication needs a token carrying the signedx-ably-clientType=serverclaim (today a JWT), otherwise it is rejected with error 40167.UPDATEoncerenewAuthcompletes instead of before it has finished.Push notifications
Removed APIs
environment,restHost,realtimeHostandfallbackHostsUseDefaultclient options are removed in favour ofendpoint. The default host moves tomain.realtime.ably.net, so networks that restrict outbound traffic must allow*.realtime.ably.netand*.fallback.ably-realtime.com.AblyRealtimeandAblyRestconstructors, theCompletionListenerpublish overloads,Connection.recoveryKey, theConnectionState-keyedConnectionevent methods,Channel.sync(),Auth.authorise,Auth.renew,ChannelOptions.fromCipherKey,TokenDetails.fromJSON,TokenRequest.fromJSONandRegistrationToken.Type.GCMare removed.Channels.release()throws a checkedAblyException(90011) unless the channel isINITIALIZED,DETACHEDorFAILED.Supported platforms changes
Summary by CodeRabbit