Docs and migration guide for the ably/pubsub-server 2.0 split - #224
Draft
umair-ably wants to merge 3 commits into
Draft
Docs and migration guide for the ably/pubsub-server 2.0 split#224umair-ably wants to merge 3 commits into
umair-ably wants to merge 3 commits into
Conversation
|
Important Draft PR not reviewedDraft PRs are not automatically reviewed by default.
To automatically review draft PRs, update your CodeRabbit configuration: reviews:
auto_review:
drafts: trueThanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
umair-ably
force-pushed
the
pubsub-split/docs
branch
from
September 9, 2026 10:29
e5d74c0 to
9dc9d7b
Compare
umair-ably
changed the base branch from
pubsub-split/restructure
to
pubsub-split/release-tooling
September 9, 2026 10:29
umair-ably
added a commit
that referenced
this pull request
Sep 9, 2026
umair-ably
force-pushed
the
pubsub-split/release-tooling
branch
from
September 9, 2026 10:33
b25071e to
a40e898
Compare
The package name is now the declaration of the side, so the README has to say what "server" means and show the header that carries it: a Package section covers the trusted runtime, the MAU exemption and the wire shape, and states that this is PHP's only Pub/Sub package (no device package, no core to depend on, still REST-only). Install line, badges and quickstart move onto the new package and the door; the supported-platforms table replaces the protocol-v1 deprecation notice with the new 8.1-8.5 floor. Adds a pointer to UPDATING.md, a line telling 1.x users where their branch lives (the legacy Packagist page renders this README after the split), and a note that Packagist is fed from a read-only mirror so issues belong here. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
A machine-applicable mapping table (install line, door, namespace prefix, the agents option replacing the static setters, the removed loader, the PHP floor), a before/after example, what the removals are, and the far longer list of what is unchanged - the returned client is the same REST client. States the forcing function rather than implying a deadline: once MAU pricing is live the 1.x constructor is rejected on MAU accounts, and 1.x gets security and critical fixes for one year from the 2.0.0 release. Carries the same draft banner as ably-ruby's guide, because 091d may still rename AblyRest to HttpClient before GA. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Body only: the heading and compare link that PR 1 added stay byte for byte, since PackagingTest reads the version out of the heading. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
umair-ably
force-pushed
the
pubsub-split/docs
branch
from
September 9, 2026 10:33
9dc9d7b to
ae89900
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Plan steps 19 and 20 of
plan.md, plus the 2.0.0 CHANGELOG body — row 5 of the PR stack. Stacked on #225 (which is stacked on #223) — review those first; this diff shows only the docs changes.Docs only. No file under
src/,tests/,.github/orcomposer.jsonis touched, and neither isCONTRIBUTING.md(PR 2 owns its release section).What changed
README.mdably/pubsub-server: badges, install line and quickstart move onto the new package and the door; a new Package section; a supported-platforms table on the 8.1–8.5 floor replacing the protocol-v1 deprecation notice; a Migrating fromably/ably-php1.x section; a 1.x pointer atmaintenance/1.x; a note that Packagist is fed from a read-only mirror.UPDATING.md1.x → 2.0.0section: why, the mapping table, a before/after example, the side declaration, removals, what is unchanged, and staying on 1.x.CHANGELOG.md## [2.0.0]entry PR 1 added. The heading and compare link are unchanged byte for byte, becausetests/PackagingTest.phpreadsDefaults::LIB_VERSIONout of that heading.Why a single package
PHP ships one package,
ably/pubsub-server, where the other SDKs ship a core plus side packages — and the README says so rather than leaving it as an apparent omission. PHP is server-only and REST-only: there is no realtime client and no device package, so a core would have exactly one consumer, and PHP cannot re-export types, so consumers would have touseclasses out of a package labelled internal. Packagist binds every Composer-valid tag of a repository to the package, so a second package would mean a second repository and a second mirror to operate for no consumer benefit. That isplan.mdstep 1 and PDR-091b2, whose PHP row names onlyably/pubsub-server. The consequence the README carries: development happens here, and the package is published from a read-only distribution mirror.Mapping table (as written in
UPDATING.md)ably/ably-php)ably/pubsub-server)composer require ably/ably-phpcomposer require ably/pubsub-serveruse Ably\AblyRest;/new AblyRest($opts)use Ably\PubSub\Server;/Server::createHttpClient($opts)use Ably\Models\Message;(anyAbly\Xtype)use Ably\PubSub\Models\Message;(Ably\PubSub\X)AblyRest::setAblyAgentHeader('x', 'v')Server::createHttpClient(['agents' => ['x' => 'v'], …])AblyRest::setLibraryFlavourString('x')agentsoptionrequire 'ably-loader.php';^8.1(tested 8.1 – 8.5)\Ably\AblyResttype hints\Ably\PubSub\HttpClient(not yet decided)Auth::authorise()is still present in 2.0.0 — checked against #223's diff, which removes only the two static agent setters, the loader and the demo. The guide says so, and says it may go in the 091d pass.How the samples were verified
Every snippet in both files was executed, not read. Two scratch scripts (not committed) load
vendor/autoload.phpand thetests\HttpMocktransport fromtests/HttpTest.php, run each sample against it, and read theAbly-Agentheader back out ofCURLOPT_HTTPHEADER.So: the door's header is asserted equal to
ably-pubsub-php/2.0.0 php/<PHP_VERSION> ably-pubsub-server(the header carries the fullPHP_VERSION,8.5.10locally,8.3.4in the documented example); the wrapper sample'sagentsentries land in order ahead of the side entry; each of the four argument forms the guide claims the door accepts was actually passed to it; the "unchanged" list was checked against the live object; and both removals the mapping table asserts were confirmed absent viamethod_exists.testLibVersionMatchesTheTopChangelogEntryis the one that would catch a CHANGELOG heading edit, and it passes.Links: every external URL in both files returns 200 under
curl -sI -L. The twoposer.pugx.orgbadge URLs also return 200 and render a placeholder, since the package is not on Packagist yet. Markdown reviewed rendered.Follow-ups
ably/pubsub-serveris registered on Packagist (plan step 15c). Theposer.pugx.orgURLs are correct now and start resolving then; the Packagist link redirects to the Packagist homepage until registration (checked: it does not 404).ably/ably-phpexcept the licence badge target, which matches what Update repository references for rename to ably-pubsub-php #222 already changed. The rename (step 17) / Update repository references for rename to ably-pubsub-php #222 handles the rest.AblyRestbecomesHttpClient; the guide's draft banner says so.🤖 Generated with Claude Code