Skip to content

docs: add release notes for ownCloud Classic 10.16.5 and 11.0.1 - #145

Merged
LukasHirt merged 5 commits into
mainfrom
docs/release-notes-10-16-5-and-11-0-1
Sep 25, 2026
Merged

LukasHirt merged 5 commits into
mainfrom
docs/release-notes-10-16-5-and-11-0-1

Conversation

@oc-tmueller

@oc-tmueller oc-tmueller commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor

Why

owncloud/core tagged v10.16.5 and v11.0.1 on 2026-09-25. The release notes stopped at 11.0.0 and 10.16.4, so administrators had no entry for either.

What

Deliberately short. Each new section is the heading, the standard "Dear ownCloud administrator" paragraph pointing at {oc-changelog-url}, and a one-line security-release notice using the wording 10.16.4 already uses:

== Changes in 11.0.1

Dear ownCloud administrator, find below the changes and known issues in ownCloud Classic 11.0.1 that need your attention. You can also read the {oc-changelog-url}[full ownCloud Classic changelog] for further details on what has changed.

IMPORTANT: This is a security release. Upgrading is strongly recommended for all installations.

No per-entry breakdown. An earlier revision of this branch enumerated all 27 changelog entries across the two releases with prose, dependency tables and the CVE list. That restated the changelog at length, and counting the security fixes in the banner made these two releases read as far more alarming than the ones either side of them. The changelog is where that detail belongs, and the intro paragraph links it.

⚠️ Read the diff, not the commit series. The branch adds the long form and then removes it again, because the shortening came after review. The net change is +14 / -2 across 3 files; force-push is blocked by the org ruleset, so the history cannot be squashed here.

Docker image pins

latest-server-download-version → 11.0.1 (the 11.0 install page uses it in four places plus dot.env) and the page-local :docker-image-version: → 10.16.5 on the 10.16 page. Both pages tell the reader to pin a full version instead of using latest, so the version they name has to move with the release.

Both tags are live on Docker Hub as of 2026-09-25 13:09Z, via owncloud-docker/server#714 (10.16.5) and owncloud-docker/server#715 (11.0.1) — so nothing here points at a tag that does not resolve.

Nothing in the test suite guards either attribute: static-files.test.js cross-checks only latest-*-version, so latest-server-download-version going stale is invisible to CI. That gap is written down in README.md by #144.

Verification

npm run antora && npm test → 51 pass, 1 skip, 0 fail. Both new sections appear in the TOC in the right descending order and render nothing but the one IMPORTANT — no sub-heading, list or other admonition. The two docker pages render owncloud/server:11.0.1 and owncloud/server:10.16.5 respectively.

config-docs-in-sync is red for a pre-existing reason unrelated to this PR and is not a required check — see the comment below.

Follow-ups this PR does not take

  • #715 introduces floating 11.0 and 11 tags that 11.0.0 never had (it only ever published its exact version). The 11.0 docker page could gain a sentence about them. Note latest deliberately stays on the 10.x line, so that page's existing "do not use latest" warning is correct as it stands.
  • Possible access-control regression in the shipped v10.16.5, found while checking a citation and not demonstrated at runtime. v10.16.5 bumps sabre/event 5.1.7 → 5.1.9 but does not carry the method:PROPFIND priority fix that 11.0.1 has (, 99). 5.1.9 (baadb7cf) replaced array_multisort, which tie-broke on the listener values, with usort on priority alone. Sabre\DAV\Server::__construct() adds CorePlugin before ownCloud adds FilesPlugin, both at the default priority, and CorePlugin::httpPropFind() ends in return false, which interrupts the chain — while FilesPlugin::checkPropFind() is what throws NotFound when a SharedStorage share lacks PERMISSION_READ, i.e. it guards create-only / file-drop shares. Worth stressing that usort is unstable on PHP 7.4, the only version 10.16 supports, so the honest claim is "the ordering that fix guarantees is no longer guaranteed", not "the check is bypassed". A PROPFIND against a file-drop share on a 10.16.5 container settles it.

🤖 Generated with Claude Code

@oc-tmueller
oc-tmueller requested a review from a team as a code owner September 25, 2026 13:01
@oc-tmueller

oc-tmueller commented Sep 25, 2026 •

Copy link
Copy Markdown
Contributor Author

config-docs-in-sync is red for a pre-existing reason, not because of this PR

The three required checks (license/cla, lint, build) are green. config-docs-in-sync is not a required context on main — the required list is exactly license/cla, lint, build — so this does not gate the merge.

