Skip to content

Commit 85c73df

Browse files
committed
[RELEASE] Version 12.1.0 with RecordExtension and new event
Releases: https://projekte.in2code.de/issues/52214 Releases: https://projekte.in2code.de/issues/53362 Resolves: https://projekte.in2code.de/issues/53575
2 parents 3fb1639 + 71f0db9 commit 85c73df

File tree

122 files changed

+1253
-303
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

122 files changed

+1253
-303
lines changed

Build/FunctionalTestsBootstrap.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,8 @@
1212
* The TYPO3 project - inspiring people to share!
1313
*/
1414

15+
use TYPO3\TestingFramework\Core\Testbase;
16+
1517
call_user_func(function () {
1618
if (!getenv('IN2PUBLISH_CONTEXT')) {
1719
putenv('IN2PUBLISH_CONTEXT=Local');

Build/Scripts/runTests.sh

Lines changed: 21 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
11
#!/usr/bin/env bash
22

33
#
4-
# TYPO3 core test runner based on docker and docker-compose.
4+
# TYPO3 core test runner based on docker and docker compose.
55
#
66

77
# Function to write a .env file in Build/testing-docker/local
8-
# This is read by docker-compose and vars defined here are
8+
# This is read by docker compose and vars defined here are
99
# used in Build/testing-docker/local/docker-compose.yml
1010
setUpDockerComposeDotEnv() {
1111
# Delete possibly existing local .env file if exists
1212
[ -e .env ] && rm .env
13-
# Set up a new .env file for docker-compose
13+
# Set up a new .env file for docker compose
1414
echo "COMPOSE_PROJECT_NAME=local" >> .env
1515
# To prevent access rights of files created by the testing, the docker image later
16-
# runs with the same user that is currently executing the script. docker-compose can't
16+
# runs with the same user that is currently executing the script. docker compose can't
1717
# use $UID directly itself since it is a shell variable and not an env variable, so
1818
# we have to set it explicitly here.
1919
echo "HOST_UID=`id -u`" >> .env
@@ -101,12 +101,6 @@ Examples:
101101
./Build/Scripts/runTests.sh -p 8.0
102102
EOF
103103

104-
# Test if docker-compose exists, else exit out with error
105-
if ! type "docker-compose" > /dev/null; then
106-
echo "This script relies on docker and docker-compose. Please install" >&2
107-
exit 1
108-
fi
109-
110104
# Go to the directory this script is located, so everything else is relative
111105
# to this dir, no matter from where this script is called.
112106
THIS_SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null && pwd )"
@@ -198,41 +192,41 @@ fi
198192
case ${TEST_SUITE} in
199193
composerInstall)
200194
setUpDockerComposeDotEnv
201-
docker-compose run composer_install
195+
docker compose run composer_install
202196
SUITE_EXIT_CODE=$?
203-
docker-compose down
197+
docker compose down
204198
;;
205199
composerInstallMax)
206200
setUpDockerComposeDotEnv
207-
docker-compose run composer_install_max
201+
docker compose run composer_install_max
208202
SUITE_EXIT_CODE=$?
209-
docker-compose down
203+
docker compose down
210204
;;
211205
composerInstallMin)
212206
setUpDockerComposeDotEnv
213-
docker-compose run composer_install_min
207+
docker compose run composer_install_min
214208
SUITE_EXIT_CODE=$?
215-
docker-compose down
209+
docker compose down
216210
;;
217211
composerValidate)
218212
setUpDockerComposeDotEnv
219-
docker-compose run composer_validate
213+
docker compose run composer_validate
220214
SUITE_EXIT_CODE=$?
221-
docker-compose down
215+
docker compose down
222216
;;
223217
functional)
224218
setUpDockerComposeDotEnv
225219
case ${DBMS} in
226220
mariadb)
227-
docker-compose run functional_mariadb10
221+
docker compose run functional_mariadb10
228222
SUITE_EXIT_CODE=$?
229223
;;
230224
mssql)
231-
docker-compose run functional_mssql2019latest
225+
docker compose run functional_mssql2019latest
232226
SUITE_EXIT_CODE=$?
233227
;;
234228
postgres)
235-
docker-compose run functional_postgres10
229+
docker compose run functional_postgres10
236230
SUITE_EXIT_CODE=$?
237231
;;
238232
sqlite)
@@ -241,7 +235,7 @@ case ${TEST_SUITE} in
241235
# root if docker creates it. Thank you, docker. We create the path beforehand
242236
# to avoid permission issues.
243237
mkdir -p ${ROOT_DIR}/.Build/Web/typo3temp/var/tests/functional-sqlite-dbs/
244-
docker-compose run functional_sqlite
238+
docker compose run functional_sqlite
245239
SUITE_EXIT_CODE=$?
246240
;;
247241
*)
@@ -250,19 +244,19 @@ case ${TEST_SUITE} in
250244
echo "${HELP}" >&2
251245
exit 1
252246
esac
253-
docker-compose down
247+
docker compose down
254248
;;
255249
lint)
256250
setUpDockerComposeDotEnv
257-
docker-compose run lint
251+
docker compose run lint
258252
SUITE_EXIT_CODE=$?
259-
docker-compose down
253+
docker compose down
260254
;;
261255
unit)
262256
setUpDockerComposeDotEnv
263-
docker-compose run unit
257+
docker compose run unit
264258
SUITE_EXIT_CODE=$?
265-
docker-compose down
259+
docker compose down
266260
;;
267261
update)
268262
# pull typo3/core-testing-*:latest versions of those ones that exist locally

