Skip to content

Commit 1f52dd7

Browse files
committed
docs: clarify release policy, lifecycle and security support
This just better documents existing practices and consolidates documentation in a shape that it is easier to find.
1 parent 7ca9b3c commit 1f52dd7

11 files changed

Lines changed: 300 additions & 53 deletions

docs/admin/install/docker.rst

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,13 @@ behind HTTPS terminating proxy. You can also deploy with a HTTPS proxy, see
3030
git clone https://github.com/WeblateOrg/docker-compose.git weblate-docker
3131
cd weblate-docker
3232
33+
.. note::
34+
35+
The Docker Compose files are example deployment configurations. Operators
36+
typically customize them for their own deployment and maintain those local
37+
changes. Weblate application updates are delivered through Docker image
38+
tags; there is no release-bound update path for customized Compose files.
39+
3340
2. Create a :file:`docker-compose.override.yml` file with your settings.
3441
See :ref:`docker-environment` for full list of environment variables.
3542

@@ -253,8 +260,11 @@ should be no need for additional manual actions.
253260
calendar year. If you need to upgrade from an older release, upgrade first
254261
to an intermediate version listed in :ref:`version-specific-instructions`.
255262

256-
You might also want to update the ``docker-compose`` repository, though it's
257-
not needed in most case. See :ref:`docker-postgres-upgrade` for upgrading the PostgreSQL server.
263+
If you use the example Compose files without local changes, you can also
264+
review updates in the ``docker-compose`` repository, though this is not needed
265+
for most Weblate upgrades. Customized Compose files need to be maintained as
266+
part of your deployment. See :ref:`docker-postgres-upgrade` for upgrading the
267+
PostgreSQL server.
258268

259269
.. _docker-postgres-upgrade:
260270

docs/changes.rst

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,8 @@ Weblate 2026.7
2424
* Translate pages with filtered searches and nearby strings now load more efficiently.
2525
* Translation form submissions now avoid loading complete search result sets when saving strings.
2626
* Added :ref:`distribution-packaging` guidance for distribution maintainers.
27-
* Documented :ref:`release-artifact-inventory` for Weblate release and deployment artifacts.
28-
* Added :doc:`/security/releases` with release, security-update, and upgrade support lifecycle details.
29-
* Documented release artifact signatures, attestations, SBOMs, and checksum verification coverage.
30-
* Organized release lifecycle, release artifact verification, and dependency security documentation into separate security pages.
31-
* Filled repository-backed security metadata and removed unsupported empty placeholders.
27+
* Expanded security documentation for release artifacts, supported versions, security updates, release verification, SBOMs, and dependency handling.
28+
* Clarified security metadata, vulnerability reporting, hosted-service incident response, and self-hosted operator responsibilities.
3229
* Large component imports now avoid duplicate translation-memory processing.
3330
* :ref:`gettext` files can now be configured to remove obsolete strings on save.
3431
* Added :wladmin:`analyze_translator_work` to estimate realistic daily translator throughput from change history.
@@ -44,7 +41,6 @@ Weblate 2026.7
4441
* Project and workspace translation license defaults now follow component and project licenses more closely.
4542
* Component and category API ``PATCH`` requests no longer remove the category when the field is omitted.
4643
* Hardened HTML and AJAX object lookups against private project enumeration.
47-
* Out-of-range cached search offsets no longer cause translate form submissions to fail.
4844
* Document and translation-memory uploads now enforce :setting:`TRANSLATION_UPLOAD_MAX_SIZE`, and API document uploads validate file extensions.
4945
* :ref:`check-rst-syntax` now detects inline roles wrapped in stray backticks.
5046
* :ref:`auto-translation` no longer validates hidden component fields when using machine translation.

docs/index.rst

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -153,6 +153,8 @@ Learn more about :ref:`contributing`.
153153
:hidden:
154154

155155
security/index
156+
security/product-information
157+
security/governance
156158
security/releases
157159
security/release-artifacts
158160
security/dependencies

docs/security/dependencies.rst

Lines changed: 98 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,126 @@
11
Dependencies
22
============
33

