Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Overview

Imposter Plugin

Packagist Packagist PHP from Packagist CircleCI license Twitter Follow @TangRufus Hire Typist Tech

Composer plugin that wraps all composer vendor packages inside your own namespace. Intended for WordPress plugins.

Built with by Typist Tech


Imposter Plugin is an open source project and completely free to use.

However, the amount of effort needed to maintain and develop new features is not sustainable without proper financial backing. If you have the capability, please consider donating using the links below:

GitHub via Sponsor Sponsor via PayPal More Sponsorship Information


Wrapping all composer vendor packages inside your own namespace. Intended for WordPress plugins. Imposter Plugin is a composer plugin wrapper for Imposter.

Why?

Because of the lack of dependency management in WordPress, if two plugins bundled conflicting versions of the same package, hard-to-reproduce bugs arise. Monkey patching composer vendor packages, wrapping them inside your own namespace is a less-than-ideal solution to avoid such conflicts.

See:

Install

Installation should be done via composer, details of how to install composer can be found at https://getcomposer.org/.

First, add Imposter configuration in your composer.json

"extra": {
    "imposter": {
        "namespace": "My\\App\\Vendor",
        "excludes": [
            "dummy/dummy-excluded"
        ]
    }
}

Then, install via composer cli

composer require typisttech/imposter-plugin

See: Imposter readme for details.


Typist Tech is ready to build your next awesome WordPress site. Hire us!


Usage

Sit Back and Relax

Once installed, this plugin hooks into composer install, composer update and composer dump-autoload, automatically run imposter for you. Besides, imposter plugin autoloads all modified files as classmap.

When those events triggered, this plugin:

  1. looks for /path/to/project/root/composer.json
  2. finds out vendor-dir
  3. finds out all required packages, including those required by dependencies
  4. finds out all autoload paths for all required packages
  5. prefixes all namespaces with the imposter-plugin namespace defined in your composer.json

Learn more on imposter's readme.

Known Issues

Help wanted. Pull requests are welcomed.

  1. Imposter run twice when composer install and composer update
  2. Traits are not transformed
  3. Virtual packages are not supported

Frequently Asked Questions

What can I find more information?

Learn more on imposter's readme for more details.

How about not hooking into composer commands?

Use imposter directly.

How to distrube impostified plugins?

  1. Switch to the lowest PHP version you support
  2. Install dependencies
    • $ composer install --no-dev --classmap-authoritative --prefer-dist
  3. Clean up the source code, e.g: remove test files
  4. Zip the source code. Tips: Use $ composer archive
  5. Send the zip to others / Commit to wp.org SVN. Tips:

How to install impostified plugins via composer?

Impostified plugins are meant to be commited to wp.org svn.

Using imposter means you forgo the ability to install the plugins with composer directly via packagist.org or VCS (even with type: wordpress-plugin in composer.json).

To composer require impostified plugins, use wpackagist.org.

The whole imposter situation is horrible. What can we do about it?

Until WordPress core comes up with a solution on dependency managment, keep clam and carry on.

In the meantime, checkout these tools to make WordPress suck less modernizing WordPress development:

Do you have real life examples that use this composer plugin?

Here you go:

Add your own here

Which composer versions are supported?

Both v1 and v2.

Will you add support for older PHP versions?

Never! This plugin will only work on actively supported PHP versions.

Don't use it on end of life or security fixes only PHP versions.

It looks awesome. Where can I find some more goodies like this

Where can I give 5-star reviews?

Thanks! Glad you like it. It's important to let me knows somebody is using this project. Please consider:

Testing

composer test
composer style:check

Alternatives

Here is a list of alternatives that I found. However, none of these satisfied my requirements.

If you know other similar projects, feel free to edit this section!

  • Mozart by Coen Jacobs

    • Works with PSR0 and PSR4
    • Dependency packages store in a different directory
  • PHP Scoper

    • Prefixes all PHP namespaces in a file/directory to isolate the code bundled in PHARs

Feedback

Please provide feedback! We want to make this project as useful as possible. Please submit an issue and point out what you do and don't like, or fork the project and send pull requests. No issue is too small.

Security Vulnerabilities

If you discover a security vulnerability within this project, please email us at [email protected]. All security vulnerabilities will be promptly addressed.

Credits

Imposter Plugin is a Typist Tech project and maintained by Tang Rufus, freelance developer for hire.

Full list of contributors can be found here.

License

Imposter Plugin is released under the MIT License.

