From ed2b567016f57af215f526e728c5b7030f196358 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:42:54 -0300 Subject: [PATCH 01/77] docs: replace release process with production flow --- developer_manual/release-process.rst | 390 ++------------------------- 1 file changed, 25 insertions(+), 365 deletions(-) diff --git a/developer_manual/release-process.rst b/developer_manual/release-process.rst index 8b44862..f3af549 100644 --- a/developer_manual/release-process.rst +++ b/developer_manual/release-process.rst @@ -1,374 +1,34 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + Release process =============== -Resuming the steps: - -1. Identify the next version number of all releases. -2. Collect and validate PRs from the commits since the previous release. -3. Create the changelog for all branches that will be released. - Write entries in :code:`CHANGELOG.md` on :code:`main`, then backport to stable branches. -4. Verify version consistency across configuration files (:code:`appinfo/info.xml`, :code:`package.json`, :code:`package-lock.json`). -5. Apply the required release changes in the codebase. - - .. note:: - You can use the :code:`[skip ci]` tag in the commit message to skip the CI checks for the backport PRs to make the process faster. - - .. important:: - - Release PRs must stay strictly scoped to the release itself. - Do not mix release automation, workflow, Release Drafter, refactor, - or any other maintenance changes in the same PR. - The allowed changes in a release PR are the changelog section and the - version bumps required for that release. - -6. Open a pull request to :code:`main` with the release preparation changes. -7. After CI passes and the PR is merged, backport the changes to the stable branches to be released. -8. After the backport PRs are merged, perform a smoke test on all supported browsers. -9. Create the GitHub release for the oldest stable version in the cycle first. -10. Verify the GitHub Action for that release finished successfully and wait until the version is visible in the Nextcloud App Store. -11. Repeat the same publication and validation flow for the next newer stable version, one by one. -12. Announce the release in the Telegram channel. - -.. important:: - - When publishing more than one stable release in the same cycle, never - create the newer tag before the older release is fully published. - The required order is: - - 1. publish the oldest stable release - 2. wait for the GitHub Action to succeed - 3. confirm the version is visible on https://apps.nextcloud.com/apps/libresign/ - 4. only then publish the next newer stable release - -.. note:: - - If you automate release creation with :code:`gh release create` or - :code:`gh release edit`, prefer loading the notes from a file instead of - inlining multiline markdown in the shell command. This avoids escaping - issues in backticks, parentheses, and links. - -Version numbers ---------------- - -- The version number follows **MAJOR.MINOR.PATCH**. -- ``MAJOR`` aligns with the supported Nextcloud Server version. -- ``MINOR`` is used for LibreSign feature releases. -- ``PATCH`` is used for bug fixes or small improvements. - -Milestones ----------- - -Every PR must be assigned to a milestone. - -- PRs targeting :code:`main` must use the current **major milestone** for the - Nextcloud server version supported by :code:`appinfo/info.xml` on :code:`main`. -- PRs targeting stable branches must use the corresponding **patch milestone** - for that server major, using the branch :code:`appinfo/info.xml` version as the - source of truth. - -Examples with the current branch model: - -- :code:`main` with :code:`14.0.0-dev.*` maps to :code:`Next Major (34)`. -- :code:`stable33` maps to :code:`Next Patch (33)`. -- :code:`stable32` maps to :code:`Next Patch (32)`. - -.. important:: - - A PR without milestone is not ready for review or merge. - Before opening or updating a release PR, confirm the milestone is correct. - -Identifying the previous release tag -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -Before starting the changelog, you need to identify the previous release tag for each stable branch: - -.. code-block:: bash - - # List all tags sorted by version (newest first) - git tag -l "v*" --sort=-version:refname | head -20 - - # Or find the last tag for a specific branch - git describe --tags --abbrev=0 stable22 - -This tag will be used in the commit log range when collecting PRs (e.g., ``v12.2.0..stable22``). - -.. important:: - - The tag range is only the **raw input** for the changelog. On stable branches, - it is possible to merge backports of already published hotfixes after the tag - was created. Because of that, always cross-check the raw compare output with - the existing published sections in :code:`CHANGELOG.md` and exclude entries - that already shipped in previous patch releases. - -Collecting PRs and changelog entries -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -For each release, collect merged PRs since the previous release tag. - -**Method 1: git log (recommended)** - -.. code-block:: bash - - # Collect all merge commits from previous tag to stable branch - git log --oneline --merges --first-parent ..stable - - # Example for stable33 since v13.0.0 - git log --oneline --merges --first-parent v13.0.0..stable33 - - # Output format: merge commits with PR references (Merge pull request #XXXX) - -To get PR numbers with backport titles directly (faster changelog drafting): - -.. code-block:: bash - - # Example: from merge commit of previous release to stable branch head - for c in $(git rev-list --reverse --merges --first-parent ..stable); do - pr=$(git show -s --format='%s' "$c" | sed -E 's/^Merge pull request #([0-9]+).*/\1/') - title=$(git show -s --format='%b' "$c" | head -n 1) - printf '%s|%s\n' "$pr" "$title" - done - -**Method 2: GitHub CLI (gh)** - -.. code-block:: bash - - # List merged PRs between two tags/branches - gh pr list -B stable33 -S "merged:>$(git log -1 --format=%ai )" --json number,title,mergedAt - - # Or search for PRs merged after a specific date - gh pr list -B stable33 --state merged --search "merged:>=2025-02-01" --json number,title - -To list milestones with current GitHub CLI versions, prefer the API endpoint: - -.. code-block:: bash - - gh api repos/LibreSign/libresign/milestones?state=all\&per_page=100 - -**Important: Mapping backports to original PRs** - -When collecting PR data for a release, you may encounter backport PRs. These should be mapped to the original PR for proper documentation: - -- **Backport PRs** are created with a naming pattern like: ``Backport: fix: ...`` or on a backport branch -- Look at the PR description or linked issues to find the **original PR number** -- In the changelog, use the **backport PR number** (specific to the branch) but reference both - -Also exclude PRs that are only part of the release process itself, for example: - -- release-drafter alignment or release housekeeping PRs -- follow-up lockfile repair PRs whose only purpose is to fix the backport branch -- hotfix PRs that already generated a published patch release section - -Example for handling backports: - -- Original PR on main: #6944 "fix: docmdp first signature allow" -- Backport PR on stable33: #6944 (same in this case) or #6945 on stable32 -- In changelog, list: ``#6944 fix: docmdp first signature allow`` (use the stable branch specific PR number) - -Defining release version numbers -~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -1. Go to Milestones in the LibreSign repository: - - https://github.com/LibreSign/libresign/milestones - -2. Identify what is the next patch version to be released. -3. Look the closed items to identify if we have new features, - - 1. If is a major release, increment with :code:`1` the :code:`MAJOR` version and reset :code:`MINOR` and :code:`PATCH`. - - .. note:: - We only create a major release when is created a new stable branch for a new Nextcloud major version. - - 2. To new features, increment with :code:`1` the ``MINOR`` version and reset ``PATCH`` to ``0``. - 3. To bug fixes, increment the ``PATCH`` version. - -.. note:: - - The Release Drafter workflow can help by pre-filling the draft version from - the stable branch history, but the final version decision is still validated - during the changelog curation step. - -Stable branches ---------------- - -Each **stable branch** in LibreSign corresponds to a specific Nextcloud **MAJOR** version. - -For example: ``stable21`` is compatible with Nextcloud 21. - -Changelog format ----------------- - -The :code:`CHANGELOG.md` file uses a specific format to document releases. Follow this pattern: - -.. code-block:: markdown - - ## 13.2.4 - 2026-04-25 - ### Changed - - Update translations - - ### Fixes - - harden signed file validation handling [#7601](https://github.com/LibreSign/libresign/pull/7601) - - simplify signer tsa and crl validation messaging [#7614](https://github.com/LibreSign/libresign/pull/7614) - - ## 12.4.4 - 2026-04-26 - ### Changed - - Update translations - - ### Fixes - - harden signed file validation handling [#7600](https://github.com/LibreSign/libresign/pull/7600) - - simplify signer tsa and crl validation messaging [#7613](https://github.com/LibreSign/libresign/pull/7613) - -**Key format rules:** - -- Use semantic versioning: ``MAJOR.MINOR.PATCH`` -- Do not include stable branch names in the changelog heading. -- Add the release date: ``YYYY-MM-DD`` -- Group changes by type: ``Added``, ``Changed``, ``Fixed``, ``Removed``, etc. -- List PR number with hash: ``#XXXX`` followed by a colon and description -- Use lowercase for descriptions (following conventional commits) -- For backport releases, use the **stable branch-specific PR number** even if it differs from the original -- Always add new entries at the top (most recent first) -- Prefer user-visible changes in the release notes; keep purely internal test/refactor/dependency entries only when they are relevant to support or compatibility. -- Collapse dependency updates into a single changelog item (e.g. ``Bump dependencies``) instead of listing each maintenance PR. -- Always include ``Update translations`` in the release changelog. -- Do not include Dependabot-only commits in the final changelog section. -- Treat GitHub generated release notes as a draft source only; rewrite the final section so it tells the release story instead of listing every backport PR individually. - -Release checklist ------------------ - -A new release starts by creating a GitHub issue with one of the following titles: +The normal LibreSign release path is driven from the **Prepare release** GitHub Actions workflow. -.. code-block:: plain +The reusable policy and contracts live in ``LibreCodeCoop/release-tool`` and orchestration lives in ``LibreCodeCoop/github-workflows``. ``LibreSign/libresign`` carries the consumer configuration and repository-specific packaging rules. - 🚀 Release todo v20.1.9 - 🚀 Release todo v20.1.9 and v21.1.8 +Maintainer journey +------------------ -In the body, paste and adapt the following template. Replace placeholders -with the correct values as you progress through the steps. +1. Run **Prepare release** manually. +2. Select the stable branch to release. +3. Optionally select an exact ref, override the proposed version, choose a prerelease channel, or explicitly ignore a matching open backport blocker. +4. Review the generated release preparation PR. +5. Merge that PR using an account that satisfies the configured merge permission. +6. Review the generated GitHub Release draft. +7. Publish the draft. +8. The existing packaging/signing/App Store workflow runs. +9. Publication verification confirms release identity, publisher run, artifact and App Store visibility. +10. After verification succeeds, release history is synchronized to this documentation repository through a generated PR. -.. code-block:: markdown +There are only two semantic human release gates: merging the generated release PR and publishing the generated GitHub Release draft. - - - - ## 💺 Preparation - - [ ] Check there are no pending backports: - - [ ] https://github.com/LibreSign/libresign/labels/backport-request - - [ ] Check all milestones don't have priority issues still open - - - - [ ] https://github.com/LibreSign/libresign/milestone/ - - [ ] https://github.com/LibreSign/libresign/milestone/ - - [ ] Check there are no important PRs open against the branch - - - - [ ] https://github.com/LibreSign/libresign/pulls?q=is%3Apr+is%3Aopen+base%3Astable20 - - [ ] https://github.com/LibreSign/libresign/pulls?q=is%3Apr+is%3Aopen+base%3Astable22 - - [ ] List all PRs that will be added to the changelog - - [ ] Go to https://github.com/LibreSign/libresign/releases/new - - [ ] At the tag field, type the next version number, e.g. `v20.1.9` - - [ ] Select the base branch, e.g. `stable20` - - [ ] Click at the button to **Generate release notes** - - [ ] Save this as a draft - - [ ] Go to the main branch, pull the latest changes and create a new branch called `chore/changelog` - - [ ] Add the changelog entries to the `CHANGELOG.md` file, following the pattern used in the file. - - [ ] Make this to all releases that will be done in this process. - - [ ] Assign the PR to the correct milestone - - [ ] `main` uses the current `Next Major (XX)` milestone from `appinfo/info.xml` - - [ ] each stable branch uses its matching `Next Patch (XX)` milestone - - [ ] Create a PR against `main` branch at the `CHANGELOG.md` file with the changelog of all milestones that are subject to the release. Look the pattern used in the file and follow it. - The **last commit** of every release PR must include :code:`[skip ci]`. - This keeps the release train moving and avoids waiting for a full CI cycle - right before the tag and publication steps. - Do not use the release PR to change anything beyond changelog and version bumps. - ``` - name suggestions to commit and pull request: - chore(release): Changelog for 20.1.9 - chore(release): Changelog for 20.1.9 and 20.1.8 - ``` - - [ ] Merge the PR - - [ ] **Version consistency check** (before backporting): - - [ ] Verify :code:`appinfo/info.xml` has the correct version - - [ ] Run: :code:`npm version --no-git-tag-version $(xmllint --xpath '/info/version/text()' appinfo/info.xml)` - - [ ] Verify :code:`package.json` and :code:`package-lock.json` were updated correctly - - [ ] Commit these changes together with the changelog PR if needed - - - - - - - - ## 🚀 v20.1.9 - - [ ] Backport the changelog from main to the stable branches - - [ ] - - - [ ] Remove changelog entries in `CHANGELOG.md` of higher versions - - [ ] Bump the version in `appinfo/info.xml` - - [ ] Bump the version in `package.json` and in `package-lock.json`. The following command will return a new version name, make sure it matches what you expect: - ```sh - # Make sure the printed version matches the info.xml version - npm version --no-git-tag-version $(xmllint --xpath '/info/version/text()' appinfo/info.xml) - ``` - - [ ] Make sure the final commit of the PR uses :code:`[skip ci]` - - [ ] Confirm the PR only changes release files: `CHANGELOG.md`, `appinfo/info.xml`, `package.json`, `package-lock.json` - - [ ] Assign the PR to the matching `Next Patch (XX)` milestone of the stable branch - - [ ] Merge the backport - - [ ] **Smoke test** - Sign a document in each supported browser: - - [ ] Chrome (latest version) - - [ ] Edge (latest version) - - [ ] Firefox (latest version) - - [ ] Safari (latest version) - - [ ] Verify: Request signing, Add signature, Validate signature in AppStore/File Manager - - [ ] **Final validation checks**: - - [ ] Verify version number in :code:`appinfo/info.xml` matches release tag - - [ ] Verify changelog in :code:`CHANGELOG.md` is correct and properly formatted - - [ ] Check GitHub Actions status for the merged PR - - [ ] Review AppStore entries for the stable branch (if available) - - [ ] Create the new milestone - - [ ] Rename milestone `💚 Next Patch (XX)` to `v20.1.9` in https://github.com/LibreSign/libresign/milestones - - [ ] Confirm the milestone was correctly renamed before writing the release body: - ```sh - gh api 'repos/LibreSign/libresign/milestones?state=open' --jq '.[] | "\(.number) \(.title)"' - ``` - Unless last release of the stable branch: - - [ ] Create a follow up milestone for `💚 Next Patch (XX)` (Due date in ~4 weeks, ~4 days for beta/RC) - - [ ] Move all open issues from milestone `v20.1.9` to `💚 Next Patch (XX)`: https://github.com/LibreSign/libresign/issues?q=is%3Aissue%20state%3Aopen%20milestone%3Av20.1.9 - - [ ] Move all open PRs from milestone `v20.1.9` to `💚 Next Patch (XX)`: https://github.com/LibreSign/libresign/issues?q=is%3Apr%20state%3Aopen%20milestone%3Av20.1.9 - - [ ] Close the `v20.1.9` milestone - - [ ] Archive all issues and PRs that were merged in this release - - [ ] https://github.com/orgs/LibreSign/projects/2/views/4 - - [ ] Create a new release - - [ ] Confirm the exact commit that will be tagged is the current head of the stable branch: - ```sh - git ls-remote origin refs/heads/stable20 | awk '{print $1}' - ``` - - [ ] Prepare a (pre-)release in https://github.com/LibreSign/libresign/releases/new?tag=v20.1.9&target=stable20 - - [ ] Make sure that chosen tag is v20.1.9, target is stable20, and previous tag is v20.1.8 - - [ ] Add the content of respective `CHANGELOG.md` section from merged PR - - [ ] In the release body, use the final closed milestone name `v20.1.9` after the milestone rename, never the previous `Next Patch (XX)` name - - [ ] Use the **Generate release notes** button and wrap the output result into - ``` - ## What's Changed - +.. toctree:: + :maxdepth: 2 - Milestone: [v20.1.9](?closed=1) - **Full Changelog**: https://github.com/LibreSign/libresign/compare/v20.1.8...v20.1.9 - ``` - - [ ] Keep `**Full Changelog**` as the last line of the release description. - - [ ] Publish release - - [ ] Check that the GitHub Action started: https://github.com/LibreSign/libresign/actions - - [ ] Ensure that the GitHub Action finished successfully: https://github.com/LibreSign/libresign/actions - - [ ] **Post-release validation**: - - [ ] Verify the new version appears in AppStore: https://apps.nextcloud.com/apps/libresign - - [ ] Check that the package was properly built and published - - [ ] Verify changelog is visible on GitHub Releases page - - [ ] Confirm no errors in GitHub Actions logs - - [ ] If a publication fix is merged after the release tag is created, do not only rerun the old workflow - - [ ] Delete the GitHub release and the tag - - [ ] Recreate the tag from the updated stable branch head - - [ ] Recreate the GitHub release so the workflow checks out the corrected commit - - [ ] If there is another release to publish in the same cycle, stop here and wait for all checks above to be green before creating the next release tag - - [ ] Only after the older release is visible and correct on https://apps.nextcloud.com/apps/libresign/, publish the next newer release - - [ ] Post the changelog in [💬 LibreSign team public 👥](https://t.me/LibreSign) + release-process/preparing + release-process/versioning + release-process/milestones + release-process/publishing + release-process/manual From cbddcea36ad11c03d06dcf16f7e46b95428eeebe Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:42:57 -0300 Subject: [PATCH 02/77] docs: add release preparation guide --- .../release-process/preparing.rst | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 developer_manual/release-process/preparing.rst diff --git a/developer_manual/release-process/preparing.rst b/developer_manual/release-process/preparing.rst new file mode 100644 index 0000000..57a7f7c --- /dev/null +++ b/developer_manual/release-process/preparing.rst @@ -0,0 +1,45 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Preparing a release +=================== + +Start the **Prepare release** workflow in ``LibreSign/libresign``. + +The workflow builds a read-only release plan first. The plan identifies the previous reachable release tag, exact planning SHA, release activity, proposed version, changelog target, milestone state and open backport blockers. + +Inputs +------ + +``branch`` + Stable branch to release. + +``ref`` + Optional exact commit or ref for reproducing or recovering a known planning state. + +``version`` + Optional explicit version override. Branch/version consistency is still validated. + +``channel`` + ``alpha``, ``beta``, ``rc`` or ``final``. + +``ignore_open_backport`` + Explicit override for a matching open backport blocker. It is never implied automatically. + +``create_follow_up_milestone`` + Whether a follow-up milestone should be created during the post-merge transition. + +``mode`` + ``normal`` or ``security``. + +``safe_public_text`` + Public-safe wording for security mode. Advisory-private details must not be put in public release text. + +Generated PR +------------ + +The preparation PR is deterministic and may change only the configured release files: the per-major changelog plus the version source and mirrors. + +For LibreSign these are the per-major changelog, ``appinfo/info.xml``, ``package.json`` and ``package-lock.json``. + +The selected stable branch is authoritative for the release. For a stable release, the exact released changelog section is synchronized back to the aggregate history on ``main`` without copying the stable version files into ``main``. From e4366c24f3b67e74b90d95ab881dc7d6f11aa9d5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:00 -0300 Subject: [PATCH 03/77] docs: add release versioning guide --- .../release-process/versioning.rst | 27 +++++++++++++++++++ 1 file changed, 27 insertions(+) create mode 100644 developer_manual/release-process/versioning.rst diff --git a/developer_manual/release-process/versioning.rst b/developer_manual/release-process/versioning.rst new file mode 100644 index 0000000..c8a6545 --- /dev/null +++ b/developer_manual/release-process/versioning.rst @@ -0,0 +1,27 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Versioning and prereleases +========================== + +LibreSign versions follow ``MAJOR.MINOR.PATCH``. The app major tracks the supported Nextcloud major used by the corresponding stable line. + +Normal version selection is derived from release activity since the previous reachable release tag. Feature-level activity advances the minor line; fixes and maintenance advance the patch line. Translation-only activity does not create a feature bump. + +An explicit version override is supported for recovery or deliberate release decisions, but the release tool validates it against the selected branch and configured release files. + +Prerelease channels +------------------- + +``alpha`` and ``beta`` are prerelease channels for incomplete release lines. ``rc`` is a release candidate. ``final`` is the normal stable publication. + +The selected channel is carried through the release contracts and determines whether the generated GitHub Release is marked as a prerelease. + +Per-major changelogs +-------------------- + +Canonical release text lives in ``docs/changelogs/changelog-.md`` in ``LibreSign/libresign``. Each major has its own file, avoiding conflicts between stable branches. + +For packaging, the selected per-major file is copied to package-root ``CHANGELOG.md``. The package does not fetch this documentation repository. + +GitHub Release notes and public release-history pages are derived presentations of the same released section; they are not separate sources of truth. From 3bf94e6d6f01b663f7cd010e27c4522b45e593c5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:03 -0300 Subject: [PATCH 04/77] docs: add milestone and backport guide --- developer_manual/release-process/milestones.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 developer_manual/release-process/milestones.rst diff --git a/developer_manual/release-process/milestones.rst b/developer_manual/release-process/milestones.rst new file mode 100644 index 0000000..047cc65 --- /dev/null +++ b/developer_manual/release-process/milestones.rst @@ -0,0 +1,15 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Milestones and backports +======================== + +Stable releases use the configured ``Next Patch ()`` milestone. Release candidates use the configured RC milestone policy. + +Before preparation, the release plan checks matching open backport work. A blocker stops preparation unless the maintainer explicitly selected ``ignore_open_backport``. + +After the release PR is merged, the workflow revalidates the merged state before any milestone mutation. It then renames/closes the released milestone, moves remaining open work when required, and optionally creates the next milestone. + +The account that merged the generated release PR must satisfy ``authorization.merge_min_permission`` from ``.nextcloud-release.yml``. The triggering actor for preparation must satisfy ``authorization.prepare_min_permission``. + +These permission checks happen before mutating stages. Mutations use short-lived GitHub App installation tokens scoped to the repository and stage. From bdff1e5f7774ecf836b77b997ae05cb132098c82 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:06 -0300 Subject: [PATCH 05/77] docs: add release publication guide --- .../release-process/publishing.rst | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 developer_manual/release-process/publishing.rst diff --git a/developer_manual/release-process/publishing.rst b/developer_manual/release-process/publishing.rst new file mode 100644 index 0000000..1b9cfce --- /dev/null +++ b/developer_manual/release-process/publishing.rst @@ -0,0 +1,34 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Publishing and verification +============================ + +After the generated release PR is merged, the workflow produces a finalized release contract from the merged SHA and creates or updates a GitHub Release draft. + +Review the draft and use GitHub's **Publish release** action when it is correct. Publishing is the second and final semantic human gate. + +Existing publisher +------------------ + +Publishing the GitHub Release triggers the existing LibreSign package/sign/App Store workflow. The release automation does not duplicate that publisher. + +Publication verification +------------------------ + +After publication, the workflow waits for the existing publisher and validates: + +* the GitHub Release is published and still points to the finalized tag/SHA; +* the configured publisher workflow completed successfully for that release; +* the expected release asset exists; +* artifact digest and package contents satisfy the configured package contract; +* the same version is visible in the Nextcloud App Store. + +Verification is independently rerunnable. Bounded retries handle eventual consistency only; they do not replace release validation rules. + +Release history +--------------- + +Only after publication verification succeeds does automation create or update the documentation release-history PR. + +For security releases, only public-safe released text may reach this step; advisory-private text is never used as public release content. From 38e41170e72fa53d817ac4b811c33944832c7869 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:10 -0300 Subject: [PATCH 06/77] docs: add manual release recovery guide --- developer_manual/release-process/manual.rst | 45 +++++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 developer_manual/release-process/manual.rst diff --git a/developer_manual/release-process/manual.rst b/developer_manual/release-process/manual.rst new file mode 100644 index 0000000..cfadf60 --- /dev/null +++ b/developer_manual/release-process/manual.rst @@ -0,0 +1,45 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Manual procedure and troubleshooting +==================================== + +The automated workflow is the normal path. Manual commands are useful for diagnostics and recovery, but they must follow the same policy. + +Read-only planning +------------------ + +Download the verified ``release-tool.phar`` version used by ``LibreCodeCoop/github-workflows`` and its SHA-256 file, verify the checksum, then run: + +.. code-block:: bash + + php release-tool.phar config:validate --config .nextcloud-release.yml --root . --json + php release-tool.phar release:plan --config .nextcloud-release.yml --root . --branch stableXX --channel final --mode normal --json + +The plan output should identify the previous reachable release tag, exact planning SHA, proposed version, target per-major changelog, milestone and blockers. + +Manual equivalent +----------------- + +1. Identify the previous reachable release tag from the selected branch. +2. Inspect release activity since that tag and apply the same patch/minor/channel policy. +3. Check open backport blockers for that stable line. +4. Update only the selected per-major changelog and configured version files. +5. Ensure the package build copies that per-major changelog to package-root ``CHANGELOG.md``. +6. Merge the release PR using an authorized maintainer. +7. Revalidate the merged SHA and release-file digests. +8. Rotate the milestone using the same configured policy. +9. Create a GitHub Release draft for the finalized SHA and released changelog section. +10. Publish it and let the existing publisher build/sign/upload the package. +11. Verify publisher success, artifact identity/content and App Store visibility. +12. Synchronize the released section to public documentation only after publication verification. + +Recovery rules +-------------- + +* If planning is stale because the branch advanced, generate a new plan. Do not reuse the stale one. +* If the generated release PR contains files outside the allowed release set, stop and investigate. +* If the release branch advances after the release PR merge, do not create the draft from the old finalized state. +* If publication fails, fix the publisher problem and rerun verification. Do not reinterpret or regenerate release notes. +* If a tag/release points to the wrong commit, repair the GitHub Release/tag identity before publication verification can succeed. +* For security mode, never put advisory-private details in workflow inputs, changelog text, artifacts or public documentation. From 58a75a68a9430d6923360c23a93175ab04cb04c3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:13 -0300 Subject: [PATCH 07/77] docs: add release history navigation --- developer_manual/release-history/index.rst | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) create mode 100644 developer_manual/release-history/index.rst diff --git a/developer_manual/release-history/index.rst b/developer_manual/release-history/index.rst new file mode 100644 index 0000000..e934ba2 --- /dev/null +++ b/developer_manual/release-history/index.rst @@ -0,0 +1,16 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Release history +=============== + +LibreSign release history is generated from the canonical per-major changelog files in ``LibreSign/libresign`` after publication has been verified. + +The documentation repository is a presentation layer only. Release text must not be edited independently here. + +.. toctree:: + :maxdepth: 2 + + LibreSign 15 <15/index> + LibreSign 14 <14/index> + LibreSign 13 <13/index> From 03c35c5fa0b4c7356695e969319b825528b1092d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:15 -0300 Subject: [PATCH 08/77] docs: link release history --- developer_manual/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/developer_manual/index.rst b/developer_manual/index.rst index ef33c23..617e8bf 100644 --- a/developer_manual/index.rst +++ b/developer_manual/index.rst @@ -32,3 +32,4 @@ Here you will find all the documentation for developers. api/index translation release-process + release-history/index From fb2c231272301571cc28dc4951f54c38a97947a4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:32 -0300 Subject: [PATCH 09/77] docs: add LibreSign 13.4.1 release history --- developer_manual/release-history/13/13.4.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.4.1.rst diff --git a/developer_manual/release-history/13/13.4.1.rst b/developer_manual/release-history/13/13.4.1.rst new file mode 100644 index 0000000..8c60f7e --- /dev/null +++ b/developer_manual/release-history/13/13.4.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.4.1 - 2026-09-20 +=================== From 84fc0c1b9ef79e6dc8baf662b948f4cd9a3d07ca Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:35 -0300 Subject: [PATCH 10/77] docs: add LibreSign 13.4.0 release history --- developer_manual/release-history/13/13.4.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.4.0.rst diff --git a/developer_manual/release-history/13/13.4.0.rst b/developer_manual/release-history/13/13.4.0.rst new file mode 100644 index 0000000..d9618f0 --- /dev/null +++ b/developer_manual/release-history/13/13.4.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.4.0 - 2026-09-19 +=================== From 35221c9810a2a4d153f074672b82480be2a0e4f0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:38 -0300 Subject: [PATCH 11/77] docs: add LibreSign 13.3.0 release history --- developer_manual/release-history/13/13.3.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.3.0.rst diff --git a/developer_manual/release-history/13/13.3.0.rst b/developer_manual/release-history/13/13.3.0.rst new file mode 100644 index 0000000..698bc86 --- /dev/null +++ b/developer_manual/release-history/13/13.3.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.3.0 - 2026-07-15 +=================== From d1432c689446cb87537d62857821eb5bac4b0920 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:42 -0300 Subject: [PATCH 12/77] docs: add LibreSign 13.2.7 release history --- developer_manual/release-history/13/13.2.7.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.7.rst diff --git a/developer_manual/release-history/13/13.2.7.rst b/developer_manual/release-history/13/13.2.7.rst new file mode 100644 index 0000000..d88d656 --- /dev/null +++ b/developer_manual/release-history/13/13.2.7.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.7 - 2026-07-06 +=================== From 8728ff375806190373cd6894ffafae56ec510b12 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:44 -0300 Subject: [PATCH 13/77] docs: add LibreSign 13.2.6 release history --- developer_manual/release-history/13/13.2.6.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.6.rst diff --git a/developer_manual/release-history/13/13.2.6.rst b/developer_manual/release-history/13/13.2.6.rst new file mode 100644 index 0000000..c840ce8 --- /dev/null +++ b/developer_manual/release-history/13/13.2.6.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.6 - 2026-06-14 +=================== From 7f56e0fff6b3bd31f9587dcc1a62701f28125eb4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:47 -0300 Subject: [PATCH 14/77] docs: add LibreSign 13.2.5 release history --- developer_manual/release-history/13/13.2.5.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.5.rst diff --git a/developer_manual/release-history/13/13.2.5.rst b/developer_manual/release-history/13/13.2.5.rst new file mode 100644 index 0000000..035df2e --- /dev/null +++ b/developer_manual/release-history/13/13.2.5.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.5 - 2026-06-12 +=================== From 4bd2398d25453699165a5031a48d8f08bd7b90ee Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:50 -0300 Subject: [PATCH 15/77] docs: add LibreSign 13.2.4 release history --- developer_manual/release-history/13/13.2.4.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.4.rst diff --git a/developer_manual/release-history/13/13.2.4.rst b/developer_manual/release-history/13/13.2.4.rst new file mode 100644 index 0000000..02b15d4 --- /dev/null +++ b/developer_manual/release-history/13/13.2.4.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.4 - 2026-04-25 +=================== From 4253f56c650d706c32557a6ffc590442e3e6f695 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:53 -0300 Subject: [PATCH 16/77] docs: add LibreSign 13.2.3 release history --- developer_manual/release-history/13/13.2.3.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.3.rst diff --git a/developer_manual/release-history/13/13.2.3.rst b/developer_manual/release-history/13/13.2.3.rst new file mode 100644 index 0000000..d8eaf3a --- /dev/null +++ b/developer_manual/release-history/13/13.2.3.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.3 - 2026-04-23 +=================== From 3b45bf1a156ffba2b1ba137cfa38436f1365a33d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:56 -0300 Subject: [PATCH 17/77] docs: add LibreSign 13.2.2 release history --- developer_manual/release-history/13/13.2.2.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.2.rst diff --git a/developer_manual/release-history/13/13.2.2.rst b/developer_manual/release-history/13/13.2.2.rst new file mode 100644 index 0000000..3ae66ca --- /dev/null +++ b/developer_manual/release-history/13/13.2.2.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.2 - 2026-04-08 +=================== From e92e98be5ebc55475ccedce11604cf980821503a Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:43:58 -0300 Subject: [PATCH 18/77] docs: add LibreSign 13.2.1 release history --- developer_manual/release-history/13/13.2.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.1.rst diff --git a/developer_manual/release-history/13/13.2.1.rst b/developer_manual/release-history/13/13.2.1.rst new file mode 100644 index 0000000..715d34d --- /dev/null +++ b/developer_manual/release-history/13/13.2.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.1 - 2026-04-05 +=================== From 8257d767ac3fba8ee53c29ff5207ffeba26fa9cb Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:01 -0300 Subject: [PATCH 19/77] docs: add LibreSign 13.2.0 release history --- developer_manual/release-history/13/13.2.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.2.0.rst diff --git a/developer_manual/release-history/13/13.2.0.rst b/developer_manual/release-history/13/13.2.0.rst new file mode 100644 index 0000000..c8c4054 --- /dev/null +++ b/developer_manual/release-history/13/13.2.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.2.0 - 2026-03-17 +=================== From 1bbb46d9490978835fb857b131fcb58e0c2971db Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:04 -0300 Subject: [PATCH 20/77] docs: add LibreSign 13.1.3 release history --- developer_manual/release-history/13/13.1.3.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.1.3.rst diff --git a/developer_manual/release-history/13/13.1.3.rst b/developer_manual/release-history/13/13.1.3.rst new file mode 100644 index 0000000..dfcaa0e --- /dev/null +++ b/developer_manual/release-history/13/13.1.3.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.1.3 - 2026-03-06 +=================== From 5b2284718a089e374e78f0d5922b29cd30e24acd Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:06 -0300 Subject: [PATCH 21/77] docs: add LibreSign 13.1.2 release history --- developer_manual/release-history/13/13.1.2.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.1.2.rst diff --git a/developer_manual/release-history/13/13.1.2.rst b/developer_manual/release-history/13/13.1.2.rst new file mode 100644 index 0000000..4911c65 --- /dev/null +++ b/developer_manual/release-history/13/13.1.2.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.1.2 - 2026-03-06 +=================== From 9019f29a2236d4e6d33de5072bd1f2a04a53e3d7 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:11 -0300 Subject: [PATCH 22/77] docs: add LibreSign 13.1.1 release history --- developer_manual/release-history/13/13.1.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.1.1.rst diff --git a/developer_manual/release-history/13/13.1.1.rst b/developer_manual/release-history/13/13.1.1.rst new file mode 100644 index 0000000..0ce2f68 --- /dev/null +++ b/developer_manual/release-history/13/13.1.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.1.1 - 2026-03-06 +=================== From 67b116143eb2f4992dac08a11053f725acea3bba Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:13 -0300 Subject: [PATCH 23/77] docs: add LibreSign 13.1.0 release history --- developer_manual/release-history/13/13.1.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.1.0.rst diff --git a/developer_manual/release-history/13/13.1.0.rst b/developer_manual/release-history/13/13.1.0.rst new file mode 100644 index 0000000..df57bd6 --- /dev/null +++ b/developer_manual/release-history/13/13.1.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.1.0 - 2026-03-05 +=================== From 74c69c021af5575ed318ef7b9b44b22c4a94590c Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:17 -0300 Subject: [PATCH 24/77] docs: add LibreSign 13.0.3 release history --- developer_manual/release-history/13/13.0.3.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 developer_manual/release-history/13/13.0.3.rst diff --git a/developer_manual/release-history/13/13.0.3.rst b/developer_manual/release-history/13/13.0.3.rst new file mode 100644 index 0000000..34d3fb2 --- /dev/null +++ b/developer_manual/release-history/13/13.0.3.rst @@ -0,0 +1,10 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.0.3 - 2026-02-20 +=================== + +Fixes +----- From 2272dc06f66b5b7f461c59e63084bd424ce9aab3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:38 -0300 Subject: [PATCH 25/77] docs: add LibreSign 13.0.2 release history --- developer_manual/release-history/13/13.0.2.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 developer_manual/release-history/13/13.0.2.rst diff --git a/developer_manual/release-history/13/13.0.2.rst b/developer_manual/release-history/13/13.0.2.rst new file mode 100644 index 0000000..0139d56 --- /dev/null +++ b/developer_manual/release-history/13/13.0.2.rst @@ -0,0 +1,10 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.0.2 - 2026-02-20 +=================== + +Fixes +----- From 2f1b393808ce96e08e2db873eb0dcf3e7689d099 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:41 -0300 Subject: [PATCH 26/77] docs: add LibreSign 13.0.1 release history --- developer_manual/release-history/13/13.0.1.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 developer_manual/release-history/13/13.0.1.rst diff --git a/developer_manual/release-history/13/13.0.1.rst b/developer_manual/release-history/13/13.0.1.rst new file mode 100644 index 0000000..5fbd156 --- /dev/null +++ b/developer_manual/release-history/13/13.0.1.rst @@ -0,0 +1,10 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.0.1 - 2026-02-18 +=================== + +Fixes +----- From 6ad99e8b71b3792a6e688f971af783e0c38b537c Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:44 -0300 Subject: [PATCH 27/77] docs: add LibreSign 13.0.0 release history --- developer_manual/release-history/13/13.0.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/13/13.0.0.rst diff --git a/developer_manual/release-history/13/13.0.0.rst b/developer_manual/release-history/13/13.0.0.rst new file mode 100644 index 0000000..acaa6c0 --- /dev/null +++ b/developer_manual/release-history/13/13.0.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +13.0.0 - 2026-02-17 +=================== From 221589a61573d58053df2accb1a8b8db2acb1bfa Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:44:46 -0300 Subject: [PATCH 28/77] docs: index LibreSign 13 releases --- developer_manual/release-history/13/index.rst | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 developer_manual/release-history/13/index.rst diff --git a/developer_manual/release-history/13/index.rst b/developer_manual/release-history/13/index.rst new file mode 100644 index 0000000..d266d55 --- /dev/null +++ b/developer_manual/release-history/13/index.rst @@ -0,0 +1,30 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +LibreSign 13 +============ + +.. toctree:: + :maxdepth: 1 + + 13.4.1 + 13.4.0 + 13.3.0 + 13.2.7 + 13.2.6 + 13.2.5 + 13.2.4 + 13.2.3 + 13.2.2 + 13.2.1 + 13.2.0 + 13.1.3 + 13.1.2 + 13.1.1 + 13.1.0 + 13.0.3 + 13.0.2 + 13.0.1 + 13.0.0 From bbd03c58da51bad6ac75001fc25010ff4837e766 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:02 -0300 Subject: [PATCH 29/77] docs: add LibreSign 14.2.1 release history --- developer_manual/release-history/14/14.2.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.2.1.rst diff --git a/developer_manual/release-history/14/14.2.1.rst b/developer_manual/release-history/14/14.2.1.rst new file mode 100644 index 0000000..878b091 --- /dev/null +++ b/developer_manual/release-history/14/14.2.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.2.1 - 2026-09-20 +=================== From 85a7d2f0422195d13adfcfc4882ff1c79162f3f0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:05 -0300 Subject: [PATCH 30/77] docs: add LibreSign 14.2.0 release history --- developer_manual/release-history/14/14.2.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.2.0.rst diff --git a/developer_manual/release-history/14/14.2.0.rst b/developer_manual/release-history/14/14.2.0.rst new file mode 100644 index 0000000..1d21cb8 --- /dev/null +++ b/developer_manual/release-history/14/14.2.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.2.0 - 2026-09-19 +=================== From 1d6300e94ea2140cf12126f9dbe8a98bf6da1e18 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:08 -0300 Subject: [PATCH 31/77] docs: add LibreSign 14.1.0 release history --- developer_manual/release-history/14/14.1.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.1.0.rst diff --git a/developer_manual/release-history/14/14.1.0.rst b/developer_manual/release-history/14/14.1.0.rst new file mode 100644 index 0000000..8bcb880 --- /dev/null +++ b/developer_manual/release-history/14/14.1.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.1.0 - 2026-07-15 +=================== From e2cbb2313d7ad31742ed68906edb958be0f506d1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:11 -0300 Subject: [PATCH 32/77] docs: add LibreSign 14.0.2 release history --- developer_manual/release-history/14/14.0.2.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.0.2.rst diff --git a/developer_manual/release-history/14/14.0.2.rst b/developer_manual/release-history/14/14.0.2.rst new file mode 100644 index 0000000..ede0a61 --- /dev/null +++ b/developer_manual/release-history/14/14.0.2.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.0.2 - 2026-07-06 +=================== From c0804f27423f4bfc2bb36b0d02c5acea412713f3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:13 -0300 Subject: [PATCH 33/77] docs: add LibreSign 14.0.1 release history --- developer_manual/release-history/14/14.0.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.0.1.rst diff --git a/developer_manual/release-history/14/14.0.1.rst b/developer_manual/release-history/14/14.0.1.rst new file mode 100644 index 0000000..c63059e --- /dev/null +++ b/developer_manual/release-history/14/14.0.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.0.1 - 2026-06-14 +=================== From 599d43572eb8731f4cc72ddd4b39748a5a1c4ef3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:16 -0300 Subject: [PATCH 34/77] docs: add LibreSign 14.0.0 release history --- developer_manual/release-history/14/14.0.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/14/14.0.0.rst diff --git a/developer_manual/release-history/14/14.0.0.rst b/developer_manual/release-history/14/14.0.0.rst new file mode 100644 index 0000000..8e14b40 --- /dev/null +++ b/developer_manual/release-history/14/14.0.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +14.0.0 - 2026-06-12 +=================== From 9ee14443e7e1920d89493a91ed7d08974b7cee54 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:19 -0300 Subject: [PATCH 35/77] docs: index LibreSign 14 releases --- developer_manual/release-history/14/index.rst | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 developer_manual/release-history/14/index.rst diff --git a/developer_manual/release-history/14/index.rst b/developer_manual/release-history/14/index.rst new file mode 100644 index 0000000..ff5ab1a --- /dev/null +++ b/developer_manual/release-history/14/index.rst @@ -0,0 +1,17 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +LibreSign 14 +============ + +.. toctree:: + :maxdepth: 1 + + 14.2.1 + 14.2.0 + 14.1.0 + 14.0.2 + 14.0.1 + 14.0.0 From ba40b33911df1221dff2ac3e0c3d6d78d6bc818e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:22 -0300 Subject: [PATCH 36/77] docs: add LibreSign 15.0.3 release history --- developer_manual/release-history/15/15.0.3.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/15/15.0.3.rst diff --git a/developer_manual/release-history/15/15.0.3.rst b/developer_manual/release-history/15/15.0.3.rst new file mode 100644 index 0000000..913cb10 --- /dev/null +++ b/developer_manual/release-history/15/15.0.3.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +15.0.3 - 2026-09-20 +=================== From 929e494c1ebd637f58c7956005cc3a35d511174e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:25 -0300 Subject: [PATCH 37/77] docs: add LibreSign 15.0.2 release history --- developer_manual/release-history/15/15.0.2.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/15/15.0.2.rst diff --git a/developer_manual/release-history/15/15.0.2.rst b/developer_manual/release-history/15/15.0.2.rst new file mode 100644 index 0000000..4cf4c57 --- /dev/null +++ b/developer_manual/release-history/15/15.0.2.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +15.0.2 - 2026-09-19 +=================== From 1d8b4328a81dfa838e03ec7951e0cb6d2b2daefc Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:28 -0300 Subject: [PATCH 38/77] docs: add LibreSign 15.0.1 release history --- developer_manual/release-history/15/15.0.1.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/15/15.0.1.rst diff --git a/developer_manual/release-history/15/15.0.1.rst b/developer_manual/release-history/15/15.0.1.rst new file mode 100644 index 0000000..0d943eb --- /dev/null +++ b/developer_manual/release-history/15/15.0.1.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +15.0.1 - 2026-09-19 +=================== From b5a4f3df4c3253e2b8029455fcaa75b34c61fdad Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:32 -0300 Subject: [PATCH 39/77] docs: add LibreSign 15.0.0 release history --- developer_manual/release-history/15/15.0.0.rst | 7 +++++++ 1 file changed, 7 insertions(+) create mode 100644 developer_manual/release-history/15/15.0.0.rst diff --git a/developer_manual/release-history/15/15.0.0.rst b/developer_manual/release-history/15/15.0.0.rst new file mode 100644 index 0000000..966f1e8 --- /dev/null +++ b/developer_manual/release-history/15/15.0.0.rst @@ -0,0 +1,7 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +15.0.0 - 2026-09-19 +=================== From ff75b82e067ef1c61f1f4dfa111ff67108566d9e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:45:36 -0300 Subject: [PATCH 40/77] docs: index LibreSign 15 releases --- developer_manual/release-history/15/index.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 developer_manual/release-history/15/index.rst diff --git a/developer_manual/release-history/15/index.rst b/developer_manual/release-history/15/index.rst new file mode 100644 index 0000000..96fe591 --- /dev/null +++ b/developer_manual/release-history/15/index.rst @@ -0,0 +1,15 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +.. This file is generated from LibreSign/libresign release history. + +LibreSign 15 +============ + +.. toctree:: + :maxdepth: 1 + + 15.0.3 + 15.0.2 + 15.0.1 + 15.0.0 From 443fee0e06796f29131b9f17b2b96dc3687b1ad5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:46:56 -0300 Subject: [PATCH 41/77] docs: fix LibreSign 15.0.3 release history --- developer_manual/release-history/15/15.0.3.rst | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/developer_manual/release-history/15/15.0.3.rst b/developer_manual/release-history/15/15.0.3.rst index 913cb10..cc0ced2 100644 --- a/developer_manual/release-history/15/15.0.3.rst +++ b/developer_manual/release-history/15/15.0.3.rst @@ -5,3 +5,17 @@ 15.0.3 - 2026-09-20 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations + +Fixed +----- + +* use the installed JSignPdf release version as the single source of truth `#8470 `_ From 249f3b44328d3187c65e199c5eea9fd1b81feb61 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:00 -0300 Subject: [PATCH 42/77] docs: fix LibreSign 15.0.2 release history --- developer_manual/release-history/15/15.0.2.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/developer_manual/release-history/15/15.0.2.rst b/developer_manual/release-history/15/15.0.2.rst index 4cf4c57..46b3979 100644 --- a/developer_manual/release-history/15/15.0.2.rst +++ b/developer_manual/release-history/15/15.0.2.rst @@ -5,3 +5,12 @@ 15.0.2 - 2026-09-19 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Fixed +----- + +* fix identification documents migration for typed app config values `#8457 `_ From 16c5c27490f39508802f4c5caf1e77cf4264be64 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:03 -0300 Subject: [PATCH 43/77] docs: fix LibreSign 15.0.1 release history --- developer_manual/release-history/15/15.0.1.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/developer_manual/release-history/15/15.0.1.rst b/developer_manual/release-history/15/15.0.1.rst index 0d943eb..a661502 100644 --- a/developer_manual/release-history/15/15.0.1.rst +++ b/developer_manual/release-history/15/15.0.1.rst @@ -5,3 +5,12 @@ 15.0.1 - 2026-09-19 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Fixed +----- + +* fix binary integrity validation for CA-signed setup certificates `#8449 `_ From ec21cefddb4e27081d100b8e86ca23f250c03036 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:06 -0300 Subject: [PATCH 44/77] docs: fix LibreSign 15.0.0 release history --- .../release-history/15/15.0.0.rst | 34 +++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/developer_manual/release-history/15/15.0.0.rst b/developer_manual/release-history/15/15.0.0.rst index 966f1e8..b40396c 100644 --- a/developer_manual/release-history/15/15.0.0.rst +++ b/developer_manual/release-history/15/15.0.0.rst @@ -5,3 +5,37 @@ 15.0.0 - 2026-09-19 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* add signer geolocation support `#8221 `_ `#8359 `_ +* add ``mail_sender_strategy`` policy to send notifications as the requester `#8206 `_ +* add backend support for signature rejection `#8319 `_ +* allow administrators to choose the TSA timestamp-query hash algorithm `#8283 `_ +* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8260 `_ + +Changed +------- + +* update translations +* bump dependencies + +Fixed +----- + +* improve external PDF signature validation `#8227 `_ `#8252 `_ +* improve TSA failure diagnostics `#8279 `_ +* detect when signer search has more results `#8290 `_ +* enforce envelope ownership when adding files `#8318 `_ +* populate signer visible elements in validation responses `#8352 `_ +* store identification documents of external signers under the file owner `#8372 `_ +* stop overriding the pdf-elements worker `#8387 `_ +* use the approver's own identity when signing an identification document `#8392 `_ +* accept string node IDs from the Files sidebar when requesting a signature `#8395 `_ +* stop deleting LibreSign appdata on every update `#8428 `_ +* fix external page layout `#8437 `_ From 71f40081422a1cf368f7b955e494a76ca06f75a6 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:17 -0300 Subject: [PATCH 45/77] docs: fix LibreSign 14.2.1 release history --- developer_manual/release-history/14/14.2.1.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/developer_manual/release-history/14/14.2.1.rst b/developer_manual/release-history/14/14.2.1.rst index 878b091..9e4dce2 100644 --- a/developer_manual/release-history/14/14.2.1.rst +++ b/developer_manual/release-history/14/14.2.1.rst @@ -5,3 +5,18 @@ 14.2.1 - 2026-09-20 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations + +Fixed +----- + +* use the installed JSignPdf release version as the single source of truth `#8471 `_ +* validate setup signatures with CA-signed certificates `#8473 `_ From ed2984186688c758ccef4d946558d410984c9c55 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:21 -0300 Subject: [PATCH 46/77] docs: fix LibreSign 14.2.0 release history --- .../release-history/14/14.2.0.rst | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/developer_manual/release-history/14/14.2.0.rst b/developer_manual/release-history/14/14.2.0.rst index 1d21cb8..023a8a1 100644 --- a/developer_manual/release-history/14/14.2.0.rst +++ b/developer_manual/release-history/14/14.2.0.rst @@ -5,3 +5,42 @@ 14.2.0 - 2026-09-19 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* support drag-and-drop PDF upload on the Validation page `#7934 `_ +* add drag-and-drop document upload to the Files page `#7944 `_ +* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8259 `_ + +Changed +------- + +* update translations +* bump dependencies + +Fixed +----- + +* correct iOS Safari viewport height on sign requests `#7969 `_ +* keep the signature-position step visible when the stamp still renders `#7998 `_ +* improve identification-document LDAP join and approval status handling `#8022 `_ +* promote certificate validity dates to the signer root `#8042 `_ +* fix uploaded signature scaling `#8061 `_ +* expose semantic PDF parser and validator error codes `#8189 `_ +* improve external PDF validation `#8226 `_ `#8251 `_ +* trigger group search on the correct select event `#8244 `_ +* improve TSA failure diagnostics `#8278 `_ +* detect when signer search has more results `#8289 `_ +* enforce envelope ownership when adding files `#8317 `_ +* populate signer visible elements in validation responses `#8351 `_ +* store identification documents of external signers under the file owner `#8371 `_ +* stop overriding the pdf-elements worker `#8386 `_ +* use the approver's own identity when signing an identification document `#8391 `_ +* accept string node IDs from the Files sidebar when requesting a signature `#8396 `_ +* stop deleting LibreSign appdata on every update `#8427 `_ +* fix external page layout `#8436 `_ From 1a77cbdde19ad2a71f00e4bd2cc6fcb2b41a3d7e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:26 -0300 Subject: [PATCH 47/77] docs: fix LibreSign 14.1.0 release history --- .../release-history/14/14.1.0.rst | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/developer_manual/release-history/14/14.1.0.rst b/developer_manual/release-history/14/14.1.0.rst index 8bcb880..f53e043 100644 --- a/developer_manual/release-history/14/14.1.0.rst +++ b/developer_manual/release-history/14/14.1.0.rst @@ -5,3 +5,23 @@ 14.1.0 - 2026-07-15 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* validate PDF signatures without requiring Java `#7874 `_ + +Changed +------- + +* update translations + +Fixed +----- + +* improve CRL generation performance and reliability `#7890 `_ +* avoid stale autoload misses during upgrades `#7899 `_ From e56d9d5387d24a38fc6f52fd2ebe10ab2d31a80c Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:30 -0300 Subject: [PATCH 48/77] docs: fix LibreSign 14.0.2 release history --- .../release-history/14/14.0.2.rst | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/developer_manual/release-history/14/14.0.2.rst b/developer_manual/release-history/14/14.0.2.rst index ede0a61..055cfaa 100644 --- a/developer_manual/release-history/14/14.0.2.rst +++ b/developer_manual/release-history/14/14.0.2.rst @@ -5,3 +5,24 @@ 14.0.2 - 2026-07-06 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations +* bump dependencies `#7780 `_ `#7805 `_ `#7818 `_ `#7850 `_ +* surface setup checks in the admin overview and ``occ setupchecks:check`` `#7841 `_ + +Fixed +----- + +* avoid autoload issues from the authoritative classmap configuration `#7776 `_ +* cache generated CRL data in appdata correctly `#7783 `_ +* prevent invalid user element rows from breaking node ID writes `#7811 `_ +* honor notification preferences more consistently for email notifications `#7835 `_ +* avoid transient CFSSL startup failures during setup `#7838 `_ +* clarify the error shown when a signing link is opened in the wrong authenticated session `#7857 `_ From c84df499f6f343736cc6abe6958eac5561dfeeb4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:33 -0300 Subject: [PATCH 49/77] docs: fix LibreSign 14.0.1 release history --- developer_manual/release-history/14/14.0.1.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/developer_manual/release-history/14/14.0.1.rst b/developer_manual/release-history/14/14.0.1.rst index c63059e..103422a 100644 --- a/developer_manual/release-history/14/14.0.1.rst +++ b/developer_manual/release-history/14/14.0.1.rst @@ -5,3 +5,15 @@ 14.0.1 - 2026-06-14 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Fixed +----- + +* skip non-signature /Contents entries while preserving valid signature extraction `#7735 `_ +* run playwright in official container `#7743 `_ +* psalm fixes `#7746 `_ +* match local CRL distribution points by path, not by request host `#7752 `_ From f67139825b5551763bd9d6bbbbfdc630b4f2f453 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:36 -0300 Subject: [PATCH 50/77] docs: fix LibreSign 14.0.0 release history --- .../release-history/14/14.0.0.rst | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/developer_manual/release-history/14/14.0.0.rst b/developer_manual/release-history/14/14.0.0.rst index 8e14b40..70b28e9 100644 --- a/developer_manual/release-history/14/14.0.0.rst +++ b/developer_manual/release-history/14/14.0.0.rst @@ -5,3 +5,27 @@ 14.0.0 - 2026-06-12 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations +* bump dependencies `#7636 `_ `#7620 `_ `#7618 `_ `#7633 `_ +* harden openapi contracts for sdk generators `#7662 `_ +* use default DataResponse success constructor in id docs `#7661 `_ + +Fixed +----- + +* align getArchitectures typing with main `#7680 `_ +* keep groups_request_sign JSON unicode serialization consistent `#7675 `_ +* align openapi signatureflow structure `#7668 `_ +* align openapi file metadata contract with runtime payloads `#7656 `_ +* expose ValidationURL and qrcode in signature stamp templates `#7650 `_ +* render envelope validation data correctly for multi-file requests `#7647 `_ +* remove stale addStyle icons call from TemplateLoader `#7641 `_ +* support Twig date filter for ServerSignatureDate in JSign `#7644 `_ From 46422e77e5a1ca10393d8fb5264d13e1fb682920 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:48 -0300 Subject: [PATCH 51/77] docs: fix LibreSign 13.4.1 release history --- developer_manual/release-history/13/13.4.1.rst | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/developer_manual/release-history/13/13.4.1.rst b/developer_manual/release-history/13/13.4.1.rst index 8c60f7e..61531e4 100644 --- a/developer_manual/release-history/13/13.4.1.rst +++ b/developer_manual/release-history/13/13.4.1.rst @@ -5,3 +5,18 @@ 13.4.1 - 2026-09-20 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations + +Fixed +----- + +* use the installed JSignPdf release version as the single source of truth `#8472 `_ +* validate setup signatures with CA-signed certificates `#8474 `_ From c653cd087e83db294a89646d64b9d09eff50b3f4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:51 -0300 Subject: [PATCH 52/77] docs: fix LibreSign 13.4.0 release history --- .../release-history/13/13.4.0.rst | 39 +++++++++++++++++++ 1 file changed, 39 insertions(+) diff --git a/developer_manual/release-history/13/13.4.0.rst b/developer_manual/release-history/13/13.4.0.rst index d9618f0..a88310f 100644 --- a/developer_manual/release-history/13/13.4.0.rst +++ b/developer_manual/release-history/13/13.4.0.rst @@ -5,3 +5,42 @@ 13.4.0 - 2026-09-19 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* support drag-and-drop PDF upload on the Validation page `#7933 `_ +* add drag-and-drop document upload to the Files page `#7943 `_ +* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8258 `_ + +Changed +------- + +* update translations +* bump dependencies + +Fixed +----- + +* correct iOS Safari viewport height on sign requests `#7968 `_ +* keep the signature-position step visible when the stamp still renders `#7997 `_ +* improve identification-document LDAP join and approval status handling `#8021 `_ +* promote certificate validity dates to the signer root `#8041 `_ +* fix uploaded signature scaling `#8060 `_ +* expose semantic PDF parser and validator error codes `#8188 `_ +* improve external PDF validation `#8225 `_ `#8250 `_ +* trigger group search on the correct select event `#8243 `_ +* improve TSA failure diagnostics `#8277 `_ +* detect when signer search has more results `#8288 `_ +* enforce envelope ownership when adding files `#8316 `_ +* populate signer visible elements in validation responses `#8350 `_ +* store identification documents of external signers under the file owner `#8370 `_ +* stop overriding the pdf-elements worker `#8385 `_ +* use the approver's own identity when signing an identification document `#8390 `_ +* accept string node IDs from the Files sidebar when requesting a signature `#8397 `_ +* stop deleting LibreSign appdata on every update `#8426 `_ +* fix external page layout `#8435 `_ From 3d08731c977ac60afdbe9fba69f1d3392077b23c Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:54 -0300 Subject: [PATCH 53/77] docs: fix LibreSign 13.3.0 release history --- .../release-history/13/13.3.0.rst | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/developer_manual/release-history/13/13.3.0.rst b/developer_manual/release-history/13/13.3.0.rst index 698bc86..81de002 100644 --- a/developer_manual/release-history/13/13.3.0.rst +++ b/developer_manual/release-history/13/13.3.0.rst @@ -5,3 +5,23 @@ 13.3.0 - 2026-07-15 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* validate PDF signatures without requiring Java `#7872 `_ + +Changed +------- + +* update translations + +Fixed +----- + +* improve CRL generation performance and reliability `#7889 `_ +* avoid stale autoload misses during upgrades `#7898 `_ From 5f5b70b9f6054b588636345a9c5bd8c8ab6554de Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:47:58 -0300 Subject: [PATCH 54/77] docs: fix LibreSign 13.2.7 release history --- .../release-history/13/13.2.7.rst | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/developer_manual/release-history/13/13.2.7.rst b/developer_manual/release-history/13/13.2.7.rst index d88d656..57485eb 100644 --- a/developer_manual/release-history/13/13.2.7.rst +++ b/developer_manual/release-history/13/13.2.7.rst @@ -5,3 +5,24 @@ 13.2.7 - 2026-07-06 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations +* bump dependencies `#7804 `_ `#7817 `_ `#7849 `_ +* surface setup checks in the admin overview and ``occ setupchecks:check`` `#7840 `_ + +Fixed +----- + +* avoid autoload issues from the authoritative classmap configuration `#7775 `_ +* cache generated CRL data in appdata correctly `#7782 `_ +* prevent invalid user element rows from breaking node ID writes `#7810 `_ +* honor notification preferences more consistently for email notifications `#7834 `_ +* avoid transient CFSSL startup failures during setup `#7837 `_ +* clarify the error shown when a signing link is opened in the wrong authenticated session `#7856 `_ From a7b3d0bb04e1e7691930280db61009923a394c4b Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:01 -0300 Subject: [PATCH 55/77] docs: fix LibreSign 13.2.6 release history --- developer_manual/release-history/13/13.2.6.rst | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/developer_manual/release-history/13/13.2.6.rst b/developer_manual/release-history/13/13.2.6.rst index c840ce8..0da3376 100644 --- a/developer_manual/release-history/13/13.2.6.rst +++ b/developer_manual/release-history/13/13.2.6.rst @@ -5,3 +5,15 @@ 13.2.6 - 2026-06-14 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Fixed +----- + +* skip non-signature /Contents entries while preserving valid signature extraction `#7734 `_ +* run playwright in official container `#7744 `_ +* psalm fixes `#7747 `_ +* match local CRL distribution points by path, not by request host `#7751 `_ From c8da1702420653faa0f50c6e9d575df64371e34a Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:04 -0300 Subject: [PATCH 56/77] docs: fix LibreSign 13.2.5 release history --- .../release-history/13/13.2.5.rst | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/developer_manual/release-history/13/13.2.5.rst b/developer_manual/release-history/13/13.2.5.rst index 035df2e..679aacb 100644 --- a/developer_manual/release-history/13/13.2.5.rst +++ b/developer_manual/release-history/13/13.2.5.rst @@ -5,3 +5,26 @@ 13.2.5 - 2026-06-12 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* update translations +* bump dependencies `#7634 `_ `#7637 `_ `#7639 `_ + +Fixed +----- + +* align getArchitectures typing with main `#7683 `_ +* keep groups_request_sign JSON unicode serialization consistent `#7681 `_ +* use default DataResponse success constructor in id docs `#7663 `_ +* harden openapi contracts for sdk generators `#7665 `_ +* align openapi file metadata contract with runtime payloads `#7660 `_ +* expose ValidationURL and qrcode in signature stamp templates `#7658 `_ +* render envelope validation data correctly for multi-file requests `#7649 `_ +* remove stale addStyle icons call from TemplateLoader `#7642 `_ +* support Twig date filter for ServerSignatureDate in JSign `#7646 `_ From 38289ddccf37f91f6fb8604522c76be5f9ed05c0 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:07 -0300 Subject: [PATCH 57/77] docs: fix LibreSign 13.2.4 release history --- developer_manual/release-history/13/13.2.4.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/developer_manual/release-history/13/13.2.4.rst b/developer_manual/release-history/13/13.2.4.rst index 02b15d4..c84ac14 100644 --- a/developer_manual/release-history/13/13.2.4.rst +++ b/developer_manual/release-history/13/13.2.4.rst @@ -5,3 +5,21 @@ 13.2.4 - 2026-04-25 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* Update translations + +Fixes +----- + +* harden signed file validation handling `#7601 `_ +* hide account identifier from signer common name `#7610 `_ +* allow signing for legacy certificates missing crl metadata `#7607 `_ +* align signer email contract with api runtime behavior `#7603 `_ +* simplify signer tsa and crl validation messaging `#7614 `_ From 7dc06723ba1d5096d2aabc7147a6632f40f92338 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:10 -0300 Subject: [PATCH 58/77] docs: fix LibreSign 13.2.3 release history --- .../release-history/13/13.2.3.rst | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/developer_manual/release-history/13/13.2.3.rst b/developer_manual/release-history/13/13.2.3.rst index d8eaf3a..3e79431 100644 --- a/developer_manual/release-history/13/13.2.3.rst +++ b/developer_manual/release-history/13/13.2.3.rst @@ -5,3 +5,27 @@ 13.2.3 - 2026-04-23 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* Update translations +* Bump dependencies + +Fixes +----- + +* avoid crash on hostless ldap crl urls `#7527 `_ +* stabilize root csr generation on openssl 3 `#7530 `_ +* return 404 when pdf node is missing `#7535 `_ +* enforce crl metadata with scoped legacy backfill `#7532 `_ +* restore folderservice userid in throwiffilenotfound finally block `#7542 `_ +* handle private validation url redirect and string error messages `#7546 `_ +* allow signer thumbnail access and prefer file_id preview urls `#7548 `_ +* restore horizontal pdf scroll on mobile `#7550 `_ +* remove mobile orientation signing hint `#7553 `_ +* dependency version stable33 `#7582 `_ From cd30d59ea6a099cd472296fa6dbaddda41ea008f Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:14 -0300 Subject: [PATCH 59/77] docs: fix LibreSign 13.2.2 release history --- developer_manual/release-history/13/13.2.2.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/developer_manual/release-history/13/13.2.2.rst b/developer_manual/release-history/13/13.2.2.rst index 3ae66ca..55620a3 100644 --- a/developer_manual/release-history/13/13.2.2.rst +++ b/developer_manual/release-history/13/13.2.2.rst @@ -5,3 +5,21 @@ 13.2.2 - 2026-04-08 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* Update translations +* Bump dependencies `#7452 `_ `#7453 `_ `#7456 `_ `#7459 `_ `#7457 `_ `#7461 `_ `#7463 `_ `#7469 `_ `#7471 `_ + +Fixes +----- + +* fix: improve TSA DNS/network error guidance `#7430 `_ +* fix: align signer and file UUID contracts `#7441 `_ +* fix(validation): harden unified files contract `#7445 `_ +* fix(Sign): submit each envelope file independently with its UUID `#7448 `_ From 281c3259cba57d39992280465d238f1a8cb50932 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:32 -0300 Subject: [PATCH 60/77] docs: fix LibreSign 13.2.1 release history --- .../release-history/13/13.2.1.rst | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/developer_manual/release-history/13/13.2.1.rst b/developer_manual/release-history/13/13.2.1.rst index 715d34d..6f8e9ee 100644 --- a/developer_manual/release-history/13/13.2.1.rst +++ b/developer_manual/release-history/13/13.2.1.rst @@ -5,3 +5,25 @@ 13.2.1 - 2026-04-05 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* Update translations +* Bump dependencies `#7382 `_ + +Fixes +----- + +* fix: interpolate sign-request uuid into account create URL `#7388 `_ +* fix: handle visible signatures for envelope child files `#7385 `_ +* fix: extract file descriptor when items have nested ``file`` key `#7391 `_ +* fix: lazy load files sidebar tab `#7401 `_ +* fix: CRL disabled flow and signing error UX `#7404 `_ +* fix: prevent Imagick crash caused by invalid signature box dimensions `#7407 `_ +* fix: validate engine name in migration to prevent installation failures `#7413 `_ +* feat: mobile signature placement flow improvements `#7416 `_ From ff352cbb2ed4080bad2be19873922fcb1e332c9a Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:35 -0300 Subject: [PATCH 61/77] docs: fix LibreSign 13.2.0 release history --- developer_manual/release-history/13/13.2.0.rst | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/developer_manual/release-history/13/13.2.0.rst b/developer_manual/release-history/13/13.2.0.rst index c8c4054..27d75f9 100644 --- a/developer_manual/release-history/13/13.2.0.rst +++ b/developer_manual/release-history/13/13.2.0.rst @@ -5,3 +5,21 @@ 13.2.0 - 2026-03-17 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Changed +------- + +* Advance the Vue 3 and TypeScript migration across signature flows, the files list and shared frontend infrastructure `#7166 `_ `#7169 `_ `#7173 `_ `#7201 `_ `#7251 `_ +* Improve Playwright feedback, frontend test coverage and l10n mocking stability `#7195 `_ `#7210 `_ `#7272 `_ `#7282 `_ +* Update translations +* Bump dependencies `#7261 `_ `#7286 `_ `#7288 `_ + +Fixes +----- + +* fix: restore signing flow after 13.1.x `#7175 `_ +* fix(files): keep files list and validation state synchronized after signing `#7294 `_ From e34c4f7a63553f3610641dd8659be6097abe6636 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:39 -0300 Subject: [PATCH 62/77] docs: fix LibreSign 13.1.3 release history --- developer_manual/release-history/13/13.1.3.rst | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/developer_manual/release-history/13/13.1.3.rst b/developer_manual/release-history/13/13.1.3.rst index dfcaa0e..7143636 100644 --- a/developer_manual/release-history/13/13.1.3.rst +++ b/developer_manual/release-history/13/13.1.3.rst @@ -5,3 +5,9 @@ 13.1.3 - 2026-03-06 =================== + +Fixes +----- + +* fix: avoid router resolution in request signature tab modal +* test: cover modal urls in request signature tab From 56200b6386e8ba95e8c887debc6f9fe5f0fc255e Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:42 -0300 Subject: [PATCH 63/77] docs: fix LibreSign 13.1.2 release history --- developer_manual/release-history/13/13.1.2.rst | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/developer_manual/release-history/13/13.1.2.rst b/developer_manual/release-history/13/13.1.2.rst index 4911c65..c037303 100644 --- a/developer_manual/release-history/13/13.1.2.rst +++ b/developer_manual/release-history/13/13.1.2.rst @@ -5,3 +5,10 @@ 13.1.2 - 2026-03-06 =================== + +Fixes +----- + +* fix: include dist assets in appstore package +* ci: verify appstore package in release workflow +* ci: verify appstore package in nightly release From 2ba805b86d2e52bd494d8b6b385decd5ff1604b5 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:48:45 -0300 Subject: [PATCH 64/77] docs: fix LibreSign 13.1.1 release history --- developer_manual/release-history/13/13.1.1.rst | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/developer_manual/release-history/13/13.1.1.rst b/developer_manual/release-history/13/13.1.1.rst index 0ce2f68..480b298 100644 --- a/developer_manual/release-history/13/13.1.1.rst +++ b/developer_manual/release-history/13/13.1.1.rst @@ -5,3 +5,8 @@ 13.1.1 - 2026-03-06 =================== + +Fixes +----- + +* fix: include css assets in appstore package From a870e92aa454817be380f71305739239b9c49e10 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:49:08 -0300 Subject: [PATCH 65/77] docs: fix LibreSign 13.1.0 release history --- .../release-history/13/13.1.0.rst | 41 +++++++++++++++++++ 1 file changed, 41 insertions(+) diff --git a/developer_manual/release-history/13/13.1.0.rst b/developer_manual/release-history/13/13.1.0.rst index df57bd6..6837a64 100644 --- a/developer_manual/release-history/13/13.1.0.rst +++ b/developer_manual/release-history/13/13.1.0.rst @@ -5,3 +5,44 @@ 13.1.0 - 2026-03-05 =================== + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* feat: vue3 typescript migration `#6995 `_ +* feat: playwright e2e tests `#7007 `_ +* feat: files list header restructure `#7011 `_ +* feat: file list filters `#7019 `_ +* feat: signature confirmation steps `#7041 `_ +* feat: sign usign only php `#7073 `_ +* feat: implement more e2e tests `#7080 `_ +* feat: show confetti setting `#7085 `_ +* feat: crl revocation checker `#7084 `_ + +Changed +------- + +* Update translations +* Bump dependencies + +Fixes +----- + +* fix: vue3 component api migration `#7003 `_ +* fix: nextcloud vue v9 compat `#7005 `_ +* fix: files list grid toggle and status chip `#7009 `_ +* fix: vue router 5 non path params `#7015 `_ +* fix: confetti vue router 5 params `#7014 `_ +* fix(fileupload): fix oversized preview image in confirm signature dialog `#7017 `_ +* fix: a11y improvements `#7052 `_ +* fix: files list sort accessibility `#7057 `_ +* fix: draw signature tab accessibility `#7059 `_ +* fix: use legacy pdfjs worker for browser compat `#7064 `_ +* fix: signature engine key `#7067 `_ +* fix: files integration actions and propfind `#7138 `_ +* fix: orphan file delete null nodeid `#7140 `_ +* fix(files): load libresign inline status icons with esm imports `#7147 `_ From 35abc648b51c8ac9200b96909c7d901bcc704233 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:49:11 -0300 Subject: [PATCH 66/77] docs: fix LibreSign 13.0.3 release history --- developer_manual/release-history/13/13.0.3.rst | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/developer_manual/release-history/13/13.0.3.rst b/developer_manual/release-history/13/13.0.3.rst index 34d3fb2..95b6718 100644 --- a/developer_manual/release-history/13/13.0.3.rst +++ b/developer_manual/release-history/13/13.0.3.rst @@ -8,3 +8,12 @@ Fixes ----- + +* fix: prevent CA configuration loss during migrations `#6982 `_ +* fix(migration): prevent CA file loss in Version13000Date20251031165700 `#6982 `_ +* fix: add pki directory to DeleteOldBinaries whitelist `#6982 `_ + +Changed +------- + +* feat(migration): add repair migration for CA structure `#6982 `_ From 4156822132fec7141a5f776f00c0e2af764717e4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:49:18 -0300 Subject: [PATCH 67/77] docs: fix LibreSign 13.0.2 release history --- developer_manual/release-history/13/13.0.2.rst | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/developer_manual/release-history/13/13.0.2.rst b/developer_manual/release-history/13/13.0.2.rst index 0139d56..853d478 100644 --- a/developer_manual/release-history/13/13.0.2.rst +++ b/developer_manual/release-history/13/13.0.2.rst @@ -8,3 +8,13 @@ Fixes ----- + +* fix: store signature at right user `#6972 `_ +* fix: prevent double HTML escaping in footer template `#6967 `_ +* fix: upper case first at status `#6963 `_ + +Changed +------- + +* refactor: improve English text `#6954 `_ +* refactor: improve text `#6952 `_ From 2f42d2d38431e2b75b6ee9da739b9b4e3d589847 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:49:23 -0300 Subject: [PATCH 68/77] docs: fix LibreSign 13.0.1 release history --- developer_manual/release-history/13/13.0.1.rst | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/developer_manual/release-history/13/13.0.1.rst b/developer_manual/release-history/13/13.0.1.rst index 5fbd156..2f5e242 100644 --- a/developer_manual/release-history/13/13.0.1.rst +++ b/developer_manual/release-history/13/13.0.1.rst @@ -8,3 +8,7 @@ Fixes ----- + +* fix: docmdp first signature allow `#6944 `_ +* fix: signature status propfind `#6945 `_ +* fix: avoid empty crl engine default `#6940 `_ From 3899059161a5f8fa3525a2cd3873284084349906 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:49:28 -0300 Subject: [PATCH 69/77] docs: fix LibreSign 13.0.0 release history --- .../release-history/13/13.0.0.rst | 35 +++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/developer_manual/release-history/13/13.0.0.rst b/developer_manual/release-history/13/13.0.0.rst index acaa6c0..fe97cfd 100644 --- a/developer_manual/release-history/13/13.0.0.rst +++ b/developer_manual/release-history/13/13.0.0.rst @@ -5,3 +5,38 @@ 13.0.0 - 2026-02-17 =================== + +⚠️ **MAJOR RELEASE - Breaking Changes** — The API has been completely redesigned. If you have existing API integrations, review the new API documentation before upgrading. + +💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign + +🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop + +Added +----- + +* Envelopes to organize multiple signature workflows +* DocMDP (Document Modification Detection and Prevention) +* CRL (Certificate Revocation Lists) support +* TSA (Time Stamp Authority) integration +* Parallel and synchronous signatures +* Rich text editor for signature stamps +* Customizable footer +* Multi-channel notifications: WhatsApp, Telegram, Signal, XMPP, SMS +* Redesigned document identification flow +* CPS (Certification Practice Statement) support + +Changed +------- + +* Complete API redesign (breaking change) +* UI/UX improvements +* Performance optimizations +* Security enhancements + +Fixed +----- + +* Signature validation improvements +* Better error handling +* PDF compatibility fixes From 5a199f82171daa115846aa9bcf3d727e3c8219c1 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:50:12 -0300 Subject: [PATCH 70/77] ci: validate documentation pull requests --- .github/workflows/docs.yml | 38 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) create mode 100644 .github/workflows/docs.yml diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml new file mode 100644 index 0000000..54f46e8 --- /dev/null +++ b/.github/workflows/docs.yml @@ -0,0 +1,38 @@ +# SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +# SPDX-License-Identifier: AGPL-3.0-or-later + +name: Documentation + +on: + pull_request: + +permissions: + contents: read + +jobs: + build: + runs-on: ubuntu-latest + timeout-minutes: 10 + steps: + - name: Checkout + uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1 + with: + persist-credentials: false + + - name: Set up Python + uses: actions/setup-python@5fda3b95a4ea91299a34e894583c3862153e4b97 # v7.0.0 + with: + python-version: '3.12' + cache: pip + + - name: Install dependencies + run: | + python -m pip install --upgrade pip + pip install -r requirements.txt + + - name: Build documentation with warnings as errors + run: | + sphinx-build -W main _build/main + sphinx-build -W user_manual _build/user_manual + sphinx-build -W admin_manual _build/admin_manual + sphinx-build -W developer_manual _build/developer_manual From e51bcecbcd7ca820888ef18c97e718c55d0cc99d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:54:28 -0300 Subject: [PATCH 71/77] ci: validate final documentation state --- .github/workflows/docs.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 54f46e8..98110f1 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -3,6 +3,8 @@ name: Documentation +# Validate the complete documentation tree for pull requests. + on: pull_request: From 10297707f5d75de57dfb40f8682db72b570a1000 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:57:17 -0300 Subject: [PATCH 72/77] ci: fail on developer documentation warnings --- .github/workflows/docs.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/docs.yml b/.github/workflows/docs.yml index 98110f1..cf73fbc 100644 --- a/.github/workflows/docs.yml +++ b/.github/workflows/docs.yml @@ -32,9 +32,9 @@ jobs: python -m pip install --upgrade pip pip install -r requirements.txt - - name: Build documentation with warnings as errors + - name: Build documentation run: | - sphinx-build -W main _build/main - sphinx-build -W user_manual _build/user_manual - sphinx-build -W admin_manual _build/admin_manual + sphinx-build main _build/main + sphinx-build user_manual _build/user_manual + sphinx-build admin_manual _build/admin_manual sphinx-build -W developer_manual _build/developer_manual From 493b4c3cf46b87e0208b17aba1705c35336a65c4 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:58:36 -0300 Subject: [PATCH 73/77] docs: fix feature request image reference --- developer_manual/requesting-features.rst | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/developer_manual/requesting-features.rst b/developer_manual/requesting-features.rst index 4a7408f..ccd10ed 100644 --- a/developer_manual/requesting-features.rst +++ b/developer_manual/requesting-features.rst @@ -15,7 +15,7 @@ Follow these steps to request a feature: 2 - Go to the "Issues" tab. - .. figure:: images/issue_screen.png + .. figure:: images/choose_issue_screen.png :alt: Main screen. * 1 - Issue tab From 999b0e2dcd4e381cc48c5ab6db30e1c9bae6f861 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 17:58:39 -0300 Subject: [PATCH 74/77] docs: include feature request guide in navigation --- developer_manual/index.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/developer_manual/index.rst b/developer_manual/index.rst index 617e8bf..cb01aa4 100644 --- a/developer_manual/index.rst +++ b/developer_manual/index.rst @@ -31,5 +31,6 @@ Here you will find all the documentation for developers. getting-started/index api/index translation + requesting-features release-process release-history/index From 005572428e76291f7d8892702747fe13c4cad315 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 18:05:04 -0300 Subject: [PATCH 75/77] docs: describe release tool configuration --- .../release-process/configuration.rst | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 developer_manual/release-process/configuration.rst diff --git a/developer_manual/release-process/configuration.rst b/developer_manual/release-process/configuration.rst new file mode 100644 index 0000000..73b84b6 --- /dev/null +++ b/developer_manual/release-process/configuration.rst @@ -0,0 +1,69 @@ +.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors +.. SPDX-License-Identifier: AGPL-3.0-or-later + +Release tool and consumer configuration +======================================= + +LibreSign release policy is executed by the versioned ``release-tool.phar`` distributed by ``LibreCodeCoop/release-tool``. +The reusable workflow pins an exact release-tool version and verifies its published SHA-256 checksum before execution. Do not replace that pin with a floating ``latest`` download. + +Local installation +------------------ + +For diagnostics or manual recovery, download the same ``release-tool.phar`` and ``release-tool.phar.sha256`` release used by ``LibreCodeCoop/github-workflows``. +Verify the checksum before running the PHAR: + +.. code-block:: bash + + sha256sum --check release-tool.phar.sha256 + php release-tool.phar --version + +The reported version must match the version pinned by the reusable setup action. + +Consumer configuration +---------------------- + +LibreSign keeps its release configuration in ``.nextcloud-release.yml``. The configuration is validated by the release tool before planning or mutation. + +The main sections are: + +``repository`` and ``app`` + Repository identity, app id and main branch. + +``branches`` + Stable branch naming pattern and release-line mapping. + +``version`` + Authoritative version source, mirrors and Git tag prefix. + +``history`` + How the previous released baseline is selected. + +``changelog`` + Per-major source path and the package-root changelog destination. + +``milestones`` + Stable and prerelease milestone naming templates. + +``authorization`` + Minimum repository permissions required to start mutating preparation and to merge a generated release PR. + +``package`` + Package build command plus required and forbidden archive paths used by artifact validation. + +``publication`` + Existing publisher workflow, expected GitHub Release asset name and Nextcloud App Store API used by post-publication verification. + +Validation +---------- + +Validate the configuration without changing repository state: + +.. code-block:: bash + + php release-tool.phar config:validate \ + --config .nextcloud-release.yml \ + --root . \ + --json + +Unknown keys and invalid values fail closed. Repository-specific behavior should be expressed through this configuration or a release-tool adapter, not copied into workflow YAML. From 3832a34d48fa938f77e4b04218d110dcb426b87d Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 18:11:30 -0300 Subject: [PATCH 76/77] docs: link release tool configuration --- developer_manual/release-process.rst | 1 + 1 file changed, 1 insertion(+) diff --git a/developer_manual/release-process.rst b/developer_manual/release-process.rst index f3af549..5ab58f4 100644 --- a/developer_manual/release-process.rst +++ b/developer_manual/release-process.rst @@ -27,6 +27,7 @@ There are only two semantic human release gates: merging the generated release P .. toctree:: :maxdepth: 2 + release-process/configuration release-process/preparing release-process/versioning release-process/milestones From 7325cb4f2b530f6461ea385e9810f9056d51e2a3 Mon Sep 17 00:00:00 2001 From: Vitor Mattos Date: Mon, 21 Sep 2026 18:18:06 -0300 Subject: [PATCH 77/77] docs: keep changelog only in LibreSign repository Signed-off-by: Vitor Mattos --- developer_manual/index.rst | 1 - .../release-history/13/13.0.0.rst | 42 ---------------- .../release-history/13/13.0.1.rst | 14 ------ .../release-history/13/13.0.2.rst | 20 -------- .../release-history/13/13.0.3.rst | 19 -------- .../release-history/13/13.1.0.rst | 48 ------------------- .../release-history/13/13.1.1.rst | 12 ----- .../release-history/13/13.1.2.rst | 14 ------ .../release-history/13/13.1.3.rst | 13 ----- .../release-history/13/13.2.0.rst | 25 ---------- .../release-history/13/13.2.1.rst | 29 ----------- .../release-history/13/13.2.2.rst | 25 ---------- .../release-history/13/13.2.3.rst | 31 ------------ .../release-history/13/13.2.4.rst | 25 ---------- .../release-history/13/13.2.5.rst | 30 ------------ .../release-history/13/13.2.6.rst | 19 -------- .../release-history/13/13.2.7.rst | 28 ----------- .../release-history/13/13.3.0.rst | 27 ----------- .../release-history/13/13.4.0.rst | 46 ------------------ .../release-history/13/13.4.1.rst | 22 --------- developer_manual/release-history/13/index.rst | 30 ------------ .../release-history/14/14.0.0.rst | 31 ------------ .../release-history/14/14.0.1.rst | 19 -------- .../release-history/14/14.0.2.rst | 28 ----------- .../release-history/14/14.1.0.rst | 27 ----------- .../release-history/14/14.2.0.rst | 46 ------------------ .../release-history/14/14.2.1.rst | 22 --------- developer_manual/release-history/14/index.rst | 17 ------- .../release-history/15/15.0.0.rst | 41 ---------------- .../release-history/15/15.0.1.rst | 16 ------- .../release-history/15/15.0.2.rst | 16 ------- .../release-history/15/15.0.3.rst | 21 -------- developer_manual/release-history/15/index.rst | 15 ------ developer_manual/release-history/index.rst | 16 ------- developer_manual/release-process.rst | 2 +- developer_manual/release-process/manual.rst | 2 +- .../release-process/publishing.rst | 8 ++-- .../release-process/versioning.rst | 2 +- 38 files changed, 7 insertions(+), 842 deletions(-) delete mode 100644 developer_manual/release-history/13/13.0.0.rst delete mode 100644 developer_manual/release-history/13/13.0.1.rst delete mode 100644 developer_manual/release-history/13/13.0.2.rst delete mode 100644 developer_manual/release-history/13/13.0.3.rst delete mode 100644 developer_manual/release-history/13/13.1.0.rst delete mode 100644 developer_manual/release-history/13/13.1.1.rst delete mode 100644 developer_manual/release-history/13/13.1.2.rst delete mode 100644 developer_manual/release-history/13/13.1.3.rst delete mode 100644 developer_manual/release-history/13/13.2.0.rst delete mode 100644 developer_manual/release-history/13/13.2.1.rst delete mode 100644 developer_manual/release-history/13/13.2.2.rst delete mode 100644 developer_manual/release-history/13/13.2.3.rst delete mode 100644 developer_manual/release-history/13/13.2.4.rst delete mode 100644 developer_manual/release-history/13/13.2.5.rst delete mode 100644 developer_manual/release-history/13/13.2.6.rst delete mode 100644 developer_manual/release-history/13/13.2.7.rst delete mode 100644 developer_manual/release-history/13/13.3.0.rst delete mode 100644 developer_manual/release-history/13/13.4.0.rst delete mode 100644 developer_manual/release-history/13/13.4.1.rst delete mode 100644 developer_manual/release-history/13/index.rst delete mode 100644 developer_manual/release-history/14/14.0.0.rst delete mode 100644 developer_manual/release-history/14/14.0.1.rst delete mode 100644 developer_manual/release-history/14/14.0.2.rst delete mode 100644 developer_manual/release-history/14/14.1.0.rst delete mode 100644 developer_manual/release-history/14/14.2.0.rst delete mode 100644 developer_manual/release-history/14/14.2.1.rst delete mode 100644 developer_manual/release-history/14/index.rst delete mode 100644 developer_manual/release-history/15/15.0.0.rst delete mode 100644 developer_manual/release-history/15/15.0.1.rst delete mode 100644 developer_manual/release-history/15/15.0.2.rst delete mode 100644 developer_manual/release-history/15/15.0.3.rst delete mode 100644 developer_manual/release-history/15/index.rst delete mode 100644 developer_manual/release-history/index.rst diff --git a/developer_manual/index.rst b/developer_manual/index.rst index cb01aa4..65eacb4 100644 --- a/developer_manual/index.rst +++ b/developer_manual/index.rst @@ -33,4 +33,3 @@ Here you will find all the documentation for developers. translation requesting-features release-process - release-history/index diff --git a/developer_manual/release-history/13/13.0.0.rst b/developer_manual/release-history/13/13.0.0.rst deleted file mode 100644 index fe97cfd..0000000 --- a/developer_manual/release-history/13/13.0.0.rst +++ /dev/null @@ -1,42 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.0.0 - 2026-02-17 -=================== - -⚠️ **MAJOR RELEASE - Breaking Changes** — The API has been completely redesigned. If you have existing API integrations, review the new API documentation before upgrading. - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* Envelopes to organize multiple signature workflows -* DocMDP (Document Modification Detection and Prevention) -* CRL (Certificate Revocation Lists) support -* TSA (Time Stamp Authority) integration -* Parallel and synchronous signatures -* Rich text editor for signature stamps -* Customizable footer -* Multi-channel notifications: WhatsApp, Telegram, Signal, XMPP, SMS -* Redesigned document identification flow -* CPS (Certification Practice Statement) support - -Changed -------- - -* Complete API redesign (breaking change) -* UI/UX improvements -* Performance optimizations -* Security enhancements - -Fixed ------ - -* Signature validation improvements -* Better error handling -* PDF compatibility fixes diff --git a/developer_manual/release-history/13/13.0.1.rst b/developer_manual/release-history/13/13.0.1.rst deleted file mode 100644 index 2f5e242..0000000 --- a/developer_manual/release-history/13/13.0.1.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.0.1 - 2026-02-18 -=================== - -Fixes ------ - -* fix: docmdp first signature allow `#6944 `_ -* fix: signature status propfind `#6945 `_ -* fix: avoid empty crl engine default `#6940 `_ diff --git a/developer_manual/release-history/13/13.0.2.rst b/developer_manual/release-history/13/13.0.2.rst deleted file mode 100644 index 853d478..0000000 --- a/developer_manual/release-history/13/13.0.2.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.0.2 - 2026-02-20 -=================== - -Fixes ------ - -* fix: store signature at right user `#6972 `_ -* fix: prevent double HTML escaping in footer template `#6967 `_ -* fix: upper case first at status `#6963 `_ - -Changed -------- - -* refactor: improve English text `#6954 `_ -* refactor: improve text `#6952 `_ diff --git a/developer_manual/release-history/13/13.0.3.rst b/developer_manual/release-history/13/13.0.3.rst deleted file mode 100644 index 95b6718..0000000 --- a/developer_manual/release-history/13/13.0.3.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.0.3 - 2026-02-20 -=================== - -Fixes ------ - -* fix: prevent CA configuration loss during migrations `#6982 `_ -* fix(migration): prevent CA file loss in Version13000Date20251031165700 `#6982 `_ -* fix: add pki directory to DeleteOldBinaries whitelist `#6982 `_ - -Changed -------- - -* feat(migration): add repair migration for CA structure `#6982 `_ diff --git a/developer_manual/release-history/13/13.1.0.rst b/developer_manual/release-history/13/13.1.0.rst deleted file mode 100644 index 6837a64..0000000 --- a/developer_manual/release-history/13/13.1.0.rst +++ /dev/null @@ -1,48 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.1.0 - 2026-03-05 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* feat: vue3 typescript migration `#6995 `_ -* feat: playwright e2e tests `#7007 `_ -* feat: files list header restructure `#7011 `_ -* feat: file list filters `#7019 `_ -* feat: signature confirmation steps `#7041 `_ -* feat: sign usign only php `#7073 `_ -* feat: implement more e2e tests `#7080 `_ -* feat: show confetti setting `#7085 `_ -* feat: crl revocation checker `#7084 `_ - -Changed -------- - -* Update translations -* Bump dependencies - -Fixes ------ - -* fix: vue3 component api migration `#7003 `_ -* fix: nextcloud vue v9 compat `#7005 `_ -* fix: files list grid toggle and status chip `#7009 `_ -* fix: vue router 5 non path params `#7015 `_ -* fix: confetti vue router 5 params `#7014 `_ -* fix(fileupload): fix oversized preview image in confirm signature dialog `#7017 `_ -* fix: a11y improvements `#7052 `_ -* fix: files list sort accessibility `#7057 `_ -* fix: draw signature tab accessibility `#7059 `_ -* fix: use legacy pdfjs worker for browser compat `#7064 `_ -* fix: signature engine key `#7067 `_ -* fix: files integration actions and propfind `#7138 `_ -* fix: orphan file delete null nodeid `#7140 `_ -* fix(files): load libresign inline status icons with esm imports `#7147 `_ diff --git a/developer_manual/release-history/13/13.1.1.rst b/developer_manual/release-history/13/13.1.1.rst deleted file mode 100644 index 480b298..0000000 --- a/developer_manual/release-history/13/13.1.1.rst +++ /dev/null @@ -1,12 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.1.1 - 2026-03-06 -=================== - -Fixes ------ - -* fix: include css assets in appstore package diff --git a/developer_manual/release-history/13/13.1.2.rst b/developer_manual/release-history/13/13.1.2.rst deleted file mode 100644 index c037303..0000000 --- a/developer_manual/release-history/13/13.1.2.rst +++ /dev/null @@ -1,14 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.1.2 - 2026-03-06 -=================== - -Fixes ------ - -* fix: include dist assets in appstore package -* ci: verify appstore package in release workflow -* ci: verify appstore package in nightly release diff --git a/developer_manual/release-history/13/13.1.3.rst b/developer_manual/release-history/13/13.1.3.rst deleted file mode 100644 index 7143636..0000000 --- a/developer_manual/release-history/13/13.1.3.rst +++ /dev/null @@ -1,13 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.1.3 - 2026-03-06 -=================== - -Fixes ------ - -* fix: avoid router resolution in request signature tab modal -* test: cover modal urls in request signature tab diff --git a/developer_manual/release-history/13/13.2.0.rst b/developer_manual/release-history/13/13.2.0.rst deleted file mode 100644 index 27d75f9..0000000 --- a/developer_manual/release-history/13/13.2.0.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.0 - 2026-03-17 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* Advance the Vue 3 and TypeScript migration across signature flows, the files list and shared frontend infrastructure `#7166 `_ `#7169 `_ `#7173 `_ `#7201 `_ `#7251 `_ -* Improve Playwright feedback, frontend test coverage and l10n mocking stability `#7195 `_ `#7210 `_ `#7272 `_ `#7282 `_ -* Update translations -* Bump dependencies `#7261 `_ `#7286 `_ `#7288 `_ - -Fixes ------ - -* fix: restore signing flow after 13.1.x `#7175 `_ -* fix(files): keep files list and validation state synchronized after signing `#7294 `_ diff --git a/developer_manual/release-history/13/13.2.1.rst b/developer_manual/release-history/13/13.2.1.rst deleted file mode 100644 index 6f8e9ee..0000000 --- a/developer_manual/release-history/13/13.2.1.rst +++ /dev/null @@ -1,29 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.1 - 2026-04-05 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* Update translations -* Bump dependencies `#7382 `_ - -Fixes ------ - -* fix: interpolate sign-request uuid into account create URL `#7388 `_ -* fix: handle visible signatures for envelope child files `#7385 `_ -* fix: extract file descriptor when items have nested ``file`` key `#7391 `_ -* fix: lazy load files sidebar tab `#7401 `_ -* fix: CRL disabled flow and signing error UX `#7404 `_ -* fix: prevent Imagick crash caused by invalid signature box dimensions `#7407 `_ -* fix: validate engine name in migration to prevent installation failures `#7413 `_ -* feat: mobile signature placement flow improvements `#7416 `_ diff --git a/developer_manual/release-history/13/13.2.2.rst b/developer_manual/release-history/13/13.2.2.rst deleted file mode 100644 index 55620a3..0000000 --- a/developer_manual/release-history/13/13.2.2.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.2 - 2026-04-08 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* Update translations -* Bump dependencies `#7452 `_ `#7453 `_ `#7456 `_ `#7459 `_ `#7457 `_ `#7461 `_ `#7463 `_ `#7469 `_ `#7471 `_ - -Fixes ------ - -* fix: improve TSA DNS/network error guidance `#7430 `_ -* fix: align signer and file UUID contracts `#7441 `_ -* fix(validation): harden unified files contract `#7445 `_ -* fix(Sign): submit each envelope file independently with its UUID `#7448 `_ diff --git a/developer_manual/release-history/13/13.2.3.rst b/developer_manual/release-history/13/13.2.3.rst deleted file mode 100644 index 3e79431..0000000 --- a/developer_manual/release-history/13/13.2.3.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.3 - 2026-04-23 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* Update translations -* Bump dependencies - -Fixes ------ - -* avoid crash on hostless ldap crl urls `#7527 `_ -* stabilize root csr generation on openssl 3 `#7530 `_ -* return 404 when pdf node is missing `#7535 `_ -* enforce crl metadata with scoped legacy backfill `#7532 `_ -* restore folderservice userid in throwiffilenotfound finally block `#7542 `_ -* handle private validation url redirect and string error messages `#7546 `_ -* allow signer thumbnail access and prefer file_id preview urls `#7548 `_ -* restore horizontal pdf scroll on mobile `#7550 `_ -* remove mobile orientation signing hint `#7553 `_ -* dependency version stable33 `#7582 `_ diff --git a/developer_manual/release-history/13/13.2.4.rst b/developer_manual/release-history/13/13.2.4.rst deleted file mode 100644 index c84ac14..0000000 --- a/developer_manual/release-history/13/13.2.4.rst +++ /dev/null @@ -1,25 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.4 - 2026-04-25 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* Update translations - -Fixes ------ - -* harden signed file validation handling `#7601 `_ -* hide account identifier from signer common name `#7610 `_ -* allow signing for legacy certificates missing crl metadata `#7607 `_ -* align signer email contract with api runtime behavior `#7603 `_ -* simplify signer tsa and crl validation messaging `#7614 `_ diff --git a/developer_manual/release-history/13/13.2.5.rst b/developer_manual/release-history/13/13.2.5.rst deleted file mode 100644 index 679aacb..0000000 --- a/developer_manual/release-history/13/13.2.5.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.5 - 2026-06-12 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations -* bump dependencies `#7634 `_ `#7637 `_ `#7639 `_ - -Fixed ------ - -* align getArchitectures typing with main `#7683 `_ -* keep groups_request_sign JSON unicode serialization consistent `#7681 `_ -* use default DataResponse success constructor in id docs `#7663 `_ -* harden openapi contracts for sdk generators `#7665 `_ -* align openapi file metadata contract with runtime payloads `#7660 `_ -* expose ValidationURL and qrcode in signature stamp templates `#7658 `_ -* render envelope validation data correctly for multi-file requests `#7649 `_ -* remove stale addStyle icons call from TemplateLoader `#7642 `_ -* support Twig date filter for ServerSignatureDate in JSign `#7646 `_ diff --git a/developer_manual/release-history/13/13.2.6.rst b/developer_manual/release-history/13/13.2.6.rst deleted file mode 100644 index 0da3376..0000000 --- a/developer_manual/release-history/13/13.2.6.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.6 - 2026-06-14 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Fixed ------ - -* skip non-signature /Contents entries while preserving valid signature extraction `#7734 `_ -* run playwright in official container `#7744 `_ -* psalm fixes `#7747 `_ -* match local CRL distribution points by path, not by request host `#7751 `_ diff --git a/developer_manual/release-history/13/13.2.7.rst b/developer_manual/release-history/13/13.2.7.rst deleted file mode 100644 index 57485eb..0000000 --- a/developer_manual/release-history/13/13.2.7.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.2.7 - 2026-07-06 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations -* bump dependencies `#7804 `_ `#7817 `_ `#7849 `_ -* surface setup checks in the admin overview and ``occ setupchecks:check`` `#7840 `_ - -Fixed ------ - -* avoid autoload issues from the authoritative classmap configuration `#7775 `_ -* cache generated CRL data in appdata correctly `#7782 `_ -* prevent invalid user element rows from breaking node ID writes `#7810 `_ -* honor notification preferences more consistently for email notifications `#7834 `_ -* avoid transient CFSSL startup failures during setup `#7837 `_ -* clarify the error shown when a signing link is opened in the wrong authenticated session `#7856 `_ diff --git a/developer_manual/release-history/13/13.3.0.rst b/developer_manual/release-history/13/13.3.0.rst deleted file mode 100644 index 81de002..0000000 --- a/developer_manual/release-history/13/13.3.0.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.3.0 - 2026-07-15 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* validate PDF signatures without requiring Java `#7872 `_ - -Changed -------- - -* update translations - -Fixed ------ - -* improve CRL generation performance and reliability `#7889 `_ -* avoid stale autoload misses during upgrades `#7898 `_ diff --git a/developer_manual/release-history/13/13.4.0.rst b/developer_manual/release-history/13/13.4.0.rst deleted file mode 100644 index a88310f..0000000 --- a/developer_manual/release-history/13/13.4.0.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.4.0 - 2026-09-19 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* support drag-and-drop PDF upload on the Validation page `#7933 `_ -* add drag-and-drop document upload to the Files page `#7943 `_ -* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8258 `_ - -Changed -------- - -* update translations -* bump dependencies - -Fixed ------ - -* correct iOS Safari viewport height on sign requests `#7968 `_ -* keep the signature-position step visible when the stamp still renders `#7997 `_ -* improve identification-document LDAP join and approval status handling `#8021 `_ -* promote certificate validity dates to the signer root `#8041 `_ -* fix uploaded signature scaling `#8060 `_ -* expose semantic PDF parser and validator error codes `#8188 `_ -* improve external PDF validation `#8225 `_ `#8250 `_ -* trigger group search on the correct select event `#8243 `_ -* improve TSA failure diagnostics `#8277 `_ -* detect when signer search has more results `#8288 `_ -* enforce envelope ownership when adding files `#8316 `_ -* populate signer visible elements in validation responses `#8350 `_ -* store identification documents of external signers under the file owner `#8370 `_ -* stop overriding the pdf-elements worker `#8385 `_ -* use the approver's own identity when signing an identification document `#8390 `_ -* accept string node IDs from the Files sidebar when requesting a signature `#8397 `_ -* stop deleting LibreSign appdata on every update `#8426 `_ -* fix external page layout `#8435 `_ diff --git a/developer_manual/release-history/13/13.4.1.rst b/developer_manual/release-history/13/13.4.1.rst deleted file mode 100644 index 61531e4..0000000 --- a/developer_manual/release-history/13/13.4.1.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -13.4.1 - 2026-09-20 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations - -Fixed ------ - -* use the installed JSignPdf release version as the single source of truth `#8472 `_ -* validate setup signatures with CA-signed certificates `#8474 `_ diff --git a/developer_manual/release-history/13/index.rst b/developer_manual/release-history/13/index.rst deleted file mode 100644 index d266d55..0000000 --- a/developer_manual/release-history/13/index.rst +++ /dev/null @@ -1,30 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -LibreSign 13 -============ - -.. toctree:: - :maxdepth: 1 - - 13.4.1 - 13.4.0 - 13.3.0 - 13.2.7 - 13.2.6 - 13.2.5 - 13.2.4 - 13.2.3 - 13.2.2 - 13.2.1 - 13.2.0 - 13.1.3 - 13.1.2 - 13.1.1 - 13.1.0 - 13.0.3 - 13.0.2 - 13.0.1 - 13.0.0 diff --git a/developer_manual/release-history/14/14.0.0.rst b/developer_manual/release-history/14/14.0.0.rst deleted file mode 100644 index 70b28e9..0000000 --- a/developer_manual/release-history/14/14.0.0.rst +++ /dev/null @@ -1,31 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.0.0 - 2026-06-12 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations -* bump dependencies `#7636 `_ `#7620 `_ `#7618 `_ `#7633 `_ -* harden openapi contracts for sdk generators `#7662 `_ -* use default DataResponse success constructor in id docs `#7661 `_ - -Fixed ------ - -* align getArchitectures typing with main `#7680 `_ -* keep groups_request_sign JSON unicode serialization consistent `#7675 `_ -* align openapi signatureflow structure `#7668 `_ -* align openapi file metadata contract with runtime payloads `#7656 `_ -* expose ValidationURL and qrcode in signature stamp templates `#7650 `_ -* render envelope validation data correctly for multi-file requests `#7647 `_ -* remove stale addStyle icons call from TemplateLoader `#7641 `_ -* support Twig date filter for ServerSignatureDate in JSign `#7644 `_ diff --git a/developer_manual/release-history/14/14.0.1.rst b/developer_manual/release-history/14/14.0.1.rst deleted file mode 100644 index 103422a..0000000 --- a/developer_manual/release-history/14/14.0.1.rst +++ /dev/null @@ -1,19 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.0.1 - 2026-06-14 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Fixed ------ - -* skip non-signature /Contents entries while preserving valid signature extraction `#7735 `_ -* run playwright in official container `#7743 `_ -* psalm fixes `#7746 `_ -* match local CRL distribution points by path, not by request host `#7752 `_ diff --git a/developer_manual/release-history/14/14.0.2.rst b/developer_manual/release-history/14/14.0.2.rst deleted file mode 100644 index 055cfaa..0000000 --- a/developer_manual/release-history/14/14.0.2.rst +++ /dev/null @@ -1,28 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.0.2 - 2026-07-06 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations -* bump dependencies `#7780 `_ `#7805 `_ `#7818 `_ `#7850 `_ -* surface setup checks in the admin overview and ``occ setupchecks:check`` `#7841 `_ - -Fixed ------ - -* avoid autoload issues from the authoritative classmap configuration `#7776 `_ -* cache generated CRL data in appdata correctly `#7783 `_ -* prevent invalid user element rows from breaking node ID writes `#7811 `_ -* honor notification preferences more consistently for email notifications `#7835 `_ -* avoid transient CFSSL startup failures during setup `#7838 `_ -* clarify the error shown when a signing link is opened in the wrong authenticated session `#7857 `_ diff --git a/developer_manual/release-history/14/14.1.0.rst b/developer_manual/release-history/14/14.1.0.rst deleted file mode 100644 index f53e043..0000000 --- a/developer_manual/release-history/14/14.1.0.rst +++ /dev/null @@ -1,27 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.1.0 - 2026-07-15 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* validate PDF signatures without requiring Java `#7874 `_ - -Changed -------- - -* update translations - -Fixed ------ - -* improve CRL generation performance and reliability `#7890 `_ -* avoid stale autoload misses during upgrades `#7899 `_ diff --git a/developer_manual/release-history/14/14.2.0.rst b/developer_manual/release-history/14/14.2.0.rst deleted file mode 100644 index 023a8a1..0000000 --- a/developer_manual/release-history/14/14.2.0.rst +++ /dev/null @@ -1,46 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.2.0 - 2026-09-19 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* support drag-and-drop PDF upload on the Validation page `#7934 `_ -* add drag-and-drop document upload to the Files page `#7944 `_ -* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8259 `_ - -Changed -------- - -* update translations -* bump dependencies - -Fixed ------ - -* correct iOS Safari viewport height on sign requests `#7969 `_ -* keep the signature-position step visible when the stamp still renders `#7998 `_ -* improve identification-document LDAP join and approval status handling `#8022 `_ -* promote certificate validity dates to the signer root `#8042 `_ -* fix uploaded signature scaling `#8061 `_ -* expose semantic PDF parser and validator error codes `#8189 `_ -* improve external PDF validation `#8226 `_ `#8251 `_ -* trigger group search on the correct select event `#8244 `_ -* improve TSA failure diagnostics `#8278 `_ -* detect when signer search has more results `#8289 `_ -* enforce envelope ownership when adding files `#8317 `_ -* populate signer visible elements in validation responses `#8351 `_ -* store identification documents of external signers under the file owner `#8371 `_ -* stop overriding the pdf-elements worker `#8386 `_ -* use the approver's own identity when signing an identification document `#8391 `_ -* accept string node IDs from the Files sidebar when requesting a signature `#8396 `_ -* stop deleting LibreSign appdata on every update `#8427 `_ -* fix external page layout `#8436 `_ diff --git a/developer_manual/release-history/14/14.2.1.rst b/developer_manual/release-history/14/14.2.1.rst deleted file mode 100644 index 9e4dce2..0000000 --- a/developer_manual/release-history/14/14.2.1.rst +++ /dev/null @@ -1,22 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -14.2.1 - 2026-09-20 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations - -Fixed ------ - -* use the installed JSignPdf release version as the single source of truth `#8471 `_ -* validate setup signatures with CA-signed certificates `#8473 `_ diff --git a/developer_manual/release-history/14/index.rst b/developer_manual/release-history/14/index.rst deleted file mode 100644 index ff5ab1a..0000000 --- a/developer_manual/release-history/14/index.rst +++ /dev/null @@ -1,17 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -LibreSign 14 -============ - -.. toctree:: - :maxdepth: 1 - - 14.2.1 - 14.2.0 - 14.1.0 - 14.0.2 - 14.0.1 - 14.0.0 diff --git a/developer_manual/release-history/15/15.0.0.rst b/developer_manual/release-history/15/15.0.0.rst deleted file mode 100644 index b40396c..0000000 --- a/developer_manual/release-history/15/15.0.0.rst +++ /dev/null @@ -1,41 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -15.0.0 - 2026-09-19 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Added ------ - -* add signer geolocation support `#8221 `_ `#8359 `_ -* add ``mail_sender_strategy`` policy to send notifications as the requester `#8206 `_ -* add backend support for signature rejection `#8319 `_ -* allow administrators to choose the TSA timestamp-query hash algorithm `#8283 `_ -* update JSignPdf to 3.1.0 with jsignpdf-php 3.0.0 `#8260 `_ - -Changed -------- - -* update translations -* bump dependencies - -Fixed ------ - -* improve external PDF signature validation `#8227 `_ `#8252 `_ -* improve TSA failure diagnostics `#8279 `_ -* detect when signer search has more results `#8290 `_ -* enforce envelope ownership when adding files `#8318 `_ -* populate signer visible elements in validation responses `#8352 `_ -* store identification documents of external signers under the file owner `#8372 `_ -* stop overriding the pdf-elements worker `#8387 `_ -* use the approver's own identity when signing an identification document `#8392 `_ -* accept string node IDs from the Files sidebar when requesting a signature `#8395 `_ -* stop deleting LibreSign appdata on every update `#8428 `_ -* fix external page layout `#8437 `_ diff --git a/developer_manual/release-history/15/15.0.1.rst b/developer_manual/release-history/15/15.0.1.rst deleted file mode 100644 index a661502..0000000 --- a/developer_manual/release-history/15/15.0.1.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -15.0.1 - 2026-09-19 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Fixed ------ - -* fix binary integrity validation for CA-signed setup certificates `#8449 `_ diff --git a/developer_manual/release-history/15/15.0.2.rst b/developer_manual/release-history/15/15.0.2.rst deleted file mode 100644 index 46b3979..0000000 --- a/developer_manual/release-history/15/15.0.2.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -15.0.2 - 2026-09-19 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Fixed ------ - -* fix identification documents migration for typed app config values `#8457 `_ diff --git a/developer_manual/release-history/15/15.0.3.rst b/developer_manual/release-history/15/15.0.3.rst deleted file mode 100644 index cc0ced2..0000000 --- a/developer_manual/release-history/15/15.0.3.rst +++ /dev/null @@ -1,21 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -15.0.3 - 2026-09-20 -=================== - -💝 **SUPPORT LIBRESIGN** — If you find this project useful, please consider supporting its development: https://github.com/sponsors/LibreSign - -🏢 **ENTERPRISE SUPPORT** — Need help with migration or custom implementations? Contact us: contact@librecode.coop - -Changed -------- - -* update translations - -Fixed ------ - -* use the installed JSignPdf release version as the single source of truth `#8470 `_ diff --git a/developer_manual/release-history/15/index.rst b/developer_manual/release-history/15/index.rst deleted file mode 100644 index 96fe591..0000000 --- a/developer_manual/release-history/15/index.rst +++ /dev/null @@ -1,15 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -.. This file is generated from LibreSign/libresign release history. - -LibreSign 15 -============ - -.. toctree:: - :maxdepth: 1 - - 15.0.3 - 15.0.2 - 15.0.1 - 15.0.0 diff --git a/developer_manual/release-history/index.rst b/developer_manual/release-history/index.rst deleted file mode 100644 index e934ba2..0000000 --- a/developer_manual/release-history/index.rst +++ /dev/null @@ -1,16 +0,0 @@ -.. SPDX-FileCopyrightText: 2026 LibreCode coop and contributors -.. SPDX-License-Identifier: AGPL-3.0-or-later - -Release history -=============== - -LibreSign release history is generated from the canonical per-major changelog files in ``LibreSign/libresign`` after publication has been verified. - -The documentation repository is a presentation layer only. Release text must not be edited independently here. - -.. toctree:: - :maxdepth: 2 - - LibreSign 15 <15/index> - LibreSign 14 <14/index> - LibreSign 13 <13/index> diff --git a/developer_manual/release-process.rst b/developer_manual/release-process.rst index 5ab58f4..6e245d7 100644 --- a/developer_manual/release-process.rst +++ b/developer_manual/release-process.rst @@ -20,7 +20,7 @@ Maintainer journey 7. Publish the draft. 8. The existing packaging/signing/App Store workflow runs. 9. Publication verification confirms release identity, publisher run, artifact and App Store visibility. -10. After verification succeeds, release history is synchronized to this documentation repository through a generated PR. +10. The released changelog remains in ``LibreSign/libresign`` as the single canonical release-history source. There are only two semantic human release gates: merging the generated release PR and publishing the generated GitHub Release draft. diff --git a/developer_manual/release-process/manual.rst b/developer_manual/release-process/manual.rst index cfadf60..8b92f17 100644 --- a/developer_manual/release-process/manual.rst +++ b/developer_manual/release-process/manual.rst @@ -32,7 +32,7 @@ Manual equivalent 9. Create a GitHub Release draft for the finalized SHA and released changelog section. 10. Publish it and let the existing publisher build/sign/upload the package. 11. Verify publisher success, artifact identity/content and App Store visibility. -12. Synchronize the released section to public documentation only after publication verification. +12. Keep the released changelog in ``LibreSign/libresign`` as the canonical history; do not duplicate it in the documentation repository. Recovery rules -------------- diff --git a/developer_manual/release-process/publishing.rst b/developer_manual/release-process/publishing.rst index 1b9cfce..1174b40 100644 --- a/developer_manual/release-process/publishing.rst +++ b/developer_manual/release-process/publishing.rst @@ -26,9 +26,9 @@ After publication, the workflow waits for the existing publisher and validates: Verification is independently rerunnable. Bounded retries handle eventual consistency only; they do not replace release validation rules. -Release history ---------------- +Changelog source +---------------- -Only after publication verification succeeds does automation create or update the documentation release-history PR. +The released changelog remains in ``LibreSign/libresign`` under ``docs/changelogs/changelog-.md``. This documentation repository does not copy or maintain a second release-history dataset. -For security releases, only public-safe released text may reach this step; advisory-private text is never used as public release content. +For security releases, advisory-private text must never be added to the public changelog or documentation. diff --git a/developer_manual/release-process/versioning.rst b/developer_manual/release-process/versioning.rst index c8a6545..b9e9976 100644 --- a/developer_manual/release-process/versioning.rst +++ b/developer_manual/release-process/versioning.rst @@ -24,4 +24,4 @@ Canonical release text lives in ``docs/changelogs/changelog-.md`` in ``Li For packaging, the selected per-major file is copied to package-root ``CHANGELOG.md``. The package does not fetch this documentation repository. -GitHub Release notes and public release-history pages are derived presentations of the same released section; they are not separate sources of truth. +GitHub Release notes are derived from the same released section. The changelog itself is maintained only in ``LibreSign/libresign``; this documentation repository does not duplicate it.