Skip to content

Conversation

@ttypic
Copy link
Contributor

@ttypic ttypic commented Sep 18, 2025

Full Changelog

What's Changed

  • Added support for VCDIFF delta-compressed messages. When deltas are provided by the service,
    the SDK reconstructs full message payloads from the base content and the received delta,
    reducing bandwidth usage without changing your application code.

Summary by CodeRabbit

  • New Features
    • Support for VCDIFF delta-compressed messages: SDK can reconstruct full payloads from base+delta to reduce bandwidth without app changes.
  • Documentation
    • Added v2.1.0 entry to the changelog with release links and a Full Changelog reference.
  • Chores
    • Bumped package and public library version to 2.1.0, updated optional vcdiff-decoder dependency, and adjusted the release/publishing workflow steps.

@ttypic ttypic requested review from VeskeR and umair-ably September 18, 2025 17:36
@coderabbitai
Copy link

coderabbitai bot commented Sep 18, 2025

Walkthrough

Bumped package/library version to 2.1.0, added a v2.1.0 CHANGELOG entry documenting VCDiff delta-compressed message support, updated optional dependency for vcdiff-decoder, and modified the GitHub release workflow (artifact download, version extraction, and TestPyPI URL).

Changes

Cohort / File(s) Summary of changes
Changelog
CHANGELOG.md
Added top-level v2.1.0 release entry with links and a "What's Changed" section describing support for VCDiff delta-compressed messages (SDK can reconstruct full payloads from base + delta when enabled).
Versioning / Metadata
ably/__init__.py, pyproject.toml
Bumped library/package version from 2.0.13 to 2.1.0 (lib_version and [tool.poetry] version). Updated optional dependency vcdiff-decoder from ^0.1.0a1 to ^0.1.0.
CI / Release workflow
.github/workflows/release.yml
Added artifact download step to dist/, changed version extraction to read VERSION_NAME from dist/ (extracting from dist/ably-*.tar.gz), removed a duplicate download-artifact step, and updated TestPyPI package URL to https://test.pypi.org/p/ably.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Client as Client (app)
    participant SDK as Ably SDK
    participant Service as Ably Service
    Note over Client,SDK: VCDiff option enabled in client options
    Client->>SDK: open connection / subscribe
    Service->>SDK: send message (base content + delta, headers indicate VCDiff)
    alt VCDiff enabled & delta present
        SDK->>SDK: fetch/identify base content
        SDK->>SDK: run vcdiff-decoder to apply delta
        SDK->>Client: deliver reconstructed full payload
    else VCDiff not enabled or unavailable
        SDK->>Client: deliver message as-is (delta metadata preserved)
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Poem

I twitch my whiskers—version takes a leap,
From two-point-zero-one-three to new heights we keep.
Deltas and bases stitched neat in a row,
Pipelines primed, release steps ready to go.
🥕✨ —a rabbit's hop of code and flow

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The title "Release/2.1.0" is concise and directly related to the primary change in the changeset (the v2.1.0 release and version bump), so it is not vague or misleading; while it does not name the new VCDiff feature, it effectively signals a release PR and is appropriate for this context.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch release/2.1.0

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between fcc8459 and b41d8f8.

⛔ Files ignored due to path filters (1)
  • poetry.lock is excluded by !**/*.lock
📒 Files selected for processing (3)
  • .github/workflows/release.yml (3 hunks)
  • CHANGELOG.md (1 hunks)
  • pyproject.toml (2 hunks)
🚧 Files skipped from review as they are similar to previous changes (3)
  • CHANGELOG.md
  • pyproject.toml
  • .github/workflows/release.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: check (3.12)
  • GitHub Check: check (3.9)
  • GitHub Check: check (3.13)
  • GitHub Check: check (3.8)
  • GitHub Check: check (3.7)
  • GitHub Check: check (3.10)
  • GitHub Check: check (3.11)

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.

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: 0

🧹 Nitpick comments (3)
pyproject.toml (1)

3-3: Poetry version updated correctly; confirm prerelease extra intent.

vcdiff-decoder = "^0.1.0a1" (optional) is a prerelease. If shipping a stable SDK depending on this feature, confirm the prerelease dependency is intentional for end users; otherwise consider pinning to a stable once available.

If intentional, consider noting it in the CHANGELOG entry (e.g., “Install with ably[vcdiff]; this currently uses a prerelease decoder”).

CHANGELOG.md (2)

3-3: Add release date to header for consistency.

Most historical entries include dates; adding one improves traceability.

Apply:

-## [v2.1.0](https://github.com/ably/ably-python/tree/v2.1.0)
+## [v2.1.0](https://github.com/ably/ably-python/tree/v2.1.0) (2025-09-18)

9-11: Clarify how to enable VCDIFF support.

Since the decoder is an optional extra, add a brief installation/use note to avoid confusion.

Apply:

-* Added support for VCDIFF delta-compressed messages. When deltas are provided by the service, 
-the SDK reconstructs full message payloads from the base content and the received delta, 
-reducing bandwidth usage without changing your application code.
+* Added support for VCDIFF delta-compressed messages. When deltas are provided by the service,
+  the SDK reconstructs full message payloads from the base content and the received delta,
+  reducing bandwidth usage with no API changes required.
+  To enable, install the optional extra: `pip install "ably[vcdiff]"`.
+  (Note: the decoder dependency is currently a prerelease.)
📜 Review details

Configuration used: CodeRabbit UI

Review profile: CHILL

Plan: Pro

Disabled knowledge base sources:

  • Jira integration is disabled by default for public repositories

You can enable these sources in your CodeRabbit configuration.

📥 Commits

Reviewing files that changed from the base of the PR and between 6b45b9e and 42e600e.

📒 Files selected for processing (3)
  • CHANGELOG.md (1 hunks)
  • ably/__init__.py (1 hunks)
  • pyproject.toml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (7)
  • GitHub Check: check (3.10)
  • GitHub Check: check (3.7)
  • GitHub Check: check (3.11)
  • GitHub Check: check (3.8)
  • GitHub Check: check (3.13)
  • GitHub Check: check (3.12)
  • GitHub Check: check (3.9)
🔇 Additional comments (1)
ably/__init__.py (1)

19-19: Version bump LGTM — no repo-wide changes required.

lib_version and pyproject.toml version both 2.1.0. The only "2.0.13" matches are historical references in CHANGELOG.md (lines 5, 13, 15); no action needed.

@ttypic ttypic requested a review from VeskeR September 19, 2025 15:24
@github-actions github-actions bot temporarily deployed to staging/pull/626/features September 19, 2025 15:25 Inactive
Copy link
Contributor

@VeskeR VeskeR left a comment

Choose a reason for hiding this comment

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

LGTM, approved.
Small nitpick about unnecessary new line

@github-actions github-actions bot temporarily deployed to staging/pull/626/features September 19, 2025 17:19 Inactive
- make more strict vcdiff-decoder version
- update release job
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