Skip to content

Conversation

@stasadev
Copy link
Member

@stasadev stasadev commented Dec 31, 2025

The Issue

DDEV users don't know why the ddev composer self-update is not saved on ddev restart. This is a common behavior in Docker when you modify something outside of bind mounts (i.e. outside the project directory), but people don't know about it.

How This PR Solves The Issue

  • Shows a warning for ddev composer self-update, ddev composer selfupdate, ddev composer global with a link to the docs.

  • Improves documentation.

  • composer_version: "" used composer_version: "2" under the hood, but docs say https://docs.ddev.com/en/stable/users/configuration/config/#composer_version

    Can be 2, 1, or empty ("") for latest major version at container build time.

    composer_version: "" is now the same as composer_version: "stable"

Manual Testing Instructions

Updated docs:

New warning:

$ ddev composer global require psr/log
Composer global changes do not persist across DDEV restarts.
See https://docs.ddev.com/en/stable/users/usage/developer-tools/#composer-limitations for details.
Changed current directory to /home/stas/.composer
./composer.json has been created
...
$ ddev composer self-update
Composer self-update changes do not persist across DDEV restarts.
See https://docs.ddev.com/en/stable/users/usage/developer-tools/#composer-limitations for details.
You are already using the latest available Composer version 2.9.3 (stable **channel).**

Testing composer_version: "" (--2 -> --stable):

$ ddev config --composer-version=
$ ddev start
$ cat .ddev/.webimageBuild/Dockerfile | grep composer
### DDEV-injected composer update
RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --2 || log-stderr.sh composer self-update --2 || true
-RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --2 || log-stderr.sh composer self-update --2 || true
+RUN export XDEBUG_MODE=off; composer self-update --stable || composer self-update --stable || true; composer self-update --stable || log-stderr.sh composer self-update --stable || true

Automated Testing Overview

Release/Deployment Notes

@github-actions
Copy link

github-actions bot commented Dec 31, 2025

Copy link
Member

@rfay rfay left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks good to me. Probably more than most people need to know, but helps with full response to the (very) occasional support question.

@stasadev
Copy link
Member Author

I think some people have ddev composer self-update in post-start hooks, so this very detailed explanation should help.

@stasadev stasadev merged commit b87e195 into ddev:main Jan 7, 2026
9 checks passed
@stasadev stasadev deleted the 20251231_stasadev_composer branch January 7, 2026 14:14
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Document how to update Composer to latest release

2 participants