fix!: install module via Composer path repository instead of app/code#199
Merged
Conversation
Contributor
There was a problem hiding this comment.
Pull request overview
This PR updates the local MageForge development setup to install the module into the Magento test instance via a Composer path repository (symlinked from vendor/) instead of bind-mounting it into app/code/. The module source is now mounted read-only under magento/mageforge-source/, improving compatibility with Magento’s filesystem path validation and protecting the working tree from accidental container-side deletes.
Changes:
- Switch Docker mounting to a read-only mount of the repo root into
magento/mageforge-source/, with a shadow volume to prevent recursive mounts. - Update
ddev install-magentoto register a Composer path repository andcomposer require openforgeproject/mageforge:@dev, removing the need for the module-deps sync script. - Refresh development documentation and DDEV hooks to match the new workflow.
Reviewed changes
Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.
Show a summary per file
| File | Description |
|---|---|
docs/development.md |
Updates setup/troubleshooting docs to describe the read-only source mount + Composer path repository install. |
.ddev/docker-compose.mageforge-source.yaml |
Changes the module source mount from app/code to magento/mageforge-source (read-only) and adds a shadow volume to avoid recursion. |
.ddev/config.yaml |
Updates the pre-start hook to create the new mount target and removes the post-start module dependency installer hook. |
.ddev/commands/web/install-module-deps |
Removes the no-longer-needed dependency sync command (replaced by Composer-managed install). |
.ddev/commands/web/install-magento |
Adds a mount guard for mageforge-source/composer.json, prunes the read-only mount from find, and installs MageForge via Composer path repository before setup:install. |
dermatz
approved these changes
Jun 13, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request updates the MageForge module development environment to use a read-only Docker mount and Composer path repository for local development, replacing the previous bind-mount approach. This change improves compatibility with Magento's path validator, automates dependency management, and protects the module source from accidental deletion. The documentation, Docker configuration, and install scripts have all been updated to reflect this new workflow.
Environment and Mount Changes:
magento/mageforge-sourceusing Docker, instead of being bind-mounted directly intoapp/code/. This satisfies Magento's path validator and protects the source from accidental deletion. (.ddev/docker-compose.mageforge-source.yaml,.ddev/config.yaml,docs/development.md) [1] [2] [3] [4]mageforge-sourcedirectory on the host and shadows recursive mounts to avoid issues. (.ddev/config.yaml,.ddev/docker-compose.mageforge-source.yaml) [1] [2]Composer and Dependency Management:
install-module-deps) has been removed as it is no longer needed. (.ddev/commands/web/install-magento,.ddev/commands/web/install-module-deps,.ddev/config.yaml,docs/development.md) [1] [2] [3] [4] [5]Install Script and Guard Updates:
mageforge-source/composer.jsonfile to verify the mount, instead of looking forregistration.phpin the old bind-mount location. (.ddev/commands/web/install-magento).ddev/commands/web/install-magento)Documentation Updates:
docs/development.md) [1] [2] [3] [4]