No description
Find a file
Ferdinand Thiessen b295b1dad9
Merge pull request #2156 from nextcloud/chore/33-uses-82
chore: Nextcloud 33 is PHP 8.2+ only
2025-10-07 16:19:11 +02:00
.github Merge pull request #2153 from nextcloud/dependabot/github_actions/shivammathur/setup-php-2.35.5 2025-10-07 16:18:50 +02:00
aws chore(autoloader): Dump autoloader 2025-07-20 14:32:52 +00:00
bantu/ini-get-wrapper
brick/math chore(autoloader): Dump autoloader 2024-04-16 11:37:40 +02:00
composer chore: Nextcloud 33 is PHP 8.2+ only 2025-10-07 15:57:52 +02:00
cweagans/composer-patches fix(deps): Remove deeper composer.lock files to fix security checking 2024-01-26 10:40:48 +01:00
deepdiver/zipstreamer chore(deps): Bump deepdiver/zipstreamer from 2.0.2 to 2.0.3 2024-06-13 11:52:10 +02:00
deepdiver1975/tarstreamer Bump deepdiver1975/tarstreamer to 2.1.0 in master 2023-07-27 16:17:38 +02:00
doctrine fix: Manually remove file 2025-09-16 15:25:38 +02:00
egulias/email-validator chore(autoloader): Dump autoloader 2025-07-07 14:37:07 +00:00
fusonic/opengraph chore(autoloader): Dump autoloader 2025-07-14 11:51:12 +00:00
giggsey/libphonenumber-for-php-lite chore(autoloader): Dump autoloader 2025-07-14 08:31:46 +00:00
guzzlehttp chore: update composer files 2025-04-24 08:49:37 +02:00
icewind chore: add icewind/smb as dependency 2025-07-20 18:00:59 +02:00
justinrainbow/json-schema chore(autoloader): Dump autoloader 2025-07-10 19:20:15 +00:00
kornrunner/blurhash Add kornrunner/blurhash 2024-01-04 10:13:36 +01:00
laravel/serializable-closure chore: add composer assets 2025-04-24 09:38:20 +02:00
lcobucci/clock chore(autoloader): Dump autoloader 2024-04-16 11:37:40 +02:00
marc-mabe/php-enum chore(autoloader): Dump autoloader 2025-07-10 19:20:15 +00:00
masterminds/html5 fix(deps): Update symfony/dom-crawler and symfony/css-selector to 6.4.4 2024-04-09 01:32:55 +02:00
mexitek/phpcolors
microsoft
mlocati/ip-lib chore(autoloader): Dump autoloader 2025-07-07 18:31:27 +00:00
mtdowling/jmespath.php chore(autoloader): Dump autoloader 2024-10-29 22:03:31 +01:00
nextcloud/lognormalizer
paragonie/constant_time_encoding chore(autoloader): Dump autoloader 2024-04-16 11:37:40 +02:00
pear chore(autoloader): Dump autoloader 2025-07-09 09:14:06 +00:00
php-http chore(autoloader): Dump autoloader 2025-07-08 12:01:46 +00:00
php-opencloud/openstack chore(autoloader): Dump autoloader 2025-07-10 19:20:15 +00:00
phpseclib/phpseclib chore(autoloader): Dump autoloader 2024-04-04 18:30:36 +00:00
pimple/pimple
psr chore(autoloader): Dump autoloader 2025-07-08 12:01:46 +00:00
punic/punic
ralouphie/getallheaders
sabre chore(autoloader): Dump autoloader 2024-10-29 14:16:43 +00:00
spomky-labs chore(autoloader): Dump autoloader 2024-04-16 11:37:40 +02:00
stecman/symfony-console-completion chore(autoloader): Dump autoloader 2025-02-05 07:47:08 +00:00
symfony chore: Nextcloud 33 is PHP 8.2+ only 2025-10-07 15:57:52 +02:00
wapmorgan/mp3info chore(autoloader): Dump autoloader 2025-07-11 10:57:03 +00:00
web-auth chore(deps): Bump web-auth/webauthn-lib from 4.8.5 to 4.9.1 2024-09-24 21:52:45 +02:00
.gitignore chore: Update gitignore list 2025-09-16 14:00:20 +02:00
autoload.php chore: drop phpscss legacy dependency 2025-04-22 09:09:24 +02:00
composer.json chore: Nextcloud 33 is PHP 8.2+ only 2025-10-07 15:57:52 +02:00
composer.lock chore: Nextcloud 33 is PHP 8.2+ only 2025-10-07 15:57:52 +02:00
composer.patches.json fix: Remove merged patch for wapmorgan/mp3info 2025-07-11 12:39:05 +02:00
LICENSE INFO
README.md docs: add section about polyfills to README 2025-08-12 12:55:31 +02:00

3rdparty

Some 3rd party libraries that are necessary to run Nextcloud.

Dependency Status

Updating libraries manually

  1. Make sure to use the latest version of composer: composer self-update
  2. Edit composer.json and adjust the version of the library to the one to update to. Pay attention to use the full version number (i.e. ^5.3.14).
  3. Run composer update thevendor/thelib (replace accordingly)
  4. Delete all installed dependencies with rm -rf ./*/
  5. Run composer install --no-dev
  6. Run git clean -X -d -f
  7. Run composer dump-autoload
  8. Commit all changes onto a new branch
  9. You might need the following command for pushing if used as submodule: git push git@github.com:nextcloud/3rdparty.git branchname

Updating polyfills

We make use of Symfony polyfills to allow us writing code already using methods from newer PHP version. This allows cleaner code and once our minimum PHP version is bumped we have no duplicated code for those methods anymore.

To keep the list of polyfills up to date, we need to add new polyfills once a new PHP version was released, for example with the release of PHP 8.4 we need to add its polyfills by running composer require symfony/polyfill-php84.

But we need to also remove unused polyfills to reduce any (minimal) overhead. Thus once we increase our minimal PHP version we should remove the added polyfills from the list of dependencies. Moreover also some dependencies require polyfills, to also reduce the list of added polyfills, we add the unneeded onces to the replace section of the composer.json.

So all PHP polyfills for already supported versions should be added to that section. But also polyfills for PHP modules that we require to be installed should be added, one example here is the mbstring module.

Testing your PR with server

  1. On https://github.com/nextcloud/server make a new branch 3rdparty/my-dependency
  2. Navigate into the 3rdparty directory
  3. Checkout the commit sha of the last commit of your PR in the 3rdparty repository
  4. Leave the directory
  5. Add the change to the stash
  6. Commit (with sign-off and message)
  7. Push the branch and send a PR
  8. Wait for CI and reviews
  9. Navigate into the 3rdparty directory
  10. Checkout the commit sha of the merge commit of your PR in the 3rdparty repository
  11. Leave the directory
  12. Add the change to the stash
  13. Amend to the previous dependency bump
  14. Push with lease force
  15. Wait for CI
  16. Merge 🎉
cd 3rdparty
git checkout 16cd747ebb8ab4d746193416aa2448c8114d5084
cd ..
git add 3rdparty
git commit
git push origin 3rdparty/my-dependency

# Wait for CI and reviews

cd 3rdparty
git checkout 54b63cc87af3ddb0ddfa331f20ecba5fcc01d495
cd ..
git add 3rdparty
git commit --amend
git push --force-with-lease origin 3rdparty/my-dependency