1
0
Fork 0
Commit Graph

296 Commits (8df2436be8c51d27cb6d778adcabd72f4354ec16)

Author SHA1 Message Date
Jordi Boggiano c33fc80d23 Add supports() to the InstallerInterface 2011-10-23 19:40:24 +02:00
Jordi Boggiano 8a571c05db Fix issues in new autoloader code 2011-10-23 19:40:22 +02:00
Jordi Boggiano c8cfa15f52 Use wrapped PlatformRepository only in the Solver 2011-10-23 19:40:20 +02:00
Jordi Boggiano 28369ea623 Add missing docblock 2011-10-23 19:40:18 +02:00
Igor Wiedler 808a2c9448 [composer] wrap UniversalClassLoader require in if class_exists 2011-10-23 19:40:16 +02:00
Igor Wiedler aa7c4b8ef7 [autoload] refactor getFullPackage into populateAutoloadInformation 2011-10-23 19:40:14 +02:00
Igor Wiedler 9d238330b3 [autoload] refactor autoload generation code into a AutoloadGenerator 2011-10-23 19:40:12 +02:00
Igor Wiedler 72a1f66b7a rename installAs to target-dir 2011-10-23 19:40:10 +02:00
Igor Wiedler 409b2e47ae return early (this is very important) 2011-10-23 19:40:08 +02:00
Igor Wiedler ea31039556 [autoload] autoloading prototype 2011-10-23 19:40:06 +02:00
Nils Adermann 571c14adf9 Prefer original packages over replaced packages of same repository priority 2011-10-22 17:20:45 +02:00
Nils Adermann 44369472be Define the calculation of package priorities in a single method 2011-10-22 16:48:23 +02:00
Nils Adermann 1b6f57e651 Correctly implement priorities and version numbers in the default policy 2011-10-22 16:44:10 +02:00
Nils Adermann b52d6d881a Pool repository index represents priority, highest index = highest priority 2011-10-22 16:39:49 +02:00
Nils Adermann e4c94dd415 Adding tests for the default policy specifying its desired behaviour 2011-10-21 14:44:24 +02:00
Jordi Boggiano e09f6900da Fix up version parsing 2011-10-11 11:49:32 +02:00
Jordi Boggiano 19f89069a4 Add some more version normalization and support for branch names 2011-10-11 09:30:10 +02:00
Jordi Boggiano b3fe30200b Remove validation for now since it's doing more harm than good 2011-10-02 23:54:13 +02:00
Jordi Boggiano 7d4e67b335 Fix phar compiler 2011-10-02 23:38:54 +02:00
Jordi Boggiano be769ea1ac Add user-agent header to json fetches, fixes #39 2011-10-02 22:44:10 +02:00
Jordi Boggiano 2ebc795754 Error out when a package can not be found, refs #30 2011-10-02 21:24:09 +02:00
Jordi Boggiano 1a9de17a88 Detect and report common mistakes in json syntax, refs #36 2011-10-02 21:14:00 +02:00
Jordi Boggiano cad0967788 json_decode returns null on error, not false 2011-10-02 21:04:37 +02:00
Jordi Boggiano 9210500714 Handle false and empty decoded json values as valid 2011-10-02 20:49:26 +02:00
Jordi Boggiano 18e28a2a9f Make sure .composer dir is created before writing in it 2011-10-02 20:46:33 +02:00
Jordi Boggiano 806c5f200a Fix var name 2011-10-02 20:18:46 +02:00
Jordi Boggiano e109213dfa Merge remote-tracking branch 'everzet/json-abstraction' 2011-10-02 19:57:25 +02:00
Jordi Boggiano 9e3c2a7e22 Skip platform packages from the lock file
This should maybe be done in a better way, but it'll do for now.
2011-10-02 19:55:45 +02:00
Jordi Boggiano cc769af923 Reuse normal installer logic for locked installs 2011-10-02 19:54:53 +02:00
everzet d5ba884f8b fixed potential error 2011-10-01 17:06:14 +03:00
everzet 1cca62dc97 move json parsing instructions into single class object 2011-10-01 16:01:33 +03:00
everzet 96122aada8 refactored install command to use new Locker 2011-10-01 15:34:10 +03:00
everzet cc2f2b79ca added findPackage() method to the RepositoryManager and RepositoryInterface 2011-10-01 15:34:09 +03:00
everzet 21191ffa00 refactored PackageLock to Locker and stabilized it 2011-10-01 15:34:09 +03:00
everzet 1fcb833902 added Json parsing abstraction 2011-10-01 15:34:09 +03:00
Kirill chEbba Chebunin 6c4440d0e9 Add todo for signed phars 2011-09-30 22:58:58 +04:00
Kirill chEbba Chebunin 7527d0af43 Add throws declaration for FileDownloader::extract() 2011-09-30 22:46:09 +04:00
Igor Wiedler 2c1605925b ArrayLoader should not use require content for all other properties 2011-09-30 18:05:28 +02:00
Kirill chEbba Chebunin 43631ccd5b Add Tar and Phar downloaders 2011-09-30 01:07:17 +04:00
Jordi Boggiano 9cbd74bf90 Merge remote-tracking branch 'everzet/downloader-interface-refactoring' 2011-09-29 20:50:41 +02:00
everzet 195272da09 refactored DownloaderInterface to be mono-installation-type 2011-09-29 04:11:51 +03:00
everzet cc740249ff don't return useless info 2011-09-29 02:01:06 +03:00
Jordi Boggiano ebe2a25ec6 Merge remote-tracking branch 'wilmoore/feature/memory-package-test-refactor'
Conflicts:
	src/Composer/Package/MemoryPackage.php
