-
Notifications
You must be signed in to change notification settings - Fork 0
docs: repoint the release channels off the archived repos #125
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
|
@@ -158,12 +158,14 @@ Production hosts and PKG / Cryptify URLs are baked in at Docker build time via t | |||||||||||||||||
|
|
||||||||||||||||||
| ## Releasing | ||||||||||||||||||
|
|
||||||||||||||||||
| Releases run on every push to `master` via `.github/workflows/release.yml`: | ||||||||||||||||||
| Releases come out of the [postguard-js](https://github.com/encryption4all/postguard-js) workspace, from `apps/outlook-addon`, via `.github/workflows/outlook-addon.yml`. The standalone `postguard-outlook-addon` repository is archived: it releases nothing and its `release.yml` cannot run. | ||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Line 157, two lines above this hunk, still reads:
That is the archived repo's workflow which this very line declares cannot run. Those build args now come from the Leaving it is the exact stale-pointer failure mode the PR exists to remove, and it is two lines from the fix. (Outside the diff, so no suggestion block.) |
||||||||||||||||||
|
|
||||||||||||||||||
| 1. `googleapis/release-please-action` watches conventional commits and opens a release PR. Merging that PR cuts a tagged release. | ||||||||||||||||||
| 2. On non-release pushes, CI builds and pushes `ghcr.io/encryption4all/postguard-outlook-addon:edge` (and a `sha-<commit>` tag) using staging hosts. | ||||||||||||||||||
| 3. On release pushes, CI builds the same image with production hosts and tags it with the released version. | ||||||||||||||||||
| 1. [changesets](https://github.com/changesets/changesets) sets the version. It bumps `package.json` only, so `pnpm --filter postguard-outlook-addin sync-version` propagates it into `manifest.xml`'s `<Version>`. | ||||||||||||||||||
| 2. On PRs and pushes to `main`, CI builds and pushes `ghcr.io/encryption4all/postguard-outlook-addon:edge` (plus a `sha-<commit>` tag) using staging hosts. | ||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Step 2 is wrong on three counts, and two of them are stale text carried over from the old release-please description. I read
Worth fixing because the website page in this same PR gets the equivalent sentence right: "Publishing happens on
Suggested change
|
||||||||||||||||||
| 3. Pushing an **app-scoped** tag — `outlook-addin-v1.0.0`, never `v*`, because the tag namespace is shared with `@e4a/pg-js`'s changesets releases — builds the same image with production hosts, tags it with the released version, and creates a GitHub release carrying `manifest.xml` as an asset. | ||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Two things on this line. The tag path also pushes Em dash and bold budget. The repo's own
All three land over the hard max. For reference A rewrite of this line that fixes both:
Suggested change
|
||||||||||||||||||
|
|
||||||||||||||||||
| The image name is hardcoded rather than derived from the workflow's `github.repository` context, which resolves to `postguard-js` while [postguard-ops](https://github.com/privacybydesign/postguard-ops) pins `ghcr.io/encryption4all/postguard-outlook-addon`. The GHCR package name did not change on the move, so nothing downstream had to be repointed. | ||||||||||||||||||
|
|
||||||||||||||||||
| The image is an NGINX container serving the built add-in over HTTPS. To deploy, pull the new tag and restart the container on the host serving `addin.postguard.eu` (or `addin.staging.postguard.eu` for `:edge`). There is no automatic deploy step in CI today. | ||||||||||||||||||
|
|
||||||||||||||||||
| The Office add-in store submission and admin-center deployment still happen out of band against the published manifest. | ||||||||||||||||||
| The Office add-in store submission and admin-center deployment still happen out of band against the published manifest. Point them at the monorepo's `outlook-addin-v*` releases. The archived repository's `releases/latest/download/manifest.xml` still resolves and still serves v0.5.0's manifest, and it always will — an archived repo keeps serving its release assets, so anything left pointing there is frozen with no error to notice. | ||||||||||||||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "still serves v0.5.0's manifest" is misleading in the one place it matters most, and I checked rather than assumed. I fetched both assets. The archived repo's The current So an admin who follows this page's advice and checks the version to see whether they are on the frozen manifest reads
Suggested change
|
||||||||||||||||||
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
|
|
@@ -10,12 +10,16 @@ The PostGuard web frontend for encrypting and sending files. Users pick files, c | |||||
|
|
||||||
| The website uses `@e4a/pg-js` with two Vite plugins for WASM support (`vite-plugin-wasm` and `vite-plugin-top-level-await`). | ||||||
|
|
||||||
| The website contains two submodules: Cryptify (the file sharing backend, embedded in an iframe) and the Thunderbird addon (the `.xpi` file can be downloaded from the website). To update the submodules: | ||||||
| `apps/website` carries two git submodules, used by the local dev stack rather than by the built site: `cryptify` and `postguard`. Initialise them with: | ||||||
|
|
||||||
| ```bash | ||||||
| git submodule update --init --recursive | ||||||
| ``` | ||||||
|
|
||||||
| Note that the `cryptify` submodule still points at `encryption4all/cryptify`, which is archived — the service is a member of the [postguard](/repos/postguard) workspace now, so that pin can never advance. Tracked in [encryption4all/postguard-js#225](https://github.com/encryption4all/postguard-js/issues/225). | ||||||
|
|
||||||
| The Thunderbird `.xpi` is **not** a submodule. `scripts/sync-addons.mjs` mirrors the add-on release artifacts into `static/downloads/` — the `.xpi` from the monorepo's `tb-addon-v*` releases and the Outlook `manifest.xml` from its `outlook-addin-v*` releases — refreshing on a 6h interval inside the container. | ||||||
|
|
||||||
| For a step-by-step example of building a web application with PostGuard, see the [pg-sveltekit](/repos/pg-sveltekit) example, which follows the same patterns as this website. | ||||||
|
|
||||||
| ## Recipient URL forms | ||||||
|
|
@@ -155,11 +159,15 @@ The runtime tier exists because these values change per environment without rebu | |||||
|
|
||||||
| ## Releasing | ||||||
|
|
||||||
| This repository uses [Release-please](https://github.com/googleapis/release-please) for automated versioning. Merging a release PR triggers a multi-architecture Docker image build pushed to GHCR. | ||||||
| Releases come out of the [postguard-js](https://github.com/encryption4all/postguard-js) workspace via `.github/workflows/website.yml`. Versioning is [changesets](https://github.com/changesets/changesets), not release-please, and the standalone `postguard-website` repository is archived and releases nothing. | ||||||
|
|
||||||
| The image is `ghcr.io/encryption4all/postguard-website` — the same GHCR package name the standalone repo published, hardcoded in the workflow rather than derived from the `github.repository` context (which resolves to `postguard-js`) precisely so [postguard-ops](https://github.com/privacybydesign/postguard-ops)' pin keeps working. Publishing happens on `main` only; PRs build without pushing. | ||||||
|
|
||||||
| ## CI/CD | ||||||
|
|
||||||
| | Workflow | Trigger | What it does | | ||||||
| |---|---|---| | ||||||
| | `ci.yml` | Push/PR | Svelte type checks, release-please, multi-arch Docker build | | ||||||
| | `pr-title.yml` | PR | Validates PR title format | | ||||||
| Workflow: `.github/workflows/website.yml` in postguard-js. Deliberately not path-filtered to `apps/website/**`, so an SDK change in `packages/pg-js` is tested against the site in the same PR. | ||||||
|
|
||||||
| | Trigger | What it does | | ||||||
| |---|---| | ||||||
| | PR / push to `main` | Svelte type checks, lint, CSS custom-property lint, unit tests, and an nginx config syntax test over both `docker/nginx.dev.conf` and `docker/default.conf.template` | | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The PR-check row omits the Since this table is the page's answer to "what gates a website PR", the slowest gate is the one most worth naming.
Suggested change
|
||||||
| | Push to `main` | Multi-arch Docker build pushed to GHCR (`:edge`, plus the changesets version on a release commit) | | ||||||
|
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. "plus the changesets version on a release commit" inverts what the workflow does, and
The metadata step is For contrast,
Suggested change
|
||||||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
postguard#293is linked as/pull/293, but 293 is an issue, not a PR: "task: cut cryptify's Docker publish pipeline over to postguard, then retire the old repo's build" (closed). I checked via the API —has("pull_request")is false.GitHub redirects
/pull/Nto/issues/N, so nothing 404s andcheck:linkswill not catch it either, since it only walks the 45 pinned source links. The same number is cited correctly as/issues/312two lines down.