114 Commits (ffd62795bc673bea61bf7773ea674085d0ddee2b)

Author SHA1 Message Date
Jordi Boggiano 24ce1eddbd
Add composer/pcre dependency and use it everywhere instead of preg_* 3 years ago
Jordi Boggiano 126f95a8d7
Get rid of gitignore/hgignore handling (fixes #7358), Add support for -export-ignore (fixes #9153) 3 years ago
func0der 41a0c660b1 [add_sorting_to_archiving] Do not use natural sorting, cause of minimum required versions. 3 years ago
func0der a48afcd790 [add_sorting_to_archiving] Add natural sorting to ArchivableFilesFinder. 3 years ago
Jordi Boggiano c65d09dff7
Fix @inheritDoc annotations 3 years ago
pistej dbd0ccaad8
phpstan level 6 in src/Composer/Package/Archiver (refs #10159) (#10195) 3 years ago
Jordi Boggiano d1c8a4d1b4
Lots of typing improvements 3 years ago
SvenRtbg 5c4e1cedb2
Add ability check for ZipArchive (#10092)
ZipArchive::setExternalAttributesName() is only available when libzip 0.11.2 or higher is present. 
This is not the case with at least SUSE SLES 12, so a simple PHP version check will not work here.
3 years ago
Jordi Boggiano b77fce8a4f
More deprecation fixes by using ProcessExecutorMock and a couple of PackageInterface type fixes 3 years ago
Juliette c7d11f361c
PHP 8.1: fix more return type deprecation warnings (#10039)
Follow up on 10008 and the various commits made for that.

Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
3 years ago
Juliette f5a0dfeb50
PHP 8.1: fix deprecation warnings about incorrect default values (#10036)
* PHP 8.1/Tests: fix some deprecation warnings

The default value for the `preg_split()` `$limit` parameter is `-1`, not `null`.

Fixes numerous `preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated` notices when running the test suite.

Ref: https://www.php.net/manual/en/function.preg-split.php

* PHP 8.1/NoProxyPattern: fix deprecation warning

The default value for the `preg_split()` `$limit` parameter is `-1`, not `null`.

Fixes some `preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated` notices when running the test suite.

```
Deprecation triggered by Composer\Test\Util\Http\ProxyManagerTest::testGetProxyForRequest:
preg_split(): Passing null to parameter #3 ($limit) of type int is deprecated

Stack trace:
0 [internal function]: Symfony\Bridge\PhpUnit\DeprecationErrorHandler->handleError(8192, '...', '...', 42)
1 src/Composer/Util/NoProxyPattern.php(42): preg_split('...', '...', NULL, 1)
2 src/Composer/Util/Http/ProxyManager.php(148): Composer\Util\NoProxyPattern->__construct('...')
3 src/Composer/Util/Http/ProxyManager.php(50): Composer\Util\Http\ProxyManager->initProxyData()
4 src/Composer/Util/Http/ProxyManager.php(59): Composer\Util\Http\ProxyManager->__construct()
5 tests/Composer/Test/Util/Http/ProxyManagerTest.php(75): Composer\Util\Http\ProxyManager::getInstance()
...
```

Ref: https://www.php.net/manual/en/function.preg-split.php

* PHP 8.1: fix deprecation warnings / http_build_query()

This fixes all relevant calls to the PHP native `http_build_query()` function.
The second parameter of which is the _optional_ `$numeric_prefix` parameter which expects a `string`.

A parameter being optional, however, does not automatically make it nullable.

As of PHP 8.1, passing `null` to a non-nullable PHP native function will generate a deprecation notice.
In this case, these function calls yielded a `http_build_query(): Passing null to parameter #2 ($numeric_prefix) of type string is deprecated` notice.

Changing the `null` to an empty string fixes this without BC-break.

Fixes a few deprecation warnings found when running the tests.

Refs:
* https://www.php.net/manual/en/function.http-build-query.php
* https://wiki.php.net/rfc/deprecate_null_to_scalar_internal_arg

* PHP 8.1: fix deprecation notices / PharData::__construct()

This fixes all relevant calls to the PHP native `PharData::__construct()` method.

The second parameter of this method is the _optional_ `$flags` parameter which expects an `int` of flags to be passed to the `Phar` parent class `RecursiveDirectoryIterator`.
Fixed by passing the default value for the `$flags` parameter as per the `RecursiveDirectoryIterator::__construct()` method.

The third parameter of the method is the _optional_ `$alias` parameter which expects an `string`.
Fixed by passing an empty string.

Fixes various notices along the lines of:
```
Deprecation triggered by Composer\Test\Package\Archiver\ArchiveManagerTest::testArchiveTar:
PharData::__construct(): Passing null to parameter #2 ($flags) of type int is deprecated

Stack trace:
0 [internal function]: Symfony\Bridge\PhpUnit\DeprecationErrorHandler->handleError(8192, '...', '...', 55)
1 src/Composer/Package/Archiver/PharArchiver.php(55): PharData->__construct('...', NULL, NULL, 2)
2 src/Composer/Package/Archiver/ArchiveManager.php(193): Composer\Package\Archiver\PharArchiver->archive('...', '...', '...', Array, false)
3 tests/Composer/Test/Package/Archiver/ArchiveManagerTest.php(65): Composer\Package\Archiver\ArchiveManager->archive(Object(Composer\Package\CompletePackage), '...', '...')
...
```

Refs:
* https://www.php.net/manual/en/phardata.construct.php
* https://www.php.net/manual/en/recursivedirectoryiterator.construct.php

Co-authored-by: jrfnl <jrfnl@users.noreply.github.com>
3 years ago
Jordi Boggiano b602b19f6d
Fix archive command now that zips are extracted async, refs composer/satis#655 3 years ago
Jordi Boggiano 4c9e75c6e5
Fix CS 3 years ago
Jordi Boggiano 4940009f83
Bump phpstan to level 3 (#9734)
Clean up PackageInterface/CompletePackageInterface, add missing methods, type things in solver as BasePackage, added CompleteAliasPackage, ..
4 years ago
Jordi Boggiano 40800df6bd
Fix CS 4 years ago
Jordi Boggiano 598beb240a
CS fixes 4 years ago
Sergii Bondarenko abbc0e8a4e
#9464: Remove wrapping slashes from the gitignore rules 4 years ago
Tanel Pipar 8f454c6708 Remove CWD from only the beginning of a path in ZipArchiver
Fixes https://github.com/composer/composer/issues/9403
4 years ago
Jordi Boggiano 52f98fd228
Merge branch '1.10' 4 years ago
Marco Sirabella 7f936d7dbc
Ignore failures on preg_match for user supplied regex
Fixes #7440

See: https://stackoverflow.com/a/12941133/6381767
4 years ago
Jordi Boggiano 49a28f606c
Merge branch '1.10' 4 years ago
Ingo Fabbri 750172dc4c
Fix symlink check
Given you have a symlink in one of your path repositories and mirroring-strategy enabled.

```bash
lrwxrwxrwx 1 inf inf    8 27. Aug 17:41 Create.html -> New.html
-rw-r--r-- 1 inf inf  750 27. Aug 17:24 Edit.html
-rw-r--r-- 1 inf inf    0 27. Aug 17:24 List.html
-rw-r--r-- 1 inf inf 5064 27. Aug 17:24 New.html
-rw-r--r-- 1 inf inf  716 27. Aug 17:24 Show.html
```

`$file->getLinkTarget()` just returns a relative path in this example. It does not return an absolute normalized path.
`$sources` is always a normalized path.

`strpos` can never be `0`.

Use `$file->getRealPath()` to fix the strpos-check.
4 years ago
Jordi Boggiano a4a617abb4
Reduce amount of Filesystem/ProcessExecutor instantiations, add lots of docblocks 4 years ago
Jordi Boggiano ba3df8faea
Merge pull request #8843 from FIDATA/feature/archive-name
Add (default) base name of archive into composer.json
4 years ago
Basil Peace 6140897d08 feat: add archive.name config option 4 years ago
Markus Staab 593d5abf27
use more precise phpstan/psam return-types (#8744) 5 years ago
Jordi Boggiano a5b178084c
Merge branch 'master' into 2.0 5 years ago
James Ho 91732eee55 8330 Correct issue where permission umask of files were not set when archiving in zip format with ZipArchiver 5 years ago
Jordi Boggiano 0b928b2a42 Merge branch 'master' into 2.0 6 years ago
Jordi Boggiano 3dfcae99a9 Add parallel download capability to FileDownloader and derivatives 6 years ago
Stephan Vock 59360983c6 Archive: cleanup temp dir on download error 6 years ago
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
6 years ago
Jordi Boggiano ff59bbdab0 CS fixer 6 years ago
Vladimir Reznichenko 6f6d59426d New finding by Static Code Analysis: revert uniqid() to comply long path requirements 6 years ago
Vladimir Reznichenko cd39efc72c New finding by Static Code Analysis 6 years ago
Gabriel Caruso 3d262bd637 Fixes from PHPStan level 0
More fixes from PHPStan level 0
7 years ago
Gabriel Caruso 32a409a3ee Clean elses 7 years ago
Jordi Boggiano 122e422682 CS fixes 8 years ago
jbixler dac51c7f4b Add ignore filters option to archive command 8 years ago
msiebeneicher 800a4bf391 fixed direct rename() usage for v1.2 8 years ago
Jordi Boggiano 5cb3564672 Fix archiving paths on windows 9 years ago
Tom Klingenberg 73d04bf28b Support empty directories with tar-files, closes #5206
- Report: #5206

- Ref: 8389b4b
9 years ago
Jordi Boggiano 3b0a1c6f70 Run cs fixer and update config to latest master 9 years ago
Niels Keurentjes e6f21137ad Undefined or default return points fixed. 9 years ago
Tom Klingenberg 8389b4b829 Skip non-empty directories in zip generation
Empty dirs get archived (leafs).

Previously it seemed ok to skip all directories in zip generation.

References:

- Ref: 6066359944

- Issue: #4865 Keep empty folders after re-zip a module
9 years ago
Rob Bast a245c4618b php-cs-fixer 9 years ago
Jordi Boggiano 6eb50623e6 Merge remote-tracking branch 'hfcorriez/compressed_archiver' 9 years ago
Jordi Boggiano 7e17fec3b8 Merge pull request #2585 from jaypea/ziparchiver
added ZipArchiver to actually compress zip files
9 years ago
MakiCode 1c0b9cd65f Removed test for non-string file name check 9 years ago
MakiCode fefc106ef6 Removed type check on ArchiveManager 9 years ago