Prerelease on every merge, promote by tag, and pair each library release with its browser build
Author: JWriter20Created Sep 28, 2026Updated Sep 28, 2026
Two gaps in how Camoufox is released today:
- Nothing is released on merge. The browser is built only from a manually pushed tag (into a draft release someone publishes by hand), and PyPI/npm only by a manual dispatch. A merged fix can sit unreleased for weeks, and nobody can try
mainwithout building it. - A library release is not tied to a browser build.
camoufox fetchinstalls the newest build in a channel and a launch uses whatever is marked active, so upgrading the library can run it against a browser it was never tested with, and an older library picks up a newer, incompatible browser (the reasonPLAYWRIGHT_BROWSER_FLOORSexists).
Wanted: every tested merge to main publishes a prerelease of the browser, the PyPI package and the npm package — opt-in only for users — and a maintainer promotes a tested commit to stable with a tag, with no rebuild. Every library release fetches and launches exactly the browser it was released with unless the user explicitly chooses another.
Source: daijro/camoufox