Joas Schilling
e700027378
fix(comments): Don't return mentions in markdown code (by default)
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-16 16:35:21 +01:00
Joas Schilling
7e832305c9
chore: Fix SPDX header
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-03-16 09:10:37 +01:00
David Dreschner
2c601fee60
fix: Remove deprecated RFC7231 constant to avoid warnings on PHP 8.5
...
Signed-off-by: David Dreschner <david.dreschner@nextcloud.com>
2026-03-13 11:37:55 +01:00
Carl Schwan
3220e34bcc
Merge pull request #58878 from nextcloud/backport/58855/stable33
...
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
[stable33] tests - Fix `Implicit conversion from float 500.5 to int loses precision` in ViewTest
2026-03-12 15:38:31 +01:00
Josh
db6bb7594d
test(ViewTest): disable Nextcloud not PHP - drop testTouchFloat()
...
Our interface contract (and implementations) in IStorage are:
`public function touch(string $path, ?int $mtime = null): bool {`
This wasn't always the case but it is today, so testTouchFloat() no longer makes sense; it's not testing our code, just PHP.
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-11 19:08:10 +00:00
Robin Appelman
65db0acd46
fix: make objectstore copy consistent with changed local storage behavior
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-10 18:12:28 +01:00
Robin Appelman
618c57619e
test: add test for updating cached mounts with multiple entries for root id
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-03-05 14:26:23 +01:00
Andy Scherzinger
e3d0ead392
Merge pull request #58658 from nextcloud/backport/58057/stable33
...
[stable33] perf(sharing): Avoid loading all shares from all users when unsharing
2026-03-03 07:47:11 +01:00
Carl Schwan
94c4235151
perf: Perform share path validation early
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-02 16:07:24 +01:00
Josh
16ffc27537
test(Storage): avoid falsy directory/filename checks (for now)
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Josh
c4b94641c3
test(Storage): expand file / directory name tests
...
Signed-off-by: Josh <josh.t.richards@gmail.com>
2026-03-02 13:36:55 +00:00
Carl Schwan
c90bf858ec
perf(sharing): Avoid loading all shares from all users when unsharing
...
First check which users have a shares and for which providers and then
only load these shares.
Avoid doing at most 5 SQL queries for each users a share was shared with if
there are no shares.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-03-02 11:25:49 +00:00
Marcel Müller
b51a4f452b
fix: Use configured loglevel even when log.condition matches is set
...
Signed-off-by: Marcel Müller <marcel-mueller@gmx.de>
2026-02-27 15:01:30 +00:00
Salvatore Martire
9f004aa657
fix(L10N): stop stripping _ from language codes
...
Stripping the underscore breaks support for all languages like de_AT,
de_DE and so on...
Signed-off-by: Salvatore Martire <4652631+salmart-dev@users.noreply.github.com>
2026-02-25 15:55:21 +00:00
Andy Scherzinger
4a7eb39791
Merge pull request #58536 from nextcloud/backport/58128/stable33
...
[stable33] fix(share): Set expiration time to end of day (23:59:59)
2026-02-24 20:57:46 +01:00
Robin Appelman
276ca39a37
test: add test for calling filesize on non-existing files
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-24 18:04:30 +01:00
nfebe
6df78fad3d
test(share): Update expiration date tests for end-of-day time
...
Update expected values in ManagerTest to reflect the new behavior
where share expiration dates are set to 23:59:59 instead of 00:00:00.
Signed-off-by: nfebe <fenn25.fn@gmail.com>
2026-02-24 10:23:09 +00:00
Carl Schwan
cae742d182
fix(propagator): Improve lock behavior of propagator
...
Fix possible dead locks when running the propagator caused by two
requests updating the same amount rows in transactions.
- Lock rows always in the same deterministic order by sorting the
path_hash first
- On all database outside of sqlite, also do first a SELECT FOR UPDATE
to lock all the rows used in batch UPDATE calls, afterward to decrease
the risk of two requests trying to lock the same rows
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-02-11 16:25:12 +01:00
Andy Scherzinger
cdbcfea1ff
Merge pull request #58055 from nextcloud/backport/57921/stable33
...
[stable33] fix(snowflakes): create file lock files into lock directory
2026-02-04 17:35:36 +01:00
Benjamin Gaussorgues
5dbb40dc4b
chore(snowflakes): don't remove file lock directory during tests
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-02-04 10:12:47 +00:00
Joas Schilling
d47a152b77
test(Updater): Harden flaky test
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-04 10:04:50 +00:00
Andy Scherzinger
baff429c1c
Merge pull request #58000 from nextcloud/setup-root-path-children-less-setup-33
...
[stable33] getById: don't setup for all users with access by default
2026-02-03 20:43:56 +01:00
Andy Scherzinger
103ede3ce4
Merge pull request #57999 from nextcloud/backport/57737/stable33
...
CodeQL Advanced / Analyze (actions) (push) Waiting to run
CodeQL Advanced / Analyze (javascript-typescript) (push) Waiting to run
Integration sqlite / changes (push) Waiting to run
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, --tags ~@large files_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, capabilities_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, collaboration_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, comments_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, dav_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, federation_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, file_conversions) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, files_reminders) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, filesdrop_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, ldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, openldap_numerical_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, remoteapi_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, routing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, setup_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharees_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, sharing_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, theming_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite (stable33, 8.4, stable33, videoverification_features) (push) Blocked by required conditions
Integration sqlite / integration-sqlite-summary (push) Blocked by required conditions
Psalm static code analysis / static-code-analysis (push) Waiting to run
Psalm static code analysis / static-code-analysis-security (push) Waiting to run
Psalm static code analysis / static-code-analysis-ocp (push) Waiting to run
Psalm static code analysis / static-code-analysis-ncu (push) Waiting to run
[stable33] feat: Add twofactor applications to most of the presets
2026-02-03 15:56:58 +01:00
Joas Schilling
6fa4625c08
test(dispatcher): Add some tests with input 0
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-02-03 08:18:44 +00:00
Robin Appelman
0496d1332c
test: adjust tests to updated getById
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-02-02 19:01:28 +01:00
Côme Chilliet
72ccd53567
chore: Remove broken PresetManager tests
...
Those are not Unit tests but integration tests with bad side effects on
other tests. I failed to clean them up so removing them.
Signed-off-by: Côme Chilliet <come.chilliet@nextcloud.com>
2026-02-02 14:12:53 +00:00
Robin Appelman
918db6f5ba
test: adjust tests to new getById
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-29 18:50:59 +01:00
Carl Schwan
b72f879a21
perf(MountManager): use binary search to find mount in path
...
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-29 12:54:14 +00:00
Andy Scherzinger
7b3c071951
Merge pull request #57889 from nextcloud/backport/stable33/55649
...
[stable33] On demand preview migration
2026-01-29 08:18:29 +01:00
Carl Schwan
62ed106260
feat(preview): On demand preview migration
...
When requesting previews, which we don't find in oc_previews, search in
IAppData first before creating them.
Move the logic from MovepreviewJob to PreviewMigrationService and reuse
that in the Preview Generator.
At the same time rename MovePreviewJob to PreviewMigrationJob as it is a
better name.
Signed-off-by: Carl Schwan <carl.schwan@nextcloud.com>
(cherry picked from commit 6149168129 )
2026-01-28 22:36:05 +01:00
Misha M.-Kupriyanov
5d42c9c5de
feat(install): dispatch InstallationCompletedEvent in Setup
...
Integrate event dispatching into Setup class:
- Inject IEventDispatcher dependency
- Dispatch InstallationCompletedEvent after successful installation
- Add Setup tests for event integration
- Update composer autoload for new class
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-01-28 20:27:36 +01:00
Misha M.-Kupriyanov
218b9a4dcd
feat(install): add InstallationCompletedEvent for post-installation hooks
...
Add InstallationCompletedEvent class in public API (OCP namespace) that
provides installation details: data directory, admin username, and admin
email. Event will be dispatched after successful installation.
Include comprehensive unit tests covering all event scenarios.
Signed-off-by: Misha M.-Kupriyanov <kupriyanov@strato.de>
2026-01-28 20:27:36 +01:00
Ferdinand Thiessen
4fba8736cf
test(preview): properly test postscript preview provider
...
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-28 10:25:08 +00:00
Benjamin Gaussorgues
66cf18950f
fix(openmetrics): ensure unit is a suffix of metric name
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-27 13:37:16 +00:00
Benjamin Gaussorgues
ee8d0b1545
fix(openmetrics): fix label names and add test for them
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-26 09:04:56 +00:00
Joas Schilling
37616c48b7
fix(openmetrics): Make openmetrics always an array like all other infoxml fields
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-26 06:11:18 +00:00
Joas Schilling
0e699377bd
fix(openmetrics): Allow openmetrics in info.xml
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-26 06:11:18 +00:00
Benjamin Gaussorgues
a7281ad36e
feat(openmetrics): add log level
...
Signed-off-by: Benjamin Gaussorgues <benjamin.gaussorgues@nextcloud.com>
2026-01-25 16:12:17 +00:00
Ferdinand Thiessen
428e76214e
chore: drop legacy WhatsNew
...
This feature was not used in 8 years and from frontend did not even
properly work anymore and was implemented using deprecated API.
So get rid of it.
The last version that was using a changelog from the changelog server
was Nextcloud 20.
We use the firstrunwizard nowadays for informing about Nextcloud
changes in new releases.
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-21 23:23:10 +01:00
provokateurin
ad65bcb653
test(UserPlugin): Rewrite unit tests as integration tests
...
Signed-off-by: provokateurin <kate@provokateurin.de>
2026-01-21 14:29:58 +01:00
Ferdinand Thiessen
67eef32b07
fix(DB): support up to 63 character long table and index names
...
We do not support Oracle 11 anymore but at least Oracle 12c (12.2).
So the limitation is gone (Oracle now supports up to 128 character long
names).
Instead we are now limited by MySQL (64 characters) and PostgreSQL (63
characters).
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-18 14:50:34 +01:00
SebastianKrupinski
16198d2b37
feat: automated appointment creation
...
Signed-off-by: SebastianKrupinski <krupinskis05@gmail.com>
2026-01-15 13:31:44 -05:00
Andy Scherzinger
abe5499e14
Merge pull request #57498 from nextcloud/carl/rename-imountproviderargs
...
refactor(files): Rename IMountProviderArgs
2026-01-14 17:50:43 +01:00
Robin Appelman
5924a2e3ec
feat: add api to get a user object without verifying they exist
...
Signed-off-by: Robin Appelman <robin@icewind.nl>
2026-01-13 15:59:07 +01:00
Ferdinand Thiessen
5f33fee58f
Merge pull request #56941 from nextcloud/fix/importmaps
...
fix(template): add import map for JS module entry points
2026-01-12 20:38:58 +01:00
Carl Schwan
7b05c8f797
refactor(files): Rename IMountProviderArgs
...
It's not an interface so the I-prefix is inadequate.
Signed-off-by: Carl Schwan <carlschwan@kde.org>
2026-01-12 17:33:52 +01:00
Joas Schilling
6bdda55733
Merge pull request #57453 from nextcloud/feat/noid/qr-code-in-account-menu
...
Improve usability of QR code login
2026-01-12 14:01:10 +01:00
Ferdinand Thiessen
f0e020f97d
fix(template): add import map for JS module entry points
...
Currently apps are broken if they have exports in the JS entry point,
because they then will import from the entry point but because they do
not know about the Nextcloud cache buster they will import without cache
buster.
This results in two problem:
1. The module might be outdated (old cached)
2. The module is duplicated, so the module will be loaded twice and will
have two different - out of sync - states. This also means it will
re-run sideeffects of the entry point.
To fix this we generate an import map which basically maps the plain
entry point script to the script with cache buster added.
(Some background: Bundler will try to minimize chunks (reduce page
loading time) so they can inline modules into entry points and thus
extend the entry point exports and then this issue would be caused).
For example:
```js
// entry.mjs
console.error('called')
async function onClick() {
await import('./chunk.mjs')
}
export const name = 'foo'
// chunk.mjs
import { name } from './entry.mjs'
console.error(name)
```
When calling `onClick` without this fix the output will be:
> called
> called
> foo
With this fix:
> called
> foo
Signed-off-by: Ferdinand Thiessen <opensource@fthiessen.de>
2026-01-12 13:34:11 +01:00
Joas Schilling
f4acd8a7ab
fix: Adjust and add new tests
...
Signed-off-by: Joas Schilling <coding@schilljs.com>
2026-01-12 11:07:44 +01:00
ernolf
932523e844
style(tests): apply cs-fixer formatting to ClientTest
...
Signed-off-by: ernolf <raphael.gradenwitz@googlemail.com>
2026-01-09 01:29:59 +01:00