The drift it reports is in 10.16 and 11.0, not 10.15: core's config/config.apps.sample.php gained the openidconnect audience key, and the committed config_apps_sample_php_parameters.adoc pages have not been regenerated. #137 (docs: document the OIDC audience parameter, still a draft) carries both regenerated pages and is the PR that closes this.

It has been failing on main nightly since 2026-09-22 — schedule runs on 09-22, 09-23, 09-24 and 09-25 all red — so it predates both of my branches. This is the documented cost of that workflow being deliberately un-path-filtered: drift introduced by a core commit surfaces on whichever docs PR opens next.

Correcting my own PR description: it says this change "removes a passing leg, not a failing one". That was true of the 10.15 leg specifically (#142 brought those pages in sync, and 10.15 does not appear in the drift), but it wrongly implies the job as a whole was green before. It was not.

oc-tmueller and others added 5 commits September 25, 2026 17:03
Both were tagged on 2026-09-25 and the release notes stopped at 11.0.0 and
10.16.4, so administrators had no entry for either. Both are security
releases.

Entries are grouped by the prefix core's own changelog entry carries -
Security, Change, Bugfix - rather than re-classified here, and follow the
existing patch-release template: the "Dear ownCloud administrator"
paragraph, an IMPORTANT admonition, then discrete Security Fixes / Changes
/ Notable Bugfixes sections. 11.0.1 has 15 entries (3/3/9), 10.16.5 has 12
(4/1/7). Each is cited with the PR the changelog entry itself cites, which
for the 10.16 line is the pair of master PR and 10.16 backport.

Two items got more than a bullet because they change what an administrator
will observe:

The Imagick coder pinning (#41834) changes which files get a thumbnail at
all. Media types come from the file name extension, so a file whose
extension does not match its content now falls back to a media type icon
instead of being rendered. That is in a NOTE with the affected extension
list, which of those providers are registered on a stock install, and the
font extensions that behave differently. It is the one part of either
release that can look like a regression.

The release tarball repackaging (#41824) matters to anyone who runs
`occ integrity:check-app` or an anti-virus gate over the tarball, since
`files_antivirus` was shipping its EICAR acceptance data.

No Known Issues subsection: no patch-release section since 10.15.0 has one.

Verified against the tags rather than transcribed by eye: the package
lists and CVE list were diffed programmatically against
changelog/10.16.5_2026-09-25/ and changelog/11.0.1_2026-09-25/ in
owncloud/core and match exactly (26, 22 and 17 items). All 36 cited
core PR/issue numbers were resolved through the API and exist. Worth
noting for a future reader: #41676 really is the checkPropFind priority
fix even though its title reads "chore(deps): update PHP dependencies" -
that PR bundled both, which is why the citation looks wrong and is not.

Rendered and checked in the built site: both sections appear in the right
descending order, the toc picks them up (53 entries), the NOTE and
IMPORTANT admonitions render as admonitions, and no attribute reference or
list continuation was left unresolved.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
The two attributes that carry a full version into the docker install
pages: `latest-server-download-version` in global-attributes.yml, which
the 11.0 page uses for the image tag in four places, and the page-local
`:docker-image-version:` on the 10.16 page.

Both pages tell the reader to pin a full version rather than use `latest`,
so the version they name has to move with the release or the advice points
at the previous one.

Caveat, deliberate: `owncloud/server` on Docker Hub has no 10.16.5 or
11.0.1 tag yet. Its newest are 11.0.0 and 10.16.4 from 2026-09-21. Both
bumps are in flight in owncloud-docker/server and the tags appear when
those merge, so this documents a tag that is queued rather than one that
resolves today. Holding the release notes for it seemed worse than a short
window where the docker snippet is ahead.

Note that nothing in the test suite guards either attribute:
static-files.test.js cross-checks only `latest-*-version`, so
`latest-server-download-version` going stale is invisible to CI. That gap
is now written down in README.md by #144.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
Review follow-up on the 10.16.5 and 11.0.1 sections.

The three closing paragraphs of 10.16.5's dependency security bullet
rendered *inside* the last package row. A `+` continuation after a `**`
item attaches to that item, not to its parent, so "This closes sixteen
advisories…", the dom-sanitizer paragraph and the php-jwt paragraph all
appeared indented under `symfony/routing (v5.4.52 to v5.4.53)` - reading as
if sixteen CVEs, the branch pin and the php-jwt exception were all about
symfony/routing. The prose now precedes the nested list, which is the shape
the 10.16.2 bullet already uses. Verified in the built page: the nested
list is exactly the seven package rows and nothing else.

The `checkPropFind` bullet linked #41676, which is **closed and was never
merged** (`merged: false`, head `sabre-update-20260711`). The change
shipped via #41797, merge commit 23ccb865d6 on 2026-08-30, which carried
`changelog/unreleased/41676` and so kept the abandoned PR's number as the
entry's filename. Core's changelog cites the dead number; reproducing it
faithfully would have sent every reader to an unrelated closed PR, so the
link is #41797 now. This also corrects the previous commit message, which
argued #41676 was right on the strength of its file list alone - the files
matched because that PR authored the fix, but it is not how the fix landed.

10.16.5's Oracle path-hash bullet said the notice is what "PHP 8 reports",
in a section whose release line supports PHP 7.4 only - so it described a
symptom no 10.16 installation can see. It now says that outright, and that
the stored hash was never wrong either way because `md5(null)` coerces to
`md5('')`. The 11.0.1 wording is untouched, where PHP 8 is the runtime and
the original sentence is correct.

Rebuilt: 51 pass, 1 skip, 0 fail. #41676 no longer appears anywhere in the
page.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
Round-2 review follow-up, both prose only.

The Oracle path-hash deprecation is PHP **8.1**'s - the RFC deprecating
null for non-nullable internal parameters - so PHP 8.0 is silent too and
"appears on PHP 8" over-claimed in a sentence whose whole point is runtime
precision. It also read as though the 10.16 test suite surfaces it, but
that suite pins 7.4 on this branch and 7.4 raises nothing; it was found on
the 11.x line under PHP 8.3. Both are now stated as such.

The `checkPropFind` bullet now names #41676 as well. It is closed and
unmerged, so it cannot be the citation, but core's changelog cites it and a
reader cross-referencing the two sources otherwise finds nothing that
matches - and #41797 is a dependency-bump PR cited twice in the same
section. The bullet says which PR authored the change and which one shipped
it.

Also corrected: the fix ordered `checkPropFind` ahead of listeners of
*equal priority*, not "alphabetically" - sabre/event compares priority and
nothing else.

Rebuilt: 51 pass, 1 skip, 0 fail, no unresolved attribute references.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
Both sections are now the heading, the standard "Dear ownCloud
administrator" paragraph pointing at the changelog, and a one-line
security-release notice matching the wording 10.16.4 already uses.

The enumerated Security Fixes / Changes / Notable Bugfixes blocks are gone:
they restated the changelog at length, and counting the security fixes in
the banner made these releases read as far more alarming than the ones
either side of them. The changelog is where that detail belongs and the
intro paragraph already links it.

That also drops the preview-behaviour NOTE and the dependency and CVE
tables. 77 lines become 6 for 11.0.1, 70 become 6 for 10.16.5.

Rebuilt: 51 pass, 1 skip, 0 fail. Both sections still appear in the toc,
and neither now renders a sub-heading, list or admonition other than the
one IMPORTANT.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Signed-off-by: Thomas Müller <323649642+oc-tmueller@users.noreply.github.com>
@kw-tmueller
kw-tmueller force-pushed the docs/release-notes-10-16-5-and-11-0-1 branch from 70bf5f1 to 32fb774 Compare September 25, 2026 15:03
@oc-tmueller

Copy link
Copy Markdown
Contributor Author

Resolved — config-docs-in-sync is green

Correcting my comment above on two counts. #137 is no longer a draft: it merged as 89baa2b5,
and the push run on main for that sha
(36149916187) is green,
so the four-day drift from owncloud/core#41846/#41847 and #41858/#41859 is closed at the source.

The red that lingered here afterwards was an artifact, not the drift. A completed run pins the
merge commit computed when the run was created, so re-running it only re-checks the pre-#137
base. Only a new run helps. Rebasing onto main produced one:
36151676677 is green.

The rebase carried the five commits over untouched — git range-diff reports all five as
identical, and all five are re-signed and verified. So the diff to review is unchanged; only the
base moved. The note above still applies: read the diff, not the commit series.

@LukasHirt
LukasHirt merged commit eb55abc into main Sep 25, 2026
5 checks passed
@LukasHirt
LukasHirt deleted the docs/release-notes-10-16-5-and-11-0-1 branch September 25, 2026 17:34
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants