Skip to content

Resolve the skeleton lock in CI (#2, step 1) - #3

Merged
karl-bullock merged 1 commit into
mainfrom
pinned-skeleton
Jul 29, 2026
Merged

Resolve the skeleton lock in CI (#2, step 1)#3
karl-bullock merged 1 commit into
mainfrom
pinned-skeleton

Conversation

@karl-bullock

Copy link
Copy Markdown
Member

First step of #2.

The image resolves Flarum from Packagist on first container start — ^2.0 at beta stability, plus six extensions at bare *. Seven floating constraints, so the same image tag can produce different forums a week apart, and there is no offline install path at all.

A committed lock is what fixes that, but it has to be generated on PHP 8.3 with the exact extension set the image ships — resolve somewhere missing intl or exif and composer will happily pick versions production cannot run. Hence CI rather than a laptop.

This is also the update path: bumping Flarum becomes re-running this workflow and committing the diff, so a version change is a reviewable PR instead of something that happens silently the next time a container boots.

The run audits what it resolved and fails on any advisory — pinning a known-vulnerable set would be worse than floating past it.

Note for #2: Flarum 2.0 has no stable release (currently v2.0.0-rc.5), so --stability=beta is currently required, not sloppiness. The pin has to target an explicit RC for now.

The workflow is workflow_dispatch only, so merging it changes nothing on its own — but it has to be on the default branch before it can be dispatched at all.

The image resolves Flarum from Packagist on first container start — ^2.0
at beta stability, plus six extensions at bare '*'. Seven floating
constraints, so the same image tag can produce different forums a week
apart, and there is no offline install.

A committed lock fixes that, but it has to be generated on PHP 8.3 with
the exact extension set the image ships: resolve somewhere missing intl
or exif and composer will pick versions production cannot run. So it is
generated here rather than on a laptop.

This is also the update path. Bumping Flarum becomes re-running this and
committing the diff — a reviewable change instead of something that
happens silently the next time a container starts.

The run audits what it resolved and fails on any advisory. Pinning a
known-vulnerable set is worse than floating past it.
@karl-bullock
karl-bullock merged commit 3661d90 into main Jul 29, 2026
6 checks passed
@karl-bullock
karl-bullock deleted the pinned-skeleton branch July 29, 2026 02:23
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant