1
0
Fork 0
Commit Graph

7932 Commits (cf8ce82aa17a512007e5bf7da2ba937437fa6089)

Author SHA1 Message Date
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
Jordi Boggiano 52888f193d Fix version parsing of PHP on some linux distros 2011-06-08 17:47:34 +02:00
Jordi Boggiano ae922eaf4c Use ReflectionExtension to read ext versions 2011-06-08 11:41:52 +02:00
Jordi Boggiano 3524d0388a Fixed use statement 2011-06-08 11:32:41 +02:00
Nils Adermann 498125adbe Assertions are now properly decided before running the main solver.
Updating does not work yet. The test case works fine for installing/removing
the correct packages however. Weak (update/feature) rules are entirely ignored
so far.

Watches are on literal ids rather than literals to save on function calls
and memory usage. So a few methods for literals now have an id counter part.
This should probably be refactored to have the literal versions call the
id ones instead.
2011-06-07 22:43:26 +02:00
Jordi Boggiano bb52105c37 Add GitRepository class 2011-06-06 11:07:12 +02:00
Jordi Boggiano 1eb2a46308 Don't chdir() while cloning git repos 2011-06-06 11:01:06 +02:00
Jordi Boggiano 14fdd4384a Better reporting during installation 2011-06-06 11:01:04 +02:00
Jordi Boggiano 04783d5c30 CI match on package names 2011-06-06 11:01:02 +02:00
Nils Adermann 2e41993822 Update solver to use PackageInterface and store pool package ids inside of packages 2011-06-03 18:27:44 +02:00
Nils Adermann 8cbf3f4d75 No need to unify rules, we already check for duplication on insertion 2011-06-03 18:03:12 +02:00
Jordi Boggiano 92d443d07e Fix arg order 2011-05-23 02:04:17 +02:00
Jordi Boggiano 48774ee6ca Fix Literal id generation 2011-05-23 02:00:21 +02:00
Jordi Boggiano 56da52d38f PlatformRepository now adds packages for every loaded php extension as well 2011-05-23 02:00:18 +02:00
Jordi Boggiano 05d527446b addPackage needs to trigger initialization too 2011-05-23 02:00:15 +02:00
Jordi Boggiano 575e520931 Fix MultiConstraint::__toString 2011-05-23 02:00:12 +02:00
Jordi Boggiano 1edb22034d Fix CS 2011-05-23 02:00:09 +02:00
Jordi Boggiano b620405ab0 Adjusted BasePackage::__toString() 2011-05-23 02:00:07 +02:00
Jordi Boggiano 27f02aba7d Fix version check in BasePackage 2011-05-23 02:00:05 +02:00
Jordi Boggiano a67a1637e1 Print more human-readable info 2011-05-23 02:00:03 +02:00
Jordi Boggiano 831f5219b6 Use spl_object_hash() instead of the package id which doesn't exist anymore 2011-05-23 02:00:00 +02:00
Jordi Boggiano b85c1a2780 Fix interfaces use statements/use interfaces for type hints 2011-05-23 01:59:57 +02:00
Nils Adermann 4dad9fa6ef Adding support for LinkConstraints to the solver requests.
Constraints are directly passed on to the pool's whatProvides method
which returns a set of packages that satisfy name and constraint conditions.
2011-05-22 23:54:48 +02:00
Nils Adermann 273e12e386 Rule unification 2011-05-22 19:40:52 +02:00
Nils Adermann f3d9c8701a Generate transaction from solver's final decision queue. 2011-05-22 19:40:41 +02:00
Jordi Boggiano ea71abb3fd Fixed line endings 2011-05-06 19:55:49 +02:00
Jordi Boggiano e43060eb72 Added exceptions and fixed CS of the ZipDownloader 2011-05-06 19:54:47 +02:00
Geoff 99d55792f6 Added ZipDownloader. 2011-05-01 21:31:06 -05:00
Jordi Boggiano 14b3325347 Fix version parsing 2011-04-23 22:25:10 +02:00
Jordi Boggiano d185194d1a Create links/constraints between packages 2011-04-23 20:52:37 +02:00
Jordi Boggiano b53a3086b6 Minor refactorings and changes 2011-04-21 21:13:14 +02:00
Nils Adermann f0af6b7d57 It's called a repository, not a registry 2011-04-18 22:48:51 +02:00
Nils Adermann 9b8ab7d710 Fix SpecificConstraint which only handles matching of instances of same constraint 2011-04-18 22:47:33 +02:00
Nils Adermann d5dd86cd75 Correct version contraint matching and add tests for various cases 2011-04-18 22:45:11 +02:00
Nils Adermann 8c9f8fb86f Rename RelationConstraints to Links in the Package namespace.
Constraints have been generalised to allow matching requiring and providing
constraints against each other.
2011-04-18 00:27:31 +02:00
Jordi Boggiano e03983697a Add base installer/downloader and ComposerRepository 2011-04-18 00:15:05 +02:00
Jordi Boggiano 2475ce47e4 Make ArrayRepository more extensible 2011-04-18 00:12:40 +02:00
Jordi Boggiano c6321e7277 Fix tests and invalid use statements 2011-04-17 23:45:37 +02:00
Jordi Boggiano 3da43e751d Update naming of repositories 2011-04-17 23:32:53 +02:00
Jordi Boggiano 6dbec8718d Remove contains() from RepositoryInterface 2011-04-17 22:59:23 +02:00
Jordi Boggiano f0e709ad09 Minor cleanups, add license property to the PackageInterface 2011-04-17 22:13:08 +02:00
Jordi Boggiano 8ab98a8b5d Fix class name 2011-04-17 21:49:05 +02:00
Jordi Boggiano bb5e59e30f Add type/repositoryType and repositoryUrl package properties 2011-04-17 21:48:20 +02:00
Jordi Boggiano 1d5f5885bc Remove useless abstract methods, interface is enough 2011-04-17 21:47:46 +02:00
Jordi Boggiano 7ea2fd6c93 Fix author/copyright 2011-04-17 21:39:53 +02:00
Nils Adermann 3a851b4059 Define an interface for packages and move package code to separate namespace.
Ids are no longer needed, they are internal to the solver and not a part of
packages.
2011-04-17 21:36:05 +02:00
Nils Adermann 933cc6179b Import initial partial port of the libzypp satsolver. 2011-04-05 17:37:19 +02:00