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