diff --git a/doc/DefaultPolicy.md b/doc/DefaultPolicy.md index 4254e20bf..328ceec8f 100644 --- a/doc/DefaultPolicy.md +++ b/doc/DefaultPolicy.md @@ -27,7 +27,7 @@ Request: install A Packages Repo1.Av1, Repo2.Av1 * priority(Repo1) >= priority(Repo2) => (Repo1.Av1, Repo2.Av1) -* priority(Repo2) < priority(Repo2) => (Repo2.Av1, Repo1.Av1) +* priority(Repo1) < priority(Repo2) => (Repo2.Av1, Repo1.Av1) ### Virtual Packages (provides) @@ -39,7 +39,7 @@ Packages Av1, Bv1 Request: install X * priority(Av1.repo) >= priority(Bv1.repo) => (Av1, Bv1) -* priority(Av1.repo) < priority(Bv1.repo) => (Bv1, Av1) +* priority(Av1.repo) < priority(Bv1.repo) => (Bv1, Av1) ### Package replacements @@ -49,8 +49,7 @@ Packages: Av1, Bv2 Request: install A -* priority(Av1.repo) > priority(Bv2.repo) => (Av1, Bv2) -* priority(Av1.repo) = priority(Bv2.repo) => (Av1, Bv2) -* priority(Av1.repo) < priority(Bv2.repo) => (Bv2, Av1) +* priority(Av1.repo) >= priority(Bv2.repo) => (Av1, Bv2) +* priority(Av1.repo) < priority(Bv2.repo) => (Bv2, Av1) -Bv2.version is ignored, only the replacement version for A matters. +Bv2 version is ignored, only the replacement version for A matters. diff --git a/doc/faqs/packagist-update-schedule.md b/doc/faqs/packagist-update-schedule.md new file mode 100644 index 000000000..865e48a44 --- /dev/null +++ b/doc/faqs/packagist-update-schedule.md @@ -0,0 +1,22 @@ +# Packagist Update Schedule + +## How often does Packagist crawl newly added packages? + +New packages will be crawled **within ten minutes**. + + +## How often does Packagist crawl existing packages? + +Existing packages will be crawled **every hour**. + + +## How often does the Packagist search index update? + +The search index is updated **every five minutes**. It will index (or reindex) +any package that has been crawled since the last time the search +indexer ran. + + +## Can Packagist be triggered to recrawl a package (on commit or by other means)? + +Not yet. :) See [#84](https://github.com/composer/packagist/issues/84). \ No newline at end of file diff --git a/src/Composer/Installer/LibraryInstaller.php b/src/Composer/Installer/LibraryInstaller.php index db2fe535b..0873ed63c 100644 --- a/src/Composer/Installer/LibraryInstaller.php +++ b/src/Composer/Installer/LibraryInstaller.php @@ -147,6 +147,12 @@ class LibraryInstaller implements InstallerInterface foreach ($package->getBinaries() as $bin) { $link = $this->binDir.'/'.basename($bin); if (file_exists($link)) { + if (is_link($link)) { + // likely leftover from a previous install, make sure + // that the target is still executable in case this + // is a fresh install of the vendor. + chmod($link, 0755); + } $this->io->write('Skipped installation of '.$bin.' for package '.$package->getName().', name conflicts with an existing file'); continue; } @@ -156,14 +162,14 @@ class LibraryInstaller implements InstallerInterface // add unixy support for cygwin and similar environments if ('.bat' !== substr($bin, -4)) { file_put_contents($link, $this->generateUnixyProxyCode($bin, $link)); - chmod($link, 0777); + chmod($link, 0755); $link .= '.bat'; } file_put_contents($link, $this->generateWindowsProxyCode($bin, $link)); } else { symlink($bin, $link); } - chmod($link, 0777); + chmod($link, 0755); } }