Skip to content

Add ADR 0019 (frontend release pipeline) and releasing.md fixes#202

Merged
vredchenko merged 2 commits into
mainfrom
docs/frontend-release-adr
May 20, 2026
Merged

Add ADR 0019 (frontend release pipeline) and releasing.md fixes#202
vredchenko merged 2 commits into
mainfrom
docs/frontend-release-adr

Conversation

@vredchenko
Copy link
Copy Markdown
Collaborator

Summary

Two related documentation changes for the SmartEM release story, in
two commits so each can be reviewed independently:

  1. docs(release) — fix accuracy issues in
    docs/operations/releasing.md: lowercase the GHCR image path
    (matches what the workflow actually publishes) and refresh example
    version numbers, which had drifted away from the actual latest tags
    for each package.

  2. docs(adr) — add ADR-0019 defining a release and deployment
    pipeline for smartem-frontend, the missing piece in the workspace
    release story. The ADR commits to:

    • Independent semver for the frontend, with a build-time /version
      stamp carrying the backend OpenAPI info.version, so FE/BE
      compatibility is observable at runtime without forcing lockstep
      bumps.
    • smartem-frontend-v{semver} tag prefix; RC-on-main +
      stable-on-tag + workflow_dispatch, matching the shape of
      release-smartem-decisions.yml.
    • nginx:1.30-alpine for static SPA serving — defended against
      Caddy, freenginx, and Node-runtime serving in the Alternatives
      Considered section.
    • GHCR-only artefacts; no PyPI, no npm publish.
    • Build target apps/smartem only; legacy excluded.

    ADR-0018 is intentionally skipped — that number is reserved for
    the in-flight agent authentication ADR.

Implementation of the workflow, Dockerfile replacement, k8s manifests,
ingress rule, and the backend /version endpoint contract are listed
as follow-ups in the ADR and are out of scope here.

Test plan

  • Confirm the WebUI deploy succeeds and the ADR renders correctly
    at /docs/decision-records/decisions/0019-smartem-frontend-release-pipeline
  • Confirm the auto-generated navigation includes the new ADR under
    Decision Records
  • Confirm docs/operations/releasing.md still renders with the
    updated examples
  • No MDX build errors in CI

Related

  • Supersedes the "Dockerfile updates" follow-up noted in ADR-0017
  • Lists follow-ups that will produce a fourth section in
    docs/operations/releasing.md once the pipeline lands

The GHCR image path was capitalised inconsistently with how the
workflow actually publishes it. Example versions across the doc were
stale relative to the latest released tags, making the procedure read
as if it had not been used.

- Lowercase ghcr.io/diamondlightsource/smartem-decisions
- Bump example versions to a plausible next-stable for each package
The smartem-frontend repository has had no release pipeline, no tags,
no published artefacts, and no Kubernetes manifest deploying it in any
environment. With the monorepo restructure (ADR 0017) complete and the
legacy app due for retirement, this is the right moment to commit to a
release shape that matches the rest of the workspace.

Key decisions captured:

- Independent frontend semver with a build-time /version stamp carrying
  the backend OpenAPI info.version, allowing FE/BE versions to drift
  while keeping compatibility observable at runtime.
- smartem-frontend-v{semver} tag prefix, RC-on-main + stable-on-tag +
  workflow_dispatch, matching release-smartem-decisions.yml.
- nginx:1.30-alpine for SPA serving — defended against Caddy,
  freenginx, and Node-runtime serving, with a note that no DLS-wide
  pattern exists either way.
- GHCR-only artefacts; no PyPI, no npm publish, no Windows exe.
- Build target apps/smartem only; legacy excluded from the pipeline
  and to be purged after first successful production deploy.

Implementation, k8s manifests, ingress rule, and the BE /version
endpoint contract are explicit follow-ups outside the scope of this
ADR. ADR 0018 is reserved for the in-flight agent auth work.
@github-actions github-actions Bot added the documentation Improvements or additions to project documentation label May 20, 2026
@vredchenko vredchenko merged commit 517f8fd into main May 20, 2026
7 checks passed
@vredchenko vredchenko deleted the docs/frontend-release-adr branch May 20, 2026 18:04
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentation Improvements or additions to project documentation

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant