Project

General

Profile

Actions

Bug #103898

closed

Existing "_assets" subdirectories not being a symlink prevents installation

Added by Garvin Hicking 6 months ago. Updated 4 months ago.

Status:
Closed
Priority:
Should have
Assignee:
-
Category:
composer
Start date:
2024-05-24
Due date:
% Done:

100%

Estimated time:
TYPO3 Version:
12
PHP Version:
Tags:
Complexity:
Is Regression:
Sprint Focus:

Description

Scenario:

Someone transfers over contents of a production instance for local development. They copy "_assets" over to their local install (just because they "copy everything").

The file copying is done without respecting symlinks, so symlinks get turned into actual directories with actual, non-symlinked files. Depending on the deployment process, these symlinks may even have already been resolved on the upload to a production server (rsync dereferencing).

Resulting symptons

When now the development instance issues a composer update followed by composer dump-autoload, any updated assets will NOT be updated in the existing directory.

This could lead to odd issues where typo3 cms-... packages do not deliver the right CSS+JS files. See slack https://typo3.slack.com/archives/C025BQLFA/p1716455213954609

Workaround

One can remove the whole `_assets` directory and then let `composer dump-autoload` do its magic. However, people may not even notice this, as no errors are shown.

Reasons and suggested change

The PackageArtifactBuilder just assumes, everything is good, when the expected directory can be resolved. If it's actually a symlink is not evaluated.

My proposal would be to ensure that the target resource path is actually a symlink, and leads to the assumed symlink target. `composer dump-autoload` should then report a warning, if a directory does not match that expectation. It does not create any hard failures, so if anyone is using non-symlinks in production, nothing will be deleted/recreated, and continue as-is.

Additionally it would be nice if the Admin Tools > Environment > Directory Status could also reveal this warning.

Related documentation change: https://github.com/TYPO3-Documentation/TYPO3CMS-Reference-CoreApi/pull/4440


Related issues 4 (2 open2 closed)

Related to TYPO3 Core - Bug #96386: Cleanup of symlinks in _assets on extension uninstallAccepted2021-12-18

Actions
Related to TYPO3 Core - Bug #100468: Missing assets folder when creating public folder after installationClosedHelmut Hummel2023-04-05

Actions
Related to TYPO3 Core - Bug #104345: Composer installation of a Root Package does not properly store packagePathClosedGarvin Hicking2024-07-10

Actions
Related to TYPO3 Core - Bug #105327: PackageArtifactBuilder creates junctions on windows, incompatible with Docker DesktopNew2024-10-16

Actions
Actions

Also available in: Atom PDF