Metapackage Installation Guide - magento/inventory GitHub Wiki
Overview
The current repository contains modules that belong to Inventory functionality only. To provide the ability to develop the project locally we introduced a development workflow that can help external developers work with the project.
Development setup
Installation as a composer package
-
Clone the
magento2git repository and check out the latest develop branch, e.g.2.4-develop. You may also check out and use any2.4release tags (or2.3if you are intended to work with Inventory1.1).git clone [email protected]:magento/magento2.git . -
Create an
extdirectory in the root of themagento2project directory:cd magento2 mkdir ext -
Clone the
inventoryrepository into the appropriate directory insideext:git clone [email protected]:magento/inventory.git ext/magento/inventory -
Update Composer settings for the project to allow a better development workflow:
-
minimum-stabilityfor packages is updated todevvalue. This allows installation of development modules:composer config minimum-stability dev -
To be able to work with stable packages enable the
prefer-stableproperty:prefer-stable: true. It should be included right above theminimum-stabilitysetting. -
Next we configure Composer so that it knows where to find new modules. The following command will configure any extension code inside the
extdirectory to be treated as a package and symlinked to thevendordirectory:composer config repositories.ext path "./ext/*/*/*"
-
-
Remove or comment the line
"magento/inventory-composer-installer": "1.1.0"in_metapackage/composer.jsonfile since the package is required for composer based installation only (temporary workaround, have to be fixed soon). -
Finally, install the
inventory-metapackagemetapackage:composer require magento/inventory-metapackage
At this point, all of the inventory-metapackage modules are symlinked inside the vendor directory, which allows both running a Magento installation with additional modules as well as doing development using the standard git workflow.
You may need to ensure that there are no Magento_Inventory* modules are listed as disabled when you run bin/magento module:status. If they are, follow the docs on how to enable modules.
Setting up Git workflow
In order to improve the developer experience when working with this repository structure, a few additional items may be configured:
-
Exclude
extdirectories from root directory Git:echo ext >> ./.git/info/exclude -
Skip root directory
composer.*files to avoid committing them by mistake:git update-index --skip-worktree composer.json git update-index --skip-worktree composer.lockThis operation is reversible, if needed:
git update-index --no-skip-worktree composer.json git update-index --no-skip-worktree composer.lock