diff --git a/.github/workflows/appstore-build-publish.yml b/.github/workflows/appstore-build-publish.yml
index ab8be4ae1..acb084775 100644
--- a/.github/workflows/appstore-build-publish.yml
+++ b/.github/workflows/appstore-build-publish.yml
@@ -32,7 +32,7 @@ jobs:
echo "APP_VERSION=${GITHUB_REF##*/}" >> $GITHUB_ENV
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
path: ${{ env.APP_NAME }}
@@ -50,13 +50,13 @@ jobs:
continue-on-error: true
with:
path: ${{ env.APP_NAME }}
- fallbackNode: "^16"
- fallbackNpm: "^7"
+ fallbackNode: '^20'
+ fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
+ uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -88,6 +88,8 @@ jobs:
- name: Build ${{ env.APP_NAME }}
# Skip if no package.json
if: ${{ steps.versions.outputs.nodeVersion }}
+ env:
+ CYPRESS_INSTALL_BINARY: 0
run: |
cd ${{ env.APP_NAME }}
npm ci
@@ -126,7 +128,7 @@ jobs:
unzip latest-$NCVERSION.zip
- name: Checkout server master fallback
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
if: ${{ steps.server-checkout.outcome != 'success' }}
with:
submodules: true
diff --git a/.github/workflows/lint-eslint.yml b/.github/workflows/lint-eslint.yml
index 87e6c29f5..36c6ad0f2 100644
--- a/.github/workflows/lint-eslint.yml
+++ b/.github/workflows/lint-eslint.yml
@@ -10,18 +10,6 @@ name: Lint eslint
on:
pull_request:
- paths:
- - '.github/workflows/**'
- - 'src/**'
- - 'appinfo/info.xml'
- - 'package.json'
- - 'package-lock.json'
- - 'tsconfig.json'
- - '.eslintrc.*'
- - '.eslintignore'
- - '**.js'
- - '**.ts'
- - '**.vue'
permissions:
contents: read
@@ -31,24 +19,52 @@ concurrency:
cancel-in-progress: true
jobs:
+ changes:
+ runs-on: ubuntu-latest
+
+ outputs:
+ src: ${{ steps.changes.outputs.src}}
+
+ steps:
+ - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
+ id: changes
+ continue-on-error: true
+ with:
+ filters: |
+ src:
+ - '.github/workflows/**'
+ - 'src/**'
+ - 'appinfo/info.xml'
+ - 'package.json'
+ - 'package-lock.json'
+ - 'tsconfig.json'
+ - '.eslintrc.*'
+ - '.eslintignore'
+ - '**.js'
+ - '**.ts'
+ - '**.vue'
+
lint:
runs-on: ubuntu-latest
- name: eslint
+ needs: changes
+ if: needs.changes.outputs.src != 'false'
+
+ name: NPM lint
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
- fallbackNode: '^16'
- fallbackNpm: '^7'
+ fallbackNode: '^20'
+ fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
+ uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -56,7 +72,24 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
+ env:
+ CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint
run: npm run lint
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest
+ needs: [changes, lint]
+
+ if: always()
+
+ # This is the summary, we just avoid to rename it so that branch protection rules still match
+ name: eslint
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.changes.outputs.src != 'false' && needs.lint.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/lint-php-cs.yml b/.github/workflows/lint-php-cs.yml
index e7a828a5e..f080766cd 100644
--- a/.github/workflows/lint-php-cs.yml
+++ b/.github/workflows/lint-php-cs.yml
@@ -22,7 +22,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Set up php
uses: shivammathur/setup-php@2.28.0 # v2
diff --git a/.github/workflows/lint-php.yml b/.github/workflows/lint-php.yml
index b7f05edd4..1a8487f00 100644
--- a/.github/workflows/lint-php.yml
+++ b/.github/workflows/lint-php.yml
@@ -25,13 +25,13 @@ jobs:
runs-on: ubuntu-latest
strategy:
matrix:
- php-versions: [ "8.0", "8.1", "8.2", "8.3" ]
+ php-versions: [ "8.0", "8.1", "8.2" ]
name: php-lint
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Set up php ${{ matrix.php-versions }}
uses: shivammathur/setup-php@2.28.0 # v2
diff --git a/.github/workflows/lint-stylelint.yml b/.github/workflows/lint-stylelint.yml
index 3d32a2701..045024ea7 100644
--- a/.github/workflows/lint-stylelint.yml
+++ b/.github/workflows/lint-stylelint.yml
@@ -22,17 +22,17 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Read package.json node and npm engines version
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
- fallbackNode: '^16'
- fallbackNpm: '^7'
+ fallbackNode: '^20'
+ fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
+ uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -40,6 +40,8 @@ jobs:
run: npm i -g npm@"${{ steps.versions.outputs.npmVersion }}"
- name: Install dependencies
+ env:
+ CYPRESS_INSTALL_BINARY: 0
run: npm ci
- name: Lint
diff --git a/.github/workflows/npm-audit-fix.yml b/.github/workflows/npm-audit-fix.yml
index ee22eda2e..ea9a1c821 100644
--- a/.github/workflows/npm-audit-fix.yml
+++ b/.github/workflows/npm-audit-fix.yml
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
ref: ${{ matrix.branches }}
@@ -32,11 +32,11 @@ jobs:
uses: skjnldsv/read-package-engines-version-actions@8205673bab74a63eb9b8093402fd9e0e018663a1 # v2.2
id: versions
with:
- fallbackNode: '^16'
- fallbackNpm: '^7'
+ fallbackNode: '^20'
+ fallbackNpm: '^9'
- name: Set up node ${{ steps.versions.outputs.nodeVersion }}
- uses: actions/setup-node@8f152de45cc393bb48ce5d89d36b731f54556e65 # v3
+ uses: actions/setup-node@5e21ff4d9bc1a8cf6de233a3057d20ec6b3fb69d # v3
with:
node-version: ${{ steps.versions.outputs.nodeVersion }}
@@ -49,6 +49,8 @@ jobs:
- name: Run npm ci and npm run build
if: always()
+ env:
+ CYPRESS_INSTALL_BINARY: 0
run: |
npm ci
npm run build --if-present
diff --git a/.github/workflows/phpunit-mysql.yml b/.github/workflows/phpunit-mysql.yml
new file mode 100644
index 000000000..151351d56
--- /dev/null
+++ b/.github/workflows/phpunit-mysql.yml
@@ -0,0 +1,177 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
+name: PHPUnit mysql
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ - master
+ - stable*
+
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-mysql-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ changes:
+ runs-on: ubuntu-latest
+
+ outputs:
+ src: ${{ steps.changes.outputs.src}}
+
+ steps:
+ - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
+ id: changes
+ continue-on-error: true
+ with:
+ filters: |
+ src:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
+ phpunit-mysql:
+ runs-on: ubuntu-latest
+
+ needs: changes
+ if: needs.changes.outputs.src != 'false'
+
+ strategy:
+ matrix:
+ php-versions: ['8.0', '8.1', '8.2', '8.3']
+ server-versions: ['master']
+
+ services:
+ mysql:
+ image: ghcr.io/nextcloud/continuous-integration-mariadb-10.6:latest
+ ports:
+ - 4444:3306/tcp
+ env:
+ MYSQL_ROOT_PASSWORD: rootpassword
+ options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
+
+ steps:
+ - name: Set app env
+ run: |
+ # Split and keep last
+ echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
+
+ - name: Checkout server
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ submodules: true
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout app
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
+ extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, mysql, pdo_mysql
+ coverage: none
+ ini-file: development
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Enable ONLY_FULL_GROUP_BY MySQL option
+ run: |
+ echo "SET GLOBAL sql_mode=(SELECT CONCAT(@@sql_mode,',ONLY_FULL_GROUP_BY'));" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
+ echo "SELECT @@sql_mode;" | mysql -h 127.0.0.1 -P 4444 -u root -prootpassword
+
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
+ - name: Set up dependencies
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer i
+
+ - name: Set up Nextcloud
+ env:
+ DB_PORT: 4444
+ run: |
+ mkdir data
+ ./occ maintenance:install --verbose --database=mysql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
+ ./occ app:enable --force ${{ env.APP_NAME }}
+
+ - name: Check PHPUnit script is defined
+ id: check_phpunit
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:unit " | wc -l | grep 1
+
+ - name: PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_phpunit.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:unit
+
+ - name: Check PHPUnit integration script is defined
+ id: check_integration
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:integration " | wc -l | grep 1
+
+ - name: Run Nextcloud
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ run: php -S localhost:8080 &
+
+ - name: PHPUnit integration
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:integration
+
+ - name: Print logs
+ if: always()
+ run: |
+ cat data/nextcloud.log
+
+ - name: Skipped
+ # Fail the action when neither unit nor integration tests ran
+ if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
+ run: |
+ echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
+ exit 1
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest
+ needs: [changes, phpunit-mysql]
+
+ if: always()
+
+ name: phpunit-mysql-summary
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-mysql.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit-pgsql.yml b/.github/workflows/phpunit-pgsql.yml
new file mode 100644
index 000000000..90724d59b
--- /dev/null
+++ b/.github/workflows/phpunit-pgsql.yml
@@ -0,0 +1,174 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
+name: PHPUnit pgsql
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ - master
+ - stable*
+
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-pgsql-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ changes:
+ runs-on: ubuntu-latest
+
+ outputs:
+ src: ${{ steps.changes.outputs.src}}
+
+ steps:
+ - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
+ id: changes
+ continue-on-error: true
+ with:
+ filters: |
+ src:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
+ phpunit-pgsql:
+ runs-on: ubuntu-latest
+
+ needs: changes
+ if: needs.changes.outputs.src != 'false'
+
+ strategy:
+ matrix:
+ php-versions: ['8.0']
+ server-versions: ['master']
+
+ services:
+ postgres:
+ image: ghcr.io/nextcloud/continuous-integration-postgres-14:latest
+ ports:
+ - 4444:5432/tcp
+ env:
+ POSTGRES_USER: root
+ POSTGRES_PASSWORD: rootpassword
+ POSTGRES_DB: nextcloud
+ options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
+
+ steps:
+ - name: Set app env
+ run: |
+ # Split and keep last
+ echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
+
+ - name: Checkout server
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ submodules: true
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout app
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
+ extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, pgsql, pdo_pgsql
+ coverage: none
+ ini-file: development
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
+ - name: Set up dependencies
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer i
+
+ - name: Set up Nextcloud
+ env:
+ DB_PORT: 4444
+ run: |
+ mkdir data
+ ./occ maintenance:install --verbose --database=pgsql --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
+ ./occ app:enable --force ${{ env.APP_NAME }}
+
+ - name: Check PHPUnit script is defined
+ id: check_phpunit
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:unit " | wc -l | grep 1
+
+ - name: PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_phpunit.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:unit
+
+ - name: Check PHPUnit integration script is defined
+ id: check_integration
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:integration " | wc -l | grep 1
+
+ - name: Run Nextcloud
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ run: php -S localhost:8080 &
+
+ - name: PHPUnit integration
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:integration
+
+ - name: Print logs
+ if: always()
+ run: |
+ cat data/nextcloud.log
+
+ - name: Skipped
+ # Fail the action when neither unit nor integration tests ran
+ if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
+ run: |
+ echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
+ exit 1
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest
+ needs: [changes, phpunit-pgsql]
+
+ if: always()
+
+ name: phpunit-pgsql-summary
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-pgsql.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit-sqlite.yml b/.github/workflows/phpunit-sqlite.yml
new file mode 100644
index 000000000..d357f6473
--- /dev/null
+++ b/.github/workflows/phpunit-sqlite.yml
@@ -0,0 +1,163 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
+name: PHPUnit sqlite
+
+on:
+ pull_request:
+ push:
+ branches:
+ - main
+ - master
+ - stable*
+
+permissions:
+ contents: read
+
+concurrency:
+ group: phpunit-sqlite-${{ github.head_ref || github.run_id }}
+ cancel-in-progress: true
+
+jobs:
+ changes:
+ runs-on: ubuntu-latest
+
+ outputs:
+ src: ${{ steps.changes.outputs.src}}
+
+ steps:
+ - uses: dorny/paths-filter@4512585405083f25c027a35db413c2b3b9006d50 # v2.11.1
+ id: changes
+ continue-on-error: true
+ with:
+ filters: |
+ src:
+ - '.github/workflows/**'
+ - 'appinfo/**'
+ - 'lib/**'
+ - 'templates/**'
+ - 'tests/**'
+ - 'vendor/**'
+ - 'vendor-bin/**'
+ - '.php-cs-fixer.dist.php'
+ - 'composer.json'
+ - 'composer.lock'
+
+ phpunit-sqlite:
+ runs-on: ubuntu-latest
+
+ needs: changes
+ if: needs.changes.outputs.src != 'false'
+
+ strategy:
+ matrix:
+ php-versions: ['8.0']
+ server-versions: ['master']
+
+ steps:
+ - name: Set app env
+ run: |
+ # Split and keep last
+ echo "APP_NAME=${GITHUB_REPOSITORY##*/}" >> $GITHUB_ENV
+
+ - name: Checkout server
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ submodules: true
+ repository: nextcloud/server
+ ref: ${{ matrix.server-versions }}
+
+ - name: Checkout app
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
+ with:
+ path: apps/${{ env.APP_NAME }}
+
+ - name: Set up php ${{ matrix.php-versions }}
+ uses: shivammathur/setup-php@4bd44f22a98a19e0950cbad5f31095157cc9621b # v2
+ with:
+ php-version: ${{ matrix.php-versions }}
+ # https://docs.nextcloud.com/server/stable/admin_manual/installation/source_installation.html#prerequisites-for-manual-installation
+ extensions: bz2, ctype, curl, dom, fileinfo, gd, iconv, intl, json, libxml, mbstring, openssl, pcntl, posix, session, simplexml, xmlreader, xmlwriter, zip, zlib, sqlite, pdo_sqlite
+ coverage: none
+ ini-file: development
+ env:
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+
+ - name: Check composer file existence
+ id: check_composer
+ uses: andstor/file-existence-action@20b4d2e596410855db8f9ca21e96fbe18e12930b # v2
+ with:
+ files: apps/${{ env.APP_NAME }}/composer.json
+
+ - name: Set up dependencies
+ # Only run if phpunit config file exists
+ if: steps.check_composer.outputs.files_exists == 'true'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer i
+
+ - name: Set up Nextcloud
+ env:
+ DB_PORT: 4444
+ run: |
+ mkdir data
+ ./occ maintenance:install --verbose --database=sqlite --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
+ ./occ app:enable --force ${{ env.APP_NAME }}
+
+ - name: Check PHPUnit script is defined
+ id: check_phpunit
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:unit " | wc -l | grep 1
+
+ - name: PHPUnit
+ # Only run if phpunit config file exists
+ if: steps.check_phpunit.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:unit
+
+ - name: Check PHPUnit integration script is defined
+ id: check_integration
+ continue-on-error: true
+ working-directory: apps/${{ env.APP_NAME }}
+ run: |
+ composer run --list | grep "^ test:integration " | wc -l | grep 1
+
+ - name: Run Nextcloud
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ run: php -S localhost:8080 &
+
+ - name: PHPUnit integration
+ # Only run if phpunit integration config file exists
+ if: steps.check_integration.outcome == 'success'
+ working-directory: apps/${{ env.APP_NAME }}
+ run: composer run test:integration
+
+ - name: Print logs
+ if: always()
+ run: |
+ cat data/nextcloud.log
+
+ - name: Skipped
+ # Fail the action when neither unit nor integration tests ran
+ if: steps.check_phpunit.outcome == 'failure' && steps.check_integration.outcome == 'failure'
+ run: |
+ echo 'Neither PHPUnit nor PHPUnit integration tests are specified in composer.json scripts'
+ exit 1
+
+ summary:
+ permissions:
+ contents: none
+ runs-on: ubuntu-latest
+ needs: [changes, phpunit-sqlite]
+
+ if: always()
+
+ name: phpunit-sqlite-summary
+
+ steps:
+ - name: Summary status
+ run: if ${{ needs.changes.outputs.src != 'false' && needs.phpunit-sqlite.result != 'success' }}; then exit 1; fi
diff --git a/.github/workflows/phpunit.yml b/.github/workflows/phpunit.yml
deleted file mode 100644
index 6ba08c059..000000000
--- a/.github/workflows/phpunit.yml
+++ /dev/null
@@ -1,102 +0,0 @@
-name: PHPUnit
-
-on:
- pull_request:
- paths:
- - '.github/workflows/phpunit.yml'
- - 'appinfo/**'
- - 'lib/**'
- - 'templates/**'
- - 'tests/**'
- - 'composer.json'
- - 'composer.lock'
- push:
- branches:
- - master
- - stable*
-
-env:
- APP_NAME: deck
-
-
-jobs:
- integration:
- runs-on: ubuntu-latest
-
- strategy:
- fail-fast: false
- matrix:
- php-versions: ['8.0', '8.1', '8.2', '8.3']
- databases: ['sqlite', 'mysql', 'pgsql']
- server-versions: ['master']
-
- name: php${{ matrix.php-versions }}-${{ matrix.databases }}-${{ matrix.server-versions }}
-
- services:
- postgres:
- image: postgres:14
- ports:
- - 4445:5432/tcp
- env:
- POSTGRES_USER: root
- POSTGRES_PASSWORD: rootpassword
- POSTGRES_DB: nextcloud
- options: --health-cmd pg_isready --health-interval 5s --health-timeout 2s --health-retries 5
- mysql:
- image: mariadb:10.5
- ports:
- - 4444:3306/tcp
- env:
- MYSQL_ROOT_PASSWORD: rootpassword
- options: --health-cmd="mysqladmin ping" --health-interval 5s --health-timeout 2s --health-retries 5
-
- steps:
- - name: Checkout server
- uses: actions/checkout@v4
- with:
- repository: nextcloud/server
- ref: ${{ matrix.server-versions }}
-
- - name: Checkout submodules
- shell: bash
- run: |
- auth_header="$(git config --local --get http.https://github.com/.extraheader)"
- git submodule sync --recursive
- git -c "http.extraheader=$auth_header" -c protocol.version=2 submodule update --init --force --recursive --depth=1
-
- - name: Checkout app
- uses: actions/checkout@v4
- with:
- path: apps/${{ env.APP_NAME }}
-
- - name: Set up php ${{ matrix.php-versions }}
- uses: shivammathur/setup-php@2.28.0
- with:
- php-version: ${{ matrix.php-versions }}
- tools: phpunit
- extensions: zip, gd, mbstring, iconv, fileinfo, intl, sqlite, pdo_sqlite, mysql, pdo_mysql, pgsql, pdo_pgsql
- coverage: none
-
- - name: Set up PHPUnit
- working-directory: apps/${{ env.APP_NAME }}
- run: composer i
-
- - name: Set up Nextcloud
- run: |
- if [ "${{ matrix.databases }}" = "mysql" ]; then
- export DB_PORT=4444
- elif [ "${{ matrix.databases }}" = "pgsql" ]; then
- export DB_PORT=4445
- fi
- mkdir data
- ./occ maintenance:install --verbose --database=${{ matrix.databases }} --database-name=nextcloud --database-host=127.0.0.1 --database-port=$DB_PORT --database-user=root --database-pass=rootpassword --admin-user admin --admin-pass admin
- ./occ app:enable --force ${{ env.APP_NAME }}
- php -S localhost:8080 &
-
- - name: PHPUnit
- working-directory: apps/${{ env.APP_NAME }}
- run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.xml
-
- - name: PHPUnit integration
- working-directory: apps/${{ env.APP_NAME }}
- run: ./vendor/phpunit/phpunit/phpunit -c tests/phpunit.integration.xml
diff --git a/.github/workflows/pr-feedback.yml b/.github/workflows/pr-feedback.yml
index ea40f7943..e85c4ecd7 100644
--- a/.github/workflows/pr-feedback.yml
+++ b/.github/workflows/pr-feedback.yml
@@ -1,3 +1,8 @@
+# This workflow is provided via the organization template repository
+#
+# https://github.com/nextcloud/.github
+# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
+
name: 'Ask for feedback on PRs'
on:
schedule:
@@ -5,7 +10,7 @@ on:
jobs:
pr-feedback:
- runs-on: ubuntu-22.04
+ runs-on: ubuntu-latest
steps:
- name: The get-github-handles-from-website action
uses: marcelklehr/get-github-handles-from-website-action@a739600f6b91da4957f51db0792697afbb2f143c # v1.0.0
@@ -18,12 +23,12 @@ jobs:
Hello there,
Thank you so much for taking the time and effort to create a pull request to our Nextcloud project.
- We hope that the reviewing process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR reviewing process.
+ We hope that the review process is going smooth and is helpful for you. We want to ensure your pull request is reviewed to your satisfaction. If you have a moment, our community management team would very much appreciate your feedback on your experience with this PR review process.
Your feedback is valuable to us as we continuously strive to improve our community developer experience. Please take a moment to complete our short survey by clicking on the following link: https://cloud.nextcloud.com/apps/forms/s/i9Ago4EQRZ7TWxjfmeEpPkf6
Thank you for contributing to Nextcloud and we hope to hear from you soon!
days-before-feedback: 14
start-date: "2023-07-10"
- exempt-authors: "${{ steps.scrape.outputs.users }}"
+ exempt-authors: "${{ steps.scrape.outputs.users }},nextcloud-command,nextcloud-android-bot,skjnldsv"
exempt-bots: true
diff --git a/.github/workflows/psalm.yml b/.github/workflows/psalm.yml
index d4a894a3c..83d2405f8 100644
--- a/.github/workflows/psalm.yml
+++ b/.github/workflows/psalm.yml
@@ -24,7 +24,7 @@ jobs:
name: Nextcloud
steps:
- name: Checkout
- uses: actions/checkout@v4 # v3.5.2
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
- name: Set up php
uses: shivammathur/setup-php@2.28.0 # v2
diff --git a/.github/workflows/update-nextcloud-ocp.yml b/.github/workflows/update-nextcloud-ocp.yml
index e065b0553..da922edd6 100644
--- a/.github/workflows/update-nextcloud-ocp.yml
+++ b/.github/workflows/update-nextcloud-ocp.yml
@@ -22,10 +22,12 @@ jobs:
name: update-nextcloud-ocp-${{ matrix.branches }}
steps:
- - uses: actions/checkout@v4 # v3.5.2
+ - id: checkout
+ uses: actions/checkout@f43a0e5ff2bd294095638e18286ca9a3d1956744 # v3.6.0
with:
ref: ${{ matrix.branches }}
submodules: true
+ continue-on-error: true
- name: Set up php8.1
uses: shivammathur/setup-php@2.28.0 # v2
@@ -37,36 +39,66 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
+ - name: Read codeowners
+ if: steps.checkout.outcome == 'success'
+ id: codeowners
+ run: |
+ grep '/appinfo/info.xml' .github/CODEOWNERS | cut -f 2- -d ' ' | xargs | awk '{ print "codeowners="$0 }' >> $GITHUB_OUTPUT
+ continue-on-error: true
+
- name: Composer install
+ if: steps.checkout.outcome == 'success'
run: composer install
- name: Composer update nextcloud/ocp
- if: matrix.branches != 'main'
+ id: update_branch
+ if: ${{ steps.checkout.outcome == 'success' && matrix.branches != 'main' }}
run: composer require --dev nextcloud/ocp:dev-${{ matrix.branches }}
+ - name: Raise on issue on failure
+ uses: dacbd/create-issue-action@ba4d1c45cccf9c483f2720cefb40e437f0ee6f7d # v1.2.1
+ if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_branch.conclusion == 'failure' }}
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
+ body: Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}
+
- name: Composer update nextcloud/ocp
- if: matrix.branches == 'main'
+ id: update_main
+ if: ${{ steps.checkout.outcome == 'success' && matrix.branches == 'main' }}
run: composer require --dev nextcloud/ocp:dev-master
+ - name: Raise on issue on failure
+ uses: dacbd/create-issue-action@ba4d1c45cccf9c483f2720cefb40e437f0ee6f7d # v1.2.1
+ if: ${{ steps.checkout.outcome == 'success' && failure() && steps.update_main.conclusion == 'failure' }}
+ with:
+ token: ${{ secrets.GITHUB_TOKEN }}
+ title: Failed to update nextcloud/ocp package on branch ${{ matrix.branches }}
+ body: Please check the output of the GitHub action and manually resolve the issues
${{ github.server_url }}/${{ github.repository }}/actions/runs/${{ github.run_id }}
${{ steps.codeowners.outputs.codeowners }}
+
- name: Reset checkout 3rdparty
+ if: steps.checkout.outcome == 'success'
run: |
git clean -f 3rdparty
git checkout 3rdparty
continue-on-error: true
- name: Reset checkout vendor
+ if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor
git checkout vendor
continue-on-error: true
- name: Reset checkout vendor-bin
+ if: steps.checkout.outcome == 'success'
run: |
git clean -f vendor-bin
git checkout vendor-bin
continue-on-error: true
- name: Create Pull Request
+ if: steps.checkout.outcome == 'success'
uses: peter-evans/create-pull-request@153407881ec5c347639a548ade7d8ad1d6740e38 # v3
with:
token: ${{ secrets.COMMAND_BOT_PAT }}
diff --git a/composer.lock b/composer.lock
index e19330a0f..f16c66d03 100644
--- a/composer.lock
+++ b/composer.lock
@@ -254,12 +254,12 @@
"source": {
"type": "git",
"url": "https://github.com/nextcloud-deps/ocp.git",
- "reference": "bba92845e313d56437b705a1249f132fb13d3945"
+ "reference": "8a21d1a93f4141cde16261bb7d44f1a61b930e65"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/bba92845e313d56437b705a1249f132fb13d3945",
- "reference": "bba92845e313d56437b705a1249f132fb13d3945",
+ "url": "https://api.github.com/repos/nextcloud-deps/ocp/zipball/8a21d1a93f4141cde16261bb7d44f1a61b930e65",
+ "reference": "8a21d1a93f4141cde16261bb7d44f1a61b930e65",
"shasum": ""
},
"require": {
@@ -291,7 +291,7 @@
"issues": "https://github.com/nextcloud-deps/ocp/issues",
"source": "https://github.com/nextcloud-deps/ocp/tree/master"
},
- "time": "2023-12-02T00:32:27+00:00"
+ "time": "2023-12-05T00:34:18+00:00"
},
{
"name": "nikic/php-parser",
@@ -462,16 +462,16 @@
},
{
"name": "php-cs-fixer/shim",
- "version": "v3.22.0",
+ "version": "v3.40.2",
"source": {
"type": "git",
"url": "https://github.com/PHP-CS-Fixer/shim.git",
- "reference": "f6692934a6d1fe40fd8bc3339487490baa4a6700"
+ "reference": "f75393dc76faeecfa5fd4018531faa9b543e9d4e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/f6692934a6d1fe40fd8bc3339487490baa4a6700",
- "reference": "f6692934a6d1fe40fd8bc3339487490baa4a6700",
+ "url": "https://api.github.com/repos/PHP-CS-Fixer/shim/zipball/f75393dc76faeecfa5fd4018531faa9b543e9d4e",
+ "reference": "f75393dc76faeecfa5fd4018531faa9b543e9d4e",
"shasum": ""
},
"require": {
@@ -508,9 +508,9 @@
"description": "A tool to automatically fix PHP code style",
"support": {
"issues": "https://github.com/PHP-CS-Fixer/shim/issues",
- "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.22.0"
+ "source": "https://github.com/PHP-CS-Fixer/shim/tree/v3.40.2"
},
- "time": "2023-07-16T23:08:49+00:00"
+ "time": "2023-12-03T09:22:01+00:00"
},
{
"name": "phpunit/php-code-coverage",
@@ -936,16 +936,16 @@
},
{
"name": "psalm/phar",
- "version": "5.16.0",
+ "version": "5.17.0",
"source": {
"type": "git",
"url": "https://github.com/psalm/phar.git",
- "reference": "be4f93e50edf473d60a6e6f9c1d78546a3a32b90"
+ "reference": "71f6855b18d6de18603511c4d6fa6e0bcefb2b05"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/psalm/phar/zipball/be4f93e50edf473d60a6e6f9c1d78546a3a32b90",
- "reference": "be4f93e50edf473d60a6e6f9c1d78546a3a32b90",
+ "url": "https://api.github.com/repos/psalm/phar/zipball/71f6855b18d6de18603511c4d6fa6e0bcefb2b05",
+ "reference": "71f6855b18d6de18603511c4d6fa6e0bcefb2b05",
"shasum": ""
},
"require": {
@@ -965,9 +965,9 @@
"description": "Composer-based Psalm Phar",
"support": {
"issues": "https://github.com/psalm/phar/issues",
- "source": "https://github.com/psalm/phar/tree/5.16.0"
+ "source": "https://github.com/psalm/phar/tree/5.17.0"
},
- "time": "2023-11-22T22:05:24+00:00"
+ "time": "2023-12-04T14:36:00+00:00"
},
{
"name": "psr/clock",
@@ -1176,20 +1176,21 @@
"source": {
"type": "git",
"url": "https://github.com/Roave/SecurityAdvisories.git",
- "reference": "6488b89b30eb204b9f78b3db4c2916914afa7445"
+ "reference": "c7332a39b09af9d355cf0048e985c54055bd1fe5"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/6488b89b30eb204b9f78b3db4c2916914afa7445",
- "reference": "6488b89b30eb204b9f78b3db4c2916914afa7445",
+ "url": "https://api.github.com/repos/Roave/SecurityAdvisories/zipball/c7332a39b09af9d355cf0048e985c54055bd1fe5",
+ "reference": "c7332a39b09af9d355cf0048e985c54055bd1fe5",
"shasum": ""
},
"conflict": {
"3f/pygmentize": "<1.2",
- "admidio/admidio": "<4.2.10",
+ "admidio/admidio": "<4.2.13",
"adodb/adodb-php": "<=5.20.20|>=5.21,<=5.21.3",
- "aheinze/cockpit": "<=2.2.1",
+ "aheinze/cockpit": "<2.2",
"aimeos/aimeos-typo3": "<19.10.12|>=20,<20.10.5",
+ "airesvsg/acf-to-rest-api": "<=3.1",
"akaunting/akaunting": "<2.1.13",
"akeneo/pim-community-dev": "<5.0.119|>=6,<6.0.53",
"alextselegidis/easyappointments": "<1.5",
@@ -1201,30 +1202,34 @@
"anchorcms/anchor-cms": "<=0.12.7",
"andreapollastri/cipi": "<=3.1.15",
"andrewhaine/silverstripe-form-capture": ">=0.2,<=0.2.3|>=1,<1.0.2|>=2,<2.2.5",
+ "apache-solr-for-typo3/solr": "<2.8.3",
"apereo/phpcas": "<1.6",
"api-platform/core": ">=2.2,<2.2.10|>=2.3,<2.3.6|>=2.6,<2.7.10|>=3,<3.0.12|>=3.1,<3.1.3",
"appwrite/server-ce": "<=1.2.1",
"arc/web": "<3",
"area17/twill": "<1.2.5|>=2,<2.5.3",
"artesaos/seotools": "<0.17.2",
- "asymmetricrypt/asymmetricrypt": ">=0,<9.9.99",
+ "asymmetricrypt/asymmetricrypt": "<9.9.99",
"athlon1600/php-proxy": "<=5.1",
"athlon1600/php-proxy-app": "<=3",
+ "austintoddj/canvas": "<=3.4.2",
"automad/automad": "<1.8",
"awesome-support/awesome-support": "<=6.0.7",
"aws/aws-sdk-php": ">=3,<3.2.1",
"azuracast/azuracast": "<0.18.3",
"backdrop/backdrop": "<1.24.2",
+ "backpack/crud": "<3.4.9",
+ "bacula-web/bacula-web": "<8.0.0.0-RC2-dev",
"badaso/core": "<2.7",
"bagisto/bagisto": "<0.1.5",
"barrelstrength/sprout-base-email": "<1.2.7",
"barrelstrength/sprout-forms": "<3.9",
"barryvdh/laravel-translation-manager": "<0.6.2",
"barzahlen/barzahlen-php": "<2.0.1",
- "baserproject/basercms": "<4.7.5",
+ "baserproject/basercms": "<4.8",
"bassjobsen/bootstrap-3-typeahead": ">4.0.2",
"bigfork/silverstripe-form-capture": ">=3,<3.1.1",
- "billz/raspap-webgui": "<2.8.9",
+ "billz/raspap-webgui": "<2.9.5",
"bk2k/bootstrap-package": ">=7.1,<7.1.2|>=8,<8.0.8|>=9,<9.0.4|>=9.1,<9.1.3|>=10,<10.0.10|>=11,<11.0.3",
"bmarshall511/wordpress_zero_spam": "<5.2.13",
"bolt/bolt": "<3.7.2",
@@ -1235,91 +1240,99 @@
"brotkrueml/schema": "<1.13.1|>=2,<2.5.1",
"brotkrueml/typo3-matomo-integration": "<1.3.2",
"buddypress/buddypress": "<7.2.1",
- "bugsnag/bugsnag-laravel": ">=2,<2.0.2",
+ "bugsnag/bugsnag-laravel": "<2.0.2",
"bytefury/crater": "<6.0.2",
"cachethq/cachet": "<2.5.1",
- "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10|= 1.3.7|>=4.1,<4.1.4",
+ "cakephp/cakephp": "<3.10.3|>=4,<4.0.10|>=4.1,<4.1.4|>=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
"cakephp/database": ">=4.2,<4.2.12|>=4.3,<4.3.11|>=4.4,<4.4.10",
"cardgate/magento2": "<2.0.33",
"cardgate/woocommerce": "<=3.1.15",
"cart2quote/module-quotation": ">=4.1.6,<=4.4.5|>=5,<5.4.4",
"cartalyst/sentry": "<=2.1.6",
"catfan/medoo": "<1.7.5",
- "centreon/centreon": "<22.10-beta.1",
+ "cecil/cecil": "<7.47.1",
+ "centreon/centreon": "<22.10.0.0-beta1",
"cesnet/simplesamlphp-module-proxystatistics": "<3.1",
- "cockpit-hq/cockpit": "<2.4.1",
+ "chriskacerguis/codeigniter-restserver": "<=2.7.1",
+ "civicrm/civicrm-core": ">=4.2,<4.2.9|>=4.3,<4.3.3",
+ "cockpit-hq/cockpit": "<=2.6.3",
"codeception/codeception": "<3.1.3|>=4,<4.1.22",
- "codeigniter/framework": "<=3.0.6",
- "codeigniter4/framework": "<4.3.5",
- "codeigniter4/shield": "<1-beta.4|= 1.0.0-beta",
+ "codeigniter/framework": "<3.1.9",
+ "codeigniter4/framework": "<=4.4.2",
+ "codeigniter4/shield": "<1.0.0.0-beta8",
"codiad/codiad": "<=2.8.4",
- "composer/composer": "<1.10.26|>=2-alpha.1,<2.2.12|>=2.3,<2.3.5",
- "concrete5/concrete5": "<9.2|>= 9.0.0RC1, < 9.1.3",
+ "composer/composer": "<1.10.27|>=2,<2.2.22|>=2.3,<2.6.4",
+ "concrete5/concrete5": "<9.2.2",
"concrete5/core": "<8.5.8|>=9,<9.1",
"contao-components/mediaelement": ">=2.14.2,<2.21.1",
"contao/contao": ">=4,<4.4.56|>=4.5,<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4",
"contao/core": ">=2,<3.5.39",
- "contao/core-bundle": "<4.9.40|>=4.10,<4.11.7|>=4.13,<4.13.21|>=5.1,<5.1.4|= 4.10.0",
+ "contao/core-bundle": "<4.9.42|>=4.10,<4.13.28|>=5,<5.1.10",
"contao/listing-bundle": ">=4,<4.4.8",
"contao/managed-edition": "<=1.5",
"cosenary/instagram": "<=2.3",
- "craftcms/cms": "<=4.4.9|>= 4.0.0-RC1, < 4.4.12|>= 4.0.0-RC1, <= 4.4.5|>= 4.0.0-RC1, <= 4.4.6|>= 4.0.0-RC1, < 4.4.6|>= 4.0.0-RC1, < 4.3.7|>= 4.0.0-RC1, < 4.2.1",
- "croogo/croogo": "<3.0.7",
+ "craftcms/cms": "<=4.4.14",
+ "croogo/croogo": "<4",
"cuyz/valinor": "<0.12",
"czproject/git-php": "<4.0.3",
"darylldoyle/safe-svg": "<1.9.10",
"datadog/dd-trace": ">=0.30,<0.30.2",
+ "datatables/datatables": "<1.10.10",
"david-garcia/phpwhois": "<=4.3.1",
"dbrisinajumi/d2files": "<1",
- "dcat/laravel-admin": "<=2.1.3-beta",
+ "dcat/laravel-admin": "<=2.1.3.0-beta",
"derhansen/fe_change_pwd": "<2.0.5|>=3,<3.0.3",
"derhansen/sf_event_mgt": "<4.3.1|>=5,<5.1.1",
"desperado/xml-bundle": "<=0.1.7",
"directmailteam/direct-mail": "<5.2.4",
- "doctrine/annotations": ">=1,<1.2.7",
- "doctrine/cache": ">=1,<1.3.2|>=1.4,<1.4.2",
- "doctrine/common": ">=2,<2.4.3|>=2.5,<2.5.1",
+ "doctrine/annotations": "<1.2.7",
+ "doctrine/cache": "<1.3.2|>=1.4,<1.4.2",
+ "doctrine/common": "<2.4.3|>=2.5,<2.5.1",
"doctrine/dbal": ">=2,<2.0.8|>=2.1,<2.1.2|>=3,<3.1.4",
"doctrine/doctrine-bundle": "<1.5.2",
"doctrine/doctrine-module": "<=0.7.1",
- "doctrine/mongodb-odm": ">=1,<1.0.2",
- "doctrine/mongodb-odm-bundle": ">=2,<3.0.1",
+ "doctrine/mongodb-odm": "<1.0.2",
+ "doctrine/mongodb-odm-bundle": "<3.0.1",
"doctrine/orm": ">=2,<2.4.8|>=2.5,<2.5.1|>=2.8.3,<2.8.4",
- "dolibarr/dolibarr": "<17.0.1|= 12.0.5|>= 3.3.beta1, < 13.0.2",
- "dompdf/dompdf": "<2.0.2|= 2.0.2",
- "drupal/core": ">=7,<7.96|>=8,<9.4.14|>=9.5,<9.5.8|>=10,<10.0.8",
- "drupal/drupal": ">=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4",
+ "dolibarr/dolibarr": "<18.0.2",
+ "dompdf/dompdf": "<2.0.2|==2.0.2",
+ "doublethreedigital/guest-entries": "<3.1.2",
+ "drupal/core": "<9.4.14|>=9.5,<9.5.8|>=10,<10.0.8",
+ "drupal/drupal": ">=6,<6.38|>=7,<7.80|>=8,<8.9.16|>=9,<9.1.12|>=9.2,<9.2.4",
+ "duncanmcclean/guest-entries": "<3.1.2",
"dweeves/magmi": "<=0.7.24",
"ecodev/newsletter": "<=4",
"ectouch/ectouch": "<=2.7.2",
- "elefant/cms": "<1.3.13",
+ "elefant/cms": "<2.0.7",
"elgg/elgg": "<3.3.24|>=4,<4.0.5",
"encore/laravel-admin": "<=1.8.19",
"endroid/qr-code-bundle": "<3.4.2",
"enshrined/svg-sanitize": "<0.15",
"erusev/parsedown": "<1.7.2",
"ether/logs": "<3.0.4",
+ "evolutioncms/evolution": "<=3.2.3",
"exceedone/exment": "<4.4.3|>=5,<5.0.3",
- "exceedone/laravel-admin": "= 3.0.0|<2.2.3",
- "ezsystems/demobundle": ">=5.4,<5.4.6.1",
+ "exceedone/laravel-admin": "<2.2.3|==3",
+ "ezsystems/demobundle": ">=5.4,<5.4.6.1-dev",
"ezsystems/ez-support-tools": ">=2.2,<2.2.3",
- "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1",
- "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1|>=5.4,<5.4.11.1|>=2017.12,<2017.12.0.1",
+ "ezsystems/ezdemo-ls-extension": ">=5.4,<5.4.2.1-dev",
+ "ezsystems/ezfind-ls": ">=5.3,<5.3.6.1-dev|>=5.4,<5.4.11.1-dev|>=2017.12,<2017.12.0.1-dev",
"ezsystems/ezplatform": "<=1.13.6|>=2,<=2.5.24",
"ezsystems/ezplatform-admin-ui": ">=1.3,<1.3.5|>=1.4,<1.4.6|>=1.5,<1.5.29|>=2.3,<2.3.26",
"ezsystems/ezplatform-admin-ui-assets": ">=4,<4.2.1|>=5,<5.0.1|>=5.1,<5.1.1",
- "ezsystems/ezplatform-graphql": ">=1-rc.1,<1.0.13|>=2-beta.1,<2.3.12",
- "ezsystems/ezplatform-kernel": "<1.2.5.1|>=1.3,<1.3.26",
+ "ezsystems/ezplatform-graphql": ">=1.0.0.0-RC1-dev,<1.0.13|>=2.0.0.0-beta1,<2.3.12",
+ "ezsystems/ezplatform-kernel": "<1.2.5.1-dev|>=1.3,<1.3.34",
"ezsystems/ezplatform-rest": ">=1.2,<=1.2.2|>=1.3,<1.3.8",
- "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1",
+ "ezsystems/ezplatform-richtext": ">=2.3,<2.3.7.1-dev",
+ "ezsystems/ezplatform-solr-search-engine": ">=1.7,<1.7.12|>=2,<2.0.2|>=3.3,<3.3.15",
"ezsystems/ezplatform-user": ">=1,<1.0.1",
- "ezsystems/ezpublish-kernel": "<6.13.8.2|>=7,<7.5.30",
- "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.3.5.1",
+ "ezsystems/ezpublish-kernel": "<6.13.8.2-dev|>=7,<7.5.31",
+ "ezsystems/ezpublish-legacy": "<=2017.12.7.3|>=2018.6,<=2019.03.5.1",
"ezsystems/platform-ui-assets-bundle": ">=4.2,<4.2.3",
- "ezsystems/repository-forms": ">=2.3,<2.3.2.1|>=2.5,<2.5.15",
+ "ezsystems/repository-forms": ">=2.3,<2.3.2.1-dev|>=2.5,<2.5.15",
"ezyang/htmlpurifier": "<4.1.1",
"facade/ignition": "<1.16.15|>=2,<2.4.2|>=2.5,<2.5.2",
- "facturascripts/facturascripts": "<=2022.8",
+ "facturascripts/facturascripts": "<=2022.08",
"feehi/cms": "<=2.1.1",
"feehi/feehicms": "<=2.1.1",
"fenom/fenom": "<=2.12.1",
@@ -1327,13 +1340,16 @@
"firebase/php-jwt": "<6",
"fixpunkt/fp-masterquiz": "<2.2.1|>=3,<3.5.2",
"fixpunkt/fp-newsletter": "<1.1.1|>=2,<2.1.2|>=2.2,<3.2.6",
- "flarum/core": "<1.7",
+ "flarum/core": "<1.8",
+ "flarum/framework": "<1.8",
"flarum/mentions": "<1.6.3",
- "flarum/sticky": ">=0.1-beta.14,<=0.1-beta.15",
- "flarum/tags": "<=0.1-beta.13",
+ "flarum/sticky": ">=0.1.0.0-beta14,<=0.1.0.0-beta15",
+ "flarum/tags": "<=0.1.0.0-beta13",
+ "floriangaerber/magnesium": "<0.3.1",
"fluidtypo3/vhs": "<5.1.1",
- "fof/byobu": ">=0.3-beta.2,<1.1.7",
+ "fof/byobu": ">=0.3.0.0-beta2,<1.1.7",
"fof/upload": "<1.2.3",
+ "foodcoopshop/foodcoopshop": ">=3.2,<3.6.1",
"fooman/tcpdf": "<6.2.22",
"forkcms/forkcms": "<5.11.1",
"fossar/tcpdf-parser": "<6.2.22",
@@ -1343,17 +1359,20 @@
"friendsofsymfony/rest-bundle": ">=1.2,<1.2.2",
"friendsofsymfony/user-bundle": ">=1.2,<1.3.5",
"friendsoftypo3/mediace": ">=7.6.2,<7.6.5",
- "froala/wysiwyg-editor": "<3.2.7",
- "froxlor/froxlor": "<2.1",
+ "friendsoftypo3/openid": ">=4.5,<4.5.31|>=4.7,<4.7.16|>=6,<6.0.11|>=6.1,<6.1.6",
+ "froala/wysiwyg-editor": "<3.2.7|>=4.0.1,<=4.1.1",
+ "froxlor/froxlor": "<2.1.0.0-beta1",
"fuel/core": "<1.8.1",
"funadmin/funadmin": "<=3.2|>=3.3.2,<=3.3.3",
"gaoming13/wechat-php-sdk": "<=1.10.2",
"genix/cms": "<=1.1.11",
- "getgrav/grav": "<1.7.42",
- "getkirby/cms": "= 3.8.0|<3.5.8.2|>=3.6,<3.6.6.2|>=3.7,<3.7.5.1",
+ "getgrav/grav": "<=1.7.42.1",
+ "getkirby/cms": "<3.5.8.3-dev|>=3.6,<3.6.6.3-dev|>=3.7,<3.7.5.2-dev|>=3.8,<3.8.4.1-dev|>=3.9,<3.9.6",
+ "getkirby/kirby": "<=2.5.12",
"getkirby/panel": "<2.5.14",
"getkirby/starterkit": "<=3.7.0.2",
"gilacms/gila": "<=1.11.4",
+ "gleez/cms": "<=1.2|==2",
"globalpayments/php-sdk": "<2",
"gogentooss/samlbase": "<1.2.7",
"google/protobuf": "<3.15",
@@ -1361,11 +1380,12 @@
"gree/jose": "<2.2.1",
"gregwar/rst": "<1.0.3",
"grumpydictator/firefly-iii": "<6",
+ "gugoan/economizzer": "<=0.9.0.0-beta1",
"guzzlehttp/guzzle": "<6.5.8|>=7,<7.4.5",
"guzzlehttp/psr7": "<1.9.1|>=2,<2.4.5",
"haffner/jh_captcha": "<=2.1.3|>=3,<=3.0.2",
"harvesthq/chosen": "<1.8.7",
- "helloxz/imgurl": "= 2.31|<=2.31",
+ "helloxz/imgurl": "<=2.31",
"hhxsv5/laravel-s": "<3.7.36",
"hillelcoren/invoice-ninja": "<5.3.35",
"himiklab/yii2-jqgrid-widget": "<1.0.8",
@@ -1374,9 +1394,10 @@
"httpsoft/http-message": "<1.0.12",
"hyn/multi-tenant": ">=5.6,<5.7.2",
"ibexa/admin-ui": ">=4.2,<4.2.3",
- "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3",
+ "ibexa/core": ">=4,<4.0.7|>=4.1,<4.1.4|>=4.2,<4.2.3|>=4.5,<4.5.4",
"ibexa/graphql": ">=2.5,<2.5.31|>=3.3,<3.3.28|>=4.2,<4.2.3",
"ibexa/post-install": "<=1.0.4",
+ "ibexa/solr": ">=4.5,<4.5.4",
"ibexa/user": ">=4,<4.4.3",
"icecoder/icecoder": "<=8.1",
"idno/known": "<=1.3.1",
@@ -1386,21 +1407,25 @@
"illuminate/encryption": ">=4,<=4.0.11|>=4.1,<=4.1.31|>=4.2,<=4.2.22|>=5,<=5.0.35|>=5.1,<=5.1.46|>=5.2,<=5.2.45|>=5.3,<=5.3.31|>=5.4,<=5.4.36|>=5.5,<5.5.40|>=5.6,<5.6.15",
"illuminate/view": "<6.20.42|>=7,<7.30.6|>=8,<8.75",
"impresscms/impresscms": "<=1.4.5",
- "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.1",
+ "in2code/femanager": "<5.5.3|>=6,<6.3.4|>=7,<7.2.2",
"in2code/ipandlanguageredirect": "<5.1.2",
"in2code/lux": "<17.6.1|>=18,<24.0.2",
"innologi/typo3-appointments": "<2.0.6",
- "intelliants/subrion": "<=4.2.1",
+ "intelliants/subrion": "<4.2.2",
"islandora/islandora": ">=2,<2.4.1",
"ivankristianto/phpwhois": "<=4.3",
"jackalope/jackalope-doctrine-dbal": "<1.7.4",
"james-heinrich/getid3": "<1.9.21",
+ "james-heinrich/phpthumb": "<1.7.12",
"jasig/phpcas": "<1.3.3",
+ "jcbrand/converse.js": "<3.3.3",
+ "joomla/application": "<1.0.13",
"joomla/archive": "<1.1.12|>=2,<2.0.1",
"joomla/filesystem": "<1.6.2|>=2,<2.0.1",
"joomla/filter": "<1.4.4|>=2,<2.0.1",
+ "joomla/framework": ">=2.5.4,<=3.8.12",
"joomla/input": ">=2,<2.0.2",
- "joomla/joomla-cms": ">=3,<3.9.12",
+ "joomla/joomla-cms": ">=2.5,<3.9.12",
"joomla/session": "<1.3.1",
"joyqi/hyper-down": "<=2.4.27",
"jsdecena/laracom": "<2.0.9",
@@ -1409,27 +1434,28 @@
"kelvinmo/simplexrd": "<3.1.1",
"kevinpapst/kimai2": "<1.16.7",
"khodakhah/nodcms": "<=3",
- "kimai/kimai": "<1.1",
+ "kimai/kimai": "<=2.1",
"kitodo/presentation": "<3.2.3|>=3.3,<3.3.4",
"klaviyo/magento2-extension": ">=1,<3",
- "knplabs/knp-snappy": "<1.4.2",
+ "knplabs/knp-snappy": "<=1.4.2",
+ "kohana/core": "<3.3.3",
"krayin/laravel-crm": "<1.2.2",
"kreait/firebase-php": ">=3.2,<3.8.1",
"la-haute-societe/tcpdf": "<6.2.22",
- "laminas/laminas-diactoros": "<2.18.1|>=2.24,<2.24.2|>=2.25,<2.25.2|= 2.23.0|= 2.22.0|= 2.21.0|= 2.20.0|= 2.19.0",
+ "laminas/laminas-diactoros": "<2.18.1|==2.19|==2.20|==2.21|==2.22|==2.23|>=2.24,<2.24.2|>=2.25,<2.25.2",
"laminas/laminas-form": "<2.17.1|>=3,<3.0.2|>=3.1,<3.1.1",
"laminas/laminas-http": "<2.14.2",
"laravel/fortify": "<1.11.1",
"laravel/framework": "<6.20.44|>=7,<7.30.6|>=8,<8.75",
"laravel/socialite": ">=1,<1.0.99|>=2,<2.0.10",
"latte/latte": "<2.10.8",
- "lavalite/cms": "= 9.0.0|<=9",
+ "lavalite/cms": "<=9",
"lcobucci/jwt": ">=3.4,<3.4.6|>=4,<4.0.4|>=4.1,<4.1.5",
"league/commonmark": "<0.18.3",
"league/flysystem": "<1.1.4|>=2,<2.1.1",
- "league/oauth2-server": ">=8.3.2,<8.5.3",
+ "league/oauth2-server": ">=8.3.2,<8.4.2|>=8.5,<8.5.3",
"lexik/jwt-authentication-bundle": "<2.10.7|>=2.11,<2.11.3",
- "librenms/librenms": "<22.10",
+ "librenms/librenms": "<2017.08.18",
"liftkit/database": "<2.13.2",
"limesurvey/limesurvey": "<3.27.19",
"livehelperchat/livehelperchat": "<=3.91",
@@ -1438,14 +1464,14 @@
"localizationteam/l10nmgr": "<7.4|>=8,<8.7|>=9,<9.2",
"luyadev/yii-helpers": "<1.2.1",
"magento/community-edition": "<=2.4",
- "magento/magento1ce": "<1.9.4.3",
- "magento/magento1ee": ">=1,<1.14.4.3",
- "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2-p.2",
+ "magento/magento1ce": "<1.9.4.3-dev",
+ "magento/magento1ee": ">=1,<1.14.4.3-dev",
+ "magento/product-community-edition": ">=2,<2.2.10|>=2.3,<2.3.2.0-patch2",
"maikuolan/phpmussel": ">=1,<1.6",
- "mantisbt/mantisbt": "<=2.25.5",
+ "mantisbt/mantisbt": "<=2.25.7",
"marcwillmann/turn": "<0.3.3",
"matyhtf/framework": "<3.0.6",
- "mautic/core": "<4.3|= 2.13.1",
+ "mautic/core": "<4.3",
"mediawiki/core": ">=1.27,<1.27.6|>=1.29,<1.29.3|>=1.30,<1.30.2|>=1.31,<1.31.9|>=1.32,<1.32.6|>=1.32.99,<1.33.3|>=1.33.99,<1.34.3|>=1.34.99,<1.35",
"mediawiki/matomo": "<2.4.3",
"melisplatform/melis-asset-manager": "<5.0.1",
@@ -1453,53 +1479,65 @@
"melisplatform/melis-front": "<5.0.1",
"mezzio/mezzio-swoole": "<3.7|>=4,<4.3",
"mgallegos/laravel-jqgrid": "<=1.3",
- "microweber/microweber": "= 1.1.18|<=1.3.4",
+ "microweber/microweber": "<=2.0.4",
"miniorange/miniorange-saml": "<1.4.3",
"mittwald/typo3_forum": "<1.2.1",
"mobiledetect/mobiledetectlib": "<2.8.32",
- "modx/revolution": "<= 2.8.3-pl|<2.8",
+ "modx/revolution": "<=2.8.3.0-patch",
"mojo42/jirafeau": "<4.4",
+ "mongodb/mongodb": ">=1,<1.9.2",
"monolog/monolog": ">=1.8,<1.12",
- "moodle/moodle": "<4.2-rc.2|= 3.7|= 3.9|= 3.8|= 4.2.0|= 3.11",
+ "moodle/moodle": "<4.3.0.0-RC2-dev",
+ "mos/cimage": "<0.7.19",
"movim/moxl": ">=0.8,<=0.10",
"mpdf/mpdf": "<=7.1.7",
+ "munkireport/comment": "<4.1",
+ "munkireport/managedinstalls": "<2.6",
+ "munkireport/munkireport": ">=2.5.3,<5.6.3",
"mustache/mustache": ">=2,<2.14.1",
"namshi/jose": "<2.2",
"neoan3-apps/template": "<1.1.1",
- "neorazorx/facturascripts": "<2022.4",
+ "neorazorx/facturascripts": "<2022.04",
"neos/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
"neos/form": ">=1.2,<4.3.3|>=5,<5.0.9|>=5.1,<5.1.3",
"neos/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.9.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<5.3.10|>=7,<7.0.9|>=7.1,<7.1.7|>=7.2,<7.2.6|>=7.3,<7.3.4|>=8,<8.0.2",
+ "neos/neos-ui": "<=8.3.3",
"neos/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
"netgen/tagsbundle": ">=3.4,<3.4.11|>=4,<4.0.15",
"nette/application": ">=2,<2.0.19|>=2.1,<2.1.13|>=2.2,<2.2.10|>=2.3,<2.3.14|>=2.4,<2.4.16|>=3,<3.0.6",
"nette/nette": ">=2,<2.0.19|>=2.1,<2.1.13",
"nilsteampassnet/teampass": "<3.0.10",
+ "nonfiction/nterchange": "<4.1.1",
"notrinos/notrinos-erp": "<=0.7",
"noumo/easyii": "<=0.9",
- "nukeviet/nukeviet": "<4.5.2",
+ "nukeviet/nukeviet": "<4.5.02",
"nyholm/psr7": "<1.6.1",
"nystudio107/craft-seomatic": "<3.4.12",
"nzo/url-encryptor-bundle": ">=4,<4.3.2|>=5,<5.0.1",
"october/backend": "<1.1.2",
- "october/cms": "= 1.1.1|= 1.0.471|= 1.0.469|>=1.0.319,<1.0.469",
- "october/october": ">=1.0.319,<1.0.466|>=2.1,<2.1.12",
+ "october/cms": "<1.0.469|==1.0.469|==1.0.471|==1.1.1",
+ "october/october": "<=3.4.4",
"october/rain": "<1.0.472|>=1.1,<1.1.2",
- "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.0.66",
+ "october/system": "<1.0.476|>=1.1,<1.1.12|>=2,<2.2.34|>=3,<3.5.2",
+ "omeka/omeka-s": "<4.0.3",
"onelogin/php-saml": "<2.10.4",
"oneup/uploader-bundle": "<1.9.3|>=2,<2.1.5",
"open-web-analytics/open-web-analytics": "<1.7.4",
- "opencart/opencart": "<=3.0.3.7",
+ "opencart/opencart": "<=3.0.3.7|>=4,<4.0.2.3-dev",
"openid/php-openid": "<2.3",
- "openmage/magento-lts": "<19.4.22|>=20,<20.0.19",
+ "openmage/magento-lts": "<=19.5|>=20,<=20.1",
"opensource-workshop/connect-cms": "<1.7.2|>=2,<2.3.2",
- "orchid/platform": ">=9,<9.4.4|>=14-alpha.4,<14.5",
- "oro/commerce": ">=4.1,<5.0.6",
+ "orchid/platform": ">=9,<9.4.4|>=14.0.0.0-alpha4,<14.5",
+ "oro/calendar-bundle": ">=4.2,<=4.2.6|>=5,<=5.0.6|>=5.1,<5.1.1",
+ "oro/commerce": ">=4.1,<5.0.11|>=5.1,<5.1.1",
"oro/crm": ">=1.7,<1.7.4|>=3.1,<4.1.17|>=4.2,<4.2.7",
- "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<4.2.8",
+ "oro/crm-call-bundle": ">=4.2,<=4.2.5|>=5,<5.0.4|>=5.1,<5.1.1",
+ "oro/customer-portal": ">=4.2,<=4.2.8|>=5,<5.0.11|>=5.1,<5.1.1",
+ "oro/platform": ">=1.7,<1.7.4|>=3.1,<3.1.29|>=4.1,<4.1.17|>=4.2,<=4.2.10|>=5,<5.0.8",
+ "oxid-esales/oxideshop-ce": "<4.5",
"packbackbooks/lti-1-3-php-library": "<5",
"padraic/humbug_get_contents": "<1.1.2",
- "pagarme/pagarme-php": ">=0,<3",
+ "pagarme/pagarme-php": "<3",
"pagekit/pagekit": "<=1.0.18",
"paragonie/random_compat": "<2",
"passbolt/passbolt_api": "<2.11",
@@ -1519,7 +1557,7 @@
"phpmyfaq/phpmyfaq": "<=3.1.7",
"phpoffice/phpexcel": "<1.8",
"phpoffice/phpspreadsheet": "<1.16",
- "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.19",
+ "phpseclib/phpseclib": "<2.0.31|>=3,<3.0.34",
"phpservermon/phpservermon": "<3.6",
"phpsysinfo/phpsysinfo": "<3.2.5",
"phpunit/phpunit": ">=4.8.19,<4.8.28|>=5,<5.6.3",
@@ -1527,39 +1565,47 @@
"phpxmlrpc/extras": "<0.6.1",
"phpxmlrpc/phpxmlrpc": "<4.9.2",
"pi/pi": "<=2.5",
- "pimcore/admin-ui-classic-bundle": "<1.0.3",
- "pimcore/customer-management-framework-bundle": "<3.4.1",
+ "pimcore/admin-ui-classic-bundle": "<1.2.2",
+ "pimcore/customer-management-framework-bundle": "<3.4.2",
"pimcore/data-hub": "<1.2.4",
+ "pimcore/demo": "<10.3",
"pimcore/perspective-editor": "<1.5.1",
- "pimcore/pimcore": "<10.5.24",
+ "pimcore/pimcore": "<11.1.1",
"pixelfed/pixelfed": "<=0.11.4",
"pocketmine/bedrock-protocol": "<8.0.2",
- "pocketmine/pocketmine-mp": "<4.22.3|>=5,<5.2.1|< 4.18.0-ALPHA2|>= 4.0.0-BETA5, < 4.4.2",
+ "pocketmine/pocketmine-mp": "<=4.23|>=5,<5.3.1",
+ "pocketmine/raklib": ">=0.14,<0.14.6|>=0.15,<0.15.1",
"pressbooks/pressbooks": "<5.18",
"prestashop/autoupgrade": ">=4,<4.10.1",
+ "prestashop/blockreassurance": "<=5.1.3",
"prestashop/blockwishlist": ">=2,<2.1.1",
"prestashop/contactform": ">=1.0.1,<4.3",
"prestashop/gamification": "<2.3.2",
- "prestashop/prestashop": "<8.0.4",
+ "prestashop/prestashop": "<8.1.2",
"prestashop/productcomments": "<5.0.2",
"prestashop/ps_emailsubscription": "<2.6.1",
"prestashop/ps_facetedsearch": "<3.4.1",
"prestashop/ps_linklist": "<3.1",
"privatebin/privatebin": "<1.4",
"processwire/processwire": "<=3.0.200",
- "propel/propel": ">=2-alpha.1,<=2-alpha.7",
+ "propel/propel": ">=2.0.0.0-alpha1,<=2.0.0.0-alpha7",
"propel/propel1": ">=1,<=1.7.1",
"pterodactyl/panel": "<1.7",
+ "ptheofan/yii2-statemachine": ">=2.0.0.0-RC1-dev,<=2",
"ptrofimov/beanstalk_console": "<1.7.14",
"pusher/pusher-php-server": "<2.2.1",
- "pwweb/laravel-core": "<=0.3.6-beta",
+ "pwweb/laravel-core": "<=0.3.6.0-beta",
"pyrocms/pyrocms": "<=3.9.1",
+ "rainlab/blog-plugin": "<1.4.1",
"rainlab/debugbar-plugin": "<3.1",
+ "rainlab/user-plugin": "<=1.4.5",
"rankmath/seo-by-rank-math": "<=1.0.95",
"rap2hpoutre/laravel-log-viewer": "<0.13",
"react/http": ">=0.7,<1.9",
"really-simple-plugins/complianz-gdpr": "<6.4.2",
"remdex/livehelperchat": "<3.99",
+ "reportico-web/reportico": "<=7.1.21",
+ "rhukster/dom-sanitizer": "<1.0.7",
"rmccue/requests": ">=1.6,<1.8",
"robrichards/xmlseclibs": "<3.0.4",
"roots/soil": "<4.1",
@@ -1568,7 +1614,7 @@
"s-cart/s-cart": "<6.9",
"sabberworm/php-css-parser": ">=1,<1.0.1|>=2,<2.0.1|>=3,<3.0.1|>=4,<4.0.1|>=5,<5.0.9|>=5.1,<5.1.3|>=5.2,<5.2.1|>=6,<6.0.2|>=7,<7.0.4|>=8,<8.0.1|>=8.1,<8.1.1|>=8.2,<8.2.1|>=8.3,<8.3.1",
"sabre/dav": "<1.7.11|>=1.8,<1.8.9",
- "scheb/two-factor-bundle": ">=0,<3.26|>=4,<4.11",
+ "scheb/two-factor-bundle": "<3.26|>=4,<4.11",
"sensiolabs/connect": "<4.2.3",
"serluck/phpwhois": "<=4.2.6",
"sfroemken/url_redirect": "<=1.2.1",
@@ -1581,14 +1627,15 @@
"shopxo/shopxo": "<2.2.6",
"showdoc/showdoc": "<2.10.4",
"silverstripe-australia/advancedreports": ">=1,<=2",
- "silverstripe/admin": "<1.12.7",
+ "silverstripe/admin": "<1.13.6",
"silverstripe/assets": ">=1,<1.11.1",
"silverstripe/cms": "<4.11.3",
"silverstripe/comments": ">=1.3,<1.9.99|>=2,<2.9.99|>=3,<3.1.1",
"silverstripe/forum": "<=0.6.1|>=0.7,<=0.7.3",
- "silverstripe/framework": "<4.12.5",
- "silverstripe/graphql": "<3.5.2|>=4-alpha.1,<4-alpha.2|>=4.1.1,<4.1.2|>=4.2.2,<4.2.3|= 4.0.0-alpha1",
+ "silverstripe/framework": "<4.13.14|>=5,<5.0.13",
+ "silverstripe/graphql": "<3.8.2|>=4,<4.1.3|>=4.2,<4.2.5|>=4.3,<4.3.4|>=5,<5.0.3",
"silverstripe/hybridsessions": ">=1,<2.4.1|>=2.5,<2.5.1",
+ "silverstripe/recipe-cms": ">=4.5,<4.5.3",
"silverstripe/registry": ">=2.1,<2.1.2|>=2.2,<2.2.1",
"silverstripe/restfulserver": ">=1,<1.0.9|>=2,<2.0.4",
"silverstripe/silverstripe-omnipay": "<2.5.2|>=3,<3.0.2|>=3.1,<3.1.4|>=3.2,<3.2.1",
@@ -1597,36 +1644,38 @@
"silverstripe/userforms": "<3",
"silverstripe/versioned-admin": ">=1,<1.11.1",
"simple-updates/phpwhois": "<=1",
- "simplesamlphp/saml2": "<1.10.6|>=2,<2.3.8|>=3,<3.1.4",
+ "simplesamlphp/saml2": "<1.15.4|>=2,<2.3.8|>=3,<3.1.4|==5.0.0.0-alpha12",
"simplesamlphp/simplesamlphp": "<1.18.6",
"simplesamlphp/simplesamlphp-module-infocard": "<1.0.1",
"simplesamlphp/simplesamlphp-module-openid": "<1",
"simplesamlphp/simplesamlphp-module-openidprovider": "<0.9",
+ "simplesamlphp/xml-security": "==1.6.11",
"simplito/elliptic-php": "<1.0.6",
"sitegeist/fluid-components": "<3.5",
- "sjbr/sr-freecap": "<=2.5.2",
+ "sjbr/sr-freecap": "<2.4.6|>=2.5,<2.5.3",
"slim/psr7": "<1.4.1|>=1.5,<1.5.1|>=1.6,<1.6.1",
"slim/slim": "<2.6",
+ "slub/slub-events": "<3.0.3",
"smarty/smarty": "<3.1.48|>=4,<4.3.1",
- "snipe/snipe-it": "<=6.0.14|>= 6.0.0-RC-1, <= 6.0.0-RC-5",
+ "snipe/snipe-it": "<=6.2.2",
"socalnick/scn-social-auth": "<1.15.2",
"socialiteproviders/steam": "<1.1",
"spatie/browsershot": "<3.57.4",
- "spipu/html2pdf": "<5.2.4",
+ "spipu/html2pdf": "<5.2.8",
"spoon/library": "<1.4.1",
"spoonity/tcpdf": "<6.2.22",
"squizlabs/php_codesniffer": ">=1,<2.8.1|>=3,<3.0.1",
- "ssddanbrown/bookstack": "<22.2.3",
- "statamic/cms": "<4.10",
- "stormpath/sdk": ">=0,<9.9.99",
+ "ssddanbrown/bookstack": "<22.02.3",
+ "statamic/cms": "<4.36",
+ "stormpath/sdk": "<9.9.99",
"studio-42/elfinder": "<2.1.62",
"subhh/libconnect": "<7.0.8|>=8,<8.1",
- "subrion/cms": "<=4.2.1",
"sukohi/surpass": "<1",
- "sulu/sulu": "= 2.4.0-RC1|<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8",
+ "sulu/sulu": "<1.6.44|>=2,<2.2.18|>=2.3,<2.3.8|==2.4.0.0-RC1|>=2.5,<2.5.10",
"sumocoders/framework-user-bundle": "<1.4",
"swag/paypal": "<5.4.4",
"swiftmailer/swiftmailer": ">=4,<5.4.5",
+ "swiftyedit/swiftyedit": "<1.2",
"sylius/admin-bundle": ">=1,<1.0.17|>=1.1,<1.1.9|>=1.2,<1.2.2",
"sylius/grid": ">=1,<1.1.19|>=1.2,<1.2.18|>=1.3,<1.3.13|>=1.4,<1.4.5|>=1.5,<1.5.1",
"sylius/grid-bundle": "<1.10.1",
@@ -1642,7 +1691,7 @@
"symfony/dependency-injection": ">=2,<2.0.17|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7",
"symfony/error-handler": ">=4.4,<4.4.4|>=5,<5.0.4",
"symfony/form": ">=2.3,<2.3.35|>=2.4,<2.6.12|>=2.7,<2.7.50|>=2.8,<2.8.49|>=3,<3.4.20|>=4,<4.0.15|>=4.1,<4.1.9|>=4.2,<4.2.1",
- "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3|= 6.0.3|= 5.4.3|= 5.3.14",
+ "symfony/framework-bundle": ">=2,<2.3.18|>=2.4,<2.4.8|>=2.5,<2.5.2|>=2.7,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.1.12|>=4.2,<4.2.7|>=5.3.14,<=5.3.14|>=5.4.3,<=5.4.3|>=6.0.3,<=6.0.3",
"symfony/http-foundation": ">=2,<2.8.52|>=3,<3.4.35|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7",
"symfony/http-kernel": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
"symfony/intl": ">=2.7,<2.7.38|>=2.8,<2.8.31|>=3,<3.2.14|>=3.3,<3.3.13",
@@ -1658,48 +1707,56 @@
"symfony/security-core": ">=2.4,<2.6.13|>=2.7,<2.7.9|>=2.7.30,<2.7.32|>=2.8,<3.4.49|>=4,<4.4.24|>=5,<5.2.9",
"symfony/security-csrf": ">=2.4,<2.7.48|>=2.8,<2.8.41|>=3,<3.3.17|>=3.4,<3.4.11|>=4,<4.0.11",
"symfony/security-guard": ">=2.8,<3.4.48|>=4,<4.4.23|>=5,<5.2.8",
- "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2",
+ "symfony/security-http": ">=2.3,<2.3.41|>=2.4,<2.7.51|>=2.8,<2.8.50|>=3,<3.4.26|>=4,<4.2.12|>=4.3,<4.3.8|>=4.4,<4.4.7|>=5,<5.0.7|>=5.1,<5.2.8|>=5.3,<5.3.2|>=5.4,<5.4.31|>=6,<6.3.8",
"symfony/serializer": ">=2,<2.0.11|>=4.1,<4.4.35|>=5,<5.3.12",
- "symfony/symfony": ">=2,<4.4.50|>=5,<5.4.20|>=6,<6.0.20|>=6.1,<6.1.12|>=6.2,<6.2.6",
+ "symfony/symfony": "<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
"symfony/translation": ">=2,<2.0.17",
+ "symfony/twig-bridge": ">=2,<4.4.51|>=5,<5.4.31|>=6,<6.3.8",
+ "symfony/ux-autocomplete": "<2.11.2",
"symfony/validator": ">=2,<2.0.24|>=2.1,<2.1.12|>=2.2,<2.2.5|>=2.3,<2.3.3",
"symfony/var-exporter": ">=4.2,<4.2.12|>=4.3,<4.3.8",
"symfony/web-profiler-bundle": ">=2,<2.3.19|>=2.4,<2.4.9|>=2.5,<2.5.4",
+ "symfony/webhook": ">=6.3,<6.3.8",
"symfony/yaml": ">=2,<2.0.22|>=2.1,<2.1.7",
- "t3/dce": ">=2.2,<2.6.2",
+ "t3/dce": "<0.11.5|>=2.2,<2.6.2",
"t3g/svg-sanitizer": "<1.0.3",
"tastyigniter/tastyigniter": "<3.3",
"tcg/voyager": "<=1.4",
"tecnickcom/tcpdf": "<6.2.22",
"terminal42/contao-tablelookupwizard": "<3.3.5",
"thelia/backoffice-default-template": ">=2.1,<2.1.2",
- "thelia/thelia": ">=2.1-beta.1,<2.1.3",
+ "thelia/thelia": ">=2.1,<2.1.3",
"theonedemon/phpwhois": "<=4.2.5",
"thinkcmf/thinkcmf": "<=5.1.7",
- "thorsten/phpmyfaq": "<3.2-beta.2",
- "tinymce/tinymce": "<5.10.7|>=6,<6.3.1",
+ "thorsten/phpmyfaq": "<3.2.2",
+ "tikiwiki/tiki-manager": "<=17.1",
+ "tinymce/tinymce": "<5.10.9|>=6,<6.7.3",
"tinymighty/wiki-seo": "<1.2.2",
- "titon/framework": ">=0,<9.9.99",
- "tobiasbg/tablepress": "<= 2.0-RC1",
+ "titon/framework": "<9.9.99",
+ "tobiasbg/tablepress": "<=2.0.0.0-RC1",
"topthink/framework": "<6.0.14",
"topthink/think": "<=6.1.1",
"topthink/thinkphp": "<=3.2.3",
"tpwd/ke_search": "<4.0.3|>=4.1,<4.6.6|>=5,<5.0.2",
- "tribalsystems/zenario": "<=9.3.57595",
+ "tribalsystems/zenario": "<=9.4.59197",
"truckersmp/phpwhois": "<=4.3.1",
"ttskch/pagination-service-provider": "<1",
"twig/twig": "<1.44.7|>=2,<2.15.3|>=3,<3.4.3",
- "typo3/cms": "<2.0.5|>=3,<3.0.3|>=6.2,<=6.2.38|>=7,<7.6.32|>=8,<8.7.38|>=9,<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms": "<9.5.29|>=10,<10.4.35|>=11,<11.5.23|>=12,<12.2",
"typo3/cms-backend": ">=7,<=7.6.50|>=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
- "typo3/cms-core": "<8.7.51|>=9,<9.5.40|>=10,<10.4.36|>=11,<11.5.23|>=12,<12.2",
+ "typo3/cms-core": "<=8.7.54|>=9,<=9.5.43|>=10,<=10.4.40|>=11,<=11.5.32|>=12,<=12.4.7",
+ "typo3/cms-extbase": "<6.2.24|>=7,<7.6.8|==8.1.1",
"typo3/cms-form": ">=8,<=8.7.39|>=9,<=9.5.24|>=10,<=10.4.13|>=11,<=11.1",
+ "typo3/cms-install": ">=12.2,<12.4.8",
+ "typo3/cms-rte-ckeditor": ">=9.5,<9.5.42|>=10,<10.4.39|>=11,<11.5.30",
"typo3/flow": ">=1,<1.0.4|>=1.1,<1.1.1|>=2,<2.0.1|>=2.3,<2.3.16|>=3,<3.0.12|>=3.1,<3.1.10|>=3.2,<3.2.13|>=3.3,<3.3.13|>=4,<4.0.6",
- "typo3/html-sanitizer": ">=1,<1.5|>=2,<2.1.1",
+ "typo3/html-sanitizer": ">=1,<=1.5.2|>=2,<=2.1.3",
"typo3/neos": ">=1.1,<1.1.3|>=1.2,<1.2.13|>=2,<2.0.4|>=2.3,<2.3.99|>=3,<3.0.20|>=3.1,<3.1.18|>=3.2,<3.2.14|>=3.3,<3.3.23|>=4,<4.0.17|>=4.1,<4.1.16|>=4.2,<4.2.12|>=4.3,<4.3.3",
"typo3/phar-stream-wrapper": ">=1,<2.1.1|>=3,<3.1.1",
"typo3/swiftmailer": ">=4.1,<4.1.99|>=5.4,<5.4.5",
"typo3fluid/fluid": ">=2,<2.0.8|>=2.1,<2.1.7|>=2.2,<2.2.4|>=2.3,<2.3.7|>=2.4,<2.4.4|>=2.5,<2.5.11|>=2.6,<2.6.10",
"ua-parser/uap-php": "<3.8",
+ "uasoft-indonesia/badaso": "<=2.9.7",
"unisharp/laravel-filemanager": "<=2.5.1",
"userfrosting/userfrosting": ">=0.3.1,<4.6.3",
"usmanhalalit/pixie": "<1.0.3|>=2,<2.0.2",
@@ -1708,8 +1765,9 @@
"verot/class.upload.php": "<=1.0.3|>=2,<=2.0.4",
"vova07/yii2-fileapi-widget": "<0.1.9",
"vrana/adminer": "<4.8.1",
+ "waldhacker/hcaptcha": "<2.1.2",
"wallabag/tcpdf": "<6.2.22",
- "wallabag/wallabag": "<=2.5.4",
+ "wallabag/wallabag": "<2.6.7",
"wanglelecc/laracms": "<=1.0.3",
"web-auth/webauthn-framework": ">=3.3,<3.3.4",
"webbuilders-group/silverstripe-kapost-bridge": "<0.4",
@@ -1733,7 +1791,7 @@
"yetiforce/yetiforce-crm": "<=6.4",
"yidashi/yii2cmf": "<=2",
"yii2mod/yii2-cms": "<1.9.2",
- "yiisoft/yii": "<1.1.27",
+ "yiisoft/yii": "<1.1.29",
"yiisoft/yii2": "<2.0.38",
"yiisoft/yii2-bootstrap": "<2.0.4",
"yiisoft/yii2-dev": "<2.0.43",
@@ -1744,9 +1802,9 @@
"yikesinc/yikes-inc-easy-mailchimp-extender": "<6.8.6",
"yoast-seo-for-typo3/yoast_seo": "<7.2.3",
"yourls/yourls": "<=1.8.2",
- "zencart/zencart": "<1.5.8",
+ "zencart/zencart": "<=1.5.7.0-beta",
"zendesk/zendesk_api_client_php": "<2.2.11",
- "zendframework/zend-cache": ">=2.4,<2.4.8|>=2.5,<2.5.3",
+ "zendframework/zend-cache": "<2.4.8|>=2.5,<2.5.3",
"zendframework/zend-captcha": ">=2,<2.4.9|>=2.5,<2.5.2",
"zendframework/zend-crypt": ">=2,<2.4.9|>=2.5,<2.5.2",
"zendframework/zend-db": ">=2,<2.0.99|>=2.1,<2.1.99|>=2.2,<2.2.10|>=2.3,<2.3.5",
@@ -1765,12 +1823,20 @@
"zendframework/zend-xmlrpc": ">=2.1,<2.1.6|>=2.2,<2.2.6",
"zendframework/zendframework": "<=3",
"zendframework/zendframework1": "<1.12.20",
- "zendframework/zendopenid": ">=2,<2.0.2",
- "zendframework/zendxml": ">=1,<1.0.1",
+ "zendframework/zendopenid": "<2.0.2",
+ "zendframework/zendrest": "<2.0.2",
+ "zendframework/zendservice-amazon": "<2.0.3",
+ "zendframework/zendservice-api": "<1",
+ "zendframework/zendservice-audioscrobbler": "<2.0.2",
+ "zendframework/zendservice-nirvanix": "<2.0.2",
+ "zendframework/zendservice-slideshare": "<2.0.2",
+ "zendframework/zendservice-technorati": "<2.0.2",
+ "zendframework/zendservice-windowsazure": "<2.0.2",
+ "zendframework/zendxml": "<1.0.1",
"zenstruck/collection": "<0.2.1",
"zetacomponents/mail": "<1.8.2",
"zf-commons/zfc-user": "<1.2.2",
- "zfcampus/zf-apigility-doctrine": ">=1,<1.0.3",
+ "zfcampus/zf-apigility-doctrine": "<1.0.3",
"zfr/zfr-oauth2-server-module": "<0.1.2",
"zoujingli/thinkadmin": "<6.0.22"
},
@@ -1809,7 +1875,7 @@
"type": "tidelift"
}
],
- "time": "2023-07-19T22:04:22+00:00"
+ "time": "2023-12-05T01:28:42+00:00"
},
{
"name": "sebastian/cli-parser",
diff --git a/lib/Db/BoardMapper.php b/lib/Db/BoardMapper.php
index 88613fb30..eec9ce901 100644
--- a/lib/Db/BoardMapper.php
+++ b/lib/Db/BoardMapper.php
@@ -23,10 +23,10 @@
namespace OCA\Deck\Db;
-use OC\Cache\CappedMemoryCache;
use OCA\Deck\Service\CirclesService;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Db\QBMapper;
+use OCP\Cache\CappedMemoryCache;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
use OCP\IGroupManager;
@@ -35,37 +35,22 @@
/** @template-extends QBMapper */
class BoardMapper extends QBMapper implements IPermissionMapper {
- private $labelMapper;
- private $aclMapper;
- private $stackMapper;
- private $userManager;
- private $groupManager;
- private $circlesService;
- private $logger;
-
/** @var CappedMemoryCache */
- private $userBoardCache;
+ private CappedMemoryCache $userBoardCache;
/** @var CappedMemoryCache */
- private $boardCache;
+ private CappedMemoryCache $boardCache;
public function __construct(
IDBConnection $db,
- LabelMapper $labelMapper,
- AclMapper $aclMapper,
- StackMapper $stackMapper,
- IUserManager $userManager,
- IGroupManager $groupManager,
- CirclesService $circlesService,
- LoggerInterface $logger
+ private LabelMapper $labelMapper,
+ private AclMapper $aclMapper,
+ private StackMapper $stackMapper,
+ private IUserManager $userManager,
+ private IGroupManager $groupManager,
+ private CirclesService $circlesService,
+ private LoggerInterface $logger
) {
parent::__construct($db, 'deck_boards', Board::class);
- $this->labelMapper = $labelMapper;
- $this->aclMapper = $aclMapper;
- $this->stackMapper = $stackMapper;
- $this->userManager = $userManager;
- $this->groupManager = $groupManager;
- $this->circlesService = $circlesService;
- $this->logger = $logger;
$this->userBoardCache = new CappedMemoryCache();
$this->boardCache = new CappedMemoryCache();
@@ -81,7 +66,8 @@ public function __construct(
* @throws DoesNotExistException
*/
public function find(int $id, bool $withLabels = false, bool $withAcl = false, bool $allowDeleted = false): Board {
- if (!isset($this->boardCache[$id])) {
+ $cacheKey = (string)$id;
+ if (!isset($this->boardCache[$cacheKey])) {
$qb = $this->db->getQueryBuilder();
$deletedWhere = $allowDeleted ? $qb->expr()->gte('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT)) : $qb->expr()->eq('deleted_at', $qb->createNamedParameter(0, IQueryBuilder::PARAM_INT));
$qb->select('*')
@@ -89,22 +75,22 @@ public function find(int $id, bool $withLabels = false, bool $withAcl = false, b
->where($qb->expr()->eq('id', $qb->createNamedParameter($id, IQueryBuilder::PARAM_INT)))
->andWhere($deletedWhere)
->orderBy('id');
- $this->boardCache[$id] = $this->findEntity($qb);
+ $this->boardCache[(string)$id] = $this->findEntity($qb);
}
// Add labels
- if ($withLabels && $this->boardCache[$id]->getLabels() === null) {
+ if ($withLabels && $this->boardCache[$cacheKey]->getLabels() === null) {
$labels = $this->labelMapper->findAll($id);
- $this->boardCache[$id]->setLabels($labels);
+ $this->boardCache[$cacheKey]->setLabels($labels);
}
// Add acl
- if ($withAcl && $this->boardCache[$id]->getAcl() === null) {
+ if ($withAcl && $this->boardCache[$cacheKey]->getAcl() === null) {
$acl = $this->aclMapper->findAll($id);
- $this->boardCache[$id]->setAcl($acl);
+ $this->boardCache[$cacheKey]->setAcl($acl);
}
- return $this->boardCache[$id];
+ return $this->boardCache[$cacheKey];
}
public function findBoardIds(string $userId): array {
@@ -464,8 +450,7 @@ public function findBoardId($id): ?int {
}
public function mapAcl(Acl &$acl) {
- $groupManager = $this->groupManager;
- $acl->resolveRelation('participant', function ($participant) use (&$acl, &$userManager, &$groupManager) {
+ $acl->resolveRelation('participant', function ($participant) use (&$acl) {
if ($acl->getType() === Acl::PERMISSION_TYPE_USER) {
if ($this->userManager->userExists($acl->getParticipant())) {
return new User($acl->getParticipant(), $this->userManager);
@@ -474,7 +459,7 @@ public function mapAcl(Acl &$acl) {
return null;
}
if ($acl->getType() === Acl::PERMISSION_TYPE_GROUP) {
- $group = $groupManager->get($participant);
+ $group = $this->groupManager->get($participant);
if ($group !== null) {
return new Group($group);
}
diff --git a/tests/integration/database/AssignmentMapperTest.php b/tests/integration/database/AssignmentMapperTest.php
index 9b9f08070..e2c2119e2 100644
--- a/tests/integration/database/AssignmentMapperTest.php
+++ b/tests/integration/database/AssignmentMapperTest.php
@@ -55,6 +55,13 @@ class AssignmentMapperTest extends \Test\TestCase {
/** @var AssignmentService */
private $assignmentService;
+ /** @var Board */
+ private $board;
+ /** @var Card[] */
+ private $cards;
+ /** @var Stack[] */
+ private $stacks;
+
public static function setUpBeforeClass(): void {
parent::setUpBeforeClass();
diff --git a/tests/integration/features/bootstrap/SessionContext.php b/tests/integration/features/bootstrap/SessionContext.php
index e9703a0a1..b26b221a3 100644
--- a/tests/integration/features/bootstrap/SessionContext.php
+++ b/tests/integration/features/bootstrap/SessionContext.php
@@ -9,13 +9,9 @@
class SessionContext implements Context {
use RequestTrait;
- /** @var ServerContext */
- private $serverContext;
-
- /** @var BoardContext */
- private $boardContext;
-
- private $tokens = [];
+ private ServerContext $serverContext;
+ private BoardContext $boardContext;
+ private array $tokens = [];
/** @BeforeScenario */
public function gatherContexts(BeforeScenarioScope $scope) {
@@ -40,7 +36,7 @@ public function opensTheBoardNamed($name) {
// store token
$user = $this->serverContext->getCurrentUser();
- $this->token[$user] = $res['ocs']['data']['token'];
+ $this->tokens[$user] = $res['ocs']['data']['token'];
}
/**
@@ -70,7 +66,7 @@ public function closingTheBoardNamed($name) {
}
$user = $this->serverContext->getCurrentUser();
- $token = $this->token[$user];
+ $token = $this->tokens[$user];
Assert::assertNotEmpty($token, "no token for the user found");
$this->requestContext->sendOCSRequest('POST', '/apps/deck/api/v1.0/session/close', [
'boardId' => $board['id'],
diff --git a/tests/unit/Activity/CommentEventHandlerTest.php b/tests/unit/Activity/CommentEventHandlerTest.php
index 107ba10cf..07a88e1da 100644
--- a/tests/unit/Activity/CommentEventHandlerTest.php
+++ b/tests/unit/Activity/CommentEventHandlerTest.php
@@ -39,6 +39,8 @@ class CommentEventHandlerTest extends TestCase {
private $activityManager;
/** @var NotificationHelper */
private $notificationHelper;
+ /** @var ChangeHelper */
+ private $changeHelper;
/** @var CardMapper */
private $cardMapper;
diff --git a/tests/unit/Activity/DeckProviderTest.php b/tests/unit/Activity/DeckProviderTest.php
index 02b6be1c2..e018cc0e1 100644
--- a/tests/unit/Activity/DeckProviderTest.php
+++ b/tests/unit/Activity/DeckProviderTest.php
@@ -41,10 +41,12 @@
use PHPUnit_Framework_MockObject_MockObject as MockObject;
class DeckProviderTest extends TestCase {
-
/** @var DeckProvider */
private $provider;
+ /** @var IL10N */
+ private $l10n;
+
/** @var IURLGenerator|MockObject */
private $urlGenerator;
@@ -57,6 +59,9 @@ class DeckProviderTest extends TestCase {
/** @var ICommentsManager|MockObject */
private $commentsManager;
+ private $l10nFactory;
+ private $config;
+
/** @var CardService|MockObject */
private $cardService;
@@ -71,7 +76,6 @@ public function setUp(): void {
$this->commentsManager = $this->createMock(ICommentsManager::class);
$this->l10nFactory = $this->createMock(IFactory::class);
$this->config = $this->createMock(IConfig::class);
- $this->config = $this->createMock(IConfig::class);
$this->cardService = $this->createMock(CardService::class);
$this->provider = new DeckProvider($this->urlGenerator, $this->activityManager, $this->userManager, $this->commentsManager, $this->l10nFactory, $this->config, $this->userId, $this->cardService);
}
diff --git a/tests/unit/Db/BoardMapperTest.php b/tests/unit/Db/BoardMapperTest.php
index 82e611c69..f7189a158 100644
--- a/tests/unit/Db/BoardMapperTest.php
+++ b/tests/unit/Db/BoardMapperTest.php
@@ -38,6 +38,7 @@ class BoardMapperTest extends TestCase {
/** @var IDBConnection */
private $dbConnection;
+ private $labelMapper;
/** @var AclMapper|\PHPUnit\Framework\MockObject\MockObject */
private $aclMapper;
/** @var BoardMapper */
diff --git a/tests/unit/Db/RelationalEntityTest.php b/tests/unit/Db/RelationalEntityTest.php
index d9b4360b5..ffedbfd7f 100644
--- a/tests/unit/Db/RelationalEntityTest.php
+++ b/tests/unit/Db/RelationalEntityTest.php
@@ -23,18 +23,22 @@
namespace OCA\Deck\Db;
+class MyRelationalEntity extends RelationalEntity {
+ protected $foo;
+}
+
class RelationalEntityTest extends \Test\TestCase {
public function testRelation() {
- $entity = new RelationalEntity();
- $entity->foo = null;
+ $entity = new MyRelationalEntity();
+ $entity->setFoo(null);
$entity->addRelation('foo');
$entity->setFoo('test');
$this->assertEquals([], $entity->getUpdatedFields());
}
public function testWithoutRelation() {
- $entity = new RelationalEntity();
- $entity->foo = null;
+ $entity = new MyRelationalEntity();
+ $entity->setFoo(null);
$entity->setFoo('test');
$this->assertEquals(['foo' => true], $entity->getUpdatedFields());
}
diff --git a/tests/unit/Middleware/ExceptionMiddlewareTest.php b/tests/unit/Middleware/ExceptionMiddlewareTest.php
index c737fe672..546d645f9 100644
--- a/tests/unit/Middleware/ExceptionMiddlewareTest.php
+++ b/tests/unit/Middleware/ExceptionMiddlewareTest.php
@@ -41,6 +41,7 @@ class ExceptionMiddlewareTest extends \Test\TestCase {
private $logger;
/** @var IConfig */
private $config;
+ private $request;
private $controller;
private $exceptionMiddleware;
diff --git a/tests/unit/Reference/CardReferenceProviderTest.php b/tests/unit/Reference/CardReferenceProviderTest.php
index de2ac1362..e75efd228 100644
--- a/tests/unit/Reference/CardReferenceProviderTest.php
+++ b/tests/unit/Reference/CardReferenceProviderTest.php
@@ -34,6 +34,14 @@
use Test\TestCase;
class CardReferenceProviderTest extends TestCase {
+ private $cardService;
+ private $boardService;
+ private $stackService;
+ private $urlGenerator;
+ private $l10n;
+ private $userId;
+ private $provider;
+
public function setUp() : void {
parent::setUp();
diff --git a/tests/unit/Service/BoardServiceTest.php b/tests/unit/Service/BoardServiceTest.php
index 2d9610058..f02e456ba 100644
--- a/tests/unit/Service/BoardServiceTest.php
+++ b/tests/unit/Service/BoardServiceTest.php
@@ -56,6 +56,8 @@ class BoardServiceTest extends TestCase {
/** @var BoardService */
private $service;
+ /** @var IConfig */
+ private $config;
/** @var L10N */
private $l10n;
/** @var LabelMapper */
diff --git a/tests/unit/Service/PermissionServiceTest.php b/tests/unit/Service/PermissionServiceTest.php
index d0d236b2e..2a5d2b933 100644
--- a/tests/unit/Service/PermissionServiceTest.php
+++ b/tests/unit/Service/PermissionServiceTest.php
@@ -42,6 +42,9 @@
class PermissionServiceTest extends \Test\TestCase {
+ /** @var IRequest */
+ private $request;
+ private $circlesService;
/** @var PermissionService*/
private $service;
/** @var ILogger */
diff --git a/tests/unit/controller/BoardApiControllerTest.php b/tests/unit/controller/BoardApiControllerTest.php
index d74b0bd7d..21a8f8870 100644
--- a/tests/unit/controller/BoardApiControllerTest.php
+++ b/tests/unit/controller/BoardApiControllerTest.php
@@ -31,6 +31,7 @@
class BoardApiControllerTest extends \Test\TestCase {
private $appName = 'deck';
+ private $request;
private $userId = 'admin';
private $controller;
private $boardService;
diff --git a/tests/unit/controller/BoardControllerTest.php b/tests/unit/controller/BoardControllerTest.php
index 357219907..402fc72bc 100644
--- a/tests/unit/controller/BoardControllerTest.php
+++ b/tests/unit/controller/BoardControllerTest.php
@@ -28,6 +28,7 @@
use OCP\IUser;
class BoardControllerTest extends \Test\TestCase {
+ private $l10n;
private $controller;
private $request;
private $userManager;
diff --git a/tests/unit/controller/BoardImportApiControllerTest.php b/tests/unit/controller/BoardImportApiControllerTest.php
index 20db54ae6..cafa3c9b6 100644
--- a/tests/unit/controller/BoardImportApiControllerTest.php
+++ b/tests/unit/controller/BoardImportApiControllerTest.php
@@ -30,6 +30,7 @@
class BoardImportApiControllerTest extends \Test\TestCase {
private $appName = 'deck';
+ private $request;
private $userId = 'admin';
/** @var BoardImportApiController */
private $controller;
diff --git a/tests/unit/controller/StackApiControllerTest.php b/tests/unit/controller/StackApiControllerTest.php
index 11d3438e1..100437b50 100644
--- a/tests/unit/controller/StackApiControllerTest.php
+++ b/tests/unit/controller/StackApiControllerTest.php
@@ -32,6 +32,7 @@
class StackApiControllerTest extends \Test\TestCase {
private $appName = 'deck';
+ private $request;
private $userId = 'admin';
private $controller;
private $boardService;