Firefox WebExtension (Desktop and Mobile) that lets you share the current tab to Margit.at, frontpage.fyi, etc. with minimal effort.

docs(contributing): clarify release workflow

- promote major sections to consistent heading levels
- replace self-distribution notes with step-by-step release guide

+48 -25
+48 -25
CONTRIBUTING.md
··· 1 - ## Contributing to ATProto Social 1 + # Contributing to ATProto Social 2 2 3 - ### Development install (temporary) 3 + ## Development install (temporary) 4 4 5 5 1. Open `about:debugging#/runtime/this-firefox`. 6 6 2. Click **Load Temporary Add-on…** and choose `manifest.json` inside the ··· 9 9 10 10 > This method is ideal while iterating; Firefox forgets the add-on on restart. 11 11 12 - ### Development tips 12 + ## Development tips 13 13 14 14 - Inspect background/service-worker logs from `about:debugging` → **Inspect**. 15 15 - The UI scripts (`popup.js` and `options.js`) log to the DevTools console ··· 18 18 directory (see workflow below). 19 19 - Licensed under the [Apache License 2.0](./LICENSE). 20 20 21 - ### Implementation notes 21 + ## Implementation notes 22 22 23 23 - The background worker discovers the user's PDS by resolving the handle 24 24 (`com.atproto.identity.resolveHandle` + PLC lookup). ··· 31 31 - Maximum lengths follow the current Frontpage limits (120 characters for the 32 32 title, 2048 for URLs). 33 33 34 - ### Self-distribution pipeline 34 + ## Cutting a release 35 + 36 + Mozilla requires every signed upload to have a unique version number, so the 37 + first step is always bumping the version. 38 + 39 + **1. Bump the version in `extension/manifest.json`:** 40 + 41 + ```json 42 + "version": "0.1.7" 43 + ``` 44 + 45 + **2. Commit and push to `main`:** 46 + 47 + ```sh 48 + git add extension/manifest.json 49 + git commit -m "Bump version to 0.1.7" 50 + git push 51 + ``` 52 + 53 + **3. Trigger the `package-extension` workflow:** 54 + 55 + Via the GitHub UI (`Actions` → **package-extension** → **Run workflow**), or 56 + with the `gh` CLI: 57 + 58 + ```sh 59 + gh workflow run package-extension.yml --repo antonmry/atproto_firefox_plugin 60 + ``` 61 + 62 + **4. Monitor the run:** 35 63 36 - This repository includes `.github/workflows/package-extension.yml` which builds 37 - (and optionally signs) the add-on using 38 - [`web-ext`](https://extensionworkshop.com/documentation/develop/web-ext-command-reference/). 64 + ```sh 65 + gh run list --workflow=package-extension.yml --repo antonmry/atproto_firefox_plugin 66 + gh run watch --repo antonmry/atproto_firefox_plugin 67 + ``` 39 68 40 - 1. Configure `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` repository secrets with your 41 - AMO API credentials if you want automatic signing. Without the secrets, the 42 - workflow still produces an unsigned ZIP you can download. 43 - 2. Trigger the workflow manually (`Actions` → **package-extension** → 44 - **Run workflow**). 45 - 3. Download the artifacts: 46 - - `frontpage-extension-unsigned` contains the ZIP that `web-ext build` 47 - generates. 48 - - `frontpage-extension-signed` (only when secrets are present) contains the 49 - signed `.xpi` from AMO for self-hosting. 50 - 4. Each run also publishes a GitHub Release (tagged `v<version>-<run-id>`) that 51 - ships the same ZIP/XPI assets, so you can share a permanent download link. 52 - - Mozilla requires every signed upload to have a unique version number. Bump 53 - `version` in `extension/manifest.json` before rerunning the workflow if you 54 - need a new signed package. 69 + **5. Check the resulting release:** 55 70 56 - These artifacts can be hosted directly for self-distribution as described in the 71 + ```sh 72 + gh release list --repo antonmry/atproto_firefox_plugin 73 + gh release view --repo antonmry/atproto_firefox_plugin 74 + ``` 75 + 76 + The workflow publishes a GitHub Release tagged `v<version>-<run-id>` with the 77 + signed `.xpi` (when `AMO_JWT_ISSUER` and `AMO_JWT_SECRET` secrets are set) and 78 + an unsigned `.zip`. These artifacts can be hosted directly for self-distribution 79 + as described in the 57 80 [Mozilla documentation](https://extensionworkshop.com/documentation/publish/self-distribution/). 58 81 59 - ### Tangled mirror 82 + ## Tangled mirror 60 83 61 84 The `mirror-to-tangled.yml` workflow pushes every commit on `main` to Tangled, a 62 85 federated Git hosting platform built on ATProto. Browse the mirror at