Build/UnitTests.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
<?xml version="1.0"?>
22
<phpunit
33
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4-
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.3/phpunit.xsd"
4+
xsi:noNamespaceSchemaLocation="https://schema.phpunit.de/9.5/phpunit.xsd"
55
backupGlobals="true"
66
bootstrap="UnitTestsBootstrap.php"
77
colors="true"
@@ -25,7 +25,7 @@
2525
</testsuites>
2626
<coverage>
2727
<include>
28-
<directory>../Classes/</directory>
28+
<directory suffix=".php">../Classes/</directory>
2929
</include>
3030
</coverage>
3131
<php>

Build/testing-docker/docker-compose.yml

Lines changed: 10 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -125,14 +125,10 @@ services:
125125
echo Database is up;
126126
php -v | grep '^PHP';
127127
if [ ${PHP_XDEBUG_ON} -eq 0 ]; then
128-
XDEBUG_MODE=\"off\" \
129-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
128+
XDEBUG_MODE=\"off\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
130129
else
131130
DOCKER_HOST=`route -n | awk '/^0.0.0.0/ { print $$2 }'`
132-
XDEBUG_MODE=\"debug,develop\" \
133-
XDEBUG_TRIGGER=\"foo\" \
134-
XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" \
135-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
131+
XDEBUG_MODE=\"debug,develop\" XDEBUG_TRIGGER=\"foo\" XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
136132
fi
137133
"
138134
@@ -168,14 +164,10 @@ services:
168164
echo Database is up;
169165
php -v | grep '^PHP';
170166
if [ ${PHP_XDEBUG_ON} -eq 0 ]; then
171-
XDEBUG_MODE=\"off\" \
172-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-mssql ${TEST_FILE};
167+
XDEBUG_MODE=\"off\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-mssql ${TEST_FILE};
173168
else
174169
DOCKER_HOST=`route -n | awk '/^0.0.0.0/ { print $$2 }'`
175-
XDEBUG_MODE=\"debug,develop\" \
176-
XDEBUG_TRIGGER=\"foo\" \
177-
XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" \
178-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-mssql ${TEST_FILE};
170+
XDEBUG_MODE=\"debug,develop\" XDEBUG_TRIGGER=\"foo\" XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-mssql ${TEST_FILE};
179171
fi
180172
"
181173
@@ -208,14 +200,10 @@ services:
208200
echo Database is up;
209201
php -v | grep '^PHP';
210202
if [ ${PHP_XDEBUG_ON} -eq 0 ]; then
211-
XDEBUG_MODE=\"off\" \
212-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-postgres ${TEST_FILE};
203+
XDEBUG_MODE=\"off\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-postgres ${TEST_FILE};
213204
else
214205
DOCKER_HOST=`route -n | awk '/^0.0.0.0/ { print $$2 }'`
215-
XDEBUG_MODE=\"debug,develop\" \
216-
XDEBUG_TRIGGER=\"foo\" \
217-
XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" \
218-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-postgres ${TEST_FILE};
206+
XDEBUG_MODE=\"debug,develop\" XDEBUG_TRIGGER=\"foo\" XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-postgres ${TEST_FILE};
219207
fi
220208
"
221209
@@ -239,14 +227,10 @@ services:
239227
fi
240228
php -v | grep '^PHP';
241229
if [ ${PHP_XDEBUG_ON} -eq 0 ]; then
242-
XDEBUG_MODE=\"off\" \
243-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-sqlite ${TEST_FILE};
230+
XDEBUG_MODE=\"off\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-sqlite ${TEST_FILE};
244231
else
245232
DOCKER_HOST=`route -n | awk '/^0.0.0.0/ { print $$2 }'`
246-
XDEBUG_MODE=\"debug,develop\" \
247-
XDEBUG_TRIGGER=\"foo\" \
248-
XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" \
249-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-sqlite ${TEST_FILE};
233+
XDEBUG_MODE=\"debug,develop\" XDEBUG_TRIGGER=\"foo\" XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/FunctionalTests.xml ${EXTRA_TEST_OPTIONS} --exclude-group not-sqlite ${TEST_FILE};
250234
fi
251235
"
252236
@@ -283,13 +267,9 @@ services:
283267
fi
284268
php -v | grep '^PHP'
285269
if [ ${PHP_XDEBUG_ON} -eq 0 ]; then
286-
XDEBUG_MODE=\"off\" \
287-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/UnitTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
270+
XDEBUG_MODE=\"off\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/UnitTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
288271
else
289272
DOCKER_HOST=`route -n | awk '/^0.0.0.0/ { print $$2 }'`
290-
XDEBUG_MODE=\"debug,develop\" \
291-
XDEBUG_TRIGGER=\"foo\" \
292-
XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" \
293-
bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/UnitTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
273+
XDEBUG_MODE=\"debug,develop\" XDEBUG_TRIGGER=\"foo\" XDEBUG_CONFIG=\"client_port=${PHP_XDEBUG_PORT} client_host=$${DOCKER_HOST}\" bin/phpunit -c Web/typo3conf/ext/in2publish_core/Build/UnitTests.xml ${EXTRA_TEST_OPTIONS} ${TEST_FILE};
294274
fi
295275
"