4-
This page describes dependency monitoring and container vulnerability scanning.
5-
For published release artifacts, SBOMs, signatures, and provenance
6-
attestations, see :doc:`release-artifacts`.
4+
This page describes dependency inventory, vulnerability monitoring, dependency
5+
triage, and container vulnerability scanning. For published release artifacts,
6+
SBOMs, signatures, and provenance attestations, see
7+
:doc:`release-artifacts`.
8+
9+
Dependency inventory
10+
--------------------
11+
12+
Weblate dependency information is maintained in several repository files:
13+
14+
* Python dependencies are declared in :file:`pyproject.toml` and resolved in
15+
:file:`uv.lock`.
16+
* Frontend dependencies are declared in :file:`client/package.json` and
17+
resolved in :file:`client/yarn.lock`.
18+
* Vendored frontend libraries and generated license data are documented in
19+
:doc:`/contributing/submodules`.
20+
* Release SBOMs are published for Weblate releases as described in
21+
:ref:`sbom`.
22+
* Docker image and Helm chart dependencies are maintained in the
23+
Weblate-owned Docker and Helm repositories listed in
24+
:ref:`release-artifact-inventory`.
25+
26+
The dependency ranges in :file:`pyproject.toml` describe the supported runtime
27+
requirements. The lock files describe the tested dependency set used by CI and
28+
release automation.
729

830
Tracking dependencies for vulnerabilities
931
-----------------------------------------
1032

11-
Security issues in our dependencies are monitored using `Renovate`_. This
12-
covers the Python and JavaScript libraries, and the latest stable release has
13-
its dependencies updated to avoid vulnerabilities.
33+
Security issues in Weblate dependencies are monitored using `Renovate`_,
34+
GitHub dependency review, FOSSA_, release SBOMs, and container vulnerability
35+
scans.
36+
37+
The Weblate repositories extend the shared Renovate preset from
38+
`WeblateOrg/meta`_. That preset enables the dependency dashboard, OSV
39+
vulnerability alerts, platform vulnerability alerts, semantic dependency
40+
commits, and Renovate custom managers for GitHub Actions, Dockerfiles, Helm
41+
chart application versions, and other pinned tool versions. It also configures
42+
selected package grouping, schedules, and automerge behavior.
43+
44+
This repository adds ``main`` and ``stable`` as Renovate base branches.
45+
General dependency updates and lockfile maintenance are disabled on
46+
``stable``; security update coverage for Weblate releases is described in
47+
:ref:`security-updates`.
48+
49+
GitHub dependency review runs on pull requests to show dependency changes
50+
before they are merged. FOSSA runs on pushes to ``main`` and records scan
51+
and policy-test results in the FOSSA service.
52+
53+
Dependency vulnerability triage
54+
-------------------------------
55+
56+
When a dependency vulnerability is reported by Renovate, GitHub dependency
57+
review, FOSSA, a release SBOM review, a container scan, or a vulnerability
58+
report, maintainers evaluate whether it affects Weblate. The triage checks
59+
include:
60+
61+
* whether the affected dependency and version are used by Weblate, a published
62+
release artifact, or a maintained deployment artifact;
63+
* whether the vulnerable code path is reachable through supported Weblate
64+
functionality or supported deployment modes;
65+
* whether the issue is in Weblate's use of the dependency or should be
66+
reported to the upstream project;
67+
* whether a dependency update, configuration change, mitigation, advisory, or
68+
Weblate security update is needed.
1469

1570
.. hint::
1671

1772
There might be vulnerabilities in third-party libraries which do not affect
1873
Weblate, so those are not addressed by releasing bugfix versions of Weblate.
1974

75+
Dependency and lockfile maintenance
76+
-----------------------------------
77+
78+
The Python lock file is maintained by the ``uv lock update`` workflow. The
79+
frontend dependency lock file and vendored frontend files are maintained by the
80+
``yarn update`` workflow.
81+
82+
Generated maintenance changes are passed through the ``Apply maintenance
83+
patch`` workflow. That workflow applies only validated patch artifacts and
84+
limits the paths that each maintenance workflow is allowed to update.
85+
2086
Docker container security
2187
-------------------------
2288

2389
The Weblate and Weblate Client Docker containers are scanned for security
2490
vulnerabilities in CI. This allows us to detect vulnerabilities early and
2591
release improvements quickly.
2692

