You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
if [ "$amo_version" != "$VERSION" ] || [ -z "$download_url" ]; then
75
+
echo "Firefox Add-ons publishes ${amo_version:-no version}; expected ${VERSION}. Publish the release candidate there before merging the Release Please PR." >&2
Versioned packages and checksums are available from [GitHub Releases](https://github.com/usememos/web-clipper/releases). Store installation is recommended for automatic updates.
13
+
14
+
For Chromium-based browsers:
15
+
16
+
1. Download and extract `memos-web-clipper-chromium-v<version>.zip`.
17
+
2. Open the browser's extensions page, such as `chrome://extensions` or `edge://extensions`.
18
+
3. Enable **Developer mode**, choose **Load unpacked**, and select the extracted directory.
19
+
20
+
For Firefox, download `memos-web-clipper-firefox-v<version>.xpi` and open it with Firefox. GitHub release XPIs are the same Mozilla-signed packages published on Firefox Add-ons.
21
+
22
+
To verify a download on Linux, run `sha256sum --ignore-missing -c SHA256SUMS` in the directory containing the downloaded package. Do not rely on manually installed packages receiving browser-store-managed updates; check GitHub Releases for new versions.
23
+
10
24
## Features
11
25
12
26
- Capture the page title, URL, and readable description.
Release Please maintains the release pull request, `CHANGELOG.md`, `package.json` version, Git tag, and GitHub Release. A separate tag workflow verifies the source, builds the extension packages, mirrors the matching Mozilla-signed XPI, generates checksums, and attaches the user-facing assets.
4
+
5
+
## Repository configuration
6
+
7
+
Add a fine-grained personal access token as the `RELEASE_PLEASE_TOKEN` Actions secret. It needs read/write access to repository contents, issues, and pull requests. A separate token is required because tags created with the default `GITHUB_TOKEN` do not trigger the tag-based release workflow.
8
+
9
+
Add these public build values as Actions repository variables:
10
+
11
+
-`VITE_CLERK_OAUTH_CLIENT_ID`
12
+
-`VITE_CLERK_OAUTH_ISSUER`
13
+
-`VITE_WEB_APP_URL`
14
+
15
+
The release workflow rejects missing values and verifies that the tag exactly matches the version in `package.json`.
16
+
17
+
## Release process
18
+
19
+
1. Merge conventional commits into `main`. Release Please creates or updates a release pull request.
20
+
2. Check out the release pull request branch, configure the production `VITE_*` values in `.env`, and run `pnpm package` from a clean worktree.
21
+
3. Test the generated packages and submit the Firefox ZIP plus its matching source archive to Firefox Add-ons. Submit the Chromium store packages as appropriate.
22
+
4. Wait until Firefox Add-ons publishes the exact version proposed by the release pull request.
23
+
5. Merge the release pull request.
24
+
6. Release Please creates the `v<version>` tag and GitHub Release. The tag workflow builds the same Firefox payload, downloads the signed XPI from Firefox Add-ons, compares every non-signature file, and publishes the release assets only when they match.
25
+
26
+
If Firefox Add-ons does not yet expose the expected version, the release workflow fails without publishing mismatched artifacts. Publish the store version and rerun the failed workflow.
27
+
28
+
The public release contains:
29
+
30
+
-`memos-web-clipper-chromium-v<version>.zip`, which retains the public manifest key needed for a stable OAuth extension ID.
31
+
-`memos-web-clipper-firefox-v<version>.xpi`, mirrored from Firefox Add-ons after payload verification.
32
+
-`SHA256SUMS` for both packages.
33
+
34
+
Store upload archives remain separate. `pnpm package` produces those archives, while `pnpm package:release` produces the Chromium sideload archive and an unsigned Firefox archive used only to verify the signed store package.
35
+
36
+
## Bootstrap
37
+
38
+
Version `0.1.0` was published before Release Please was introduced. The manifest records it as the current release, and `bootstrap-sha` points at the initial extension commit so later conventional commits are included in the first generated release pull request. Once the first Release Please release is complete, the bootstrap setting can be removed.
0 commit comments