CHANGELOG.md

Lines changed: 68 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,47 @@
11
# In2publish Core Change Log
22

3+
12.1.0:
4+
5+
- **Everything included in the 11.0.4 release**
6+
- [CLEANUP] Remove the redundant declaration of Record::getChildren()
7+
- [BUGFIX] Restore the breadcrumb feature
8+
- [DEV] Remove backslashes from the testing docker-compose.yml
9+
- [BUGFIX] Remove buggy record child recursion when adding new records to the index
10+
- [REFACTOR] Move the DbRecordFactoryFactoryCompilerPass into the core component folder
11+
- [BUGFIX] Remove non-existent table tx_in2publishcore_remotefaldriver_file from default ignored tables
12+
- [BUGFIX] Trigger event RecordRelationsWereResolved also for Publish Files Module operations
13+
- [FEATURE] Add new event DemandsWereResolved after resolving the demands
14+
- [CLEANUP] Remove unused injection trait
15+
- [BUGFIX] Set the correct default value for DatabaseSchemaService::$tables
16+
- [BUGFIX] Always append a slash at the targetDir for drivers which don't canonicalize the dir name
17+
- [DEV] Use docker compose instead of docker-compose
18+
- [BUGFIX] Catch all driver exception to prevent errors when files don't exist
19+
- [BUGFIX] Fix sys_redirect query when there are no deleted redirects on foreign
20+
- [TESTS] Ignore code coverage of the exceptions, middlewares and compiler passes
21+
- [CLEANUP] Remove unused ForeignFileInfoExecutionFailedException
22+
- [TYPO] Correct "slitted" to "split"
23+
- [BUGFIX] Correctly inject the deps of the ReplaceMarkersService mock
24+
- [TESTS] Ignore code coverage for all event classes
25+
- [CLEANUP] Remove unused imports from tests
26+
- [TESTS] Update code coverage annotations for all PreProcessors
27+
- [TESTS] Ignore code coverage for dumb PreProcessors
28+
- [DEPRECATION] Deprecate ArrayUtility::getValueByPath
29+
- [TESTS] Remove incorrect covers annotation from EnvironmentServiceTest
30+
- [TEST] Set correct coversDefaultClass for DbInitQueryEncodedCommand
31+
- [DEPRECATION] Deprecate AbstractTask::getConfiguration
32+
- [BUGFIX] Remove duplicate recursion prevention to actually register records in publishing
33+
- [TEST] Import class Testbase in FunctionalTestsBootstrap
34+
- [DEV] Update PHPUnit XSD version
35+
- [TESTS] Don't mock Connection::createSchemaManager when it does not exist
36+
- [DOC] Minor editorial changes in documentation
37+
- [DOC] Fix typo in documentation
38+
- [DOC] Edit documentation for 25505-BreakingChanges-QueryAggregation.md
39+
- [DOCS] Explain how to exclude a record by its parent state and property
40+
- [DOCS] Add missing docs for the events DemandsWereCollected and DemandsForTextWereCollected
41+
- [BUGFIX] Prevent infinite recursion when rendering the overview tree
42+
- [RELEASE] Version 12.0.0 with Query Aggregation
43+
44+
345
12.0.0:
446

