diff --git a/.ci/release/release-manifest.json b/.ci/release/release-manifest.json index 3e9d2ee..60fd74e 100644 --- a/.ci/release/release-manifest.json +++ b/.ci/release/release-manifest.json @@ -1,7 +1,183 @@ { - "version": "1.0.0", - "tag": "v1.0.0", - "publishedAt": null, - "releaseUrl": "", - "commits": [] + "version": "1.1.0", + "tag": "v1.1.0", + "publishedAt": "2026-05-12T10:25:16.680Z", + "releaseUrl": "https://git.shts.su/denozord/MikrotikManager-3/releases/tag/v1.1.0", + "commits": [ + { + "sha": "9ccc8459d77032dae8e7f67ac0df0287d7553341", + "shortSha": "9ccc845", + "subject": "feat: update application versioning and enhance release management", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "f282585b525fe787ab6bdbd2f83c9c848b376771", + "shortSha": "f282585", + "subject": "feat: enhance network configuration handling in updater script", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "40e2040fb05717283d0ee2b7d0a6b3315abecf73", + "shortSha": "40e2040", + "subject": "feat: refactor theme management and remove next-themes dependency", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "bb07ba0f69966e4b5533f6b4f0d7d96cef0916f1", + "shortSha": "bb07ba0", + "subject": "feat: implement database backup and restore functionality in settings page", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "1fefed2aa0dbd51f893750e2e179f65bd9386372", + "shortSha": "1fefed2", + "subject": "chore: enhance data source configuration and mock data handling", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "4489dfb2d62e836b5415b9ead409851bef995eaf", + "shortSha": "4489dfb", + "subject": "chore: enhance frontend configuration for backend integration", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "4b240d70d0fbc2143cc657f78f932d003ad5d406", + "shortSha": "4b240d7", + "subject": "chore: add server and server_snapshots tables to database schema", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "63252ae85ed03b772ede2be97a27f1605cc16d0d", + "shortSha": "63252ae", + "subject": "chore: enhance image reference resolution in updater script", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "a359874a42add6b0f4f2f4844ba6e19268bdc05f", + "shortSha": "a359874", + "subject": "chore: enhance Dockerfile for backend to rebuild better-sqlite3", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "4ec247f2c02edfccd775c3e5c644c28844358c90", + "shortSha": "4ec247f", + "subject": "chore: update Docker Compose configuration for data volume management", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "2697a35c0a719396fbe5fdaf6045cb9ca49c28fa", + "shortSha": "2697a35", + "subject": "chore: streamline Docker workflow and enhance build efficiency", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "7295545cde2fc7b0674ba17b3447d89be2f85218", + "shortSha": "7295545", + "subject": "chore: add updater image configuration to Docker workflow", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "a5b5a2a3d390bf4f6fb0986a917d43532844a346", + "shortSha": "a5b5a2a", + "subject": "chore: enhance Dockerfiles and package.json for improved build process", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "01596864dc7801275eefcb67aad67b58785d3a28", + "shortSha": "0159686", + "subject": "chore: update Dockerfiles to ignore scripts during npm install", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "02119a3acde256a92edd06cf4d00337bb53088ee", + "shortSha": "02119a3", + "subject": "chore: configure dynamic image naming for frontend and backend in Docker workflow", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "c36994c36b78063068aff5fa509d1d26c522de51", + "shortSha": "c36994c", + "subject": "chore: update configuration and dependencies", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "dfbaa859ad7616159e373ca50632efd2ad77e8e3", + "shortSha": "dfbaa85", + "subject": "chore: isolate frontend and backend via npm workspaces and @mmapp/contracts", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "b9a75b6831e4ef27726bedbab37f385366c33067", + "shortSha": "b9a75b6", + "subject": "feat: implement internet path functionality with backend support", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "11ad94f67d4a3f5567d3e6e9cd8fe7a587e86df1", + "shortSha": "11ad94f", + "subject": "feat: integrate sonner for toast notifications and enhance UI feedback", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "84ecd4f0619cb434918e3d36d1d2d8d61dc0c759", + "shortSha": "84ecd4f", + "subject": "feat: enhance backups page with live data loading and backup job management", + "author": "Denozordec", + "type": "feat" + }, + { + "sha": "6d8379501caf263fa2def609c91601d8b4bb4298", + "shortSha": "6d83795", + "subject": "refactor: replace custom API fetch logic with requestJson utility across multiple pages", + "author": "Denozordec", + "type": "refactor" + }, + { + "sha": "5f31bb47fb11592ef1dd1c576105efb07cff584e", + "shortSha": "5f31bb4", + "subject": "chore: synchronize pending app/backend updates and repository hygiene", + "author": "Denozordec", + "type": "chore" + }, + { + "sha": "bdb9b72fac5e9cf03faa6e8df463759a9defbf24", + "shortSha": "bdb9b72", + "subject": "Init 2", + "author": "Denozordec", + "type": "other" + }, + { + "sha": "ce00c4c671834df0c3277480ecf1a7bbd03cf3f4", + "shortSha": "ce00c4c", + "subject": "Update .gitignore to include additional build and log files", + "author": "Denozordec", + "type": "other" + }, + { + "sha": "f3f831653f48c24ae02d15cf10b3e929d4d63e14", + "shortSha": "f3f8316", + "subject": "Init commit", + "author": "Denozordec", + "type": "other" + } + ] } diff --git a/.ci/release/release_notes.md b/.ci/release/release_notes.md index e69de29..16991fa 100644 --- a/.ci/release/release_notes.md +++ b/.ci/release/release_notes.md @@ -0,0 +1,40 @@ +# v1.1.0 + +Версия **1.1.0**. + +## feat + +- feat: update application versioning and enhance release management (`9ccc845`, Denozordec) +- feat: enhance network configuration handling in updater script (`f282585`, Denozordec) +- feat: refactor theme management and remove next-themes dependency (`40e2040`, Denozordec) +- feat: implement database backup and restore functionality in settings page (`bb07ba0`, Denozordec) +- feat: implement internet path functionality with backend support (`b9a75b6`, Denozordec) +- feat: integrate sonner for toast notifications and enhance UI feedback (`11ad94f`, Denozordec) +- feat: enhance backups page with live data loading and backup job management (`84ecd4f`, Denozordec) + +## chore + +- chore: enhance data source configuration and mock data handling (`1fefed2`, Denozordec) +- chore: enhance frontend configuration for backend integration (`4489dfb`, Denozordec) +- chore: add server and server_snapshots tables to database schema (`4b240d7`, Denozordec) +- chore: enhance image reference resolution in updater script (`63252ae`, Denozordec) +- chore: enhance Dockerfile for backend to rebuild better-sqlite3 (`a359874`, Denozordec) +- chore: update Docker Compose configuration for data volume management (`4ec247f`, Denozordec) +- chore: streamline Docker workflow and enhance build efficiency (`2697a35`, Denozordec) +- chore: add updater image configuration to Docker workflow (`7295545`, Denozordec) +- chore: enhance Dockerfiles and package.json for improved build process (`a5b5a2a`, Denozordec) +- chore: update Dockerfiles to ignore scripts during npm install (`0159686`, Denozordec) +- chore: configure dynamic image naming for frontend and backend in Docker workflow (`02119a3`, Denozordec) +- chore: update configuration and dependencies (`c36994c`, Denozordec) +- chore: isolate frontend and backend via npm workspaces and @mmapp/contracts (`dfbaa85`, Denozordec) +- chore: synchronize pending app/backend updates and repository hygiene (`5f31bb4`, Denozordec) + +## refactor + +- refactor: replace custom API fetch logic with requestJson utility across multiple pages (`6d83795`, Denozordec) + +## other + +- Init 2 (`bdb9b72`, Denozordec) +- Update .gitignore to include additional build and log files (`ce00c4c`, Denozordec) +- Init commit (`f3f8316`, Denozordec) diff --git a/.ci/scripts/compute-release.mjs b/.ci/scripts/compute-release.mjs index 18373dc..969421f 100644 --- a/.ci/scripts/compute-release.mjs +++ b/.ci/scripts/compute-release.mjs @@ -169,9 +169,9 @@ function writeGithubOutput(values) { function main() { const latestTag = getLatestTag() const baseFromTag = latestTag?.replace(/^v/, "") ?? baseVersion - const commits = latestTag ? getCommitsSince(latestTag) : [] + const commits = getCommitsSince(latestTag) - if (!latestTag || commits.length === 0) { + if (commits.length === 0) { mkdirSync(outputDir, { recursive: true }) writeFileSync(join(outputDir, "release_notes.md"), "", "utf8") writeFileSync( diff --git a/.gitea/workflows/docker.yml b/.gitea/workflows/docker.yml index fd02d24..f5f88af 100644 --- a/.gitea/workflows/docker.yml +++ b/.gitea/workflows/docker.yml @@ -36,7 +36,6 @@ jobs: run: node .ci/scripts/compute-release.mjs - name: Upload release artifacts - if: steps.release.outputs.should_release == 'true' uses: actions/upload-artifact@v4 with: name: release-artifacts @@ -46,7 +45,6 @@ jobs: backend-image: needs: prepare-release - if: needs.prepare-release.outputs.should_release == 'true' runs-on: ubuntu-latest steps: - name: Checkout @@ -111,7 +109,6 @@ jobs: frontend-image: needs: prepare-release - if: needs.prepare-release.outputs.should_release == 'true' runs-on: ubuntu-latest steps: - name: Checkout @@ -194,7 +191,6 @@ jobs: updater-image: needs: prepare-release - if: needs.prepare-release.outputs.should_release == 'true' runs-on: ubuntu-latest steps: - name: Checkout @@ -320,12 +316,11 @@ jobs: fi notify-webhook: - if: ${{ secrets.DEPLOY_WEBHOOK_URL != '' && needs.prepare-release.outputs.should_release == 'true' }} + if: ${{ secrets.DEPLOY_WEBHOOK_URL != '' }} needs: - prepare-release - backend-image - frontend-image - - publish-release runs-on: ubuntu-latest steps: - name: Notify deploy webhook diff --git a/README.md b/README.md index ccf65e7..98c7a4f 100644 --- a/README.md +++ b/README.md @@ -210,7 +210,8 @@ npm --prefix backend run db:studio - Базовая версия: **`v1.0.0`**. Линия semver: `1.x.y` (major `2.x` вне scope). - Job **`prepare-release`** запускает [`.ci/scripts/compute-release.mjs`](.ci/scripts/compute-release.mjs): коммиты с последнего тега `v*.*.*`, bump по **Conventional Commits**. - **`feat` / `feat!` / `BREAKING CHANGE`** → minor (`1.x.0`); **`fix`**, `chore`, `docs`, `refactor`, `style`, `test`, `build`, `ci` → patch (`1.0.x`). -- Если после последнего тега нет новых коммитов, релиз и сборка образов **пропускаются**. +- Если после последнего тега нет новых коммитов, **релиз** пропускается; Docker-образы при этом всё равно собираются и публикуются с `:latest` и `:`. +- Первый релиз без тега `v1.0.0` возможен автоматически: CI берёт историю `HEAD`, считает bump от `1.0.0` и создаёт тег (например `v1.1.0` при `feat:`). - Job **`publish-release`**: annotated tag `v1.2.3`, Gitea Release на `https://git.shts.su` (markdown notes), образы с тегами `:latest`, `:`, `:`. - UI: версия в sidebar и страница **`/releases`**; manifest `public/release-manifest.json` (в CI подставляется из артефакта). - Bootstrap: один раз выставить `1.0.0` в workspace `package.json` и создать тег **`v1.0.0`** на `main` перед первым автоматическим bump.