Jordi Boggiano
b100df33d8
Make ArrayDumper and ArrayLoader reversible
13 years ago
Jordi Boggiano
4904e76185
Install every package in its own directory, fixes #73
13 years ago
Nils Adermann
56fab04c93
Merge pull request #71 from fabpot/filesystem-bug
...
Filesystem bug
Object of class Composer\Json\JsonFile could not be converted to string
13 years ago
Fabien Potencier
03b06ebbca
Fix path for autoloaded libs as the .composer/ dir is now under the vendor/ one.
13 years ago
Fabien Potencier
1450ebd837
Fix bug in an exception, added unit tests
13 years ago
Nils Adermann
e4f40272a3
Conflict handling: lastWeakWhy stores a rule, not a rule id
13 years ago
Nils Adermann
3e0e893f26
Correctly output decision map when debugging
13 years ago
Nils Adermann
85d38c653f
Also detect updates resulting from feature rules rather than update rules
13 years ago
Nils Adermann
2056c4c732
Allow downgrades and uninstalls in the default policy
13 years ago
Jordi Boggiano
d3aa8336dc
Fix typo
13 years ago
Jordi Boggiano
1e0710b32f
Move .composer into vendor (hardcoded for now)
13 years ago
Jordi Boggiano
305856f2f5
Merge pull request #68 from fabpot/small-opt
...
Move loader creation to avoid creating it more than once, unified the way
13 years ago
Nils Adermann
4827ea95e5
Merge pull request #69 from fabpot/added-exception
...
Add an exception when a Filesystem repository is corrupted
13 years ago
Fabien Potencier
5ffc349642
Add an exception when a Filesystem repository is corrupted
13 years ago
Fabien Potencier
527c711149
Move loader creation to avoid creating it more than once, unified the way packages are loading across repository classes
13 years ago
Fabien Potencier
9e7ebd9280
Fix autoload.php generator
13 years ago
Jordi Boggiano
d16b928baf
Add DebugPackagesCommand
13 years ago
Jordi Boggiano
220ab7f4ee
Comments
13 years ago
Jordi Boggiano
23c1c40b3d
Fix missing reference in local repository
13 years ago
Jordi Boggiano
dcfe310cff
Fix PEAR repository
13 years ago
Jordi Boggiano
a263a3cb7d
Dont enforce optional fields
13 years ago
Jordi Boggiano
89caa9b117
Rewrite autoloader to use only PSR-0, remove splitting of PEAR path
13 years ago
Jordi Boggiano
c03a739548
Use psr-0 instead of psr0
13 years ago
Jordi Boggiano
be47991b36
Build a standalone autoload file
13 years ago
Jordi Boggiano
8b0fee3f35
Fix platform packages not being added to the pool
13 years ago
Jordi Boggiano
5e52d5c1ad
Fix tests
13 years ago
Jordi Boggiano
b667cf98c2
Clone added packages in update
13 years ago
Jordi Boggiano
2b15c4321b
Typo fix
13 years ago
Jordi Boggiano
aeab3c16fd
Add PackageRepository to define inline packages
...
Example:
{
"repositories": {
"Monolog": {
"package": {
"source": {
"url": "git://github.com/Seldaek/monolog.git",
"type": "git",
"reference": "1.0.1"
},
"version": "1.0.1",
"name": "monolog/monolog"
}
}
}
}
13 years ago
Jordi Boggiano
9b24734c9d
Add parsing and on-the-fly loading of repositories defined in packages
13 years ago
Jordi Boggiano
17286e993c
Add exception when json files can not be read
13 years ago
Jordi Boggiano
450095e61d
Adjust RepositoryManager to handle multiple repositories of one type
13 years ago
Jordi Boggiano
33e7001d7e
Fix typo
13 years ago
Jordi Boggiano
c33fc80d23
Add supports() to the InstallerInterface
13 years ago
Jordi Boggiano
8a571c05db
Fix issues in new autoloader code
13 years ago
Jordi Boggiano
c8cfa15f52
Use wrapped PlatformRepository only in the Solver
13 years ago
Jordi Boggiano
28369ea623
Add missing docblock
13 years ago
Igor Wiedler
808a2c9448
[composer] wrap UniversalClassLoader require in if class_exists
13 years ago
Igor Wiedler
aa7c4b8ef7
[autoload] refactor getFullPackage into populateAutoloadInformation
13 years ago
Igor Wiedler
9d238330b3
[autoload] refactor autoload generation code into a AutoloadGenerator
13 years ago
Igor Wiedler
72a1f66b7a
rename installAs to target-dir
13 years ago
Igor Wiedler
409b2e47ae
return early (this is very important)
13 years ago
Igor Wiedler
ea31039556
[autoload] autoloading prototype
13 years ago
Nils Adermann
571c14adf9
Prefer original packages over replaced packages of same repository priority
13 years ago
Nils Adermann
44369472be
Define the calculation of package priorities in a single method
13 years ago
Nils Adermann
1b6f57e651
Correctly implement priorities and version numbers in the default policy
13 years ago
Nils Adermann
b52d6d881a
Pool repository index represents priority, highest index = highest priority
13 years ago
Nils Adermann
e4c94dd415
Adding tests for the default policy specifying its desired behaviour
13 years ago
Jordi Boggiano
e09f6900da
Fix up version parsing
13 years ago
Jordi Boggiano
19f89069a4
Add some more version normalization and support for branch names
13 years ago
Jordi Boggiano
b3fe30200b
Remove validation for now since it's doing more harm than good
13 years ago
Jordi Boggiano
7d4e67b335
Fix phar compiler
13 years ago
Jordi Boggiano
be769ea1ac
Add user-agent header to json fetches, fixes #39
13 years ago
Jordi Boggiano
2ebc795754
Error out when a package can not be found, refs #30
13 years ago
Jordi Boggiano
1a9de17a88
Detect and report common mistakes in json syntax, refs #36
13 years ago
Jordi Boggiano
cad0967788
json_decode returns null on error, not false
13 years ago
Jordi Boggiano
9210500714
Handle false and empty decoded json values as valid
13 years ago
Jordi Boggiano
18e28a2a9f
Make sure .composer dir is created before writing in it
13 years ago
Jordi Boggiano
806c5f200a
Fix var name
13 years ago
Jordi Boggiano
e109213dfa
Merge remote-tracking branch 'everzet/json-abstraction'
13 years ago
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.
13 years ago
Jordi Boggiano
cc769af923
Reuse normal installer logic for locked installs
13 years ago
everzet
d5ba884f8b
fixed potential error
13 years ago
everzet
1cca62dc97
move json parsing instructions into single class object
13 years ago
everzet
96122aada8
refactored install command to use new Locker
13 years ago
everzet
cc2f2b79ca
added findPackage() method to the RepositoryManager and RepositoryInterface
13 years ago
everzet
21191ffa00
refactored PackageLock to Locker and stabilized it
13 years ago
everzet
1fcb833902
added Json parsing abstraction
13 years ago
Kirill chEbba Chebunin
6c4440d0e9
Add todo for signed phars
13 years ago
Kirill chEbba Chebunin
7527d0af43
Add throws declaration for FileDownloader::extract()
13 years ago
Igor Wiedler
2c1605925b
ArrayLoader should not use require content for all other properties
13 years ago
Kirill chEbba Chebunin
43631ccd5b
Add Tar and Phar downloaders
13 years ago
Jordi Boggiano
9cbd74bf90
Merge remote-tracking branch 'everzet/downloader-interface-refactoring'
13 years ago
everzet
195272da09
refactored DownloaderInterface to be mono-installation-type
13 years ago
everzet
cc740249ff
don't return useless info
13 years ago
Jordi Boggiano
ebe2a25ec6
Merge remote-tracking branch 'wilmoore/feature/memory-package-test-refactor'
...
Conflicts:
src/Composer/Package/MemoryPackage.php
13 years ago
Jordi Boggiano
fda206400a
Fix constraint parsing
13 years ago
Jordi Boggiano
f48634d074
Add source/dist reference information to package
13 years ago
Jordi Boggiano
00a4fe2a14
Refactor downloaders, git installs actually work well now
13 years ago
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.
13 years ago
Jordi Boggiano
c863c31881
Rename platform packages so they avoid conflicts with any vendor
13 years ago
Jordi Boggiano
da6566b343
Minor improvements to VersionParser
13 years ago
Jordi Boggiano
2e10b5c17e
Expand normalization feature and adjust tests
13 years ago
Jordi Boggiano
46a67733f8
Adjust codebase to the new VersionParser
13 years ago
Jordi Boggiano
f761cfe525
Refactored VersionParser
13 years ago
Jordi Boggiano
d455eef82c
Fix pear & zip downloaders
13 years ago
Jordi Boggiano
544067ced9
Packages can't be added to two repos at once
13 years ago
Jordi Boggiano
e5907a3431
Remove WrapperRepository in favor of PlatformRepository wrapping the local repo
13 years ago
Jordi Boggiano
b9114e16be
Fix typos, short var names etc
13 years ago
Jordi Boggiano
c6d7760145
Merge branch 'refactoring'
13 years ago
Jordi Boggiano
5623f3e69c
Fix refactoring bugs
13 years ago
Jordi Boggiano
4fe80d7abb
Add WrapperRepository class
13 years ago
Jordi Boggiano
c7af918caa
Fix git downloader
13 years ago
everzet
c9ecb0d1ad
Remove unused methods from downloaders
13 years ago
everzet
05ddfde868
Reflect latest refactoring changes in commands
13 years ago
everzet
ef71836f30
Refactored Composer class to be service container
13 years ago
everzet
0694f5217a
Implemented RepositoryManager
13 years ago
everzet
3c439ce41c
Added "type" field validator to ArrayLoader
13 years ago
everzet
5890b05eb0
Implemented ArrayDumper
13 years ago
everzet
20318f77a0
Refactored FilesystemRegistry to FilesystemRepository
13 years ago
everzet
5c841187fd
Fixed RepositoryInterface
13 years ago
everzet
28d9df7da6
Added hasPackage and removePackage methods to the ArrayRepository
13 years ago
everzet
2fc0699492
Moved operations evaluation into new InstallationManager class
13 years ago
everzet
50aa7ac607
Provide $useSource argument to the DownloaderInterface methods
13 years ago
everzet
17d1abcec0
Refactored DownloadManager
13 years ago
everzet
6133108710
Refactored LibraryInstaller to use WritableRepository instead of Registry
13 years ago
everzet
9f98ee25ea
Enhanced repository interface
13 years ago
everzet
123f5fef77
Refactored Operations in order to fulfill naderman requests
13 years ago
Jordi Boggiano
751f506080
Add info to docblocks
13 years ago
Jordi Boggiano
8533a65061
Remove unused methods from RepositoryInterface
13 years ago
Jordi Boggiano
e700e6fcd9
Use new version parser in PlatformRepository
13 years ago
Jordi Boggiano
cd80f22781
Type is not mandatory
13 years ago
Jordi Boggiano
d27691a67f
Fix namespace/use/typo issues
13 years ago
everzet
0a1e7320b0
Refactored solver result array. Now it returns array of operation objects which are much nicer to work with
13 years ago
everzet
5b0d17cc13
DownloaderInterface refactored
13 years ago
everzet
69f1de9986
Enhanced PackageInterface and BasePackage with getUniqueName() method, which provides name-version-releaseType string (used in installer registry)
13 years ago
everzet
cde9531e4d
DownloadManager implemented
13 years ago
everzet
0a2f4e7e32
Installer now provides full download path to the downloader
13 years ago
everzet
45cab9fe8c
Installers FilesystemRegistry implemented
13 years ago
everzet
067007656b
LibraryInstaller refactored and tested
13 years ago
everzet
6ce0132259
fixed installer interface
13 years ago
everzet
9deb10361f
second batch of refactoring
13 years ago
everzet
d2150a3c2e
installer and downloaders update
13 years ago
everzet
d7fe0dfda4
added missing interfaces
13 years ago
everzet
6caa77fbbf
installer refactoring
13 years ago
everzet
5f4d46f7ae
repository factoring refactoring
13 years ago
everzet
1e1ecb80b7
initial refactoring
13 years ago
Joseph Bielawski
62bce6b9ed
[Request] Be more DRY
13 years ago
Jordi Boggiano
6b5f61943a
Lowercase package names in Request (fixes tests)
13 years ago
Jordi Boggiano
aeebd02ee5
Cleanup for last merged commit
13 years ago
Jordi Boggiano
89f49e0e14
Merge pull request #17 from chEbba/interfaces
...
Add Dowloader and Installer interfaces
13 years ago
Jordi Boggiano
9b70b06bc8
Merge remote-tracking branch 'ryan/use_symfony_command'
...
Conflicts:
bin/composer
src/Composer/Command/InstallCommand.php
13 years ago
Kirill chEbba Chebunin
74a45cfb8c
Remove public keyword from Downloader and Installer interface methods
13 years ago
Kirill chEbba Chebunin
e317b4f8ef
Add Dowloader and Installer interfaces
13 years ago
Ryan Weaver
b1fcbe9dde
Simplifying how composer initializes its commands
13 years ago
Jordi Boggiano
07e181c6eb
Fix lowercase behavior
13 years ago
pborreli
f7735c396f
[Composer] Fixed typos
13 years ago
Ryan Weaver
cf11b48306
Making several tweaks per @stof
13 years ago
Nils Adermann
b6ec172997
Merge pull request #13 from igorw/case-insensitive-package
...
Make package names and downloader/installer/repository types case insensitive
13 years ago
Igor Wiedler
9e8fc71870
Make package names and downloader/installer/repository types case insensitive
13 years ago
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.
13 years ago
Ryan Weaver
61917cb7f7
Adding Symfony's Console component as a submodule
13 years ago
Ryan Weaver
96b51c59d8
Adding some basic PHPDoc
13 years ago
Ryan Weaver
d13a2e928e
Removing reference to Silex, replacing with Composer
13 years ago
Jordi Boggiano
900bed1c32
Normalize package names
13 years ago
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.
13 years ago
Jordi Boggiano
2b77710515
RC versions don't need a number
13 years ago
Jordi Boggiano
071fa7a4d7
Merge Solver logic into the install command
13 years ago
Jordi Boggiano
ba9f12a517
Add extra and type info to packages
13 years ago
Nils Adermann
4dbb73daba
Use an SplFixedArray for the solver's decision map
13 years ago
Nils Adermann
b1d16a88b7
Test a replace link with a null constraint between packages
13 years ago
Nils Adermann
69ebbf0eac
Correct handling of rules with more than 2 literals.
13 years ago
Nils Adermann
6cf8d3888c
Use version contraints in the default policy rather than hardcoded version_compare
13 years ago
Nils Adermann
03642a40b4
Handle the = comparison operator for versions the same as ==
13 years ago
Nils Adermann
6118c00086
Implement minimization of branches
13 years ago
Nils Adermann
0f6fb9b692
Separate transaction generation from solving and properly identify updates
13 years ago
Nils Adermann
f46aa495da
Turn obsolete relationships and replaced packages into conflict rules
13 years ago
Nils Adermann
52565a5935
Implement handling of conflicts with learned rules
13 years ago
Nils Adermann
b0c685176b
Correct branch handling and implement reverting of decisions at a particular level
13 years ago
Nils Adermann
37e676cedd
Implement analysis of conflicting rules
13 years ago
Nils Adermann
6d157b325d
Package ids are always positive, so use absolute literal value for package id
13 years ago
Nils Adermann
ad25618bdd
Add install job and update rule conflict handling and reenable installation
13 years ago
Nils Adermann
1125de6bf2
Added disablePolicyRules to solve conflicts between remove jobs & update rules
...
This temporarily breaks installation of packages
13 years ago
Nils Adermann
0d30bc469b
In the default policy compare object ids to avoid recursion.
13 years ago
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.
13 years ago
Jordi Boggiano
6fc243cbd6
Remove useless file
13 years ago
xaav
1607ac2404
Added phar compiler
13 years ago
Jordi Boggiano
256955f0f7
Minor code cleanup
13 years ago
Nils Adermann
825deff09f
Completed analysis of unsolvable situations and main decision process
13 years ago
Jordi Boggiano
49c3446ac1
Make use of new dist properties, refactored ZipDownloader
13 years ago
Jordi Boggiano
64978d40ba
Add dist properties to the Packages
13 years ago
Jordi Boggiano
d6ae5ddf35
Add 'dev' flag to version parser
13 years ago
Jordi Boggiano
10486d8505
Better error reporting for incorrect repo specs
13 years ago
Jordi Boggiano
f272f66324
Fixes and improvements to the PEAR implementation
13 years ago
Jordi Boggiano
75428d9ad1
Slightly improve reporting when json config files can't be parsed
13 years ago
Jordi Boggiano
75410d13b7
Bugfix
13 years ago
Jordi Boggiano
5b061b8ddb
Remove TODO
13 years ago
xaav
74332da349
Using copy function.
13 years ago
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.
13 years ago
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.
13 years ago
Nils Adermann
c225b4c689
Correctly match platform specific PHP version numbers
13 years ago
Nils Adermann
bc672deb32
Moving rule iteration logic to a separate RuleSet and RuleSetIterator class
13 years ago
xaav
e1e7bb03be
Edited src/Composer/Downloader/ZipDownloader.php via GitHub
13 years ago
Jordi Boggiano
52888f193d
Fix version parsing of PHP on some linux distros
13 years ago
Jordi Boggiano
ae922eaf4c
Use ReflectionExtension to read ext versions
13 years ago
Jordi Boggiano
3524d0388a
Fixed use statement
13 years ago
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.
13 years ago
Jordi Boggiano
bb52105c37
Add GitRepository class
13 years ago
Jordi Boggiano
1eb2a46308
Don't chdir() while cloning git repos
13 years ago
Jordi Boggiano
14fdd4384a
Better reporting during installation
13 years ago
Jordi Boggiano
04783d5c30
CI match on package names
13 years ago
Nils Adermann
2e41993822
Update solver to use PackageInterface and store pool package ids inside of packages
13 years ago
Nils Adermann
8cbf3f4d75
No need to unify rules, we already check for duplication on insertion
13 years ago
Jordi Boggiano
92d443d07e
Fix arg order
13 years ago
Jordi Boggiano
48774ee6ca
Fix Literal id generation
13 years ago
Jordi Boggiano
56da52d38f
PlatformRepository now adds packages for every loaded php extension as well
13 years ago
Jordi Boggiano
05d527446b
addPackage needs to trigger initialization too
13 years ago
Jordi Boggiano
575e520931
Fix MultiConstraint::__toString
13 years ago
Jordi Boggiano
1edb22034d
Fix CS
13 years ago
Jordi Boggiano
b620405ab0
Adjusted BasePackage::__toString()
13 years ago
Jordi Boggiano
27f02aba7d
Fix version check in BasePackage
13 years ago
Jordi Boggiano
a67a1637e1
Print more human-readable info
13 years ago
Jordi Boggiano
831f5219b6
Use spl_object_hash() instead of the package id which doesn't exist anymore
13 years ago
Jordi Boggiano
b85c1a2780
Fix interfaces use statements/use interfaces for type hints
13 years ago
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.
13 years ago
Nils Adermann
273e12e386
Rule unification
13 years ago
Nils Adermann
f3d9c8701a
Generate transaction from solver's final decision queue.
13 years ago
Jordi Boggiano
ea71abb3fd
Fixed line endings
14 years ago
Jordi Boggiano
e43060eb72
Added exceptions and fixed CS of the ZipDownloader
14 years ago
Geoff
99d55792f6
Added ZipDownloader.
14 years ago
Jordi Boggiano
14b3325347
Fix version parsing
14 years ago
Jordi Boggiano
d185194d1a
Create links/constraints between packages
14 years ago
Jordi Boggiano
b53a3086b6
Minor refactorings and changes
14 years ago
Nils Adermann
f0af6b7d57
It's called a repository, not a registry
14 years ago
Nils Adermann
9b8ab7d710
Fix SpecificConstraint which only handles matching of instances of same constraint
14 years ago
Nils Adermann
d5dd86cd75
Correct version contraint matching and add tests for various cases
14 years ago
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.
14 years ago
Jordi Boggiano
e03983697a
Add base installer/downloader and ComposerRepository
14 years ago
Jordi Boggiano
2475ce47e4
Make ArrayRepository more extensible
14 years ago
Jordi Boggiano
c6321e7277
Fix tests and invalid use statements
14 years ago
Jordi Boggiano
3da43e751d
Update naming of repositories
14 years ago
Jordi Boggiano
6dbec8718d
Remove contains() from RepositoryInterface
14 years ago
Jordi Boggiano
f0e709ad09
Minor cleanups, add license property to the PackageInterface
14 years ago
Jordi Boggiano
8ab98a8b5d
Fix class name
14 years ago
Jordi Boggiano
bb5e59e30f
Add type/repositoryType and repositoryUrl package properties
14 years ago
Jordi Boggiano
1d5f5885bc
Remove useless abstract methods, interface is enough
14 years ago
Jordi Boggiano
7ea2fd6c93
Fix author/copyright
14 years ago
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.
14 years ago
Nils Adermann
933cc6179b
Import initial partial port of the libzypp satsolver.
14 years ago