2011-09-29 00:55:28 +02:00
Jordi Boggiano fda206400a Fix constraint parsing 2011-09-29 00:50:01 +02:00
Jordi Boggiano f48634d074 Add source/dist reference information to package 2011-09-29 00:49:23 +02:00
Jordi Boggiano 00a4fe2a14 Refactor downloaders, git installs actually work well now 2011-09-29 00:48:52 +02:00
Wil Moore III b70bb1a9bc memory-package-test-refactor: refactored the memory package test to be a bit more DRY and "hopefully" re-usable in anticipation of more package types being adding in the future. 2011-09-26 22:05:57 -06:00
Jordi Boggiano c863c31881 Rename platform packages so they avoid conflicts with any vendor 2011-09-27 01:10:21 +02:00
Jordi Boggiano da6566b343 Minor improvements to VersionParser 2011-09-26 20:34:58 +02:00
Jordi Boggiano 2e10b5c17e Expand normalization feature and adjust tests 2011-09-26 00:59:32 +02:00
Jordi Boggiano 46a67733f8 Adjust codebase to the new VersionParser 2011-09-26 00:01:22 +02:00
Jordi Boggiano f761cfe525 Refactored VersionParser 2011-09-26 00:01:14 +02:00
Jordi Boggiano d455eef82c Fix pear & zip downloaders 2011-09-25 23:43:49 +02:00
Jordi Boggiano 544067ced9 Packages can't be added to two repos at once 2011-09-25 23:43:21 +02:00
Jordi Boggiano e5907a3431 Remove WrapperRepository in favor of PlatformRepository wrapping the local repo 2011-09-25 23:42:40 +02:00
Jordi Boggiano b9114e16be Fix typos, short var names etc 2011-09-25 23:20:31 +02:00
Jordi Boggiano c6d7760145 Merge branch 'refactoring' 2011-09-25 23:09:07 +02:00
Jordi Boggiano 5623f3e69c Fix refactoring bugs 2011-09-25 23:07:42 +02:00
Jordi Boggiano 4fe80d7abb Add WrapperRepository class 2011-09-25 23:05:29 +02:00
Jordi Boggiano c7af918caa Fix git downloader 2011-09-25 22:19:27 +02:00
everzet c9ecb0d1ad Remove unused methods from downloaders 2011-09-25 21:00:59 +03:00
everzet 05ddfde868 Reflect latest refactoring changes in commands 2011-09-25 21:00:44 +03:00
everzet ef71836f30 Refactored Composer class to be service container 2011-09-25 21:00:26 +03:00
everzet 0694f5217a Implemented RepositoryManager 2011-09-25 21:00:05 +03:00
everzet 3c439ce41c Added "type" field validator to ArrayLoader 2011-09-25 20:59:54 +03:00
everzet 5890b05eb0 Implemented ArrayDumper 2011-09-25 20:59:40 +03:00
everzet 20318f77a0 Refactored FilesystemRegistry to FilesystemRepository 2011-09-25 20:59:10 +03:00
everzet 5c841187fd Fixed RepositoryInterface 2011-09-25 20:58:35 +03:00
everzet 28d9df7da6 Added hasPackage and removePackage methods to the ArrayRepository 2011-09-25 20:57:58 +03:00
everzet 2fc0699492 Moved operations evaluation into new InstallationManager class 2011-09-25 19:31:51 +03:00
everzet 50aa7ac607 Provide $useSource argument to the DownloaderInterface methods 2011-09-25 18:56:05 +03:00
everzet 17d1abcec0 Refactored DownloadManager 2011-09-25 18:30:54 +03:00
everzet 6133108710 Refactored LibraryInstaller to use WritableRepository instead of Registry 2011-09-25 15:44:41 +03:00
everzet 9f98ee25ea Enhanced repository interface 2011-09-25 15:44:05 +03:00
everzet 123f5fef77 Refactored Operations in order to fulfill naderman requests 2011-09-25 14:40:12 +03:00
Jordi Boggiano 751f506080 Add info to docblocks 2011-09-25 12:42:32 +02:00
Jordi Boggiano 8533a65061 Remove unused methods from RepositoryInterface 2011-09-24 16:55:46 +02:00
Jordi Boggiano e700e6fcd9 Use new version parser in PlatformRepository 2011-09-24 16:55:45 +02:00
Jordi Boggiano cd80f22781 Type is not mandatory 2011-09-24 16:55:43 +02:00
Jordi Boggiano d27691a67f Fix namespace/use/typo issues 2011-09-24 16:55:39 +02:00
everzet 0a1e7320b0 Refactored solver result array. Now it returns array of operation objects which are much nicer to work with 2011-09-24 02:29:22 +03:00
everzet 5b0d17cc13 DownloaderInterface refactored 2011-09-24 02:18:41 +03:00
everzet 69f1de9986 Enhanced PackageInterface and BasePackage with getUniqueName() method, which provides name-version-releaseType string (used in installer registry) 2011-09-24 02:11:32 +03:00
everzet cde9531e4d DownloadManager implemented 2011-09-24 02:09:51 +03:00
everzet 0a2f4e7e32 Installer now provides full download path to the downloader 2011-09-24 01:30:17 +03:00
everzet 45cab9fe8c Installers FilesystemRegistry implemented 2011-09-24 00:24:19 +03:00
everzet 067007656b LibraryInstaller refactored and tested 2011-09-24 00:23:16 +03:00
everzet 6ce0132259 fixed installer interface 2011-09-21 00:46:19 +03:00
everzet 9deb10361f second batch of refactoring 2011-09-21 00:43:53 +03:00
everzet d2150a3c2e installer and downloaders update 2011-09-21 00:42:13 +03:00
everzet d7fe0dfda4 added missing interfaces 2011-09-21 00:42:13 +03:00
everzet 6caa77fbbf installer refactoring 2011-09-21 00:41:16 +03:00
everzet 5f4d46f7ae repository factoring refactoring 2011-09-21 00:39:15 +03:00
everzet 1e1ecb80b7 initial refactoring 2011-09-21 00:38:23 +03:00
Joseph Bielawski 62bce6b9ed [Request] Be more DRY 2011-09-17 17:18:49 +03:00
Jordi Boggiano 6b5f61943a Lowercase package names in Request (fixes tests) 2011-09-17 13:23:17 +02:00
Jordi Boggiano aeebd02ee5 Cleanup for last merged commit 2011-09-17 13:18:34 +02:00
Jordi Boggiano 89f49e0e14 Merge pull request #17 from chEbba/interfaces
Add Dowloader and Installer interfaces
2011-09-17 04:16:28 -07:00
Jordi Boggiano 9b70b06bc8 Merge remote-tracking branch 'ryan/use_symfony_command'
Conflicts:
	bin/composer
	src/Composer/Command/InstallCommand.php
