composer/composer — pull request #1728 by nfx (2013-03-25 00:03:07+00:00)
Title: Archive artifacts as installable packages

There are some cases, when there is no ability to have one of the previously
mentioned repository types online, even the VCS one. Typical example could be
cross-organisation library exchange though built artifacts. Of course, most
of the times they are private. To simplify maintainance, one can simply specify
repository of type `artifact` with a folder containing ZIP archives of those
private packages:

{
"repositories": [
{
"type": "artifact",
"url": "path/to/directory/with/zips/"
}
],
"require": {
"private-vendor-one/core": "15.6.2",
"private-vendor-two/connectivity": "*",
"acme-corp/parser": "10.3.5"
}
}

Each zip artifact is just a ZIP archive with `composer.json` in root folder:

$ tar -tf acme-corp-parser-10.3.5.zip
composer.json
...

If there is two archives with different versions of a package, they would be
imported both. If archive with newer version would be put to artifact folder and
`update` command would be triggered, that version would replace previous, at it
logically seems.

The basic idea:
* some product comes with packages for PHP in zip format
* each of those files contain composer.json
* to include a package - just specify a require dependency and put archive into folder
* updates would be possible when new files would be thrown into folder, with newer versions
* some ideas taken from Java Maven and Python Pip
* elimination of private composer index support - packagist or satis
* easier deployment
* company-specific artifacts
* "offline mode"