Comments
  • Terminal output formatting

    Terminal output formatting

    I'm not sure if this is a Composer issue, Imposter-plugin issue or PHPCS installer issue, but...

    I'm using your awesome typisttech/imposter-plugin package as well as the coding standards packages:

    • dealerdirect/phpcodesniffer-composer-installer
    • phpcompatibility/php-compatibility
    • wp-coding-standards/wpcs

    The phpcodesniffer-composer-installer upon install or update is giving details about installed standards which interferes with imposter output.

    This results in the following log:

    Generating autoload files
    Running Imposter...
    ======================
    Loading package information from /var/project-path/composer.json
    Imposter operations: 6 transformations
     - Transforming: /var/project-path/vendor/micropackage/requirements/src
     - Transforming: /var/project-path/vendor/micropackage/internationalization/src
     - Transforming: /var/project-path/vendor/micropackage/dochooks/src
     - Transforming: /var/project-path/vendor/micropackage/filesystem/src
     - Transforming: /var/project-path/vendor/micropackage/templates/src
     - Transforming: /var/project-path/vendor/micropackage/templates/src/functions/template.php
    
    Done.
     6/6 [============================] 100%PHP CodeSniffer Config installed_paths set to ../../phpcompatibility/php-compatibility,../../wp-coding-standards/wpcs
    Generating optimized autoload filesRunning Imposter...
    ======================
    Loading package information from /var/project-path/composer.json
    Imposter operations: 6 transformations
     - Transforming: /var/project-path/vendor/micropackage/requirements/src
     - Transforming: /var/project-path/vendor/micropackage/internationalization/src
     - Transforming: /var/project-path/vendor/micropackage/dochooks/src
     - Transforming: /var/project-path/vendor/micropackage/filesystem/src
     - Transforming: /var/project-path/vendor/micropackage/templates/src
     - Transforming: /var/project-path/vendor/micropackage/templates/src/functions/template.php
    
    Done.
    Generated optimized autoload files containing 975 classes
    
    opened by Kubitomakita 7
  • Composer 2 support

    Composer 2 support

    I see that the composer-plugin-api is set to 1.1, meaning we cannot use it with v2 of the Composer.

    Any plans to make it compatible with it? Is there some way to help make it compatible?

    Edit

    I've forked it and added

            "composer-plugin-api": "^1.1 || ^2",
    

    To the required field, and all the tests passed 🤷‍♂️

    opened by dingo-d 4
  • Bump symfony/polyfill-php80 from 1.19.0 to 1.20.0

    Bump symfony/polyfill-php80 from 1.19.0 to 1.20.0

    Bumps symfony/polyfill-php80 from 1.19.0 to 1.20.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 4
  •  [ErrorException] array_merge() expects at least 1 parameter, 0 given

    [ErrorException] array_merge() expects at least 1 parameter, 0 given

    I'm getting the following error after running composer imposter:run

    [ErrorException]
    array_merge() expects at least 1 parameter, 0 given

    My composer.json file:

    {
     // ...
      "require": {
        "composer/installers": "~1.0",
        "timber/timber": "^1.5",
        "abraham/twitteroauth": "^0.7.4",
        "defuse/php-encryption": "^2.1",
        "guzzlehttp/guzzle": "^6.3",
        "brain/cortex": "~1.0.0@dev",
        "symfony/var-dumper": "^4.2.0",
        "monolog/monolog": "^1.24.0",
        "google/cloud-firestore": "^1.0.0",
        "typisttech/imposter-plugin": "^0.3.1"
      },
      "autoload": {
        "psr-4": {
          "Sw\\": "lib/Sw/"
        },
        "files": [
            // some files here
        ]
      },
      "extra": {
        "imposter": {
          "namespace": "Sw\\Vendor"
        }
      }
    }
    
    opened by wujekbogdan 4
  • Issues with Guzzle (PSR4 transforming)

    Issues with Guzzle (PSR4 transforming)

    Detailed description

    I'm maintining a wide variaty of WHMCS modules. Recently WHMCS seems to started using Composer in their own, closed source, software - which conflicts with my modules. Since them I'm looking for such a plugin as Imposter to fix my dependency issues.

    Most things seems to work just fine, expect with Guzzle and loading PSR-4 classes.

    For example a trace I gathered. Here the core WHMCS software requests Guzzle, and the autoloader seems to respond with my transformed Guzzle instance:

    1  Composer\Autoload\includeFile(/var/www/*/app/modules/addons/mollierecurring/vendor/composer/../guzzlehttp/guzzle/src/ClientInterface.php) called at [/var/www/*/app/vendor/composer/ClassLoader.php:322]
    --
      | #2  Composer\Autoload\ClassLoader->loadClass(DevApp\WHMCS\MollieRecurring\Vendor\GuzzleHttp\ClientInterface)
      | #3  spl_autoload_call(DevApp\WHMCS\MollieRecurring\Vendor\GuzzleHttp\ClientInterface) called at [/var/www/*/app/modules/addons/mollierecurring/vendor/guzzlehttp/guzzle/src/Client.php:25]
      | #4  include(/var/www/*/app/modules/addons/mollierecurring/vendor/guzzlehttp/guzzle/src/Client.php) called at [/var/www/*/app/vendor/composer/ClassLoader.php:444]
      | #5  Composer\Autoload\includeFile(/var/www/*/app/modules/addons/mollierecurring/vendor/composer/../guzzlehttp/guzzle/src/Client.php) called at [/var/www/*/app/vendor/composer/ClassLoader.php:322]
      | #6  Composer\Autoload\ClassLoader->loadClass(GuzzleHttp\Client)
      | #7  spl_autoload_call(GuzzleHttp\Client) called at [/var/www/*/app/vendor/whmcs/whmcs-foundation/lib/Admin/Setup/General/UriManagement/ConfigurationController.php:0]
      | #8  WHMCS\Admin\Setup\General\UriManagement\ConfigurationController->queryEnvironmentMode() called at [/var/www/*/app/vendor/whmcs/whmcs-foundation/lib/Admin/Setup/General/UriManagement/ConfigurationController.php:0]
      | #9  WHMCS\Admin\Setup\General\UriManagement\ConfigurationController->remoteDetectEnvironmentMode(WHMCS\Http\Message\ServerRequest Object ([*queryBag] => Symfony\Component\HttpFoundation\ParameterBag Object ([*parameters] => Array ()),[*requestBag] => Symfony\Component\HttpFoundation\ParameterBag Object ([*parameters] => Array ()),[*attributesBag] => Symfony\Component\HttpFoundation\ParameterBag Object ([*parameters] => Array ()),[Zend\Diactoros\ServerRequestattributes] => Array (),[Zend\Diactoros\ServerRequestcookieParams] => Array (),[Zend\Diactoros\ServerRequestparsedBody] => ,[Zend\Diactoros\ServerRequestqueryParams] => Array (),[Zend\Diactoros\ServerRequestserverParams] => Array (),[Zend\Diactoros\ServerRequestuploadedFiles] => Array (),[*headers] => Array (),[*headerNames] => Array (),[Zend\Diactoros\ServerRequestprotocol] => 1.1,[Zend\Diactoros\ServerRequeststream] => Zend\Diactoros\PhpInputStream Object ([Zend\Diactoros\PhpInputStreamcache] => ,[Zend\Diactoros\PhpInputStreamreachedEof] => ,[*resource] => Resource id #361,[*stream] => php://input),[Zend\Diactoros\ServerRequestmethod] => ,[Zend\Diactoros\ServerRequestrequestTarget] => ,[Zend\Diactoros\ServerRequesturi] => Zend\Diactoros\Uri Object ([*allowedSchemes] => Array ([http] => 80,[https] => 443),[Zend\Diactoros\Urischeme] => ,[Zend\Diactoros\UriuserInfo] => ,[Zend\Diactoros\Urihost] => ,[Zend\Diactoros\Uriport] => ,[Zend\Diactoros\Uripath] => ,[Zend\Diactoros\Uriquery] => ,[Zend\Diactoros\Urifragment] => ,[Zend\Diactoros\UriuriString] => ))) called at [/var/www/*/app/vendor/whmcs/whmcs-foundation/lib/Admin/Setup/General/UriManagement/View/Helper/SimpleSetting.php:0]
      | #10 WHMCS\Admin\Setup\General\UriManagement\View\Helper\SimpleSetting->getSimpleSettingHtmlPartial() called at [/var/www/*/app/admin/configgeneral.php:0]
    

    This results in either incompatbility or Cannot declare class DevApp\WHMCS\MollieRecurring\Vendor\GuzzleHttp\Client, because the name is already in use in /var/www/*/app/modules/addons/mollierecurring/vendor/guzzlehttp/guzzle/src/Client.php on line 25-errors.

    Also - the autoloading files for Guzzle does not work. This because Guzzle includes this file, which checks if GuzzleHttp\uri_template is loaded - but most of the time it is (because of the core software, which already has Guzzle loaded) and so my namespace's Guzzle functions won't get loaded.

    WHMCS loads Composer itself and I'm not sure how their composer.json looks like. Mine is, for example:

    {
        "require": {
            "mollie/mollie-api-php": "2.0.*",
            "typisttech/imposter-plugin": "^0.3.0"
        },
        "config": {
            "vendor-dir": "src/addons/mollierecurring/vendor"
        },
        "extra": {
            "imposter": {
                "namespace": "DevApp\\WHMCS\\MollieRecurring\\Vendor\\"
            }
        }
    }
    

    Context

    It is important to me to keep using my current packages (I don't use guzzle directly, but most of my packages do). This could also benefit other people, as Guzzle is a widely used package to handle HTTP requests.

    Possible implementation

    Unsure. Maybe manually update the PSR-4 mapping?

    Your environment

    • PHP 7.2
    • WHMCS addons
    • Different Guzzle versions
    question 
    opened by Wouter0100 4
  • Build(deps): Bump nikic/php-parser from 4.10.2 to 4.10.3

    Build(deps): Bump nikic/php-parser from 4.10.2 to 4.10.3

    Bumps nikic/php-parser from 4.10.2 to 4.10.3.

    Release notes

    Sourced from nikic/php-parser's releases.

    PHP-Parser 4.10.3

    Fixed

    • Fixed formatting-preserving pretty printing for "{$x}".
    • Ternary expressions are now treated as non-associative in the pretty printer, in order to generate code that is compatible with the parentheses requirement introduced in PHP 8.
    • Removed no longer necessary error_clear_last() call in lexer, which may interfere with fatal error handlers if invoked during shutdown.
    Changelog

    Sourced from nikic/php-parser's changelog.

    Version 4.10.3 (2020-12-03)

    Fixed

    • Fixed formatting-preserving pretty printing for "{$x}".
    • Ternary expressions are now treated as non-associative in the pretty printer, in order to generate code that is compatible with the parentheses requirement introduced in PHP 8.
    • Removed no longer necessary error_clear_last() call in lexer, which may interfere with fatal error handlers if invoked during shutdown.
    Commits
    • dbe56d2 Release PHP-Parser 4.10.3
    • c64986f Allow both '{' and T_CURLY_OPEN as curly bracket (#732)
    • bc7a9bf Remove useless code left from old implementation
    • 2816485 Updated README to indicate that parsing PHP 8.0 code is supported
    • 1d1bc8a Upgrade some PrettyPrinter methods to protected
    • d520bc9 Don't allow failures on PHP 8.0 integration tests
    • 51e0b30 Test against 8.0.0rc1
    • eff72ee Fix #718: PrettyPrinter breaks nested ternaries
    • See full diff in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump composer/composer from 1.10.15 to 2.0.5

    Bump composer/composer from 1.10.15 to 2.0.5

    Bumps composer/composer from 1.10.15 to 2.0.5.

    Release notes

    Sourced from composer/composer's releases.

    2.0.5

    • Disabled platform-check verification of extensions by default (now defaulting php-only), set platform-check to true if you want a complete check
    • Improved platform-check handling of issue reporting
    • Fixed platform-check to only check non-dev requires even if require-dev dependencies are installed
    • Fixed issues dealing with custom installers which return trailing slashes in getInstallPath (ideally avoid doing this as there might be other issues left)
    • Fixed issues when curl functions are disabled
    • Fixed gitlab-domains/github-domains to make sure if they are overridden the default value remains present
    • Fixed issues removing/upgrading packages from path repositories on Windows
    • Fixed regression in 2.0.4 when handling of [email protected] URLs in vcs repositories
    • Fixed issue running create-project in current directory on Windows

    2.0.4

    • Fixed check-platform-req command not being clear on what packages are checked, and added a --lock flag to explicitly check the locked packages
    • Fixed config & create-project adding of repositories to make sure they are prepended as order is much more important in Composer 2, also added a --append flag to config to restore the old behavior in the unlikely case this is needed
    • Fixed curl downloader failing on old PHP releases or when using self-signed SSL certificates
    • Fixed Bitbucket API authentication issue

    2.0.3

    • Fixed bug in outdated command where dev packages with branch-aliases where always shown as being outdated
    • Fixed issue in lock file interoperability with composer 1.x when using dev-master as xxx aliases
    • Fixed new --locked option being missing from outdated command, for checking outdated packages directly from the lock file
    • Fixed a few debug/error reporting strings

    2.0.2

    • Fixed regression handling composer show -s in projects where no version can be guessed from VCS
    • Fixed regression handling partial updates/require when a lock file was missing
    • Fixed interop issue with plugins that need to update dist URLs of packages, see docs if you need this

    2.0.1

    • Fixed crash on PHP8

    2.0.0

    Read the Composer 2.0 announcement first for the highlights!

    Complete 2.0 Changelog

    • Breaking: This is a major release and while we tried to keep things compatible for most users, you might want to have a look at the UPGRADE guides
    • Many CPU and memory performance improvements
    • The update command is now much more deterministic as it does not take the already installed packages into account
    • Package installation now performs all network operations first before doing any changes on disk, to reduce the chances of ending up with a partially updated vendor dir
    • Partial updates and require/remove are now much faster as they only load the metadata required for the updated packages
    • Added a platform-check step when vendor/autoload.php gets initialized which checks the current PHP version/extensions match what is expected and fails hard otherwise. Can be disabled with the platform-check config option
    • Added a Composer\InstalledVersions class which is autoloaded in every project and lets you check which packages/versions are present at runtime
    • Added a composer-runtime-api virtual package which you can require (as e.g. ^2.0) to ensure things like the InstalledVersions class above are present. It will effectively force people to use Composer 2.x to install your project
    • Added support for parallel downloads of package metadata and zip files, this requires that the curl extension is present and we thus strongly recommend enabling curl
    • Added parallel installation of packages (requires OSX/Linux/WSL, and that unzip is present in PATH)
    • Added much clearer dependency resolution error reporting for common error cases
    • Added support for updating to a specific version with partial updates, as well as a --with flag to pass in temporary constraint overrides
    • Added automatic removal of packages which are not required anymore whenever an update is done, this will purge packages previously left over by partial updates and require/remove
    Changelog

    Sourced from composer/composer's changelog.

    [2.0.5] 2020-11-06

    • Disabled platform-check verification of extensions by default (now defaulting php-only), set platform-check to true if you want a complete check
    • Improved platform-check handling of issue reporting
    • Fixed platform-check to only check non-dev requires even if require-dev dependencies are installed
    • Fixed issues dealing with custom installers which return trailing slashes in getInstallPath (ideally avoid doing this as there might be other issues left)
    • Fixed issues when curl functions are disabled
    • Fixed gitlab-domains/github-domains to make sure if they are overridden the default value remains present
    • Fixed issues removing/upgrading packages from path repositories on Windows
    • Fixed regression in 2.0.4 when handling of [email protected] URLs in vcs repositories
    • Fixed issue running create-project in current directory on Windows

    [2.0.4] 2020-10-30

    • Fixed check-platform-req command not being clear on what packages are checked, and added a --lock flag to explicitly check the locked packages
    • Fixed config & create-project adding of repositories to make sure they are prepended as order is much more important in Composer 2, also added a --append flag to config to restore the old behavior in the unlikely case this is needed
    • Fixed curl downloader failing on old PHP releases or when using self-signed SSL certificates
    • Fixed Bitbucket API authentication issue

    [2.0.3] 2020-10-28

    • Fixed bug in outdated command where dev packages with branch-aliases where always shown as being outdated
    • Fixed issue in lock file interoperability with composer 1.x when using dev-master as xxx aliases
    • Fixed new --locked option being missing from outdated command, for checking outdated packages directly from the lock file
    • Fixed a few debug/error reporting strings

    [2.0.2] 2020-10-25

    • Fixed regression handling composer show -s in projects where no version can be guessed from VCS
    • Fixed regression handling partial updates/require when a lock file was missing
    • Fixed interop issue with plugins that need to update dist URLs of packages, see docs if you need this

    [2.0.1] 2020-10-24

    • Fixed crash on PHP8

    [2.0.0] 2020-10-24

    • Fixed proxy handling issues when combined with our new curl-based downloader
    • Fixed solver bug resulting in endless loops in some cases
    • Fixed solver output being extremely long due to learnt rules
    • Fixed solver bug with multi literals
    • Fixed a couple minor regressions

    [2.0.0-RC2] 2020-10-14

    • Breaking: Removed OperationInterface::getReason as the data was not accurate
    • Added automatic removal of packages which are not required anymore whenever an update is done, this will purge packages previously left over by partial updates and require/remove
    • Added shorthand aliases -w for --with-dependencies and -W for --with-all-dependencies on update/require/remove commands
    • Added COMPOSER_DEBUG_EVENTS=1 env var support for plugin authors to figure out which events are triggered when
    Commits
    • 0934b44 Release 2.0.5
    • 3e9cb5e Update changelog for 2.0.5
    • f31564e Fix check-platform-reqs --no-dev to not require lock anymore
    • 2a8cc06 Merge pull request #9426 from UrGuardian4ngel/bugfix/add-missing-directory-se...
    • 611a9f5 Drop unused imports
    • c35a8e7 Fix missing directory separator in FileDownloader
    • 3f68999 Avoid using curl when it has been disabled, fixes #9423
    • 4b8e77b Merge pull request #9422 from kdambekalns/patch-1
    • bc93369 Trim trailing slash in path downloader to avoid symlink issues, and in FileDo...
    • c04c42b Merge branch '1.10'
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump composer/composer from 1.10.15 to 2.0.3

    Bump composer/composer from 1.10.15 to 2.0.3

    Bumps composer/composer from 1.10.15 to 2.0.3.

    Release notes

    Sourced from composer/composer's releases.

    2.0.3

    • Fixed bug in outdated command where dev packages with branch-aliases where always shown as being outdated
    • Fixed issue in lock file interoperability with composer 1.x when using dev-master as xxx aliases
    • Fixed new --locked option being missing from outdated command, for checking outdated packages directly from the lock file
    • Fixed a few debug/error reporting strings

    2.0.2

    • Fixed regression handling composer show -s in projects where no version can be guessed from VCS
    • Fixed regression handling partial updates/require when a lock file was missing
    • Fixed interop issue with plugins that need to update dist URLs of packages, see docs if you need this

    2.0.1

    • Fixed crash on PHP8

    2.0.0

    Read the Composer 2.0 announcement first for the highlights!

    Complete 2.0 Changelog

    • Breaking: This is a major release and while we tried to keep things compatible for most users, you might want to have a look at the UPGRADE guides
    • Many CPU and memory performance improvements
    • The update command is now much more deterministic as it does not take the already installed packages into account
    • Package installation now performs all network operations first before doing any changes on disk, to reduce the chances of ending up with a partially updated vendor dir
    • Partial updates and require/remove are now much faster as they only load the metadata required for the updated packages
    • Added a platform-check step when vendor/autoload.php gets initialized which checks the current PHP version/extensions match what is expected and fails hard otherwise. Can be disabled with the platform-check config option
    • Added a Composer\InstalledVersions class which is autoloaded in every project and lets you check which packages/versions are present at runtime
    • Added a composer-runtime-api virtual package which you can require (as e.g. ^2.0) to ensure things like the InstalledVersions class above are present. It will effectively force people to use Composer 2.x to install your project
    • Added support for parallel downloads of package metadata and zip files, this requires that the curl extension is present and we thus strongly recommend enabling curl
    • Added parallel installation of packages (requires OSX/Linux/WSL, and that unzip is present in PATH)
    • Added much clearer dependency resolution error reporting for common error cases
    • Added support for updating to a specific version with partial updates, as well as a --with flag to pass in temporary constraint overrides
    • Added automatic removal of packages which are not required anymore whenever an update is done, this will purge packages previously left over by partial updates and require/remove
    • Added support for TTY mode on Linux/OSX/WSL so that script handlers now run in interactive mode
    • Added only, exclude and canonical options to all repositories, see repository priorities for details
    • Added support for many new lib-* packages in the platform repository and improved version detection for some ext-* and lib-* packages
    • Added pre-operations-exec event to be fired before the packages get installed/upgraded/removed
    • Added pre-pool-create event to be fired before the package pool for the dependency solver is created, which lets you modify the list of packages going in
    • Added post-file-download event to be fired after package dist files are downloaded, which lets you do additional checks on the files
    • Added --locked flag to show command to see the packages from the composer.lock file
    • Added --unused flag to remove command to make sure any packages which are not needed anymore get removed
    • Added --dry-run flag to require and remove commands
    • Added --no-install flag to update, require and remove commands to disable the install step and only do the update step (composer.lock file update)
    • Added an --ask flag to create-project command to make Composer prompt for the install dir name, useful for project install instructions
    • Added support for multiple --repository flags being passed into the create-project command, only useful in combination with --add-repository to persist them to composer.json
    • Added --with-dependencies and --with-all-dependencies flag aliases to require and remove commands for consistency with update
    • Added shorthand aliases -w for --with-dependencies and -W for --with-all-dependencies on update/require/remove commands
    • Added more info to vendor/composer/installed.json, a dev key stores whether dev requirements were installed, and every package now has an install-path key with its install location
    • Added COMPOSER_DISABLE_NETWORK which if set makes Composer do its best to run offline. This can be useful when you have poor connectivity or to do benchmarking without network jitter
    • Added COMPOSER_DEBUG_EVENTS=1 env var support for plugin authors to figure out which events are triggered when
    Changelog

    Sourced from composer/composer's changelog.

    [2.0.3] 2020-10-28

    • Fixed bug in outdated command where dev packages with branch-aliases where always shown as being outdated
    • Fixed issue in lock file interoperability with composer 1.x when using dev-master as xxx aliases
    • Fixed new --locked option being missing from outdated command, for checking outdated packages directly from the lock file
    • Fixed a few debug/error reporting strings

    [2.0.2] 2020-10-25

    • Fixed regression handling composer show -s in projects where no version can be guessed from VCS
    • Fixed regression handling partial updates/require when a lock file was missing
    • Fixed interop issue with plugins that need to update dist URLs of packages, see docs if you need this

    [2.0.1] 2020-10-24

    • Fixed crash on PHP8

    [2.0.0] 2020-10-24

    • Fixed proxy handling issues when combined with our new curl-based downloader
    • Fixed solver bug resulting in endless loops in some cases
    • Fixed solver output being extremely long due to learnt rules
    • Fixed solver bug with multi literals
    • Fixed a couple minor regressions

    [2.0.0-RC2] 2020-10-14

    • Breaking: Removed OperationInterface::getReason as the data was not accurate
    • Added automatic removal of packages which are not required anymore whenever an update is done, this will purge packages previously left over by partial updates and require/remove
    • Added shorthand aliases -w for --with-dependencies and -W for --with-all-dependencies on update/require/remove commands
    • Added COMPOSER_DEBUG_EVENTS=1 env var support for plugin authors to figure out which events are triggered when
    • Added setCustomCacheKey to PreFileDownloadEvent and fixed a cache bug for integrations changing the processed url of package archives
    • Added Composer\Util\SyncHelper for plugin authors to deal with async Promises more easily
    • Added $composer->getLoop()->getHttpDownloader() to get access to the main HttpDownloader instance in plugins
    • Added a non-zero exit code (2) and warning to remove command when a package to be removed could not be removed
    • Added --apcu-autoloader-prefix (or --apcu-prefix for dump-autoload command) flag to let people use apcu autoloading in a deterministic output way if that is needed
    • Fixed version guesser to look at remote branches as well as local ones
    • Lots of minor bug fixes and improvements

    [2.0.0-RC1] 2020-09-10

    • Added more advanced filtering to avoid loading all versions of all referenced packages when resolving dependencies, which should reduce memory usage further in some cases
    • Added support for many new lib-* packages in the platform repository and improved version detection for some ext-* and lib-* packages
    • Added an --ask flag to create-project command to make Composer prompt for the install dir name, useful for project install instructions
    • Added support for tar in artifact repositories
    • Added a cache-read-only config option to make the cache usable in read only mode for containers and such
    • Added better error reporting for a few more specific cases
    • Added a new optional available-package-patterns attribute for v2-format Composer repositories, see UPGRADE for details
    • Fixed more PHP 8 compatibility issues
    • Lots of minor bug fixes for regressions
    Commits
    • f7eebdd Release 2.0.3
    • ec5f020 Update changelog
    • 90a6aa7 Make sure we compare packages to their latest without aliases, fixes #9357
    • 86072a7 Merge branch '1.10'
    • 04e5d72 Add docs
    • ff74d0e Fix lock file generation with dev-master aliases to be compatible with Compos...
    • 44dc3c2 Try and sign phars on releases, refs #5155
    • 568d920 Fix tests
    • 881ec8c Use httpdownloader/curl to process install notifications
    • d699e6b Make sure global plugins are described as such in loading output, fixes compo...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump symfony/polyfill-ctype from 1.19.0 to 1.20.0

    Bump symfony/polyfill-ctype from 1.19.0 to 1.20.0

    Bumps symfony/polyfill-ctype from 1.19.0 to 1.20.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump symfony/polyfill-intl-grapheme from 1.19.0 to 1.20.0

    Bump symfony/polyfill-intl-grapheme from 1.19.0 to 1.20.0

    Bumps symfony/polyfill-intl-grapheme from 1.19.0 to 1.20.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump symfony/polyfill-php73 from 1.18.1 to 1.20.0

    Bump symfony/polyfill-php73 from 1.18.1 to 1.20.0

    Bumps symfony/polyfill-php73 from 1.18.1 to 1.20.0.

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.

    If all status checks pass Dependabot will automatically merge this pull request.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot badge me will comment on this PR with code to add a "Dependabot enabled" badge to your readme

    Additionally, you can set the following in the .dependabot/config.yml file in this repo:

    • Update frequency
    • Automerge options (never/patch/minor, and dev/runtime dependencies)
    • Out-of-range updates (receive only lockfile updates, if desired)
    • Security updates (receive only security updates, if desired)
    dependencies 
    opened by dependabot-preview[bot] 3
  • Bump composer/composer from 2.0.13 to 2.5.1

    Bump composer/composer from 2.0.13 to 2.5.1

    Bumps composer/composer from 2.0.13 to 2.5.1.

    Release notes

    Sourced from composer/composer's releases.

    2.5.1

    • Fixed ClassLoader regression which made it fail if serialized (e.g. within PHPUnit process isolation) (#11237)
    • Fixed preg type error in svn version guessing (#11231)

    2.5.0

    • BC Warning: To prevent abuse of our includeFile() function it is now gone, it was not part of the official API but may still cause issues if some code incorrectly relied on it (#11015)
    • Improved version guessing of require command to use the dependency resolution result instead of using the latest available version (except if you run with --no-update) (#11160)
    • Improved version selection in archive command (#11230)
    • Added hard failure when installing from a lock file which does not satisfy the composer.json requirements (#11195)
    • Added autocompletion of config option names in the config command (#11130)
    • Added support for writing custom commands as Command classes (#11151)
    • Added warning when the outdated command rejects a new package due to unmet platform requirements (#11113)
    • Added support for bump command to bump >=x to >=installed-version (#11179)
    • Added --download-only flag to install command to only download and prime the cache with the package archives (#11041)
    • Added autoconfiguration of github-domains/gitlab-domains when GitHub/GitLab credentials are configured for a custom domain (#11062)
    • Added hard failure (throw) if COMPOSER_AUTH is present and malformed JSON (#11085)
    • Added interactive prompt to run-script and exec commands if run without any argument (#11157)
    • Added interactive prompt where to store credentials when a project-local auth.json exists (#11188)
    • Fixed full disk warning to be shown when less than 100MiB is available (#11190)
    • Fixed cache keys to allow _ to avoid conflicts between package names like a-b and a_b (#11229)
    • Fixed docker compatibility by making paths more portable even if the project is installed at / (#11169)

    2.4.4

    • Added extra debug output when a zip extraction fails while on GitHub Actions (#11148)
    • Fixed cache write failures when the cache dir gets removed during a composer run (#11076)
    • Fixed 2.4.3 regression in loading Composer on SMB/network shares (#11077)
    • Fixed --dry-run flag missing from bump command (#11047)
    • Fixed status command reporting differences when the source ref is a tag (#11155)
    • Fixed outdated command outputting legend on stdout instead of stderr
    • Fixed URL sanitizer to handle new GitHub personal access tokens format (#11137)

    2.4.3

    • BC Break: The json format of audit command now has reportedAt as an RFC3339 string instead of an object which was a mistake (#11120)
    • Fixed json format of audit command which was missing affectedVersions (#11120)
    • Fixed plugin commands not being loaded during bash completions (#11074)
    • Fixed parsing of inline aliases within complex constraints with || or , (#11086)
    • Fixed min-php version check in autoload.php to avoid crashing sites running on PHP 5.5 or below silently with a 200 (#11091)
    • Fixed JsonFile reading files without checking if they are readable first (#11077)
    • Fixed require command with --dry-run failing when requiring a package requiring stability flag extraction (#11112)

    2.4.2

    • Fixed bash completion hanging when running as root without COMPOSER_ALLOW_SUPERUSER set (#11024)
    • Fixed handling of plugin activation when running as root without COMPOSER_ALLOW_SUPERUSER set so it always happens after prompting, or does not happen if input is non-interactive
    • Fixed package filter on bump command (#11053)
    • Fixed handling of --ignore-platform-req with upper-bound ignores to not apply to conflict rules (#11037)
    • Fixed handling of COMPOSER_DISCARD_CHANGES when set to 0
    • Fixed handling of zero-major versions in outdated command with --major-only (#11032)
    • Fixed show --platform regression since 2.4.0 when running in a directory without composer.json (#11046)
    • Fixed a few strict type errors

    ... (truncated)

    Changelog

    Sourced from composer/composer's changelog.

    [2.5.1] 2022-12-22

    • Fixed ClassLoader regression which made it fail if serialized (e.g. within PHPUnit process isolation) (#11237)
    • Fixed preg type error in svn version guessing (#11231)

    [2.5.0] 2022-12-20

    • BC Warning: To prevent abuse of our includeFile() function it is now gone, it was not part of the official API but may still cause issues if some code incorrectly relied on it (#11015)
    • Improved version guessing of require command to use the dependency resolution result instead of using the latest available version (except if you run with --no-update) (#11160)
    • Improved version selection in archive command (#11230)
    • Added autocompletion of config option names in the config command (#11130)
    • Added support for writing custom commands as Command classes (#11151)
    • Added hard failure when installing from a lock file which does not satisfy the composer.json requirements (#11195)
    • Added warning when the outdated command rejects a new package due to unmet platform requirements (#11113)
    • Added support for bump command to bump >=x to >=installed-version (#11179)
    • Added --download-only flag to install command to only download and prime the cache with the package archives (#11041)
    • Added autoconfiguration of github-domains/gitlab-domains when GitHub/GitLab credentials are configured for a custom domain (#11062)
    • Added hard failure (throw) if COMPOSER_AUTH is present and malformed JSON (#11085)
    • Added interactive prompt to run-script and exec commands if run without any argument (#11157)
    • Added interactive prompt where to store credentials when a project-local auth.json exists (#11188)
    • Fixed full disk warning to be shown when less than 100MiB is available (#11190)
    • Fixed cache keys to allow _ to avoid conflicts between package names like a-b and a_b (#11229)
    • Fixed docker compatibility by making paths more portable even if the project is installed at / (#11169)

    [2.4.4] 2022-10-27

    • Added extra debug output when a zip extraction fails while on GitHub Actions (#11148)
    • Fixed cache write failures when the cache dir gets removed during a composer run (#11076)
    • Fixed 2.4.3 regression in loading Composer on SMB/network shares (#11077)
    • Fixed --dry-run flag missing from bump command (#11047)
    • Fixed status command reporting differences when the source ref is a tag (#11155)
    • Fixed outdated command outputting legend on stdout instead of stderr
    • Fixed URL sanitizer to handle new GitHub personal access tokens format (#11137)

    [2.4.3] 2022-10-14

    • BC Break: The json format of audit command now has reportedAt as an RFC3339 string instead of an object which was a mistake (#11120)
    • Fixed json format of audit command which was missing affectedVersions (#11120)
    • Fixed plugin commands not being loaded during bash completions (#11074)
    • Fixed parsing of inline aliases within complex constraints with || or , (#11086)
    • Fixed min-php version check in autoload.php to avoid crashing sites running on PHP 5.5 or below silently with a 200 (#11091)
    • Fixed JsonFile reading files without checking if they are readable first (#11077)
    • Fixed require command with --dry-run failing when requiring a package requiring stability flag extraction (#11112)

    [2.4.2] 2022-09-14

    • Fixed bash completion hanging when running as root without COMPOSER_ALLOW_SUPERUSER set (#11024)
    • Fixed handling of plugin activation when running as root without COMPOSER_ALLOW_SUPERUSER set so it always happens after prompting, or does not happen if input is non-interactive
    • Fixed package filter on bump command (#11053)
    • Fixed handling of --ignore-platform-req with upper-bound ignores to not apply to conflict rules (#11037)

    ... (truncated)

    Commits
    • 923278a Release 2.5.1
    • 9c04f9b Update changelog
    • cf8ce82 Fix preg match type error in svn version guessing, fixes #11231
    • cbb7c91 Fix ClassLoader to be serializable (#11237)
    • 7290f5b Document recovering from invalid merges on composer.lock and composer.json (#...
    • da611e0 Docs: fix documention deep links (#11233)
    • 737fd0f Reverting release version changes
    • 09ef0e3 Release 2.5.0
    • 5d659be Update changelog
    • be053cb Allow underscores in cache keys to avoid conflicts with package names contain...
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump codeception/codeception from 4.1.20 to 4.2.2

    Bump codeception/codeception from 4.1.20 to 4.2.2

    Bumps codeception/codeception from 4.1.20 to 4.2.2.

    Release notes

    Sourced from codeception/codeception's releases.

    4.2.2

    • Propagate --ext and --override parameters to included test suites (#6536)
    • Fixed false negative message about stecman/symfony-console-completion package (#6541)

    4.2.1

    • Execute setupBeforeClass/tearDownAfterClass only once (#6481)
    • Handle action with intersection return type correctly in dry-run command

    4.2.0

    • Improved multi-application experience, allow filtering suites by name (#6435) by @​calvinalkan
    • Configuration override is passed to included suites (#5978) by @​calvinalkan
    • Made dry-run command work with module methods having return types (#6470)
    • Support for expectError/Warning/Notice/Deprecation methods in unit tests (Requires PHPUnit 8.4+)
    • Implemented new setting convert_deprecations_to_exceptions (#6469)
    • Action file generator: Do not return when return type is never (#6462)
    • Backported test.useless event from Codeception 5.0 (#6459)

    4.1.31

    • RunBefore extension prints error output and stops execution if command failed
    • Action file generator: Fixed handling of intersection types
    • Action file generator: Fixed handling of self and parent types

    4.1.30

    • Fix handling of previous exception in ExtensionException
    • Improved parser fix for PHP keywords as named parameters
    • Add link to https://helpukrainewin.org

    4.1.29

    • Fixed duplicate test runs when codeception.yml and codeception.dist.yml are present in multi-app setup by @​calvinalkan
    • Action generator handles mixed type correctly
    • Parser fix to allow named parameters named class and namespace

    4.1.28

    4.1.27

    • Renamed editorUrl setting to editor_url for consistency
    • Fixed wildcard matching of group files (#6302) by @​DavertMik

    4.1.26

    • Added editorUrl setting to codeception.yml (#6261) by @​ThomasLandauer
    • Reverted optional value to fail-fast option because it was breaking change (#6290)
    • Fixed E_DEPRECATED warnings in Example class on PHP 8.1 (#6298) by @​fabacino

    4.1.25

    4.1.24

    ... (truncated)

    Changelog

    Sourced from codeception/codeception's changelog.

    4.2.2

    • Propagate --ext and --override parameters to included test suites (#6536)
    • Fixed false negative message about stecman/symfony-console-completion package (#6541)

    4.2.1

    • Execute setupBeforeClass/tearDownAfterClass only once (#6481)
    • Handle action with intersection return type correctly in dry-run command

    4.2.0

    • Improved multi-application experience, allow filtering suites by name (#6435) by @​calvinalkan
    • Configuration override is passed to included suites (#5978) by @​calvinalkan
    • Made dry-run command work with module methods having return types (#6470)
    • Support for expectError/Warning/Notice/Deprecation methods in unit tests (Requires PHPUnit 8.4+)
    • Implemented new setting convert_deprecations_to_exceptions (#6469)
    • Action file generator: Do not return when return type is never (#6462)
    • Backported test.useless event from Codeception 5.0 (#6459)

    4.1.31

    • RunBefore extension prints error output and stops execution if command failed
    • Action file generator: Fixed handling of intersection types
    • Action file generator: Fixed handling of self and parent types

    4.1.30

    • Fix handling of previous exception in ExtensionException
    • Improved parser fix for PHP keywords as named parameters
    • Add link to https://helpukrainewin.org

    4.1.29

    • Fixed duplicate test runs when codeception.yml and codeception.dist.yml are present in multi-app setup by @​calvinalkan
    • Action generator handles mixed type correctly
    • Parser fix to allow named parameters named class and namespace

    4.1.28

    4.1.27

    • Renamed editorUrl setting to editor_url for consistency
    • Fixed wildcard matching of group files (#6302) by @​DavertMik

    4.1.26

    ... (truncated)

    Commits
    • b88014f 4.2.2
    • c53401d Propagate --ext and --override parameters to included test suites (#6536)
    • 83f6f7b Fixed false negative message about stecman/symfony-console-completion packege
    • 0ce6194 update links (#6544)
    • 30c5ed8 CI: Bump COMPOSER_ROOT_VERSION in 4.2 branch
    • 77b3e20 4.2.1
    • 2bc7b3d Merge pull request #6481 from Codeception/4.2-execute-before-after-class-hook...
    • a9a4c27 Execute before/after class hooks only once
    • 0f93270 RunCest: Improve data provider output of html report tests
    • 71ab0a1 Handle intersection return type correctly in dry-run
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump squizlabs/php_codesniffer from 3.6.0 to 3.7.1

    Bump squizlabs/php_codesniffer from 3.6.0 to 3.7.1

    Bumps squizlabs/php_codesniffer from 3.6.0 to 3.7.1.

    Release notes

    Sourced from squizlabs/php_codesniffer's releases.

    3.7.1

    • Fixed bug #3609: Methods/constants with name empty/isset/unset are always reported as error
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch

    3.7.0

    PHP 8.1 Language Feature Support

    PHP_CodeSniffer has run correctly under PHP 8.1 since PHP 8 support was added, but it has not supported new 8.1 language features until this release. Version 3.7.0 adds support for the following PHP 8.1 language features:

    • Enums
    • Explicit octal notation
    • Readonly properties
    • Intersection types
    • The never type

    Note: Standards and sniffs included with PHP_CodeSniffer have been updated to support these language features, but external standards and sniffs may need updating before they are able to detect them correctly.

    Changelog

    • Added support for PHP 8.1 explicit octal notation
      • This new syntax has been backfilled for PHP versions less than 8.1
      • Thanks to Mark Baker (@​MarkBaker) for the patch
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for additional fixes
    • Added support for PHP 8.1 enums
      • This new syntax has been backfilled for PHP versions less than 8.1
      • Includes a new T_ENUM_CASE token to represent the case statements inside an enum
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for additional core and sniff support
    • Added support for the PHP 8.1 readonly token
      • Tokenzing of the readonly keyword has been backfilled for PHP versions less than 8.1
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
    • Added support for PHP 8.1 intersection types
      • Includes a new T_TYPE_INTERSECTION token to represent the ampersand character inside intersection types
      • Thanks to Jaroslav Hanslík (@​kukulich) for the patch
    • File::getMethodParameters now supports the new PHP 8.1 readonly token
      • When constructor property promotion is used, a new property_readonly array index is included in the return value
        • This is a boolean value indicating if the property is readonly
      • If the readonly token is detected, a new readonly_token array index is included in the return value
        • This contains the token index of the readonly keyword
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patch
    • Support for new PHP 8.1 readonly keyword has been added to the following sniffs:
      • Generic.PHP.LowerCaseKeyword
      • PSR2.Classes.PropertyDeclaration
      • Squiz.Commenting.BlockComment
      • Squiz.Commenting.DocCommentAlignment
      • Squiz.Commenting.VariableComment
      • Squiz.WhiteSpace.ScopeKeywordSpacing
      • Thanks to Juliette Reinders Folmer (@​jrfnl) for the patches
    • The parallel feature is now more efficient and runs faster in some situations due to improved process management
    • The list of installed coding standards now has consistent ordering across all platforms

    ... (truncated)

    Commits
    • 1359e17 Prepare for 3.7.1 release
    • 0f02e3e Updated changelog message for #3609
    • f035ed3 Changelog for #3609 (ref #3610)
    • 3726154 Merge branch 'feature/3609-bugfix-context-sensitive-keyword-empty' of https:/...
    • 5f78900 Tokenizer/PHP: bug fix in improved context sensitive keyword support
    • a2cd51b Prepare for 3.7.0 release
    • d8313c6 Changelog for #3604
    • fe4dde5 Merge branch 'feature/tokenizer-php-bugfix-double-quoted-strings' of https://...
    • 7f5c55d Merge branch 'php-8.1/tokenizer-php-bugfix-octal-explicit-notation' of https:...
    • e9f6c43 Changelog for #3575
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    dependencies 
    opened by dependabot[bot] 0
  • Bump guzzlehttp/psr7 from 1.8.2 to 1.8.5

    Bump guzzlehttp/psr7 from 1.8.2 to 1.8.5

    Bumps guzzlehttp/psr7 from 1.8.2 to 1.8.5.

    Release notes

    Sourced from guzzlehttp/psr7's releases.

    1.8.5

    See change log for changes.

    1.8.4

    See change log for changes.

    1.8.3

    See change log for changes.

    Changelog

    Sourced from guzzlehttp/psr7's changelog.

    1.8.5 - 2022-03-20

    Fixed

    • Correct header value validation

    1.8.4 - 2022-03-20

    Fixed

    • Validate header values properly

    1.8.3 - 2021-10-05

    Fixed

    • Return null in caching stream size if remote size is null
    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) You can disable automated security fix PRs for this repo from the Security Alerts page.
    dependencies 
    opened by dependabot[bot] 0
  • Bump composer/composer from 2.0.13 to 2.2.9

    Bump composer/composer from 2.0.13 to 2.2.9

    Bumps composer/composer from 2.0.13 to 2.2.9.

    Release notes

    Sourced from composer/composer's releases.

    2.2.9

    • Fixed regression with plugins that modify install path of packages, see docs if you are authoring such a plugin (#10621)

    2.2.8

    • Fixed files autoloading sort order to be fully deterministic (#10617)
    • Fixed pool optimization pass edge cases (#10579)
    • Fixed require command failing when self.version is used as constraint (#10593)
    • Fixed --no-ansi / undecorated output still showing color in repo warnings (#10601)
    • Performance improvement in pool optimization step (composer/semver#131)

    2.2.7

    • Allow installation together with composer/xdebug-handler ^3 (#10528)
    • Fixed support for packages with no licenses in licenses command output (#10537)
    • Fixed handling of allow-plugins: false which kept warning (#10530)
    • Fixed enum parsing in classmap generation when the enum keyword is not lowercased (#10521)
    • Fixed author parsing in init command requiring an email whereas the schema allows a name only (#10538)
    • Fixed issues in require command when requiring packages which do not exist (but are provided by something else you require) (#10541)
    • Performance improvement in pool optimization step (#10546)

    2.2.6

    • BC Break: due to an oversight, the COMPOSER_BIN_DIR env var for binaries added in Composer 2.2.2 had to be renamed to COMPOSER_RUNTIME_BIN_DIR (#10512)
    • Fixed enum parsing in classmap generation with syntax like enum foo:string without space after : (#10498)
    • Fixed package search not urlencoding the input (#10500)
    • Fixed reinstall command not firing pre-install-cmd/post-install-cmd events (#10514)
    • Fixed edge case in path repositories where a symlink: true option would be ignored on old Windows and old PHP combos (#10482)
    • Fixed test suite compatibility with latest symfony/console releases (#10499)
    • Fixed some error reporting edge cases (#10484, #10451, #10493)

    2.2.5

    • Disabled composer/package-versions-deprecated by default as it can function using Composer\InstalledVersions at runtime (#10458)
    • Fixed artifact repositories crashing if a phar file was present in the directory (#10406)
    • Fixed binary proxy issue on PHP <8 when fseek is used on the proxied binary path (#10468)
    • Fixed handling of non-string versions in package repositories metadata (#10470)

    2.2.4

    • Fixed handling of process timeout when running async processes during installation
    • Fixed GitLab API handling when projects have a repository disabled (#10440)
    • Fixed reading of environment variables (e.g. APPDATA) containing unicode characters to workaround a PHP bug on Windows (#10434)
    • Fixed partial update issues with path repos missing if a path repo is required by a path repo (#10431)
    • Fixed support for sourcing binaries via the new bin proxies (#10389)
    • Fixed messaging when GitHub tokens need SSO authorization (#10432)

    2.2.3

    • Fixed issue with PHPUnit and process isolation now including PHPUnit <6.5 (#10387)
    • Fixed interoperability issue with laminas/laminas-zendframework-bridge and Composer 2.2 (#10401)
    • Fixed binary proxies for shell scripts to work correctly when they are symlinked (jakzal/phpqa#336)
    • Fixed overly greedy pool optimization in cases where a locked package is not required by anything anymore in a partial update (#10405)

    2.2.2

    ... (truncated)

    Changelog

    Sourced from composer/composer's changelog.

    [2.2.9] 2022-03-15

    • Fixed regression with plugins that modify install path of packages, see docs if you are authoring such a plugin (#10621)

    [2.2.8] 2022-03-15

    • Fixed files autoloading sort order to be fully deterministic (#10617)
    • Fixed pool optimization pass edge cases (#10579)
    • Fixed require command failing when self.version is used as constraint (#10593)
    • Fixed --no-ansi / undecorated output still showing color in repo warnings (#10601)
    • Performance improvement in pool optimization step (composer/semver#131)

    [2.2.7] 2022-02-25

    • Allow installation together with composer/xdebug-handler ^3 (#10528)
    • Fixed support for packages with no licenses in licenses command output (#10537)
    • Fixed handling of allow-plugins: false which kept warning (#10530)
    • Fixed enum parsing in classmap generation when the enum keyword is not lowercased (#10521)
    • Fixed author parsing in init command requiring an email whereas the schema allows a name only (#10538)
    • Fixed issues in require command when requiring packages which do not exist (but are provided by something else you require) (#10541)
    • Performance improvement in pool optimization step (#10546)

    [2.2.6] 2022-02-04

    • BC Break: due to an oversight, the COMPOSER_BIN_DIR env var for binaries added in Composer 2.2.2 had to be renamed to COMPOSER_RUNTIME_BIN_DIR (#10512)
    • Fixed enum parsing in classmap generation with syntax like enum foo:string without space after : (#10498)
    • Fixed package search not urlencoding the input (#10500)
    • Fixed reinstall command not firing pre-install-cmd/post-install-cmd events (#10514)
    • Fixed edge case in path repositories where a symlink: true option would be ignored on old Windows and old PHP combos (#10482)
    • Fixed test suite compatibility with latest symfony/console releases (#10499)
    • Fixed some error reporting edge cases (#10484, #10451, #10493)

    [2.2.5] 2022-01-21

    • Disabled composer/package-versions-deprecated by default as it can function using Composer\InstalledVersions at runtime (#10458)
    • Fixed artifact repositories crashing if a phar file was present in the directory (#10406)
    • Fixed binary proxy issue on PHP <8 when fseek is used on the proxied binary path (#10468)
    • Fixed handling of non-string versions in package repositories metadata (#10470)

    [2.2.4] 2022-01-08

    • Fixed handling of process timeout when running async processes during installation
    • Fixed GitLab API handling when projects have a repository disabled (#10440)
    • Fixed reading of environment variables (e.g. APPDATA) containing unicode characters to workaround a PHP bug on Windows (#10434)
    • Fixed partial update issues with path repos missing if a path repo is required by a path repo (#10431)
    • Fixed support for sourcing binaries via the new bin proxies (#10389)
    • Fixed messaging when GitHub tokens need SSO authorization (#10432)

    [2.2.3] 2021-12-31

    ... (truncated)

    Commits

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    opened by dependabot[bot] 0
  • Global Installation Issue

    Global Installation Issue

    I was trying out doing a global installation of this package so I could keep it out of the project requirements, but ran into an issue. It looks like it's attempting to run after being globally installed because I get the error:

    Installation failed, reverting ./composer.json and ./composer.lock to their original content.
                              
      [UnexpectedValueException]   
      Imposter namespace is empty
    

    I'm going to look in the code a bit, but I'm hoping it would be easy to make sure that if composer global is being run then the the package won't attempt to run.

    opened by tylersatre 3
Ied plugin composer - Inspired Plugin Composer: Create, publish and edit plugins from within Textpattern CMS.

ied_plugin_composer Create, publish and edit plugins from within Textpattern CMS. Creates a new page under the Extensions tab where you can edit and e

Stef Dawson 8 Oct 3, 2020
Victor The Cleaner for Composer - This tool removes unnecessary files and directories from Composer vendor directory.

Victor The Cleaner for Composer This tool removes unnecessary files and directories from Composer vendor directory. The Cleaner leaves only directorie

David Grudl 133 Oct 26, 2022
This composer plugin allows you to share your selected packages between your projects by creating symlinks

Composer - Shared Package Plugin This composer plugin allows you to share your selected packages between your projects by creating symlinks. All share

L'Etudiant 169 Sep 20, 2022
WordPress Packagist — manage your plugins with Composer

WordPress Packagist This is the repository for wpackagist.org which allows WordPress plugins and themes to be managed along with other dependencies us

Outlandish 648 Jan 1, 2023
The Drupal Vendor Hardening Composer Plugin

The Drupal Vendor Hardening Composer Plugin

Drupal 13 Oct 4, 2022
This composer plugin removes unnecessary development files and directories from vendor directory

Composer Vendor Cleaner This composer plugin removes unnecessary development files and directories from vendor directory. Installation Local installat

Libor M. 15 Dec 16, 2022
FuelPHP Framework - Class and Namespace alias library

Fuel Alias Library for lazy class aliasing. Install Via Composer $ composer require fuelphp/alias Usage Within FuelPHP class aliases are used to provi

fuelphp-storage 20 Feb 20, 2022
A PHP script that converts PMMP-3 Plugins into PMMP-4 plugins

This script tries to convert pm3 plugins to pm4 as good as possible, but sadly not perfect. Please open issues if you find any unexpected behaviour, to help improving this script.

null 43 Dec 3, 2022
Composer Repository Manager for selling Magento 2 extension and offering composer installation for ordered packages.

Magento 2 Composer Repository Credits We got inspired by https://github.com/Genmato. Composer Repository for Magento 2 This extension works as a Magen

EAdesign 18 Dec 16, 2021
WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. - run user analytics within your system and track user data inside your database.

Gary 5 Dec 21, 2022
WordPlate is a wrapper around WordPress. It makes developers life easier. It is just like building any other WordPress website with themes and plugins. Just with sprinkles on top.

WordPlate is simply a wrapper around WordPress. It makes developers life easier. It is just like building any other WordPress website with themes and plugins. Just with sprinkles on top.

WordPlate 1.7k Dec 24, 2022
This composer plugin is a temporary implementation of using symbolic links to local packages as dependencies to allow a parallel work process

Composer symlinker A Composer plugin to install packages as local symbolic links. This plugin is a temporary implementation of using symbolic links to

Pierre Cassat 18 Nov 9, 2021
Examples of the power of WordPress plugins that will wreck your site.

Examples of the power of WordPress plugins that will wreck your site.

Teemu Suoranta 4 Mar 2, 2022
This plugin help us to remove the unused file or directories in vendor

Composer Ignore Plugin This plugin help us to remove the unused file or directories in vendor. Installation Both global or local install can work well

__FresHmaN 21 Oct 21, 2021
run user analytics within your system and track user data inside your database.

WP Local Analytics plugin. run user analytics within your system and track user data inside your database. Installing Go to the plugin page from the W

Gary 5 Dec 21, 2022
Food theme for Commerce, intended for food delivery/pickup use cases

Food theme for Commerce ################################ WORK IN PROGRESS - NOT READY FOR USE ################################ This theme for Commerce

modmore | More for MODX 5 Feb 15, 2022
Couleur is a modern PHP 8.1+ color library, intended to be compatible with CSS Color Module Level 4.

?? Couleur: A modern PHP 8.1+ color library ?? Couleur: A modern PHP 8.1+ color library ?? Presentation ⚙️ Installation ?? Quick Start ?? Usage ?? Imm

Matthieu Masta Denis 3 Oct 26, 2022
Opinionated version of Wikimedia composer-merge-plugin to work in pair with Bamarni composer-bin-plugin.

Composer Inheritance Plugin Opinionated version of Wikimedia composer-merge-plugin to work in pair with bamarni/composer-bin-plugin. Usage If you are

Théo FIDRY 25 Dec 2, 2022