Skip to content

Installation

Sergii Ivashchenko edited this page Apr 11, 2023 · 1 revision

Overview

The current repository contains modules that belong to Adobe IMS functionality only. In order to use the Magento Adobe IMS the package needs to be installed on top of magento2 framework installation.

Development setup

  1. Clone the magento2 git repository and check out the 2.4-develop branch. You may also check out and use any 2.4 release tags.

    git clone [email protected]:magento/magento2.git .
  2. Create an ext directory in the root of the magento2 project directory:

    cd magento2
    mkdir ext
  3. Clone the adobe-ims repository into the appropriate directory inside ext:

    git clone [email protected]:magento/adobe-ims.git ext/magento/adobe-ims
  4. Update Composer settings for the project to allow a better development workflow:

    • minimum-stability for packages is updated to dev value. This allows installation of development modules:

        composer config minimum-stability dev
      
    • To be able to work with stable packages enable the prefer-stable property: prefer-stable: true. It should be included right above the minimum-stability setting.

    • Next we configure Composer so that it knows where to find new modules. The following command will configure any extension code inside the ext directory to be treated as a package and symlinked to the vendor directory:

        composer config repositories.ext path "./ext/*/*/*"
      
  5. Finally, install the adobe-ims metapackage:

    composer require adobe-commerce/adobe-ims-metapackage
  6. Install/Upgrade the database

    bin/magento setup:install ...
    or
    bin/magento setup:upgrade
    

At this point, all of the adobe-ims 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.

Setting up Git workflow

In order to improve the developer experience when working with this repository structure, a few additional items may be configured:

  1. Exclude ext directories from root directory Git:

    echo ext >> ./.git/info/exclude
  2. Skip root directory composer.* files to avoid committing them by mistake:

    git update-index --skip-worktree composer.json
    git update-index --skip-worktree composer.lock

    This operation is reversible, if needed:

    git update-index --no-skip-worktree composer.json
    git update-index --no-skip-worktree composer.lock
Clone this wiki locally