1
0
Fork 0
Commit Graph

169 Commits (2fe3244ddb68aa5260844a57c18ff027e279b83d)

Author SHA1 Message Date
Jordi Boggiano d855986c39
Also allow backslashes to work on cmd.exe for plain executable paths, fixes #9707 2021-02-23 15:23:17 +01:00
Jordi Boggiano 057006da4f
Make sure @php path/to/bla gets executed as php path\to\bla on windows, fixes #6968 2021-02-23 08:57:35 +01:00
Jordi Boggiano 8f7597da22
Use a different way to suppress output than changing output verbosity in exec command, fixes #9711 2021-02-22 13:42:58 +01:00
Dávid Andor 360966dcdf EventDispatcher uses only the return value of the last one listener, refs #9703 2021-02-16 22:01:14 +01:00
Jordi Boggiano d4073a40f9
Prepend runtime-autoloaders so that dependencies get loaded over Composer bundled packages
As Composer is generally compatible with newer versions of Symfony than the bundled ones, this should
not be a problem if dependencies are shared, and it ensures that the most relevant code gets loaded.
2021-02-12 11:14:40 +01:00
Jordi Boggiano 125f8a3319
Merge branch '1.10' 2021-01-26 15:56:49 +01:00
Jordi Boggiano 2cb9630320
Fix $_SERVER var not being updated when using putenv, refs b80038804f and fixes #9372 2021-01-26 15:54:21 +01:00
Jordi Boggiano b7d770659b
CS fixes 2020-11-22 14:52:39 +01:00
Jordi Boggiano 24abd233ec
Merge branch 'master' into code-improvements 2020-10-13 12:23:13 +02:00
Jordi Boggiano 3c25d180e6
Add detailed notes about events in upgrade guide, add COMPOSER_DEBUG_EVENTS env var for debugging events 2020-10-13 12:08:42 +02:00
Simon Berger 33d7a64df9 Removed unused private functions 2020-09-20 02:16:28 +02:00
Simon Berger bae227ec2d Changed all substr calls used to compare fragments of text to strpos
Some additional code cleanups in those classes

Reverted change causing issues
2020-09-07 21:08:34 +02:00
Jordi Boggiano a4a617abb4
Reduce amount of Filesystem/ProcessExecutor instantiations, add lots of docblocks 2020-06-04 16:08:23 +02:00
Jordi Boggiano acf2b15982
Merge branch '1.10' 2020-05-22 10:30:51 +02:00
azjezz 30f994e424 fix deprecations in PHP 8 2020-05-21 18:16:19 +01:00
Jordi Boggiano 86cfbdc541
Merge branch '1.10' 2020-04-10 11:45:48 +02:00
Jordi Boggiano 2f7e901940
Fix #8748 in an alternative way to avoid messing with PATH for other binaries, fixes #8758 2020-04-10 11:42:52 +02:00
Jordi Boggiano 8e664a37f5
Merge branch '1.10' 2020-04-09 16:13:15 +02:00
Jordi Boggiano b79f2b5e0f
Make sure scripts calling composer call the correct composer binary even if the project requires composer/composer, fixes #8748 2020-04-09 15:43:47 +02:00
Jordi Boggiano d63eb8179e
Merge branch 'master' into 2.0 2020-03-10 14:05:33 +01:00
Jordi Boggiano c6969756e8
Make sure $_SERVER is updated when putenv updates environment variables, fixes #8298 2020-02-28 16:27:06 +01:00
Jordi Boggiano d52ce3c37f
Replace pre/post-dependencies-solving by a pre-operations-exec event happening only on install from lock 2020-02-12 14:35:31 +01:00
Jordi Boggiano 71855e6430
Restore PRE/POST_DEPENDENCY_SOLVING events 2020-02-12 10:41:03 +01:00
Jordi Boggiano 006c3de542
Fix tests and make TTY usage on ProcessExecutor cleaner 2020-01-31 16:33:34 +01:00
Jordi Boggiano f572636628
Add support for TTY mode on Linux/OSX in script handlers when running in interactive mode, fixes #5856, fixes #3299, closes #4036 2020-01-31 15:45:33 +01:00
Jérôme Billiras 58e2956b95
Allow referencing scripts to extends @composer 2020-01-31 14:56:22 +01:00
Jordi Boggiano 8584d15e8c
Merge branch 'master' into 2.0 2020-01-28 14:04:27 +01:00
Adriano Ferreira acc040f745 Append the bin dir on each listener iteration
The "composer install" can create the vendor/dir folders and be used as a script item on composer.json. Having another script running after it that relies on vendor/bir binaries (such as phpunit) will cause it to not find the binary. This fix addresses the issue by trying to append the path on each script iteration.
2020-01-20 08:11:08 -02:00
Jordi Boggiano 23359f2db6
Merge branch 'master' into 2.0 2020-01-13 13:35:52 +01:00
Markus Staab 3d8c1ebad5 implemented @putenv composer script
@putenv supports setting environment variables in a x-OS compatible way
2019-12-21 19:26:29 +01:00
Jordi Boggiano 006985a0ea
Execute all operations at once which lets us download all packages in parallel then install only once all downloads succeeded, fixes #2847
This also changes the PRE/POST_PACKAGE_INSTALL/UPDATE/UNINSTALL events to have less information available on them, repositorySet, request and policy are gone
2019-11-14 15:21:28 +01:00
Nils Adermann f5e18250e6 Merge remote-tracking branch 'github-composer/2.0' into solve-without-installed
* github-composer/2.0: (48 commits)
  Fix missing use/undefined var
  Split up steps on VCS downloaders to allow doing network operations before touching the filesystem on GitDownloader, fixes #7903
  Fix use statement
  Deduplicate findHeaderValue code
  Add install-path to the installed.json for every package, fixes #2174, closes #2424
  Remove unnecessary config from phpstan
  Make sure the directory exists and will not block installation later when downloading
  Avoid wiping the whole target package if download of the new one fails, refs #7929
  Only empty dir before actually installing packages, fixes #7929
  Improve output when installing packages
  Show best possible version in diagnose command
  Remove extra arg
  Allow path repos to point to their own source dir as install target, resulting in noop, fixes #8254
  Fix use of decodeJson
  Fix update mirrors to also update transport-options, fixes #7672
  Fix updating or URLs to include dist type and shasum, fixes #8216
  Fix origin computation
  Improve handling of non-standard ports for GitLab and GitHub installs, fixes #8173
  Load packages from the lock file for check-platform-reqs if no dependencies have been installed yet, fixes #8058
  Fix error_handler return type declaration
  ...
