Skip to content

Conversation

@rhoerr
Copy link
Contributor

@rhoerr rhoerr commented Dec 16, 2025

Overview

Introduces a proof-of-concept minimal metapackage that significantly reduces installation footprint by including only essential Magento packages and removing optional dependencies.

This will allow power users to 'build your own' installation, including only packages that they need for their specific situation.

Changes

  • Adds minimal metapackage configuration
  • Removes optional/non-essential package dependencies
  • Includes core functionality required for baseline Magento operation

Impact

Dependency Reduction:

  • Dev installation: 590 → 353 packages (40% reduction)
  • Without dev dependencies: 284 packages
  • Potential for further optimization identified

Scope & Limitations

  • Status: Proof-of-concept / Testing phase
  • Further refinement and testing needed before production readiness
  • Validates viability of minimal installation profile

Usage

Build it by cloning this branch, and building a Mage-OS release like

node src/make/mageos-release.js --mageosRelease=2.2.0-alpha1 --upstreamRelease=2.4.8-p3 --outputDir=packages --gitRepoDir=repositories

You must set up php-classes.phar on your system path, per this repo's README.

To use the build, once it's complete:

  • Unpack the packages/mage-os/project-minimal-2.2.0-alpha1.zip composer.json into a new folder you want to install to
  • Edit that composer.json, and change the repository from repo.mage-os.org to an artifact with your local folder where you unpacked the packages, like
  "repositories": [
    {
      "type": "artifact",
      "url": "/var/www/mage-os/generate-mirror-repo-js/packages/"
    }
  ]
  • Run composer install

Next Steps

  • Test installation with minimal metapackage
  • Validate usability with reduced feature set
  • Performance profiling vs. standard install, especially of bootstrap
  • Documentation update for minimal install option

Notes

I opted to implement it as 'keep these packages' rather than some algorithm or list for 'remove these packages', on the basis that new Magento packages should not be included automatically going forward. If an upstream package is added that is needed, we should update the Minimal packages list explicitly to include it.


Ready for: Design review, testing pipeline, community feedback

@digitalrisedorset
Copy link

I have added 2 modules locally:

  • composer require mage-os/module-open-search:2.0.0-beta3
  • composer require mage-os/theme-frontend-luma:2.0.0-beta3

Once added, I was able to place some orders, add products (simple, configurable) and add a category with these products.. I tried the checkout with multiple shipping address.. overall, these 2 changes seem sufficient to call this version a working one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants