release: v1.13.0 — unified hierarchical location management, desktop application documentation & git-cliff release automation #26

Merged
gabogg merged 24 commits from dev into master 2026-08-25 15:03:21 +00:00
Owner

🚀 Major Release: dev → master (v1.13.0)

This pull request aggregates all features, architectural improvements, and release automation ready for production.


📦 Key Features & Included PRs

1. Hierarchical Location Management & Cascading Selectors (PR #19)

  • Cascading Selectors: Integrated dynamic cascading selectors (State → Municipality → Parish) across Item and Branch forms.
  • Unified Location Hub: Created comprehensive LocationPage featuring interactive tree explorers, tabbed management (States, Municipalities, Parishes), and breadcrumb navigation.
  • Performance & Backend: Added @EntityGraph on ParishRepository.findAll to resolve N+1 queries during cascading fetches.
  • Internationalization & Testing: Full typesafe-i18n support (ES/EN) and 32 unit/e2e tests.

2. Forgejo Repository URL Migration (PR #21)

  • Updated all repository, documentation, and raw script download links across CHANGELOG.md and setup-server.sh to the active Forgejo host (git.gaboggamer.online/PCivil/inventory-system).

3. Desktop Application Documentation & Packaging (PR #23)

  • Comprehensive developer and operator guide in README.md (prerequisites, dev commands, backend API connection, build artifact locations).
  • Configured silent WebView2 bootstrapper (embedBootstrapper) in tauri.conf.json for seamless Windows client installations.
  • Cleaned up stray tracked artifacts.

4. Baseline Version Alignment (PR #22)

  • Synchronized version 1.13.0 across Maven POMs, Tauri configurations, Node manifests, and Rust Cargo manifests.
  • Updated and locked Cargo.lock files to prevent dirty working tree states.

5. Release Versioning Architecture (PR #25)

  • ADR 0001 Accepted: Established git-cliff with dual-track changelog generation (cliff-backend.toml and cliff-desktop.toml) tailored for Forgejo container runners.
  • Decommissioned obsolete GitHub Actions release-please configurations.

6. Multi-Platform Release CI & Automation (PR #24)

  • Forgejo Actions Release Workflow: Implemented .forgejo/workflows/release.yml with separate release-backend and release-desktop container jobs.
  • Changelog Automation: Integrated git-cliff to automatically render Conventional Commits release notes into Forgejo releases.
  • Multi-Platform Packaging:
    • Backend: Executable JAR (inventory-manager-backend.jar).
    • Linux: Debian package (.deb), Fedora/RHEL package (.rpm), Universal .AppImage, and standalone x86_64 binary.
    • Windows: Self-contained standalone .exe built with MinGW-w64.
  • Release Script: Enhanced scripts/release.sh as a thin version orchestrator supporting backend and desktop track tagging.

🧪 Verification

  • Backend Tests: 214 unit and Testcontainers integration tests passed (0 failures).
  • Desktop Vitest: 32 unit and component tests passed (0 failures).
  • Git-Cliff Configs: Verified local changelog extraction on both tracks.
## 🚀 Major Release: `dev` → `master` (v1.13.0) This pull request aggregates all features, architectural improvements, and release automation ready for production. --- ### 📦 Key Features & Included PRs #### 1. Hierarchical Location Management & Cascading Selectors ([PR #19](https://git.gaboggamer.online/PCivil/inventory-system/pulls/19)) - **Cascading Selectors**: Integrated dynamic cascading selectors (`State` → `Municipality` → `Parish`) across Item and Branch forms. - **Unified Location Hub**: Created comprehensive `LocationPage` featuring interactive tree explorers, tabbed management (States, Municipalities, Parishes), and breadcrumb navigation. - **Performance & Backend**: Added `@EntityGraph` on `ParishRepository.findAll` to resolve N+1 queries during cascading fetches. - **Internationalization & Testing**: Full `typesafe-i18n` support (ES/EN) and 32 unit/e2e tests. #### 2. Forgejo Repository URL Migration ([PR #21](https://git.gaboggamer.online/PCivil/inventory-system/pulls/21)) - Updated all repository, documentation, and raw script download links across `CHANGELOG.md` and `setup-server.sh` to the active Forgejo host (`git.gaboggamer.online/PCivil/inventory-system`). #### 3. Desktop Application Documentation & Packaging ([PR #23](https://git.gaboggamer.online/PCivil/inventory-system/pulls/23)) - Comprehensive developer and operator guide in `README.md` (prerequisites, dev commands, backend API connection, build artifact locations). - Configured silent WebView2 bootstrapper (`embedBootstrapper`) in `tauri.conf.json` for seamless Windows client installations. - Cleaned up stray tracked artifacts. #### 4. Baseline Version Alignment ([PR #22](https://git.gaboggamer.online/PCivil/inventory-system/pulls/22)) - Synchronized version `1.13.0` across Maven POMs, Tauri configurations, Node manifests, and Rust Cargo manifests. - Updated and locked `Cargo.lock` files to prevent dirty working tree states. #### 5. Release Versioning Architecture ([PR #25](https://git.gaboggamer.online/PCivil/inventory-system/pulls/25)) - **ADR 0001 Accepted**: Established `git-cliff` with dual-track changelog generation (`cliff-backend.toml` and `cliff-desktop.toml`) tailored for Forgejo container runners. - Decommissioned obsolete GitHub Actions `release-please` configurations. #### 6. Multi-Platform Release CI & Automation ([PR #24](https://git.gaboggamer.online/PCivil/inventory-system/pulls/24)) - **Forgejo Actions Release Workflow**: Implemented `.forgejo/workflows/release.yml` with separate `release-backend` and `release-desktop` container jobs. - **Changelog Automation**: Integrated `git-cliff` to automatically render Conventional Commits release notes into Forgejo releases. - **Multi-Platform Packaging**: - Backend: Executable JAR (`inventory-manager-backend.jar`). - Linux: Debian package (`.deb`), Fedora/RHEL package (`.rpm`), Universal `.AppImage`, and standalone x86_64 binary. - Windows: Self-contained standalone `.exe` built with MinGW-w64. - **Release Script**: Enhanced `scripts/release.sh` as a thin version orchestrator supporting `backend` and `desktop` track tagging. --- ### 🧪 Verification - **Backend Tests**: 214 unit and Testcontainers integration tests passed (0 failures). - **Desktop Vitest**: 32 unit and component tests passed (0 failures). - **Git-Cliff Configs**: Verified local changelog extraction on both tracks.
fix(review): address PR #19 review feedback
All checks were successful
CI / backend-test (pull_request) Successful in 2m5s
CI / frontend-test (pull_request) Successful in 16s
CI / rust-test (pull_request) Successful in 24s
4212974cb0
- Widen ParishRepository EntityGraph to include municipality.state eagerly
- Add assertion for nested municipality.state in ParishControllerIntegrationTest
- Localize validation strings and table headers in en and es i18n
- Clean up dead Table imports and unreferenced columns in LocationPage and ListPage
- Expand unit tests to cover full CRUD, validation, and error notification (32 tests passing)
- Replace magic size numbers with MAX_DROPDOWN_ITEMS constant
- Improve error notifications and modal delete confirmation UX
- Add E2E tests for sub-tab navigation and cascading branch form selectors
Merge pull request 'feat: implement cascading location selectors and unified hierarchical location management' (#19) from feat/location-hierarchy-and-cascading-selectors into dev
All checks were successful
CI / backend-test (push) Successful in 2m11s
CI / frontend-test (push) Successful in 17s
CI / rust-test (push) Successful in 23s
0b10db1017
chore(changelog): update repository URLs from legacy repo to current Forgejo repository
All checks were successful
CI / backend-test (pull_request) Successful in 2m45s
CI / frontend-test (pull_request) Successful in 20s
CI / rust-test (pull_request) Successful in 35s
5a3d3013f0
docs(readme): document desktop application build and configuration, cleanup stray files
All checks were successful
CI / backend-test (pull_request) Successful in 2m13s
CI / frontend-test (pull_request) Successful in 16s
CI / rust-test (pull_request) Successful in 23s
c15ce2632f
- Expand README with comprehensive desktop setup, dev mode, build commands, and artifact naming
- Document backend URL configuration options (in-app settings vs VITE_API_URL)
- Configure Windows webviewInstallMode to embedBootstrapper in tauri.conf.json
- Remove stray tracked test_mcp.js and pom.xml.versionsBackup files and update .gitignore
docs(readme): generalize release artifact filenames and set silent webview bootstrapper
All checks were successful
CI / backend-test (pull_request) Successful in 2m35s
CI / frontend-test (pull_request) Successful in 19s
CI / rust-test (pull_request) Successful in 34s
972192afc5
Proposed decision record capturing the release-please replacement options
and the separate backend/desktop version-track requirement. No
implementation code yet — awaiting discussion in PR #25.

Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
chore: remove stray PR body file
All checks were successful
CI / backend-test (pull_request) Successful in 2m24s
CI / frontend-test (pull_request) Successful in 19s
CI / rust-test (pull_request) Successful in 30s
a9d02222bc
Co-authored-by: CommandCodeBot <noreply@commandcode.ai>
docs(adr): accept ADR 0001 for git-cliff dual-track release versioning on Forgejo
All checks were successful
CI / backend-test (pull_request) Successful in 2m17s
CI / frontend-test (pull_request) Successful in 19s
CI / rust-test (pull_request) Successful in 25s
e72150c979
Merge pull request 'chore(changelog): update legacy repository URLs to current Forgejo repository' (#21) from chore/fix-changelog-urls into dev
Some checks are pending
CI / backend-test (push) Waiting to run
CI / frontend-test (push) Waiting to run
CI / rust-test (push) Waiting to run
5ec0472c02
Merge pull request 'docs(readme): document desktop app setup, build process, and clean up stray files' (#23) from docs/desktop-readme-and-cleanup into dev
All checks were successful
CI / backend-test (push) Successful in 2m14s
CI / frontend-test (push) Successful in 16s
CI / rust-test (push) Successful in 23s
99c622ba52
- Align root pom.xml and backend/pom.xml to 1.13.0
- Align desktop package.json, tauri.conf.json, and Cargo.toml manifests to 1.13.0
- Add desktop package manifests to release-please extra-files configuration
chore(release): decommission release-please configs in favor of git-cliff
All checks were successful
CI / backend-test (pull_request) Successful in 2m9s
CI / frontend-test (pull_request) Successful in 17s
CI / rust-test (pull_request) Successful in 24s
c31867b793
Merge pull request 'feat(release): release versioning & changelog automation — research and options' (#25) from feat/release-versioning into dev
Some checks failed
CI / frontend-test (push) Waiting to run
CI / rust-test (push) Waiting to run
CI / backend-test (push) Has been cancelled
27c8859825
Merge pull request 'feat(release): release versioning & changelog automation — research and options' (#25) from feat/release-versioning into dev
Merge pull request 'chore(version): align repository component versions to 1.13.0' (#22) from chore/version-alignment into dev
All checks were successful
CI / backend-test (push) Successful in 2m15s
CI / frontend-test (push) Successful in 17s
CI / rust-test (push) Successful in 24s
4c7447b60e
Merge pull request 'chore(version): align repository component versions to 1.13.0' (#22) from chore/version-alignment into dev
- Consolidate release workflow into parallel multi-target release jobs (Backend JAR, Linux desktop, Windows MSVC desktop)
- Build and upload standalone binaries, deb/appimage, and NSIS/MSI Windows installers to releases
- Update scripts/release.sh to bump all module manifests synchronously (Maven, Tauri, Cargo, npm)
- Add artifact staging to .forgejo/workflows/release.yml using forgejo-release action
- Fix release-please condition in .github/workflows/release.yml to prevent masking failures
- Include patchelf in Linux build and use NSIS/standalone for Windows releases
- Use precise XML version parsing in scripts/release.sh and anchor Cargo.toml package stanza
- Fix checkout regression in .forgejo/workflows/release.yml to use native git clone with token authentication
- Support independent track bumping in scripts/release.sh (backend, desktop, all)
- Ensure deterministic Cargo.lock version synchronization without no-op failures
- Add cliff-backend.toml (scoped to backend) and cliff-desktop.toml (scoped to desktop)
- Split .forgejo/workflows/release.yml into release-backend and release-desktop jobs
- Align .github/workflows/release.yml triggers with backend-v* and desktop-v* tags
ci(release): port release workflows to Forgejo with git-cliff changelog and multi-track packaging
All checks were successful
CI / backend-test (pull_request) Successful in 2m15s
CI / frontend-test (pull_request) Successful in 16s
CI / rust-test (pull_request) Successful in 24s
36a1c3617a
- Add git-cliff release notes generation in .forgejo/workflows/release.yml for backend and desktop
- Build desktop Tauri bundles in release-desktop container and stage real artifacts
- Remove deprecated .github/workflows/release.yml (Forgejo is canonical host)
- Refine scripts/release.sh as thin version-file orchestrator
ci(release): enhance release workflow with multi-platform targets, strict error checks, and git-cliff SemVer
All checks were successful
CI / backend-test (pull_request) Successful in 2m8s
CI / frontend-test (pull_request) Successful in 17s
CI / rust-test (pull_request) Successful in 24s
4c4a5b67a1
- In .forgejo/workflows/release.yml, add multi-platform desktop packaging (deb, rpm, AppImage, binary, Windows .exe)
- Fetch 200 depth history for accurate git-cliff changelog traversal
- Add strict validation (exit 1) on missing backend JAR or desktop artifacts
- Support git-cliff --bumped-version and dev branch target in scripts/release.sh
ci(release): multi-platform release workflow (backend JAR, Linux and Windows desktop installers) (#24)
All checks were successful
CI / backend-test (push) Successful in 2m6s
CI / frontend-test (push) Successful in 16s
CI / rust-test (push) Successful in 25s
CI / backend-test (pull_request) Successful in 2m10s
CI / frontend-test (pull_request) Successful in 17s
CI / rust-test (pull_request) Successful in 24s
ce70b01c9c
Merge pull request #24 from ci/release-workflows-and-windows-build into dev
fix(i18n): route tree toggle aria-labels through i18n and harden release script fallback
All checks were successful
CI / backend-test (push) Successful in 2m9s
CI / frontend-test (push) Successful in 17s
CI / rust-test (push) Successful in 24s
CI / backend-test (pull_request) Successful in 2m13s
CI / frontend-test (pull_request) Successful in 15s
CI / rust-test (pull_request) Successful in 24s
b5128a6999
Author
Owner

PR #26 Review: Approved (Greenlit for Merge into Master)

We conducted a two-axis review (Standards and Spec / Release Readiness) on the consolidated dev → master PR.


Standards

  • Coding Standards & i18n: Verified that all strings, labels, and accessible elements adhere to the bilingual $LL store conventions.
  • Architectural Guidelines: Components follow clean separation between Tauri desktop client (Svelte 5 / Rust) and Spring Boot backend API.
  • Formatting & Tests: All 32 desktop tests (Vitest) and backend integration tests pass cleanly with zero regressions.

Spec & Release Readiness

  • Release Automation: ADR 0001 adopted (git-cliff with independent dual tracks in cliff-backend.toml and cliff-desktop.toml).
  • Multi-Platform CI: .forgejo/workflows/release.yml configured to build and package backend JAR (inventory-manager-backend.jar), multi-distro Linux packages (.deb, .rpm, .AppImage, standalone binary), and Windows .exe.
  • Version Alignment: Components aligned to release baseline.

The PR is approved and clear to merge into master.

## PR #26 Review: Approved (Greenlit for Merge into Master) We conducted a two-axis review (**Standards** and **Spec / Release Readiness**) on the consolidated `dev` → `master` PR. --- ## Standards - **Coding Standards & i18n**: Verified that all strings, labels, and accessible elements adhere to the bilingual `$LL` store conventions. - **Architectural Guidelines**: Components follow clean separation between Tauri desktop client (Svelte 5 / Rust) and Spring Boot backend API. - **Formatting & Tests**: All 32 desktop tests (Vitest) and backend integration tests pass cleanly with zero regressions. --- ## Spec & Release Readiness - **Release Automation**: ADR 0001 adopted (`git-cliff` with independent dual tracks in `cliff-backend.toml` and `cliff-desktop.toml`). - **Multi-Platform CI**: `.forgejo/workflows/release.yml` configured to build and package backend JAR (`inventory-manager-backend.jar`), multi-distro Linux packages (`.deb`, `.rpm`, `.AppImage`, standalone binary), and Windows `.exe`. - **Version Alignment**: Components aligned to release baseline. The PR is approved and clear to merge into `master`.
gabogg merged commit 2811cf3a88 into master 2026-08-25 15:03:21 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
PCivil/inventory-system!26
No description provided.