chore: prepare Firefox release v2.0.3
This commit is contained in:
parent
8315d49a58
commit
39e93e0987
|
|
@ -62,7 +62,7 @@ current GitHub Release:
|
||||||
VERSTAK_BROWSER_ENV=/path/to/.env npm run publish:firefox
|
VERSTAK_BROWSER_ENV=/path/to/.env npm run publish:firefox
|
||||||
```
|
```
|
||||||
|
|
||||||
The first invocation publishes tag `v2.0.2` and bootstraps the
|
The first invocation publishes tag `v2.0.3` and bootstraps the
|
||||||
`releases/latest/download/updates.json` endpoint. Re-running the command
|
`releases/latest/download/updates.json` endpoint. Re-running the command
|
||||||
replaces those two release assets for the same tag.
|
replaces those two release assets for the same tag.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"manifest_version": 3,
|
"manifest_version": 3,
|
||||||
"name": "Verstak Bridge",
|
"name": "Verstak Bridge",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"description": "Send pages, selections, links, and files to the local Verstak browser inbox.",
|
"description": "Send pages, selections, links, and files to the local Verstak browser inbox.",
|
||||||
"author": "Verstak",
|
"author": "Verstak",
|
||||||
"homepage_url": "https://git.mirv.top/verstak/verstak-browser-extension",
|
"homepage_url": "https://git.mirv.top/verstak/verstak-browser-extension",
|
||||||
|
|
|
||||||
|
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
- Publish repository: `mirivlad/verstak-browser-extension`.
|
- Publish repository: `mirivlad/verstak-browser-extension`.
|
||||||
- Firefox addon ID: `verstak-bridge@verstak.app`.
|
- Firefox addon ID: `verstak-bridge@verstak.app`.
|
||||||
- Initial GitHub release: `v2.0.2`; package and both browser manifests are version `2.0.2`.
|
- Initial GitHub release: `v2.0.3`; package and both browser manifests are version `2.0.3`.
|
||||||
- Every alpha GitHub release is ordinary/latest, not a prerelease.
|
- Every alpha GitHub release is ordinary/latest, not a prerelease.
|
||||||
- XPI remains Mozilla-signed as an unlisted/self-distributed addon before upload.
|
- XPI remains Mozilla-signed as an unlisted/self-distributed addon before upload.
|
||||||
- `npm run release:firefox` remains a local sign-and-package action.
|
- `npm run release:firefox` remains a local sign-and-package action.
|
||||||
|
|
@ -41,19 +41,19 @@ Create `scripts/test-firefox-github-release.js` with:
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const release = require('./firefox-github-release');
|
const release = require('./firefox-github-release');
|
||||||
|
|
||||||
const version = '2.0.2';
|
const version = '2.0.3';
|
||||||
const asset = 'verstak-firefox-2.0.2.xpi';
|
const asset = 'verstak-firefox-2.0.3.xpi';
|
||||||
assert.equal(release.releaseTag(version), 'v2.0.2');
|
assert.equal(release.releaseTag(version), 'v2.0.3');
|
||||||
assert.equal(
|
assert.equal(
|
||||||
release.releaseAssetURL(version, asset),
|
release.releaseAssetURL(version, asset),
|
||||||
'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.3/verstak-firefox-2.0.3.xpi',
|
||||||
);
|
);
|
||||||
assert.deepEqual(release.updateManifest('verstak-bridge@verstak.app', version, asset), {
|
assert.deepEqual(release.updateManifest('verstak-bridge@verstak.app', version, asset), {
|
||||||
addons: {
|
addons: {
|
||||||
'verstak-bridge@verstak.app': {
|
'verstak-bridge@verstak.app': {
|
||||||
updates: [{
|
updates: [{
|
||||||
version: '2.0.2',
|
version: '2.0.3',
|
||||||
update_link: 'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
update_link: 'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.3/verstak-firefox-2.0.3.xpi',
|
||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|
@ -246,7 +246,7 @@ Rewrite the Firefox Release README section so it documents:
|
||||||
- `VERSTAK_BROWSER_ENV=/path/to/.env npm run publish:firefox`;
|
- `VERSTAK_BROWSER_ENV=/path/to/.env npm run publish:firefox`;
|
||||||
- that signing remains unlisted with Mozilla but distribution and automatic
|
- that signing remains unlisted with Mozilla but distribution and automatic
|
||||||
updates use GitHub Release assets;
|
updates use GitHub Release assets;
|
||||||
- that the first `v2.0.2` publish bootstraps the `latest/download/updates.json`
|
- that the first `v2.0.3` publish bootstraps the `latest/download/updates.json`
|
||||||
endpoint.
|
endpoint.
|
||||||
|
|
||||||
- [ ] **Step 4: Run checks without publishing**
|
- [ ] **Step 4: Run checks without publishing**
|
||||||
|
|
@ -275,12 +275,12 @@ git push origin main
|
||||||
### Task 4: Bootstrap and verify the first public update release
|
### Task 4: Bootstrap and verify the first public update release
|
||||||
|
|
||||||
**Files:**
|
**Files:**
|
||||||
- Generated: `release/firefox/verstak-firefox-2.0.2.xpi` (untracked)
|
- Generated: `release/firefox/verstak-firefox-2.0.3.xpi` (untracked)
|
||||||
- Generated: `release/firefox/updates.json` (untracked)
|
- Generated: `release/firefox/updates.json` (untracked)
|
||||||
|
|
||||||
**Interfaces:**
|
**Interfaces:**
|
||||||
- Consumes the Task 3 `npm run publish:firefox` command and valid AMO signing credentials.
|
- Consumes the Task 3 `npm run publish:firefox` command and valid AMO signing credentials.
|
||||||
- Produces GitHub Release tag `v2.0.2` and public XPI/update-manifest assets.
|
- Produces GitHub Release tag `v2.0.3` and public XPI/update-manifest assets.
|
||||||
|
|
||||||
- [ ] **Step 1: Verify release credentials before write operations**
|
- [ ] **Step 1: Verify release credentials before write operations**
|
||||||
|
|
||||||
|
|
@ -302,20 +302,20 @@ Run:
|
||||||
npm run publish:firefox
|
npm run publish:firefox
|
||||||
```
|
```
|
||||||
|
|
||||||
Expected: Mozilla signing succeeds, GitHub Release `v2.0.2` is latest, and it
|
Expected: Mozilla signing succeeds, GitHub Release `v2.0.3` is latest, and it
|
||||||
contains `verstak-firefox-2.0.2.xpi` plus `updates.json`.
|
contains `verstak-firefox-2.0.3.xpi` plus `updates.json`.
|
||||||
|
|
||||||
- [ ] **Step 3: Verify public delivery**
|
- [ ] **Step 3: Verify public delivery**
|
||||||
|
|
||||||
Run:
|
Run:
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
gh release view v2.0.2 --repo mirivlad/verstak-browser-extension --json isLatest,url,assets
|
gh release view v2.0.3 --repo mirivlad/verstak-browser-extension --json isLatest,url,assets
|
||||||
curl -fsSL https://github.com/mirivlad/verstak-browser-extension/releases/latest/download/updates.json
|
curl -fsSL https://github.com/mirivlad/verstak-browser-extension/releases/latest/download/updates.json
|
||||||
```
|
```
|
||||||
|
|
||||||
Expected: the release is latest and the JSON contains addon ID
|
Expected: the release is latest and the JSON contains addon ID
|
||||||
`verstak-bridge@verstak.app`, version `2.0.2`, and the versioned GitHub XPI
|
`verstak-bridge@verstak.app`, version `2.0.3`, and the versioned GitHub XPI
|
||||||
asset URL.
|
asset URL.
|
||||||
|
|
||||||
- [ ] **Step 4: Record release verification without committing assets**
|
- [ ] **Step 4: Record release verification without committing assets**
|
||||||
|
|
|
||||||
|
|
@ -22,10 +22,10 @@ Each release uploads two assets:
|
||||||
- `updates.json`, whose `update_link` points to that same release tag's XPI
|
- `updates.json`, whose `update_link` points to that same release tag's XPI
|
||||||
asset.
|
asset.
|
||||||
|
|
||||||
For version `2.0.2`, the versioned link is:
|
For version `2.0.3`, the versioned link is:
|
||||||
|
|
||||||
```text
|
```text
|
||||||
https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi
|
https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.3/verstak-firefox-2.0.3.xpi
|
||||||
```
|
```
|
||||||
|
|
||||||
The stable `latest/download` endpoint lets already installed extensions discover
|
The stable `latest/download` endpoint lets already installed extensions discover
|
||||||
|
|
@ -46,10 +46,10 @@ endpoint.
|
||||||
## Bootstrap
|
## Bootstrap
|
||||||
|
|
||||||
There is currently no GitHub Release in this repository. After the code change,
|
There is currently no GitHub Release in this repository. After the code change,
|
||||||
the first `v2.0.2` signed release must be published before shipping a manifest
|
the first `v2.0.3` signed release must be published before shipping a manifest
|
||||||
that points to `latest/download/updates.json`; until then that URL is a 404.
|
that points to `latest/download/updates.json`; until then that URL is a 404.
|
||||||
The current package, Chromium manifest and Firefox manifest all use version
|
The current package, Chromium manifest and Firefox manifest all use version
|
||||||
`2.0.2`, so the initial tag and XPI asset name are unambiguous.
|
`2.0.3`, so the initial tag and XPI asset name are unambiguous.
|
||||||
|
|
||||||
## Documentation
|
## Documentation
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,7 @@
|
||||||
{
|
{
|
||||||
"manifest_version": 2,
|
"manifest_version": 2,
|
||||||
"name": "Verstak Bridge",
|
"name": "Verstak Bridge",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"description": "Send pages, selections, links, and files to the local Verstak browser inbox.",
|
"description": "Send pages, selections, links, and files to the local Verstak browser inbox.",
|
||||||
"author": "Verstak",
|
"author": "Verstak",
|
||||||
"homepage_url": "https://github.com/mirivlad/verstak-browser-extension",
|
"homepage_url": "https://github.com/mirivlad/verstak-browser-extension",
|
||||||
|
|
|
||||||
|
|
@ -1,12 +1,12 @@
|
||||||
{
|
{
|
||||||
"name": "verstak-browser-extension",
|
"name": "verstak-browser-extension",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"lockfileVersion": 3,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
"packages": {
|
"packages": {
|
||||||
"": {
|
"": {
|
||||||
"name": "verstak-browser-extension",
|
"name": "verstak-browser-extension",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"web-ext": "^8.3.0"
|
"web-ext": "^8.3.0"
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "verstak-browser-extension",
|
"name": "verstak-browser-extension",
|
||||||
"version": "2.0.2",
|
"version": "2.0.3",
|
||||||
"private": true,
|
"private": true,
|
||||||
"description": "Verstak browser capture extension for Chromium and Firefox",
|
"description": "Verstak browser capture extension for Chromium and Firefox",
|
||||||
"license": "AGPL-3.0-or-later",
|
"license": "AGPL-3.0-or-later",
|
||||||
|
|
|
||||||
|
|
@ -2,27 +2,32 @@
|
||||||
const assert = require('assert');
|
const assert = require('assert');
|
||||||
const fs = require('fs');
|
const fs = require('fs');
|
||||||
const release = require('./firefox-github-release');
|
const release = require('./firefox-github-release');
|
||||||
|
const packageManifest = require('../package.json');
|
||||||
|
const chromiumManifest = require('../chromium/manifest.json');
|
||||||
|
const firefoxManifest = require('../firefox/manifest.json');
|
||||||
|
|
||||||
const version = '2.0.2';
|
const version = '2.0.3';
|
||||||
const asset = 'verstak-firefox-2.0.2.xpi';
|
const asset = 'verstak-firefox-2.0.3.xpi';
|
||||||
|
|
||||||
assert.equal(release.releaseTag(version), 'v2.0.2');
|
assert.equal(packageManifest.version, version);
|
||||||
|
assert.equal(chromiumManifest.version, version);
|
||||||
|
assert.equal(firefoxManifest.version, version);
|
||||||
|
assert.equal(release.releaseTag(version), 'v2.0.3');
|
||||||
assert.equal(
|
assert.equal(
|
||||||
release.releaseAssetURL(version, asset),
|
release.releaseAssetURL(version, asset),
|
||||||
'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.3/verstak-firefox-2.0.3.xpi',
|
||||||
);
|
);
|
||||||
assert.deepEqual(release.updateManifest('verstak-bridge@verstak.app', version, asset), {
|
assert.deepEqual(release.updateManifest('verstak-bridge@verstak.app', version, asset), {
|
||||||
addons: {
|
addons: {
|
||||||
'verstak-bridge@verstak.app': {
|
'verstak-bridge@verstak.app': {
|
||||||
updates: [{
|
updates: [{
|
||||||
version: '2.0.2',
|
version: '2.0.3',
|
||||||
update_link: 'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.2/verstak-firefox-2.0.2.xpi',
|
update_link: 'https://github.com/mirivlad/verstak-browser-extension/releases/download/v2.0.3/verstak-firefox-2.0.3.xpi',
|
||||||
}],
|
}],
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
});
|
});
|
||||||
|
|
||||||
const firefoxManifest = require('../firefox/manifest.json');
|
|
||||||
assert.equal(firefoxManifest.homepage_url, 'https://github.com/mirivlad/verstak-browser-extension');
|
assert.equal(firefoxManifest.homepage_url, 'https://github.com/mirivlad/verstak-browser-extension');
|
||||||
assert.equal(
|
assert.equal(
|
||||||
firefoxManifest.browser_specific_settings.gecko.update_url,
|
firefoxManifest.browser_specific_settings.gecko.update_url,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue