mirror of
https://github.com/tridactyl/tridactyl.git
synced 2026-09-10 07:16:33 -04:00
Support vanity release names
This commit is contained in:
parent
1ac287cfc8
commit
db892be9bc
|
|
@ -12,6 +12,22 @@ function bump_version(versionstr, component = 2) {
|
|||
return versionarr.join(".")
|
||||
}
|
||||
|
||||
function release_name(manifest) {
|
||||
return (manifest.version_name || manifest.version)
|
||||
.slice(manifest.version.length)
|
||||
.trim()
|
||||
}
|
||||
|
||||
function set_release_version(manifest, component, name = "") {
|
||||
if (![0, 1, 2].includes(component)) throw new Error("Version component must be 0, 1 or 2")
|
||||
if (component === 2 && name) throw new Error("Only major and minor releases can be named")
|
||||
|
||||
const nameForRelease =
|
||||
component === 2 ? release_name(manifest) : name.trim()
|
||||
manifest.version = bump_version(manifest.version, component)
|
||||
manifest.version_name = [manifest.version, nameForRelease].filter(Boolean).join(" ")
|
||||
}
|
||||
|
||||
async function add_beta(versionstr) {
|
||||
await fs.promises.mkdir(".build_cache", {recursive: true})
|
||||
try {
|
||||
|
|
@ -82,17 +98,17 @@ function save_manifest(filename, manifest) {
|
|||
}
|
||||
|
||||
async function main() {
|
||||
let filename, manifest
|
||||
let filename, manifest, releaseName
|
||||
switch (process.argv[2]) {
|
||||
case "bump": {
|
||||
// Load src manifest and bump
|
||||
filename = "./src/manifest.json"
|
||||
manifest = require("." + filename)
|
||||
manifest.version = bump_version(
|
||||
manifest.version,
|
||||
set_release_version(
|
||||
manifest,
|
||||
Number(process.argv[3]),
|
||||
process.argv.slice(4).join(" "),
|
||||
)
|
||||
manifest.version_name = manifest.version
|
||||
const changelog = fs.readFileSync("./CHANGELOG.md", "utf8")
|
||||
const releaseHeading = `Release ${manifest.version} / Unreleased`
|
||||
const releaseNotes = changelog
|
||||
|
|
@ -131,8 +147,9 @@ async function main() {
|
|||
case "beta":
|
||||
filename = "./build/manifest.json"
|
||||
manifest = require("." + filename)
|
||||
releaseName = release_name(manifest)
|
||||
manifest.version = await add_beta(manifest.version)
|
||||
manifest.version_name = manifest.version + "-" + (await get_hash())
|
||||
manifest.version_name = [manifest.version + "-" + (await get_hash()), releaseName].filter(Boolean).join(" ")
|
||||
manifest.applications.gecko.update_url =
|
||||
"https://tridactyl.cmcaine.co.uk/betas/updates.json"
|
||||
|
||||
|
|
@ -154,4 +171,6 @@ async function main() {
|
|||
}
|
||||
}
|
||||
|
||||
main()
|
||||
if (require.main === module) main()
|
||||
|
||||
module.exports = { set_release_version }
|
||||
|
|
|
|||
18
scripts/version.test.js
Normal file
18
scripts/version.test.js
Normal file
|
|
@ -0,0 +1,18 @@
|
|||
const { set_release_version } = require("./version")
|
||||
|
||||
test("manages major and minor release names", () => {
|
||||
const manifest = { version: "1.24.6", version_name: "1.24.6" }
|
||||
|
||||
set_release_version(manifest, 1, "Carpenter")
|
||||
expect(manifest.version_name).toBe("1.25.0 Carpenter")
|
||||
|
||||
set_release_version(manifest, 2)
|
||||
expect(manifest.version_name).toBe("1.25.1 Carpenter")
|
||||
|
||||
set_release_version(manifest, 0, "Joiner")
|
||||
expect(manifest.version_name).toBe("2.0.0 Joiner")
|
||||
|
||||
expect(() =>
|
||||
set_release_version({ version: "1.25.0" }, 2, "Carpenter"),
|
||||
).toThrow()
|
||||
})
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
|
||||
// Shared
|
||||
import * as Messaging from "@src/lib/messaging"
|
||||
import { ownWinTriIndex, getTriVersion, browserBg, activeTab, activeTabOnWindow, activeTabId, activeTabContainerId, openInNewTab, openInNewWindow, openInTab, queryAndURLwrangler, goToTab, getSortedTabs, prevActiveTab } from "@src/lib/webext"
|
||||
import { ownWinTriIndex, getTriVersion, getTriVersionName, browserBg, activeTab, activeTabOnWindow, activeTabId, activeTabContainerId, openInNewTab, openInNewWindow, openInTab, queryAndURLwrangler, goToTab, getSortedTabs, prevActiveTab } from "@src/lib/webext"
|
||||
import * as Container from "@src/lib/containers"
|
||||
import state from "@src/state"
|
||||
import * as State from "@src/state"
|
||||
|
|
@ -129,6 +129,7 @@ const logger = new Logging.Logger("excmd")
|
|||
|
||||
/** @hidden **/
|
||||
const TRI_VERSION = getTriVersion()
|
||||
const TRI_VERSION_NAME = getTriVersionName()
|
||||
|
||||
//#content_helper
|
||||
// {
|
||||
|
|
@ -3937,7 +3938,7 @@ export async function tgroupabort() {
|
|||
|
||||
//#background
|
||||
export function version() {
|
||||
return fillcmdline_notrail(TRI_VERSION)
|
||||
return fillcmdline_notrail(TRI_VERSION_NAME)
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
@ -6297,7 +6298,7 @@ export async function issue() {
|
|||
template = `Firefox version: ${info.vendor} ${info.name} ${info.version}\n` + template
|
||||
|
||||
template = template.replace("- Tridactyl version (`:version`):\n\n", "")
|
||||
template = `Tridactyl version: ${TRI_VERSION}\n` + template
|
||||
template = `Tridactyl version: ${TRI_VERSION_NAME}\n` + template
|
||||
|
||||
textarea.value = template
|
||||
}
|
||||
|
|
|
|||
|
|
@ -28,20 +28,22 @@ export function inContentScript() {
|
|||
}
|
||||
|
||||
export function getTriVersion() {
|
||||
const manifest = browser.runtime.getManifest()
|
||||
return browser.runtime.getManifest().version
|
||||
}
|
||||
|
||||
// version_name only really exists in Chrome
|
||||
// but we're using it anyway for our own purposes
|
||||
return (
|
||||
export function getTriVersionName() {
|
||||
const manifest = browser.runtime.getManifest()
|
||||
const versionName = (
|
||||
manifest as browser._manifest.WebExtensionManifest & {
|
||||
version_name: string
|
||||
version_name?: string
|
||||
}
|
||||
).version_name
|
||||
return versionName || manifest.version
|
||||
}
|
||||
|
||||
export function getPrettyTriVersion() {
|
||||
const manifest = browser.runtime.getManifest()
|
||||
return manifest.name + " " + getTriVersion()
|
||||
return manifest.name + " " + getTriVersionName()
|
||||
}
|
||||
|
||||
export function notBackground() {
|
||||
|
|
|
|||
Loading…
Reference in a new issue