547
- [META] Set the branch alias version number to 12.0.x-dev
@@ -409,51 +451,31 @@
409451
- [GIT] Ignore build and qa files when creating a production dist
410452
- [GIT] Ignore the .github folder when creating a production dist
411453

412-
454+
11.0.4:
455+
- **Everything included in the 10.2.5 release**
456+
- [META] Set the EM conf version number to 11.0.4
457+
- [DOCS] Update changelog
458+
- [TESTS] Configure Code Coverage and add missing coversDefaultClass
459+
- [META] Mark as compatible with PHP 8.1
460+
- [RELEASE] Version 11.0.3 with bug fixes
413461

414462
11.0.3:
415463

464+
- **Everything included in the 10.2.4 release**
416465
- [META] Set the EM conf version number to 11.0.3
417466
- [CLEANUP] Remove useless parentheses
418467
- [QA] Update QA tools
419468
- [BUGFIX] Set the correct return type for FileController::getRecordToPublish
420469
- [COMMENT] Update rFALd::getFoldersInFolder return annotation
421470
- [BUGFIX] Call the correct (renamed) method rebuildAll for TYPO3 v11
422-
- [COMMENT] Update the return annotation of findRedirectsByDynamicTarget
423-
- [BUGFIX] Ensure the rowCount is always an integer
424-
- [BUGFIX] Don't try to bulkInsert an empty data set
425471
- [REFACTOR] Reduce cyclomatic and npath complexity
426472
- [QA] Force installation of unsigned phars (like phpmd) and add all phars to PATH
427473
- [TESTS] Remove duplicate import of RuntimeException
428474
- [TESTS] Remove duplicate import of Testbase
429-
- [BUGFIX] Prevent infinite recursion when collecting records that are going to be published
430-
- [BUGFIX] Remove the HostNameValidator
431-
- [BUGFIX] Override database state if sys_file records have been changed
432-
- [BUGFIX] Early fail the UniqueStorageTargetTest when EXT:scheduler is not installed
433-
- [BUGFIX] Remove duplicate line which should have been removed
434-
- [BUGFIX] Prevent undefined array key access in DatabaseUtility
435475
- [BUGFIX] Set correct flash message severity when file publishing fails and show collected failures
436476
- [DOCS] Add UPGRADING for v10 to v11 and some publish files module screenshots
437-
- [TASK] Fix TestLabelLocalizer error
438477
- [BUGFIX] Add missing slash in combined folder identifier
439-
- [BUGFIX] Allow input fields with renderType inputLink
440-
- [BUGFIX] Do not exclude columns which have an itemsProcFunc
441-
- [BUGFIX] Do not ignore MM-records to excluded tables
442-
- [BUGFIX] Use the group MM tablenames field instead of true/false
443-
- [BUGFIX] Fix type error in FileEdgeCacheInvalidationService class
444-
- [BUGFIX] Fallback to the foreignUid if localUid is null
445-
- [BUGFIX] Add conditions to not break resetting backend user preferences
446-
- [BUGFIX] Update the list of required tables
447478
- [BUGFIX] Fetch all RPC rows instead of just the first
448-
- [BUGFIX] Allow envelopes to grow arbitrarily huge
449-
- [TESTS] Add missing ticket annotations for command tests
450-
- [TESTS] Add functional test to assert that MM records can be marked as publishing
451-
- [BUGFIX] Allow MM records to be marked as running
452-
- [BUGFIX] Make RunTasksInQueueCommand compatible with symfony/console 4.4 and add test
453-
- [TESTS] Fix tests for different dbal and TYPO3 versions
454-
- [TESTS] Mock Result class which exists in composerMinInstall
455-
- [TESTS] Fix DbConfigTestCommandTest, remove BackupCommandTest
456-
- [BUGFIX] Ensure all (testable) commands are executable
457479