27-
You can get the results of these scans at GitHub — they are stored as artifacts
28-
on our CI as :abbr:`SARIF (Static Analysis Results Interchange Format)`.
93+
The inspected Weblate Docker and Weblate Client workflows scan built container
94+
images with Anchore_ and Trivy_. Results are uploaded to GitHub code scanning
95+
as :abbr:`SARIF (Static Analysis Results Interchange Format)` data. The
96+
inspected workflows also store Trivy SARIF artifacts, and the Weblate Client
97+
workflow stores Anchore SARIF artifacts.
98+
99+
Known external policy details
100+
-----------------------------
101+
102+
Some dependency and vulnerability-management details are maintained outside
103+
this documentation:
104+
105+
* complete Renovate behavior is defined in the shared `WeblateOrg/meta`_
106+
preset and repository platform settings;
107+
* GitHub dependency graph, Dependabot alert, and branch-protection state are
108+
GitHub platform configuration;
109+
* FOSSA result history and policy thresholds are stored in FOSSA;
110+
* scanner output is stored in GitHub code scanning and workflow artifacts.
29111

30112
.. seealso::
31113

32114
* :ref:`ci-tests`
33-
* `Renovate <https://www.mend.io/renovate/>`_
34-
* `Anchore <https://anchore.com/>`_
115+
* Renovate_
116+
* `GitHub dependency review`_
117+
* FOSSA_
118+
* Anchore_
35119
* Trivy_
36120

37121
.. _Renovate: https://www.mend.io/renovate/
122+
.. _WeblateOrg/meta: https://github.com/WeblateOrg/meta
123+
.. _GitHub dependency review: https://github.com/actions/dependency-review-action
124+
.. _FOSSA: https://fossa.com/
125+
.. _Anchore: https://anchore.com/
38126
.. _Trivy: https://github.com/aquasecurity/trivy

docs/security/governance.rst

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
Security governance and assessment status
2+
=========================================
3+
4+
This page summarizes where Weblate publishes security governance information
5+
and records the current formal assessment status. It is a factual
6+
documentation index and does not claim certification, audit completion, or
7+
regulatory compliance.
8+
9+
For product identity, contact, support, release, and SBOM identity, see
10+
:doc:`product-information`.
11+
12+
Governance documentation
13+
------------------------
14+
15+
Weblate publishes security governance information in these documentation
16+
areas:
17+
18+
* Contribution rules, code review expectations, and project participation are
19+
documented in :doc:`/contributing/index`, :doc:`/contributing/code`, and
20+
:doc:`/contributing/code_of_conduct`.
21+
* Release lifecycle, security update coverage, and upgrade support are
22+
documented in :doc:`releases`.
23+
* Vulnerability reporting, disclosure handling, and service incident reporting
24+
are documented in :doc:`issues`.
25+
* Dependency inventory, vulnerability triage, update automation, and container
26+
scanning are documented in :doc:`dependencies`.
27+
* Security assumptions and boundaries are documented in :doc:`threat-model`.
28+
* Release artifact inventory, SBOMs, signatures, attestations, and verification
29+
are documented in :doc:`release-artifacts`.
30+
31+
Formal assessment status
32+
------------------------
33+
34+
This repository does not currently record a formal third-party security
35+
assessment, certification, audit report, penetration-test report, or formal
36+
self-assessment for Weblate.
37+
38+
Automated security checks and compliance tools such as CodeQL, GitHub
39+
dependency review, FOSSA, OpenSSF Scorecard, and container vulnerability scans
40+
are security evidence and automation signals. They are not formal assessments,
41+
certifications, or audit reports.
42+
43+
If Weblate publishes formal assessment evidence in the future, this page and
44+
the repository security metadata should be updated with the assessment
45+
reference and date.

docs/security/incident-response-plan.rst

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ Communication logistics
3232
- **E-mail** is used to reach customers.
3333
- Customer contact lists are maintained in several locations to ensure access during service outages.
3434
- **Public Disclosure:**
35-
- If a security vulnerability is discovered, follow :doc:`/security/issues`.
35+
- If an incident includes a Weblate product vulnerability, follow the
36+
product vulnerability reporting process and
37+
:ref:`vulnerability-disclosure-policy` in :doc:`/security/issues`.
3638

3739
Incident categories and severity
3840
--------------------------------

docs/security/index.rst

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@ SBOMs. See :doc:`release-artifacts`.
2323
Security policies
2424
-----------------
2525