2011-09-17 12:04:33 +02:00
Kirill chEbba Chebunin 74a45cfb8c Remove public keyword from Downloader and Installer interface methods 2011-09-16 01:26:32 +04:00
Kirill chEbba Chebunin e317b4f8ef Add Dowloader and Installer interfaces 2011-09-15 23:58:00 +04:00
Ryan Weaver b1fcbe9dde Simplifying how composer initializes its commands 2011-09-15 06:58:57 -05:00
Jordi Boggiano 07e181c6eb Fix lowercase behavior 2011-09-15 11:50:50 +02:00
pborreli f7735c396f [Composer] Fixed typos 2011-09-15 01:22:33 +00:00
Ryan Weaver cf11b48306 Making several tweaks per @stof 2011-09-14 10:34:53 -05:00
Nils Adermann b6ec172997 Merge pull request #13 from igorw/case-insensitive-package
Make package names and downloader/installer/repository types case insensitive
2011-09-14 07:06:57 -07:00
Igor Wiedler 9e8fc71870 Make package names and downloader/installer/repository types case insensitive 2011-09-14 16:01:54 +02:00
Ryan Weaver f5b054985a Integrating the command system with Symfony's command system
Parts are still a WIP, as there are some embedded echo statements that should eventually be run through some sort of output interface.
2011-09-14 07:57:40 -05:00
Ryan Weaver 61917cb7f7 Adding Symfony's Console component as a submodule 2011-09-14 07:55:06 -05:00
Ryan Weaver 96b51c59d8 Adding some basic PHPDoc 2011-09-14 06:52:21 -05:00
Ryan Weaver d13a2e928e Removing reference to Silex, replacing with Composer 2011-09-13 19:34:48 -05:00
Jordi Boggiano 900bed1c32 Normalize package names 2011-09-13 02:24:44 +02:00
Igor Wiedler 1e5aaefaf5 Force empty lock files to contain a JSON object
By default it will make it an array, since PHP does not distinguish between
arrays and hash(map)s.
2011-09-12 16:59:05 +02:00
Jordi Boggiano 2b77710515 RC versions don't need a number 2011-08-21 13:33:42 +02:00
Jordi Boggiano 071fa7a4d7 Merge Solver logic into the install command 2011-08-21 13:33:39 +02:00
Jordi Boggiano ba9f12a517 Add extra and type info to packages 2011-08-21 13:33:37 +02:00
Nils Adermann 4dbb73daba Use an SplFixedArray for the solver's decision map 2011-08-21 07:30:10 -04:00
Nils Adermann b1d16a88b7 Test a replace link with a null constraint between packages 2011-08-21 07:08:34 -04:00
Nils Adermann 69ebbf0eac Correct handling of rules with more than 2 literals. 2011-08-21 06:30:06 -04:00
Nils Adermann 6cf8d3888c Use version contraints in the default policy rather than hardcoded version_compare 2011-08-20 23:05:39 -04:00
Nils Adermann 03642a40b4 Handle the = comparison operator for versions the same as == 2011-08-20 23:04:16 -04:00
Nils Adermann 6118c00086 Implement minimization of branches 2011-08-20 23:03:52 -04:00
Nils Adermann 0f6fb9b692 Separate transaction generation from solving and properly identify updates 2011-08-20 18:38:31 -04:00
Nils Adermann f46aa495da Turn obsolete relationships and replaced packages into conflict rules 2011-08-20 18:19:47 -04:00
Nils Adermann 52565a5935 Implement handling of conflicts with learned rules 2011-08-20 13:45:20 -04:00
Nils Adermann b0c685176b Correct branch handling and implement reverting of decisions at a particular level 2011-08-20 13:36:18 -04:00
Nils Adermann 37e676cedd Implement analysis of conflicting rules 2011-08-20 13:21:24 -04:00
Nils Adermann 6d157b325d Package ids are always positive, so use absolute literal value for package id 2011-08-20 13:21:24 -04:00
Nils Adermann ad25618bdd Add install job and update rule conflict handling and reenable installation 2011-08-19 06:15:51 -04:00
Nils Adermann 1125de6bf2 Added disablePolicyRules to solve conflicts between remove jobs & update rules
This temporarily breaks installation of packages
2011-08-19 06:06:00 -04:00
Nils Adermann 0d30bc469b In the default policy compare object ids to avoid recursion. 2011-08-05 04:14:11 -04:00
Nils Adermann 61ad71b624 Reverse the transaction instruction order.
Early decisions cause later ones through dependencies. So in order to
perform the earlier decisions the later ones must be fulfilled first.
2011-08-05 04:14:11 -04:00
Jordi Boggiano 6fc243cbd6 Remove useless file 2011-08-03 23:59:36 +02:00
xaav 1607ac2404 Added phar compiler 2011-08-03 23:57:27 +02:00
Jordi Boggiano 256955f0f7 Minor code cleanup 2011-07-21 13:53:39 +02:00
Nils Adermann 825deff09f Completed analysis of unsolvable situations and main decision process 2011-07-08 07:11:04 -04:00
Jordi Boggiano 49c3446ac1 Make use of new dist properties, refactored ZipDownloader 2011-07-06 21:06:52 +02:00
Jordi Boggiano 64978d40ba Add dist properties to the Packages 2011-07-06 21:05:05 +02:00
Jordi Boggiano d6ae5ddf35 Add 'dev' flag to version parser 2011-07-06 21:04:37 +02:00
Jordi Boggiano 10486d8505 Better error reporting for incorrect repo specs 2011-06-28 20:43:01 +02:00
Jordi Boggiano f272f66324 Fixes and improvements to the PEAR implementation 2011-06-28 20:42:59 +02:00
Jordi Boggiano 75428d9ad1 Slightly improve reporting when json config files can't be parsed 2011-06-28 20:42:57 +02:00
Jordi Boggiano 75410d13b7 Bugfix 2011-06-28 20:42:55 +02:00
Jordi Boggiano 5b061b8ddb Remove TODO 2011-06-28 20:42:53 +02:00
xaav 74332da349 Using copy function. 2011-06-28 20:42:51 +02:00
Benjamin Eberlei fa613cad19 Rewrite PearRepository to implement PEAR Client/Server protocol itself, taking longer then pear remote-list, but at least showing ALL available versions, making arbitrary dependencies possible. 2011-06-28 20:42:50 +02:00
Benjamin Eberlei 8afc2ca694 Add support for PEAR repository and downloading, example composer.json would look like {"repositories":{"doctrine": {"pear":"http://pear.doctrine-project.org"},"requires":{"DoctrineORM":"2.0.5"}}. You can use pear repositories this way for now. PEAR packages are not downloaded via pear, only via their .tgz packages in the PEAR repository. Automatically detecting dependencies will require reverse-engineering the PEAR protocol a little bit more, however from looking at a pirum output it looks simple. 2011-06-28 20:42:48 +02:00
Nils Adermann c225b4c689 Correctly match platform specific PHP version numbers 2011-06-27 00:12:51 +02:00
Nils Adermann bc672deb32 Moving rule iteration logic to a separate RuleSet and RuleSetIterator class 2011-06-27 00:11:57 +02:00
xaav e1e7bb03be Edited src/Composer/Downloader/ZipDownloader.php via GitHub 2011-06-14 14:25:29 -07:00