mirror of
https://github.com/zkldi/Tachi.git
synced 2026-09-28 18:08:15 +03:00
feat: read version from package.json, read latest commit and read pre-release tags.
This commit is contained in:
@@ -53,6 +53,7 @@
|
||||
"@aws-sdk/client-s3": "3.49.0",
|
||||
"@aws-sdk/signature-v4-crt": "3.49.0",
|
||||
"@types/bson": "1.0.11",
|
||||
"@types/semver": "^7.3.9",
|
||||
"@valuabletouch/winston-seq": "1.3.0",
|
||||
"bcryptjs": "2.4.3",
|
||||
"bullmq": "1.68.4",
|
||||
@@ -85,6 +86,7 @@
|
||||
"rg-stats": "^0.2.0",
|
||||
"rimraf": "3.0.2",
|
||||
"safe-json-stringify": "1.2.0",
|
||||
"semver": "^7.3.7",
|
||||
"seq-logging": "1.1.1",
|
||||
"tachi-common": "0.12.1",
|
||||
"ts-node": "10.4.0",
|
||||
|
||||
Generated
+13
-6
@@ -19,6 +19,7 @@ specifiers:
|
||||
'@types/rate-limit-redis': 1.7.4
|
||||
'@types/rimraf': 3.0.2
|
||||
'@types/safe-json-stringify': 1.1.2
|
||||
'@types/semver': ^7.3.9
|
||||
'@types/supertest': 2.0.11
|
||||
'@types/tap': 15.0.5
|
||||
'@types/uuid': 8.3.4
|
||||
@@ -64,6 +65,7 @@ specifiers:
|
||||
rg-stats: ^0.2.0
|
||||
rimraf: 3.0.2
|
||||
safe-json-stringify: 1.2.0
|
||||
semver: ^7.3.7
|
||||
seq-logging: 1.1.1
|
||||
supertest: 6.2.2
|
||||
tachi-common: 0.12.1
|
||||
@@ -80,6 +82,7 @@ dependencies:
|
||||
'@aws-sdk/client-s3': 3.49.0_@aws-sdk+signature-v4-crt@3.49.0
|
||||
'@aws-sdk/signature-v4-crt': 3.49.0
|
||||
'@types/bson': 1.0.11
|
||||
'@types/semver': 7.3.9
|
||||
'@valuabletouch/winston-seq': 1.3.0
|
||||
bcryptjs: 2.4.3
|
||||
bullmq: 1.68.4
|
||||
@@ -112,6 +115,7 @@ dependencies:
|
||||
rg-stats: 0.2.0
|
||||
rimraf: 3.0.2
|
||||
safe-json-stringify: 1.2.0
|
||||
semver: 7.3.7
|
||||
seq-logging: 1.1.1
|
||||
tachi-common: 0.12.1
|
||||
ts-node: 10.4.0_2615db9039ce432b4abf2fc39ef336ec
|
||||
@@ -1504,6 +1508,10 @@ packages:
|
||||
resolution: {integrity: sha512-Hj/LZMBXFH3Qj9sNmNu6syBpkZqBaM00HgP7naf9CnZhB3kdxmrenWUD2cY6vvTWjuBM3NPOLknPKDUOQuTWXA==}
|
||||
dev: true
|
||||
|
||||
/@types/semver/7.3.9:
|
||||
resolution: {integrity: sha512-L/TMpyURfBkf+o/526Zb6kd/tchUP3iBDEPjqjb+U2MAJhVRxxrmr2fwpe08E7QsV7YLcpq0tUaQ9O9x97ZIxQ==}
|
||||
dev: false
|
||||
|
||||
/@types/serve-static/1.13.10:
|
||||
resolution: {integrity: sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==}
|
||||
dependencies:
|
||||
@@ -1560,7 +1568,7 @@ packages:
|
||||
functional-red-black-tree: 1.0.1
|
||||
ignore: 5.2.0
|
||||
regexpp: 3.2.0
|
||||
semver: 7.3.5
|
||||
semver: 7.3.7
|
||||
tsutils: 3.21.0_typescript@4.5.5
|
||||
typescript: 4.5.5
|
||||
transitivePeerDependencies:
|
||||
@@ -1633,7 +1641,7 @@ packages:
|
||||
debug: 4.3.3
|
||||
globby: 11.1.0
|
||||
is-glob: 4.0.3
|
||||
semver: 7.3.5
|
||||
semver: 7.3.7
|
||||
tsutils: 3.21.0_typescript@4.5.5
|
||||
typescript: 4.5.5
|
||||
transitivePeerDependencies:
|
||||
@@ -5123,13 +5131,12 @@ packages:
|
||||
resolution: {integrity: sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==}
|
||||
hasBin: true
|
||||
|
||||
/semver/7.3.5:
|
||||
resolution: {integrity: sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==}
|
||||
/semver/7.3.7:
|
||||
resolution: {integrity: sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==}
|
||||
engines: {node: '>=10'}
|
||||
hasBin: true
|
||||
dependencies:
|
||||
lru-cache: 6.0.0
|
||||
dev: true
|
||||
|
||||
/send/0.17.2:
|
||||
resolution: {integrity: sha512-UJYB6wFSJE3G00nEivR5rgWp8c2xXvJ3OPWPhmuteU0IKj8nKbG3DrjiOmLwpnHGYWAVwA69zmTm++YG0Hmwww==}
|
||||
@@ -5411,7 +5418,7 @@ packages:
|
||||
mime: 2.6.0
|
||||
qs: 6.10.3
|
||||
readable-stream: 3.6.0
|
||||
semver: 7.3.5
|
||||
semver: 7.3.7
|
||||
transitivePeerDependencies:
|
||||
- supports-color
|
||||
dev: true
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
// Note that Version Info is intentionally identical between all variants of tachi
|
||||
// viz. btchi and ktchi share versioning. This is because they
|
||||
// essentially share codebases.
|
||||
|
||||
const MAJOR = 2;
|
||||
const MINOR = 2;
|
||||
const PATCH = 0;
|
||||
import CreateLogCtx from "lib/logger/logger";
|
||||
import semver from "semver";
|
||||
import { execSync } from "child_process";
|
||||
import fs from "fs";
|
||||
import path from "path";
|
||||
|
||||
// As is with all front-facing zkldi projects, the version names for tachi-server
|
||||
// are from an album I like. In this case, the album is Portishead - Dummy.
|
||||
@@ -47,13 +48,40 @@ const PORTISHEAD_DUMMY = [
|
||||
// v2.11+ onwards are not expected to occur, but if they do, we'll figure something out.
|
||||
];
|
||||
|
||||
const logger = CreateLogCtx(__filename);
|
||||
|
||||
const packageJSON = JSON.parse(
|
||||
fs.readFileSync(path.join(__dirname, "../../../package.json"), "utf-8")
|
||||
) as { version: string };
|
||||
|
||||
const semverInfo = semver.parse(packageJSON.version);
|
||||
|
||||
if (!semverInfo) {
|
||||
logger.warn(
|
||||
`Couldn't parse semverInfo out of package.json? Got a string of '${packageJSON.version}', but couldn't parse. Defaulting to 0.`
|
||||
);
|
||||
}
|
||||
|
||||
let commit: string | null = null;
|
||||
|
||||
try {
|
||||
// This fetches the HEAD of our current running branch. This is useful for debugging.
|
||||
// Note that git returns this with a trailing newline, so we have to trim that off.
|
||||
commit = execSync("git rev-parse --short HEAD").toString("utf-8").trim();
|
||||
} catch (err) {
|
||||
logger.warn(`Failed to read what commit we're on -- Using null as our commit version.`, {
|
||||
err,
|
||||
});
|
||||
}
|
||||
|
||||
export const VERSION_INFO = {
|
||||
major: MAJOR,
|
||||
minor: MINOR,
|
||||
patch: PATCH,
|
||||
name: PORTISHEAD_DUMMY[MINOR],
|
||||
major: semverInfo?.major ?? 0,
|
||||
minor: semverInfo?.minor ?? 0,
|
||||
patch: semverInfo?.patch ?? 0,
|
||||
commit,
|
||||
name: PORTISHEAD_DUMMY[semverInfo?.minor ?? 0] ?? "No Version Name",
|
||||
};
|
||||
|
||||
export const VERSION_STR = `${MAJOR}.${MINOR}.${PATCH}`;
|
||||
export const VERSION_STR = semverInfo?.raw ?? "0.0.0-unknown";
|
||||
|
||||
export const VERSION_PRETTY = `v${VERSION_STR} (${VERSION_INFO.name})`;
|
||||
export const VERSION_PRETTY = `v${VERSION_STR} (${VERSION_INFO.name}) [${commit}]`;
|
||||
|
||||
Reference in New Issue
Block a user