From 068f70f7f91a2c297b4c20d0bc7073f021d4100b Mon Sep 17 00:00:00 2001 From: Darko Gjorgjijoski <5760249+gdarko@users.noreply.github.com> Date: Fri, 14 Aug 2026 00:50:09 +0200 Subject: [PATCH] chore(release): prepare 3.0.0-alpha.2 (#755) --- CHANGELOG.md | 32 ++++++++++++++++++++++++++++++++ version.md | 2 +- 2 files changed, 33 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0e30f458..4fa83d52 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,38 @@ section beneath it is what CI publishes to the updater — see The 2.x line has its own CHANGELOG.md on the `2.x` branch. Releases are also on GitHub: https://github.com/InvoiceShelf/InvoiceShelf/releases +## 3.0.0-alpha.2 — 2026-08-14 + +Second public alpha of InvoiceShelf 3.0, with major additions across payments, taxes, PDFs, and the module platform. + +⚠️ **Pre-release — not for production.** Back up your database before upgrading and use this release for evaluation and testing only. + +### Highlights + +- **Credit notes:** Create, send, and render linked full-invoice reversals. Credit notes settle the original balance, preserve the relationship in both directions, and can be safely removed to restore the balance. +- **Customer accounts and payments:** Allocate a payment across multiple invoices, retain overpayments as customer credit, inspect account activity and outstanding balances, and download or email customer statements. +- **Taxes:** Track purchase taxes on expenses and in tax reports, and apply compound sales taxes at document or item level with consistent exclusive, tax-inclusive, discount, and recurring-invoice calculations. +- **PDFs:** Dompdf and Gotenberg now share one rendering contract, with common page settings, repeating headers and footers, page numbers, broader template overrides, document metadata, and optional PDF/A output through Gotenberg. +- **Modules and AI:** Pair with the official marketplace, securely install and update signed modules, and uninstall them with data-preserving or explicitly destructive flows. The AI assistant is now a free official module instead of bundled core functionality. + +### Improvements and fixes + +- Require invoices to be settled before marking them completed, correct demo document sequences, and surface document save failures instead of silently leaving inconsistent state. +- Improve PDF downloads, report authorization, custom templates, fonts, line heights, margins, and access to private or Docker-internal Gotenberg hosts. +- Add MariaDB support to the installer, make the application timezone configurable, recreate required storage directories on container startup, and avoid secure-context-only browser APIs on plain HTTP installations. +- Reorganize the application into explicit domain and platform boundaries while keeping public v1 API routes and durable database data compatible. +- Harden the tag-driven release pipeline so packages are tested, built, reviewed as drafts, and registered with the updater only after publication. + +### Upgrade notes + +- The payment migration backfills existing invoice-payment relationships into the new allocation table and validates invalid or orphaned rows before removing the legacy relationship. +- Existing tax types are classified as sales taxes. Create purchase tax types for expense input-tax tracking. +- Core AI screens and services have moved to the official AI Assistant module. Existing AI data is retained so the module can adopt it. +- Internal PHP namespaces changed as part of the domain reorganization. Custom modules or integrations importing internal application classes must update those imports; public API routes remain compatible. +- The module runtime now uses InvoiceShelf Modules SDK 3.3.0. The unsafe `module:delete` command is replaced by `module:uninstall`, with explicit confirmation required before removing module data. + +Docker: `invoiceshelf/invoiceshelf:3.0.0-alpha.2` (also `:next`). + ## 3.0.0-alpha.1 — 2026-06-14 First public alpha of InvoiceShelf 3.0 — the next-generation rewrite (Laravel 13 / PHP 8.4, Vue 3 + TypeScript, Tailwind v4). diff --git a/version.md b/version.md index 0786c6b9..18b13074 100644 --- a/version.md +++ b/version.md @@ -1 +1 @@ -3.0.0-alpha.1 +3.0.0-alpha.2