A manual rebuild of a release dispatched from develop no longer tags :dev or
marks the image as the dev channel. The docs now say each :dev image is only
published when a merge touches that project.
Testers who want changes before a release can point at :dev. :latest and
the version tags still only come from releases on main. Dev images carry
RELEASE_CHANNEL=dev so the update checker compares them with develop.
Serialize publish-firefox and publish-latest jobs with a 90-second delay
to prevent hitting AMO's rate limit when running in parallel. Ensure
publish-latest still runs even if publish-firefox fails, while
maintaining the job dependency.
Also simplify extension certification notes.
Work now merges into develop by pull request; main is the release branch, updated by pull requests from develop, and remains the only branch that publishes images and releases.
Pins the dependencies stage in the frontend Dockerfile to $BUILDPLATFORM
so npm ci and vite build run natively on the build machine rather than
under QEMU emulation for arm64 builds. Only the nginx runtime stage is
built per target platform. Adds a 30-minute timeout to prevent hung
build steps from running until GitHub's 6-hour limit.
Extension versions are now derived from Conventional Commits that touch
extension/ (semantic-release-monorepo), instead of being bumped by hand.
The new "Extension store release" workflow runs every Friday at 13:00
Europe/Warsaw, or manually: it bumps package.json, writes CHANGELOG.md,
tags thingport-grab-v<version>, creates a non-latest GitHub release with
the store zips, and publishes to Edge Add-ons in a separately retryable
job.
The per-merge workflow keeps building the extension-latest zips and the
signed Firefox .xpi, but no longer publishes to Edge.