From 0ee79770e69ca68590b1e55af1d99a1fad69b14d Mon Sep 17 00:00:00 2001 From: Juliet Date: Fri, 21 Nov 2025 20:43:19 +0000 Subject: [PATCH] semantic versioning --- src/views/home.tsx | 21 ++++++++++++--------- vite.config.ts | 23 ++++++++++++++++++++++- 2 files changed, 34 insertions(+), 10 deletions(-) diff --git a/src/views/home.tsx b/src/views/home.tsx index 7d14ec2..bd4be1c 100644 --- a/src/views/home.tsx +++ b/src/views/home.tsx @@ -42,15 +42,18 @@ export const Home = () => { Query labels from moderation services. -
- Made by{" "} - - Juliet - {" "} - with love +
+ + Made by{" "} + + Juliet + {" "} + with love + + • {import.meta.env.VITE_APP_VERSION}
); diff --git a/vite.config.ts b/vite.config.ts index c399a8e..4c2d26e 100644 --- a/vite.config.ts +++ b/vite.config.ts @@ -1,4 +1,5 @@ import tailwindcss from "@tailwindcss/vite"; +import { execSync } from "child_process"; import { defineConfig } from "vite"; import solidPlugin from "vite-plugin-solid"; import metadata from "./public/oauth-client-metadata.json"; @@ -6,11 +7,30 @@ import metadata from "./public/oauth-client-metadata.json"; const SERVER_HOST = "127.0.0.1"; const SERVER_PORT = 13213; +const getVersion = (): string => { + try { + const describe = execSync("git describe --tags --long --dirty --always").toString().trim(); + + const match = describe.match(/^v?(.+?)-(\d+)-g([a-f0-9]+)(-dirty)?$/); + + if (match) { + const [, version, commits, hash, dirty] = match; + if (commits === "0") { + return `v${version}${dirty ? "-dirty" : ""}`; + } + return `v${version}.dev${commits}+g${hash}${dirty ? "-dirty" : ""}`; + } + + return `v0.0.0.dev+g${describe}`; + } catch { + return "v0.0.0-unknown"; + } +}; + export default defineConfig({ plugins: [ tailwindcss(), solidPlugin(), - // Injects OAuth-related variables { name: "oauth", config(_conf, { command }) { @@ -35,6 +55,7 @@ export default defineConfig({ process.env.VITE_CLIENT_URI = metadata.client_uri; process.env.VITE_OAUTH_SCOPE = metadata.scope; + process.env.VITE_APP_VERSION = getVersion(); }, }, ], -- 2.51.2