Skip to content

Conversation

@ttypic
Copy link
Contributor

@ttypic ttypic commented Jan 22, 2026

What's Changed

  • Added realtime publish support for publishing messages to channels over the realtime connection #648
  • Added realtime presence support, allowing clients to track presence on channels #651
  • Added mutable messages API with support for editing, deleting, and appending to messages #660, #659
  • Added publish results containing serial of published messages #660, #659

Summary by CodeRabbit

  • Documentation

    • Added top-level changelog entry for v3.0.0 with "What's Changed" and breaking-change notes.
    • Added migration section detailing upgrade impacts and examples.
    • Updated README: supported platforms table, Python 3.14 added, and deprecation notice generalized.
  • Chores

    • Project version bumped to 3.0.0.

✏️ Tip: You can customize this high-level summary in your review settings.

@ttypic ttypic requested a review from owenpearson January 22, 2026 13:35
@coderabbitai
Copy link

coderabbitai bot commented Jan 22, 2026

Walkthrough

This PR updates package version to v3.0.0 and documentation: adds a v3.0.0 changelog, expands the UPDATING migration guide with breaking-change details, updates README platform/deprecation notes, and bumps the package metadata version and classifiers.

Changes

Cohort / File(s) Summary
Version bump
ably/__init__.py, pyproject.toml
Bumped library version from 2.1.3 to 3.0.0 and added Python 3.14 classifier
Changelog
CHANGELOG.md
Added top-level v3.0.0 entry with "What's Changed" (realtime publish, presence, mutable messages, publish result serialization) and "Breaking change" notes
Migration guide
UPDATING.md
Added "Version 2.x to 3.0.0" migration section describing: WebSocket-based realtime publish, module renames/moves, ChannelOptions relocation, REST publish result serialization, and unified endpoint client option; includes code examples
Docs / README
README.md
Updated supported Python versions (added 3.14) and generalized deprecation notice to "versions < 2.0.0"

Sequence Diagram(s)

sequenceDiagram
  participant Client
  participant Realtime_WS as Realtime WebSocket
  participant Realtime_Server as Realtime Server
  participant Storage as Message Store / Publish Result

  Client->>Realtime_WS: open WS connection & send publish
  Realtime_WS->>Realtime_Server: forward publish frame
  Realtime_Server->>Storage: persist message, assign serial
  Storage-->>Realtime_Server: publish result (serials)
  Realtime_Server-->>Realtime_WS: ack with publish result
  Realtime_WS-->>Client: deliver publish result (serialized)
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

🐰 A hop, a bump, version three takes flight,
WebSockets hum in the soft twilight,
Modules shuffle, messages bend,
New serials counted, old paths end—
I nibble docs and dance: hello v3, delight! 🥕

🚥 Pre-merge checks | ✅ 2 | ❌ 1
❌ Failed checks (1 inconclusive)
Check name Status Explanation Resolution
Title check ❓ Inconclusive The title 'Release/3.0.0' is vague and generic, using a standard release naming convention that doesn't convey specific information about what changed or why this release matters. Consider using a more descriptive title that highlights key features or changes, such as 'Release v3.0.0: Add realtime publish, presence, and mutable messages support' to better communicate the purpose of this major release.
✅ Passed checks (2 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/3.0.0

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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@github-actions github-actions bot temporarily deployed to staging/pull/666/features January 22, 2026 13:36 Inactive
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Fix all issues with AI agents
In `@pyproject.toml`:
- Line 25: The pyproject.toml currently lists the classifier "Programming
Language :: Python :: 3.14" but the repo lacks CI coverage for 3.14; either
remove that exact classifier string from pyproject.toml or add Python 3.14 to
your CI test matrix by updating your CI workflow's test job (look for a job
named "test" that uses actions/setup-python) to include "3.14" in the matrix of
python-version values so the declared supported version is actually tested.

In `@README.md`:
- Around line 38-42: The blockquote contains an extra blank line between the two
admonition lines causing markdownlint MD028; remove the empty line so the lines
starting with "[!NOTE]" and "[!IMPORTANT]" are adjacent within the same
blockquote, ensuring there is no blank line inside that blockquote in README.md.

In `@UPDATING.md`:
- Around line 5-11: The unordered bullet list in UPDATING.md is indented and
triggers markdownlint MD007; remove the leading indentation so each
hyphen-started line is flush-left (align the lines starting with "-" for the
four bullets: "Realtime publish now...", "`ably.realtime.realtime_channel`
module...", "ChannelOptions moved...", and "REST publish returns...") ensuring
the list is a top-level list under the paragraph above.

- Added instructions for updating to v3.0.0 in `UPDATING.md`
- Detailed breaking changes and enhancements in `CHANGELOG.md`
Copy link
Member

@owenpearson owenpearson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

:shipit:

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 1

🤖 Fix all issues with AI agents
In `@CHANGELOG.md`:
- Line 12: Update the wording in the CHANGELOG entry that currently reads
"serial of published messages" to use the plural "serials of published messages"
so it matches the API behavior and the wording used elsewhere (e.g., the
UPDATING.md entry and the similar line later in the changelog); locate the exact
line in CHANGELOG.md and replace the singular "serial" with "serials".
♻️ Duplicate comments (1)
UPDATING.md (1)

7-10: Fix unordered list indentation (MD007).
This duplicates prior feedback; keep the list flush-left.

✏️ Proposed fix
-  - The realtime channel publish method now uses WebSocket connection instead of REST
-  - `ably.realtime.realtime_channel` module renamed to `ably.realtime.channel`
-  - `ChannelOptions` moved to `ably.types.channeloptions`
-  - REST publish returns publish result with message serials instead of Response object
+- The realtime channel publish method now uses WebSocket connection instead of REST
+- `ably.realtime.realtime_channel` module renamed to `ably.realtime.channel`
+- `ChannelOptions` moved to `ably.types.channeloptions`
+- REST publish returns publish result with message serials instead of Response object

@ttypic ttypic merged commit b0499a9 into main Jan 22, 2026
12 of 13 checks passed
@ttypic ttypic deleted the release/3.0.0 branch January 22, 2026 13:56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

3 participants