458480
11.0.2:
459481

@@ -591,6 +613,24 @@
591613
- [CLEANUP] Remove outdated compatibility class SignalSlotReplacement
592614
- [!!!][UPDATE] Require TYPO3 v11
593615

616+
10.2.6:
617+
- [META] Set the EM conf version number to 10.2.6
618+
- [BUGFIX] Use correct key "foreign" to index a row from Foreign
619+
- [BUGFIX] Support resolving related redirects with query URL parts
620+
- [BUGFIX] Show undecoded message line if it could not be decoded
621+
- [BUGFIX] Throw an exception if the file to retrieve does not exist
622+
- [BUGFIX] Do not try to publish files that neither exist on local nor foreign
623+
- [RELEASE] Version 10.2.5 with non-empty bulk inserts
624+
625+
10.2.5:
626+
627+
- [META] Set the EM conf version number to 10.2.5
628+
- [GIT] Ignore the .github folder when creating a production dist
629+
- [COMMENT] Update the return annotation of findRedirectsByDynamicTarget
630+
- [BUGFIX] Ensure the rowCount is always an integer
631+
- [BUGFIX] Don't try to bulkInsert an empty data set
632+
- [RELEASE] Version 10.2.4 with bug fixes
633+
594634
10.2.4:
595635

596636
- [META] Set the EM conf version number to 10.2.4

Classes/Command/Foreign/Status/Exception/InvalidPageIdArgumentTypeException.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@
3434

3535
use function sprintf;
3636

37+
/**
38+
* @codeCoverageIgnore
39+
*/
3740
class InvalidPageIdArgumentTypeException extends In2publishCoreException
3841
{
3942
private const MESSAGE = 'The argument pageId must be an integer, got string "%s"';

0 commit comments

Comments
 (0)