26+
* :doc:`product-information` - product identity, contact, support, release,
27+
and SBOM metadata.
28+
* :doc:`governance` - security governance documentation and assessment status.
2629
* :doc:`releases` - release cycle, security update coverage, and upgrade
2730
support.
2831
* :doc:`release-artifacts` - release artifact inventory, SBOMs, signatures,
2932
attestations, and verification.
30-
* :doc:`dependencies` - dependency monitoring and container vulnerability
31-
scanning.
33+
* :doc:`dependencies` - dependency inventory, vulnerability triage, update
34+
automation, and container scanning.
3235
* :doc:`issues` - vulnerability reporting and disclosure.
3336
* :doc:`disaster-recovery-plan`
3437
* :doc:`incident-response-plan`

docs/security/issues.rst

Lines changed: 41 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@ Vulnerability and incident handling
33

44
.. _security:
55

6-
Reporting security issues
7-
-------------------------
6+
Product vulnerability reports
7+
-----------------------------
88

99
.. seealso::
1010

@@ -14,6 +14,10 @@ Weblate’s development team is strongly committed to responsible reporting and
1414
disclosure of security-related issues. We have adopted and follow policies that
1515
are geared toward delivering timely security updates to Weblate.
1616

17+
Product vulnerability reports cover security issues in Weblate source code,
18+
release artifacts, and documented Weblate security properties. They do not
19+
replace operational incident response for a particular deployment.
20+
1721
Most normal bugs in Weblate are reported to our public `GitHub issues tracker
1822
<https://github.com/WeblateOrg/weblate/issues>`_, but due to the sensitive
1923
nature of security issues, we ask them not to be publicly reported in this
@@ -24,6 +28,11 @@ implications, please submit a description of the issue to security@weblate.org,
2428
`GitHub <https://github.com/WeblateOrg/weblate/security/advisories/new>`_,
2529
or using `HackerOne <https://hackerone.com/weblate>`_.
2630

31+
Self-hosted operators should use this process when they believe an incident in
32+
their own deployment is caused by a Weblate product vulnerability. Local
33+
containment, recovery, customer notification, provider escalation, and other
34+
deployment-specific incident response remain the operator's responsibility.
35+
2736
A member of the security team will respond to you within 48 hours, and
2837
depending on what action is taken, you may get more follow-up emails.
2938

@@ -54,19 +63,44 @@ depending on what action is taken, you may get more follow-up emails.
5463

5564
* :doc:`/contributing/issues`
5665

66+
Weblate-operated service incidents
67+
----------------------------------
68+
69+
Operational incidents affecting Hosted Weblate, Dedicated Weblate, or other
70+
deployments operated by Weblate s.r.o. are handled using
71+
:doc:`/security/incident-response-plan`.
72+
73+
When such an incident also involves a Weblate product vulnerability, the
74+
vulnerability report and public advisory follow the product vulnerability
75+
reporting process and :ref:`vulnerability-disclosure-policy` on this page.
76+
77+
Self-hosted deployment incidents
78+
--------------------------------
79+
80+
Operators of self-hosted Weblate deployments are responsible for their local
81+
incident response process, including containment, recovery, notification, and
82+
provider-specific escalation. The Weblate-operated
83+
:doc:`/security/incident-response-plan` can be used as a reference, but it is
84+
not a maintained incident response plan for third-party deployments.
85+
86+
If a self-hosted incident appears to be caused by a Weblate product
87+
vulnerability, report it using the product vulnerability reporting process
88+
above.
89+
5790
.. _vulnerability-disclosure-policy:
5891

5992
Vulnerability disclosure policy
6093
-------------------------------
6194

62-
Within 30 days following a release containing a vulnerability fix, a security
63-
advisory is published at
95+
For Weblate product vulnerabilities, within 30 days following a release
96+
containing a vulnerability fix, a security advisory is published at
6497
https://github.com/WeblateOrg/weblate/security/advisories. The advisory is
6598
available immediately with a release when possible.
6699

67-
Any actively exploited vulnerability or severe incidents are notified to CSIRT
68-
within 24 hours, general info is provided to CSIRT within 72 hours, and a full
69-
report is provided within 14 days.
100+
Any actively exploited Weblate vulnerability, or any severe incident affecting
101+
Weblate-operated services, is notified to CSIRT within 24 hours, general info
102+
is provided to CSIRT within 72 hours, and a full report is provided within 14
103+
days.
70104

71105
All users of Hosted or Dedicated Weblate impacted by a severe incident
72106
or an actively exploited vulnerability are notified within 7 days.

0 commit comments

Comments
 (0)