1
0
Fork 0
Commit Graph

841 Commits (1db0a4708019d4eed2cf6012a984c527905fe991)

Author SHA1 Message Date
Markus Staab a5fecc4720
Filesystem: added removeDirectoryAsync() and use it in ArchiveDownloader (#9618)
This turns half of the `rm -rf ...` executions during package installs async and therefore improves performance
2021-02-25 11:15:28 +01:00
Jordi Boggiano e3af4ee606
Include stdout as well as stderr if git stash/diff/.. fails, fixes #9720 2021-02-24 15:47:06 +01:00
Jordi Boggiano f37f3dab04
Fix abort of downloads and zip extraction to happen immediately, fixes #9390 2021-02-10 17:34:15 +01:00
Jordi Boggiano 8d94e25c2f
Minor fixes 2021-02-10 11:28:01 +01:00
Jordi Boggiano 6a869ede77
Fail early if git/hg/svn can not be found on the system, so that download can be retried from dist, fixes #9681 2021-02-10 10:48:08 +01:00
Markus Staab 8dfe45a026 GitDownloader: combine checkout + reset commands into a single process
use a single process instead of 3 to improve performance
2021-01-16 22:26:20 +01:00
Jordi Boggiano 7f85367113
Make sure an array is always returned 2021-01-07 23:26:29 +01:00
Wissem Riahi bdecb4711d Add all curl_getinfo into the response and exception for curl requests 2021-01-07 12:01:19 +01:00
Wissem Riahi 370e082b4a Add saving time duration for curl HTTP requests 2021-01-06 16:05:00 +01:00
Jordi Boggiano 1fb6b03e03
Fix a few edge cases in unpushed change handling 2020-11-26 16:03:38 +01:00
Jordi Boggiano f86b3ad0fe
Make sure all remotes are checked for unpushed changes, fixes #9486 2020-11-26 15:42:39 +01:00
Jordi Boggiano b7d770659b
CS fixes 2020-11-22 14:52:39 +01:00
Markus Staab e8ce5a3db6
Remove unnecessary overridden method
The method just called its parent without further logic
2020-11-09 20:45:40 +01:00
Jordi Boggiano c362d001f1
Fix regression handling installs with custom installers not passing a fully qualified path to downloaders, fixes #9431, fixes #9434 2020-11-07 11:17:22 +01:00
Michaël Jacobs 611a9f5dab Drop unused imports 2020-11-06 13:31:02 +01:00
Michaël Jacobs c35a8e77c7 Fix missing directory separator in FileDownloader 2020-11-06 13:31:02 +01:00
Jordi Boggiano bc9336946e
Trim trailing slash in path downloader to avoid symlink issues, and in FileDownloader::getLocalChanges as we append a string without slash, refs #9422 2020-11-05 16:54:06 +01:00
Jordi Boggiano 52faa3cdfb
Merge pull request #9388 from JasonStephensTAMU/remove-windows-junction
Remove Windows junctions first in PathDownloader
2020-11-04 21:05:57 +01:00
Jason Stephens f486da4578 Remove junctions first in PathDownloader
When removing a package from a Path repository, ensure Windows junctions
are handled first. This avoids a potential problem using realpath() when
comparing dist and install paths.

See https://bugs.php.net/bug.php?id=77639
2020-11-02 08:30:15 -06:00
Ondřej Mirtes 48b23b1607
Simplify code in FileDownloader.php 2020-11-02 15:10:57 +01:00
Jordi Boggiano 1bf2df19dd
Avoid cleaning up $path in downloaders if it is the CWD (create-project use case), refs #9396 2020-11-02 13:53:44 +01:00
Jordi Boggiano 6cb0aff417
Fix issue preventing cleanup of vendor dir when it is nested in the install path on Windows, fixes #9396 2020-11-02 13:53:43 +01:00
Chauncey McAskill 1bb87babe6 Fix availability of $urls in FileDownloader
Fixed:
- Ensure manipulations to the first element of $urls in the $download callback are available in $accept and $reject
2020-10-15 16:11:16 -04:00
Jordi Boggiano 24abd233ec
Merge branch 'master' into code-improvements 2020-10-13 12:23:13 +02:00
Jordi Boggiano a1b781a302
Merge pull request #9220 from ffraenz/pr
Composer 2: Adapt file download cache keys to changed processed URLs
2020-10-12 16:55:35 +02:00
Fränz Friederes 369c2ff552
Implement PR code style feedback 2020-10-05 20:52:27 +02:00
Jordi Boggiano 2a36c3a70a
Minor tweaks 2020-09-21 13:26:53 +02:00
Simon Berger 80a75e9959 Minor code improvements 2020-09-20 02:16:28 +02:00
Simon Berger a6475a7118 Removed unused variables, properties and parameters of private functions 2020-09-20 02:16:28 +02:00
Simon Berger 002fd39bc6 Removed passing of parameters with default value 2020-09-20 02:16:28 +02:00
Simon Berger cda6e8bea6 Removed unnecessary property initialization or declaration 2020-09-20 02:16:28 +02:00
Fränz Friederes a1a3e29f52
Fix using inside anonymous function 2020-09-16 11:39:34 +02:00
Fränz Friederes 57e1ce6cdb
Change the file download cache key with the processed URL, implement custom cache key 2020-09-16 10:54:14 +02:00
Jordi Boggiano 90332f1dbd
Add a readonly mode to the cache, fixes #9150 2020-08-25 13:55:32 +02:00
Stephan a16f32484b Downloader: add a max_file_size to prevent too big files to be downloaded 2020-08-22 19:37:42 +01:00
Jordi Boggiano c0eb9834fe
Merge pull request #9116 from ryanaslett/patch-1
Update PathDownloader.php
2020-08-11 09:54:09 +02:00
Jordi Boggiano 7649c8438d
Fix exception when using create-project in current directory, fixes #9073 2020-08-11 09:42:42 +02:00
Ryan Aslett c0309f22d7
Update PathDownloader.php
If a path repository points at a directory that is managed by composer installers, the path that gets set ends up being relative, and this check fails to see that the source is already present, and therefore removes it.

Since ->install is already using realpath around the $path argument, remove should as well.

For an example repository that demonstrates this bug See: https://github.com/ryanaslett/pathrepotestcase
2020-08-10 12:51:48 -07:00
Jordi Boggiano 7bcde1481d
Fix git downloader syntax for windows cmd when updating packages, fixes #9089 2020-07-30 14:38:48 +02:00
Jordi Boggiano 04381c70fe
Merge branch '1.10' 2020-06-17 17:37:39 +02:00
Michael Stucki 0278e7453d
Clean Git repos during discard 2020-06-17 17:00:35 +02:00
Jordi Boggiano 93d4cf6f91
Add --no-show-signature where git supports it, fixes #8966 2020-06-17 16:37:06 +02:00
Jordi Boggiano 83c64a9d19
Reuse operation formatting logic in downloaders 2020-06-17 12:33:02 +02:00
Jordi Boggiano aaef3ff5ff
Improve error reporting when unzip fails due to race condition in unhandled Promise, refs #8988 2020-06-17 10:44:50 +02:00
Jordi Boggiano d1fedc3bd6
Restore old behavior of wiping dir contents before installing, fixes #8988 2020-06-17 10:42:05 +02:00
Jordi Boggiano 09fc263d37
Fix status command bug 2020-06-16 16:27:36 +02:00
Jordi Boggiano 0d369c87bc
Merge pull request #8975 from ffraenz/pr
Composer 2: Allow plugins to override the URL before triggering the download
2020-06-16 14:44:03 +02:00
Jordi Boggiano aea074308c
Update batching to install plugin deps before the plugin (alone an own batch) 2020-06-16 14:07:30 +02:00
Jordi Boggiano 9c78eda7db
Fix FileDownloader::update impl to handle promises 2020-06-16 14:00:23 +02:00
Jordi Boggiano 87a0fc5506
Execute operations in batches to make sure plugins install in the expected order 2020-06-16 14:00:22 +02:00
Jordi Boggiano 3af617efe8
Parallelize zip extraction using async unzip processes 2020-06-16 14:00:20 +02:00
Jordi Boggiano d5286d0cb8
Add a way for FileDownloader subclasses to add paths to the cleanup stage 2020-06-16 14:00:18 +02:00
Jordi Boggiano da6c0635d2
Merge pull request #8980 from stucki/discard-using-git-clean
Discard changes is incomplete if Git project has additional folders
2020-06-16 11:08:44 +02:00
Fränz Friederes 5c13c97428
Implement type and context properties in PreFileDownloadEvent 2020-06-15 21:43:41 +02:00
Michael Stucki ae59047166 Clean Git repos during discard 2020-06-15 21:42:41 +02:00
Fränz Friederes 13bdf8553a
Add setProcessedUrl method to PreFileDownloadEvent 2020-06-11 21:53:31 +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 90bd351b8b
Allow downgrades to go through even though the target dir for archive extraction exists 2020-06-03 15:37:36 +02:00
Jordi Boggiano 02059d96e7
Fail early if an archive extraction is going to fail at install/update stage to avoid leaving the vendor dir in a half up to date state 2020-06-03 15:19:02 +02:00
Jordi Boggiano 385655f02a
Mark temp files as such for clarity in case any gets left over 2020-05-22 13:23:14 +02:00
Ayesh Karunaratne aa20413990
Improve regex in \Composer\Downloader\SvnDownloader::getCommitLogs() by removing unnecessary greedy operator 2020-05-04 01:03:15 +07:00
Lucas D Hedding 2bf2e9fc60 fix failing tests 2020-04-20 14:40:25 -06:00
Lucas D Hedding 3e2163de5c #8809: expand context for post file download event 2020-04-20 13:50:42 -06:00
Jérôme Tamarelle bd34ff1328
Remove unused property $httpDownloader 2020-04-16 01:14:56 +02:00
Jordi Boggiano 44a4429978
Remove PEAR installer/downloader/repos/..., fixes #8778 2020-04-15 00:24:13 +02:00
Lucas Hedding 1883832ddc
Provides a post download event (#8655) 2020-04-14 23:48:18 +02:00
Jordi Boggiano 7d3f45cf04
Avoid errors in cleanup, fixes #8766, fixes #8764 2020-04-13 12:15:17 +02:00
Jordi Boggiano 096b507050
Merge branch '1.10' 2020-04-09 17:07:58 +02:00
Jordi Boggiano e121de35a3
Fix variable used for symlinking absolute paths, refs #8700 2020-04-09 17:01:48 +02:00
Markus Staab 6f6974df70
added phpdocs (#8754) 2020-04-09 13:44:30 +02:00
Jordi Boggiano 55f122008b
Make sure we avoid cleanup running more than once per package on VcsDownloader 2020-04-09 10:32:59 +02:00
Jordi Boggiano 9575c7623f
Update changelog, add upgrade guide 2020-04-08 16:44:32 +02:00
Adam Žurek 25cd2382cb
Raise phpstan level to 1 (#8027) 2020-04-07 14:13:50 +02:00
Jordi Boggiano 87757de6bc
Merge branch '2.0' 2020-04-07 09:39:00 +02:00
Jordi Boggiano 800491175b
Avoid failing cleanup when a package gets uninstalled 2020-03-28 20:50:49 +01:00
Jordi Boggiano 1b1d59ee6c
Make FileDownloader always download file first in vendor-dir/composer/$tmp instead of next to install path to avoid issues with custom installers not being loaded when downloading on first install, and use cleanup method properly 2020-03-28 20:38:50 +01:00
Jordi Boggiano 918768fc54
Make sure we get a temporary dir which is unique 2020-03-28 20:37:09 +01:00
Jordi Boggiano 73251691a0
Avoid emptying the directory before extracting an archive into it, check that it is empty instead 2020-03-28 20:36:55 +01:00
Jordi Boggiano 7e679656a4
Keep absolute path repos symlinks absolute, fixes #8700 2020-03-24 12:35:18 +01:00
Jordi Boggiano 8a83d5cc35
Fix create-project command 2020-03-12 13:50:40 +01:00
Jordi Boggiano 7e142b5d6b
Use Upgrading for package installs too 2020-02-11 17:51:02 +01:00
Jordi Boggiano 589abb06a3
PHPStan fixes 2020-02-07 23:10:10 +01:00
Jordi Boggiano 4e4304ae7d
Fix 2020-02-04 13:22:46 +01:00
Jordi Boggiano 0b4763e6c7
Make it clear which package the error is for when detecting uncommitted changes 2020-02-04 13:06:20 +01:00
Jordi Boggiano 1e68555e0a
Sanitize URLs in getRepoName and centralize the Url sanitization process 2020-01-30 15:50:46 +01:00
Jordi Boggiano 23359f2db6
Merge branch 'master' into 2.0 2020-01-13 13:35:52 +01:00
Tyson Andre 6827105a5b Fix nits on typos 2019-12-29 12:14:38 -05:00
Adam Žurek 406a28708f updated phpstan to 0.12 2019-12-16 21:58:05 +01:00
Jordi Boggiano f6b3f12107
Merge branch 'master' into 2.0 2019-12-07 21:10:14 +01:00
Sergii Bondarenko bb127aa3e7 Resolves #8461: [ZipDownloader] Print `unzip` exit code when the command is failed 2019-12-03 15:30:08 +04:00
Jordi Boggiano 99eb86c506
Avoid outputting "Loading ... from cache" in non-verbose installs 2019-11-14 15:26:25 +01:00
Jordi Boggiano f867c407c7
Merge branch 'master' into 2.0 2019-10-30 15:40:26 +01:00
Jordi Boggiano 149250ab92
Remove credentials from git remotes in cache and vendor dirs
This only removes the credentials if they are managed by composer auth.json or equivalent, if the credentials were present in the package URL to begin with they might remain

Refs #8293
Fixes #3644
Closes #3608
2019-10-30 15:24:53 +01:00
Jordi Boggiano 607b487295
Fix missing use/undefined var 2019-08-29 11:45:19 +02:00
Jordi Boggiano 53d2ab2253
Split up steps on VCS downloaders to allow doing network operations before touching the filesystem on GitDownloader, fixes #7903 2019-08-29 11:37:23 +02:00
Jordi Boggiano 9ee345ed29
Make sure the directory exists and will not block installation later when downloading 2019-08-02 16:33:39 +02:00
Jordi Boggiano 6a7220fed8
Avoid wiping the whole target package if download of the new one fails, refs #7929 2019-08-02 15:57:44 +02:00
Jordi Boggiano 898ba6f869
Only empty dir before actually installing packages, fixes #7929 2019-08-02 15:53:19 +02:00
Jordi Boggiano f7c1b04a6c
Improve output when installing packages 2019-08-02 14:26:42 +02:00
Jordi Boggiano 1002fb12fc
Merge branch 'master' into 2.0 2019-08-02 13:26:03 +02:00
Jordi Boggiano 872604ab36
Allow path repos to point to their own source dir as install target, resulting in noop, fixes #8254 2019-08-02 13:25:11 +02:00
Jordi Boggiano 6c4357a7ed
Merge branch 'master' into 2.0 2019-07-31 17:50:01 +02:00
Jordi Boggiano 0261ce8092
Improve handling of non-standard ports for GitLab and GitHub installs, fixes #8173 2019-07-31 17:41:18 +02:00
Gabriel Caruso 8b5be1d08c
Remove explicts void returns 2019-07-24 03:07:25 +02:00
Jordi Boggiano 5f988a34a6
Merge branch 'master' into 2.0 2019-02-21 14:08:56 +01:00
Jordi Boggiano d3873a0565
Merge branch '1.8' 2019-02-20 08:43:56 +01:00
Matthew Brown 65903aacfd Fix type issues (#7996)
* Fix type issues found by Psalm
2019-02-19 15:35:48 +01:00
CZechBoY a062cd1a31
added phpstan on level 0 2019-02-18 13:05:14 +01:00
Jordi Boggiano 0fd74d1cc4
Fix PerforceDownloader, fixes #7979 2019-02-18 12:28:21 +01:00
Jordi Boggiano 9957807990
Merge branch 'master' into 2.0 2019-02-18 12:25:44 +01:00
Jordi Boggiano 69745745b3
Merge branch '1.8' 2019-02-16 17:56:20 +01:00
johnstevenson 4cf069535f Improve safe junction logic 2019-02-12 15:18:06 +00:00
johnstevenson 6212eadcb0 Only use junctions if they can be safely removed 2019-02-11 22:23:23 +00:00
Jordi Boggiano 4517c00d40 Merge branch 'master' into 2.0 2019-01-29 14:01:28 +01:00
Jordi Boggiano 79af9d45af Merge branch '1.8' 2019-01-29 13:49:25 +01:00
Jordi Boggiano 98a15bc93c Add output for metapackage installs/updates/.. fixes #7586 2019-01-29 11:38:18 +01:00
Jordi Boggiano b89720b52a Merge branch 'master' into 2.0 2019-01-28 18:00:52 +01:00
Jordi Boggiano 02ceb74151 Tweak --no-cache option to be available globally and to not break VCS drivers relying on it, refs #7880, refs #6650 2019-01-28 15:29:37 +01:00
Jordi Boggiano bb2f64c7bc Remove ability to override the entire HttpDownloader instance in PRE_FILE_DOWNLOAD events 2019-01-18 12:14:37 +01:00
Jordi Boggiano 549ccd8f79 Remote outputProgress concept from downloaders as it does not make sense when things happen in parallel, refs #7901 2019-01-18 11:48:51 +01:00
Jordi Boggiano 3dfcae99a9 Add parallel download capability to FileDownloader and derivatives 2019-01-18 08:39:03 +01:00
Jordi Boggiano 713bc4de1d Minor fixes and updated the rest of the code/tests to use HttpDownloader 2019-01-14 17:29:23 +01:00
Jordi Boggiano 56805ecafe Add HttpDownloader to wrap/replace RemoteFilesystem with a new curl multi implementation 2019-01-14 17:29:23 +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
Jérôme Tanghe a51563300c Warning about the UNIX permissions lost if unzip command is not installed.
Some packages provide (such as Symfony Panther or Dusk) executable files, but
as PHP's unzip extension does not handle UNIX permissions, those files will
lose their executable ones.
2018-10-31 18:10:36 +01:00
Jordi Boggiano 73f14c0c7c Fix output when loading zips from cache, fixes #7498 2018-08-03 14:06:31 +02:00
Jordi Boggiano 9bc578e24a Fix warning tag name, fixes #7494 2018-07-26 14:15:32 +02:00
Jordi Boggiano ff59bbdab0 CS fixer 2018-07-24 14:32:52 +02:00
Jonas Renaudot 1a725d5e1f Add support for authentication with mercurial repositories. 2018-07-17 12:04:27 +02:00
Jordi Boggiano 837ad7c14e Merge branch '1.6' 2018-06-07 11:15:18 +02:00
Rasmus Schultz 5bae1913ab swap tests to prevent conflicting error-messages 2018-06-07 11:15:10 +02:00
Rasmus Schultz 07867724d0 add back the warning about missing unzip
display an error-message on non-Windows OS if unzip is unavailable, per #7383
2018-06-07 11:15:01 +02:00
Jordi Boggiano 0f373e3249 Fix issues introduced by #7191, fixes #7263 2018-04-13 15:51:58 +02:00
Jordi Boggiano c917865fe9 Fix handling of dev versions and consolidate logic, refs #7119 2018-04-13 13:55:02 +02:00
Jordi Boggiano 24ad6307a7 Merge remote-tracking branch 'austris-argalis/issue-7085' 2018-04-13 13:11:46 +02:00
Jordi Boggiano ea78712822 Merge branch '1.6' 2018-04-13 10:52:23 +02:00
Edwin Rodríguez 9dc6222288 Allow using fossil dependency in a fossil repository, fixes #7125, closes #7126 2018-04-13 09:00:03 +02:00
Jordi Boggiano a51911f295 Merge commit 'b1a78b60fe552bc6e7df09cb1c0154797fea6f64' 2018-04-12 18:40:52 +02:00
Jordi Boggiano b1a78b60fe Remove output while the changes are being collected 2018-04-12 18:40:07 +02:00
Jordi Boggiano 79d62cc51c Escape references properly when getting commit logs for verbose update 2018-04-12 14:20:34 +02:00
Markus Staab 71d058b97b refactored "svn --version" calls into a single place, closes #7152
this saves a lot of process-spawning as we re-use the result of a process started once.
2018-04-12 13:40:37 +02:00
Hector Prats 2413b55c60 LocalChanges for ArchiveFiles 2018-03-14 17:38:12 +01:00
austris argalis 8a5645ffda Wording: Downgrading instead of Updating #7085 2018-02-16 00:38:41 +02:00
Jordi Boggiano a29ad2bfd6 Add some more debugging info 2018-01-24 16:19:28 +01:00
Markus Staab e67a559db9 make sure "svn info" output is parsed in a x-platform way 2018-01-24 14:14:17 +01:00
Markus Staab 9bc83d698e Pass auth credentials to svn log while retrieving commit logs 2018-01-24 14:14:08 +01:00
Jordi Boggiano e6114b2ca7 Fix support for replacing dist refs in gitlab URLs and add support for gitlab/github enterprise too 2018-01-05 15:20:30 +01:00
Gabriel Caruso 7aad20cb30 [SvnDownloader] Improve plurals and singulars 2018-01-02 04:41:03 -02:00
Jordi Boggiano 50665aa18d Simplify check for current revision, refs #6684 2017-12-19 17:50:02 +01:00
Jordi Boggiano 93cd9d874b Merge remote-tracking branch 'RobberPhex/git-repo' 2017-12-19 15:47:58 +01:00