2019-09-07 02:55:21 +02:00
Jordi Boggiano 6c4357a7ed
Merge branch 'master' into 2.0 2019-07-31 17:50:01 +02:00
Nils Adermann 9053d74282 Merge branch '2.0' into solve-without-installed
* 2.0: (101 commits)
  SVN: hide passwords for debug output
  Free $solver asap
  fixes #8179
  [minor] Fixed a typo in the CHANGELOG.md.
  Update deps
  Update changelog
  Revert "Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET" Revert "Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151"
  Add docs for COMPOSER_SELF_UPDATE_TARGET, refs #8151
  Fix display of HHVM warning appearing when HHVM is not in use, fixes #8138
  Read classmap-authoritative and apcu-autoloader from project config when installing via create-project, fixes #8155
  Use possessive quantifiers
  Update xdebug-handler to 1.3.3
  fixes #8159
  Allow overriding self-update target file with envvar COMPOSER_SELF_UPDATE_TARGET
  flag should come before script name
  use full command name, not abbreviated/alias
  modify text
  Document the alternatives to disable the default script timeout
  Anchor pattern
  Fix URL resolution for Composer repositories
  ...
2019-06-27 14:35:36 +02:00
Ken Love 81a4f74b5b Composer\Script\Event should have access to originating event details 2019-06-12 16:54:09 -04:00
Matthew Brown 65903aacfd Fix type issues (#7996)
* Fix type issues found by Psalm
2019-02-19 15:35:48 +01:00
Jordi Boggiano 1b7e957cc1
Add EventDispatcher::removeListener to allow deregistration of listeners 2019-02-18 18:12:38 +01:00
Nils Adermann 10ada7bf82 Refactor Installer class into separate install and update processes
- Introduce separate Lock and LocalRepo transactions, one for changes
  to the lock file, one for changes to locally installed packages based
  on lock file
- Remove various hacks to keep dev dependencies updated and
  incorporated the functionality into the transaction classes
- Remove installed repo, there are now local repo, locked repo and
  platform repo
- Remove access to local repo from solver, only supply locked packages
- Update can now be run to modify the lock file but not install packages
  to local repo
2019-02-11 01:00:02 +01:00
Jordi Boggiano 0b928b2a42 Merge branch 'master' into 2.0 2019-01-28 14:33:10 +01:00
Christopher Hertel e5989fcfe0 adding PHP_BINARY as env var to script execution 2018-12-26 21:17:57 +01:00
Jordi Boggiano 411dd51f20 Merge branch 'master' into 2.0 2018-12-03 10:41:19 +01:00
Jérôme Deuchnord b0b00ad1fa Call a script recursively with extra parameters (#7720)
* Added support for calling scripts recursively (fixes #7562)
2018-11-26 12:35:41 +01:00
Michele Locati 04098153c8 Add support for running composer with phpdbg (#7798) 2018-11-26 12:32:31 +01:00
Jordi Boggiano 2e0f31106a Merge remote-tracking branch 'origin/master' into 2.0 2018-11-12 16:01:07 +01:00
Jordi Boggiano 5a56bb6971 Remove BC event and constraint classes 2018-11-12 15:57:44 +01:00
Gabriel Caruso 2a13bb2649 Fixes from PHPStan (#7687)
* fix docblocks

* remove redundant conditional

* fix wrong variable name

* fix wrong namespaces

* add missing private members

* remove unused/redundant arguments

* move testcase class

* exclude TestCase.php

* Tweak RuleWatchGraph type hints

* Tweak doc comment
2018-11-12 15:23:32 +01:00
Nils Adermann 6ef65e5319 Add a new RepositorySet class and restrict pool usage to the solver
Breaking change for the plugin interface so bumping the version of
composer-plugin-api to 2.0.0

First step for a refactoring of the package metadata loading mechanism
2018-09-10 15:27:54 +02:00
Jordi Boggiano ff59bbdab0 CS fixer 2018-07-24 14:32:52 +02:00
Jordi Boggiano e37e7f1329 Fix handling of non-callable event listeners, fixes #7229 2018-04-13 10:43:43 +02:00
Jordi Boggiano 288631a37e Log the source of the failure when an aliased script fails, fixes #7201 2018-04-12 19:42:23 +02:00
Jordi Boggiano 9824d339b6 Escape arguments, refs #6414 2017-05-16 22:18:19 +02:00
Jasper N. Brouwer 4ce39c75c7 Pass more ini directives when executing php
Not only pass the current value for "memory_limit" along when executing
php, but also do the same for "allow_url_fopen" and "disable_functions"
2017-05-16 22:14:20 +02:00
Jordi Boggiano 122e422682 CS fixes 2017-03-08 15:16:44 +01:00
Jordi Boggiano 1baa2a52d4 Make sure script running errors are always output even in quiet mode, fixes #6122 2017-03-06 10:45:03 +01:00
Jordi Boggiano 7aa7c3ced3 Forward composer memory_limit to child processes, fixes #6075 2017-01-22 19:03:22 +01:00
Jordi Boggiano e4840ee413 Add a COMPOSER_BINARY env var so that chdir does not affect @composer script resolvability, fixes #6080 2017-01-22 18:26:49 +01:00
Jordi Boggiano 98c5f825e0 Fix tests and regression in @ref script handling 2016-12-11 16:37:55 +01:00
Jordi Boggiano b0000617cc Support @php prefix for scripts to reuse the current PHP interpreter, fixes #5957 2016-12-11 16:17:34 +01:00
Fabien Potencier 07cbb73184 fixed deprecated class usages 2016-10-31 06:57:17 -07:00
Jordi Boggiano ec2660fe78 Fix regex escaping, fixes #5674 2016-09-13 16:18:05 +02:00
Jordi Boggiano 2ffa1148a9 Merge branch '1.2' 2016-09-12 19:06:26 +02:00
Den Girnyk 71e0fba216 Pass devMode from RunScriptCommand to Script\Event 2016-09-12 17:20:51 +02:00
Jordi Boggiano 2d8251b7ad Fix handling of local binaries on windows, refs #5612 2016-09-10 12:51:53 +02:00
David Jack Wange Olrik 2c84be47c2 Add support for seamless execution of local binaries
Projects that add binaries to `vendor-bin` can now execute those via the same command as projects that consume them without installing them first.

In list overview local commands have a `(local)` tag to distinguish them from commands installed in `vendor-bin`.

Local binaries take precedence over `vendor-bin` which takes precedence over binaries in path.
2016-08-21 16:57:19 +02:00
Jordi Boggiano aaf2c06e7b Add ScriptExecutionException for CLI scripts and avoid showing the full exception to users, fixes #5281 2016-05-05 13:26:26 +01:00
Jordi Boggiano a67b127a1a Add deprecation notice for the event type hint rewrites, refs #5238 2016-04-24 15:48:48 +01:00
Jordi Boggiano 60ce2324bc Add ability to call composer from scripts using @composer XXX, fixes #5153 2016-04-11 19:03:32 +01:00
Jordi Boggiano c45cc912ab Warn when referencing unknown scripts 2016-04-11 18:49:22 +01:00
Jordi Boggiano 1f0b01e70d Merge remote-tracking branch 'watermanio/strict-types' into 1.0 2016-04-11 15:11:46 +01:00
Jordi Boggiano 3b0a1c6f70 Run cs fixer and update config to latest master 2016-04-11 15:06:57 +01:00
Niels Keurentjes 818c3e707a Ton of phpDoc fixes. 2016-04-07 01:12:30 +02:00
Andy Waterman d4207ff49f Strict type checks of null and bool 2016-04-06 20:55:53 +01:00
Jordi Boggiano f542b0f32d Only use Path if it is actually available, refs #5114 2016-03-26 09:49:28 +00:00
nishiyama 8b221905ca fix path info 2016-03-25 20:04:43 +09:00
Jordi Boggiano 934be204a2 Simplify exec implementation and add full PATH support, refs #4887 2016-02-25 12:15:38 +00:00
Jordi Boggiano 2609cfdd1d Always set bin-dir into PATH before calling scripts, fixes #4852, closes #4898 2016-02-10 14:11:05 +00:00
Jordi Boggiano 49d7d65933 Add verbosity input support to IOInterface 2016-01-29 10:14:12 +00:00
Jordi Boggiano adc0bbeeb9 Forward args/flags down to referenced events 2015-11-14 14:02:47 +00:00
Jordi Boggiano 24ccaa328d Tweak output of calls to script references, refs #4592 2015-11-14 13:52:26 +00:00
Giorgio Premi fd0026b542 Detect infinite script call recursion 2015-11-09 15:34:11 +01:00
Giorgio Premi a25492d1b9 Allow composer script call with @ syntax 2015-11-09 15:34:11 +01:00
Jordi Boggiano ce08582671 Fix CS 2015-09-28 10:53:24 +01:00
Jordi Boggiano a8d71be0ef Add event name in verbose mode, refs #4123 2015-07-04 12:15:04 +01:00
Jordi Boggiano 852e4f4e26 Merge remote-tracking branch 'alcohol/output-script-command-in-verbose-mode' 2015-07-04 12:11:18 +01:00
Andreas Möller 12ffe2b4d4 Fix: Add missing imports 2015-06-28 23:37:40 -04:00
Rob Bast fd34c5883a added php script handler info as well 2015-06-24 09:21:36 +02:00
Rob Bast 9223f4a208 show command by default 2015-06-09 14:02:51 +02:00
Rob Bast cbd61660ab implemented verbose output 2015-06-09 09:02:43 +02:00
Jordi Boggiano eadc167b12 Fix BC layer for events 2015-03-02 18:20:22 +00:00
Jordi Boggiano 82b7fdf4c1 Add BC for Script\Event instances, fixes #3811 2015-03-02 17:02:20 +00:00
Rob Bast cb336a5416 Implement writeError throughout Composer 2015-02-25 11:00:35 +01:00
Jordi Boggiano 3efed220a6 Clean up event dispatching code and make package events extend installer events 2015-02-23 15:34:49 +00:00
Vladimir Kartaviy 9f0d36290b Added missing variable 2015-01-12 22:48:19 +02:00
Jordi Boggiano 07ad1da3ac Fix HHVM interop 2014-12-13 11:13:25 +00:00
Rob d9b8b3611b fixes composer/composer#3546 2014-12-12 22:33:04 +01:00
Rob Bast 113606be7b should fix composer/composer#3382 2014-12-12 18:41:37 +01:00
André R 9e0a85fb64 Fix use of non existing ->getIO() function 2014-11-03 19:31:00 +01:00
Jordi Boggiano 94926218e8 CS fixes 2014-10-17 18:57:27 +01:00
Jordi Boggiano 4ce9252255 Avoid passing args to CLI handlers when none are needed, fixes #3332 2014-10-07 11:27:24 +01:00
Jordi Boggiano 81fa284c9b Merge remote-tracking branch 'francoispluchino/installer-events' 2014-09-30 16:18:17 +01:00