From 70f0d2516f7c3155a0c04e03179176b844f5005d Mon Sep 17 00:00:00 2001 From: Stephen Ball Date: Fri, 13 Mar 2015 13:31:38 +0000 Subject: [PATCH 01/20] Removed log output so that it matches the other plugins which don't pollute the build log, and to prevent issues with the log output not being escaped --- PHPCI/Plugin/TechnicalDebt.php | 1 - 1 file changed, 1 deletion(-) diff --git a/PHPCI/Plugin/TechnicalDebt.php b/PHPCI/Plugin/TechnicalDebt.php index eca05213..6fdc81a7 100755 --- a/PHPCI/Plugin/TechnicalDebt.php +++ b/PHPCI/Plugin/TechnicalDebt.php @@ -193,7 +193,6 @@ class TechnicalDebt implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin $content = trim($allLines[$lineNumber - 1]); $errorCount++; - $this->phpci->log("Found $search on line $lineNumber of $file:\n$content"); $fileName = str_replace($this->directory, '', $file); $data[] = array( From 52b2f87df22e4152dd2e3f5a288c0f4f091b0adf Mon Sep 17 00:00:00 2001 From: Stephen Ball Date: Mon, 16 Mar 2015 11:09:45 +0000 Subject: [PATCH 02/20] Parsing variables in the Wipe plugin --- PHPCI/Plugin/Wipe.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PHPCI/Plugin/Wipe.php b/PHPCI/Plugin/Wipe.php index 1a71e293..7de4b975 100644 --- a/PHPCI/Plugin/Wipe.php +++ b/PHPCI/Plugin/Wipe.php @@ -43,7 +43,7 @@ class Wipe implements \PHPCI\Plugin $path = $phpci->buildPath; $this->phpci = $phpci; $this->build = $build; - $this->directory = isset($options['directory']) ? $options['directory'] : $path; + $this->directory = isset($options['directory']) ? $this->phpci->interpolate($options['directory']) : $path; } /** From fdaaa1ede4a34d54955adb5449c53ce4a2fd0711 Mon Sep 17 00:00:00 2001 From: Stephen Ball Date: Mon, 16 Mar 2015 11:10:03 +0000 Subject: [PATCH 03/20] Parsing variables in the code coverage output directory for PHPUnit --- PHPCI/Plugin/PhpUnit.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PHPCI/Plugin/PhpUnit.php b/PHPCI/Plugin/PhpUnit.php index 70e0e74f..fc597f2d 100644 --- a/PHPCI/Plugin/PhpUnit.php +++ b/PHPCI/Plugin/PhpUnit.php @@ -133,7 +133,7 @@ class PhpUnit implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin } if (isset($options['coverage'])) { - $this->coverage = " --coverage-html {$options['coverage']} "; + $this->coverage = ' --coverage-html ' . $this->phpci->interpolate($options['coverage']) . ' '; } } From d698b11673d69b5d6b3df03d21f2c00ed2f67b56 Mon Sep 17 00:00:00 2001 From: Adirelle Date: Tue, 26 May 2015 08:46:49 +0200 Subject: [PATCH 04/20] Fixes "Undefined index: login_token". Fixes https://github.com/Block8/PHPCI/issues/994. --- PHPCI/Controller/SessionController.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PHPCI/Controller/SessionController.php b/PHPCI/Controller/SessionController.php index a5f40ffb..2995c514 100644 --- a/PHPCI/Controller/SessionController.php +++ b/PHPCI/Controller/SessionController.php @@ -44,7 +44,7 @@ class SessionController extends \PHPCI\Controller if ($this->request->getMethod() == 'POST') { $token = $this->getParam('token'); - if ($token === null || $token !== $_SESSION['login_token']) { + if (!isset($token, $_SESSION['login_token']) || $token !== $_SESSION['login_token']) { $isLoginFailure = true; } else { unset($_SESSION['login_token']); From 92ee90998a1b6b218656195a78366542d74a97a3 Mon Sep 17 00:00:00 2001 From: Steve Robbins Date: Wed, 27 May 2015 14:20:37 -0700 Subject: [PATCH 05/20] Fixes notice in github builds Closed #996 --- PHPCI/Model/Build/GithubBuild.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PHPCI/Model/Build/GithubBuild.php b/PHPCI/Model/Build/GithubBuild.php index d6b2b7b9..a7504c6f 100644 --- a/PHPCI/Model/Build/GithubBuild.php +++ b/PHPCI/Model/Build/GithubBuild.php @@ -221,6 +221,6 @@ class GithubBuild extends RemoteGitBuild $helper = new Diff(); $lines = $helper->getLinePositions($diff); - return $lines[$line]; + return isset($lines[$line]) ? $lines[$line] : null; } } From dc6e63a7e79e479849674399a98736c4948d9bf4 Mon Sep 17 00:00:00 2001 From: Dariusz Ruminski Date: Tue, 8 Sep 2015 01:03:43 +0200 Subject: [PATCH 06/20] PHP CS Fixer - fix name Closed #1054 --- PHPCI/Plugin/PhpCsFixer.php | 2 +- composer.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/PHPCI/Plugin/PhpCsFixer.php b/PHPCI/Plugin/PhpCsFixer.php index e07db718..9ab187cc 100644 --- a/PHPCI/Plugin/PhpCsFixer.php +++ b/PHPCI/Plugin/PhpCsFixer.php @@ -14,7 +14,7 @@ use PHPCI\Helper\Lang; use PHPCI\Model\Build; /** -* PHP CS Fixer - Works with the PHP CS Fixer for testing coding standards. +* PHP CS Fixer - Works with the PHP Coding Standards Fixer for testing coding standards. * @author Gabriel Baker * @package PHPCI * @subpackage Plugins diff --git a/composer.json b/composer.json index 3de523e5..df573f9a 100644 --- a/composer.json +++ b/composer.json @@ -69,7 +69,7 @@ "sebastian/phpcpd": "PHP Copy/Paste Detector", "squizlabs/php_codesniffer": "PHP Code Sniffer", "phpspec/phpspec": "PHP Spec", - "fabpot/php-cs-fixer": "PHP Code Sniffer Fixer", + "fabpot/php-cs-fixer": "PHP Coding Standards Fixer", "phploc/phploc": "PHP Lines of Code", "atoum/atoum": "Atoum", "jakub-onderka/php-parallel-lint": "Parallel Linting Tool", From aaf93ddd7d6f3baa0405732a52160484bd088d94 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Fri, 2 Oct 2015 21:35:53 +0100 Subject: [PATCH 07/20] Updating PHPCI to send more detailed commit statuses, for @REBELinBLUE. --- PHPCI/Model/Build/GithubBuild.php | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/PHPCI/Model/Build/GithubBuild.php b/PHPCI/Model/Build/GithubBuild.php index a7504c6f..b5d8ccbb 100644 --- a/PHPCI/Model/Build/GithubBuild.php +++ b/PHPCI/Model/Build/GithubBuild.php @@ -59,25 +59,35 @@ class GithubBuild extends RemoteGitBuild case 0: case 1: $status = 'pending'; + $description = 'PHPCI build running.'; break; case 2: $status = 'success'; + $description = 'PHPCI build passed.'; break; case 3: $status = 'failure'; + $description = 'PHPCI build failed.'; break; default: $status = 'error'; + $description = 'PHPCI build failed to complete.'; break; } $phpciUrl = \b8\Config::getInstance()->get('phpci.url'); - $params = array( 'state' => $status, - 'target_url' => $phpciUrl . '/build/view/' . $this->getId()); + + $params = array( + 'state' => $status, + 'target_url' => $phpciUrl . '/build/view/' . $this->getId(), + 'description' => $description, + 'context' => 'PHPCI', + ); + $headers = array( 'Authorization: token ' . $token, 'Content-Type: application/x-www-form-urlencoded' - ); + ); $http->setHeaders($headers); $http->request('POST', $url, json_encode($params)); From b171a10759caddd279e6bb5240b263b94a9cdd8d Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Fri, 2 Oct 2015 21:53:39 +0100 Subject: [PATCH 08/20] Fixing Codeception plugin PHPCS errors. --- PHPCI/Plugin/Codeception.php | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/PHPCI/Plugin/Codeception.php b/PHPCI/Plugin/Codeception.php index b906fb70..6d020210 100644 --- a/PHPCI/Plugin/Codeception.php +++ b/PHPCI/Plugin/Codeception.php @@ -130,6 +130,7 @@ class Codeception implements \PHPCI\Plugin, \PHPCI\ZeroConfigPlugin } $cmd = 'cd "%s" && ' . $codecept . ' run -c "%s" --xml ' . $this->args; + if (IS_WIN) { $cmd = 'cd /d "%s" && ' . $codecept . ' run -c "%s" --xml ' . $this->args; } @@ -137,14 +138,12 @@ class Codeception implements \PHPCI\Plugin, \PHPCI\ZeroConfigPlugin $configPath = $this->phpci->buildPath . $configPath; $success = $this->phpci->executeCommand($cmd, $this->phpci->buildPath, $configPath); + $this->phpci->log( + 'Codeception XML path: '. $this->phpci->buildPath . $this->path . 'report.xml', + Loglevel::DEBUG + ); - $this->phpci->log( - 'Codeception XML path: '. $this->phpci->buildPath . $this->path . 'report.xml', - Loglevel::DEBUG - ); - $xml = file_get_contents($this->phpci->buildPath . $this->path . 'report.xml', false); - - + $xml = file_get_contents($this->phpci->buildPath . $this->path . 'report.xml', false); $parser = new Parser($this->phpci, $xml); $output = $parser->parse(); @@ -157,7 +156,6 @@ class Codeception implements \PHPCI\Plugin, \PHPCI\ZeroConfigPlugin $this->build->storeMeta('codeception-meta', $meta); $this->build->storeMeta('codeception-data', $output); $this->build->storeMeta('codeception-errors', $parser->getTotalFailures()); - $this->phpci->logExecOutput(true); return $success; From 9ee27bad3713565e83e010e496067d58fca3a9ee Mon Sep 17 00:00:00 2001 From: Stephen Ball Date: Sun, 4 Oct 2015 17:38:03 +0100 Subject: [PATCH 09/20] Adding support to check for .phpci.yml so the file can be 'hidden' as with other CI systems such as Travis, StyleCI and Codeclimate --- PHPCI/Model/Build.php | 5 +++++ PHPCI/Plugin/TechnicalDebt.php | 1 + 2 files changed, 6 insertions(+) diff --git a/PHPCI/Model/Build.php b/PHPCI/Model/Build.php index a0019438..3e3ab3e2 100644 --- a/PHPCI/Model/Build.php +++ b/PHPCI/Model/Build.php @@ -104,6 +104,11 @@ class Build extends BuildBase $build_config = file_get_contents($buildPath . '/phpci.yml'); } + // Try .phpci.yml + if (empty($build_config) && is_file($buildPath . '/.phpci.yml')) { + $build_config = file_get_contents($buildPath . '/.phpci.yml'); + } + // Try getting the project build config from the database: if (empty($build_config)) { $build_config = $this->getProject()->getBuildConfig(); diff --git a/PHPCI/Plugin/TechnicalDebt.php b/PHPCI/Plugin/TechnicalDebt.php index 163c94c6..91f75d93 100755 --- a/PHPCI/Plugin/TechnicalDebt.php +++ b/PHPCI/Plugin/TechnicalDebt.php @@ -151,6 +151,7 @@ class TechnicalDebt implements PHPCI\Plugin, PHPCI\ZeroConfigPlugin $ignores = $this->ignore; $ignores[] = 'phpci.yml'; + $ignores[] = '.phpci.yml'; foreach ($iterator as $file) { $filePath = $file->getRealPath(); From fa979f6a0234420a2330ddb7a23ac3a6c2cb2ad9 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 09:56:36 +0100 Subject: [PATCH 10/20] Fixing composer.json --- composer.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/composer.json b/composer.json index df573f9a..3b0ec9f0 100644 --- a/composer.json +++ b/composer.json @@ -47,8 +47,7 @@ "monolog/monolog": "~1.6", "pimple/pimple": "~1.1", "robmorgan/phinx": "~0.4", - "sensiolabs/ansi-to-html": "~1.1", - "jakub-onderka/php-parallel-lint": "0.8.*" + "sensiolabs/ansi-to-html": "~1.1" }, "autoload-dev": { @@ -60,7 +59,8 @@ "phpmd/phpmd": "~2.0", "squizlabs/php_codesniffer": "~2.3", "block8/php-docblock-checker": "~1.0", - "phploc/phploc": "~2.0" + "phploc/phploc": "~2.0", + "jakub-onderka/php-parallel-lint": "0.8.*" }, "suggest": { From 6c3341783981b55d75773b32bf4ba5cca4c5e056 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 09:57:50 +0100 Subject: [PATCH 11/20] More composer.json cleanup --- composer.json | 4 ---- 1 file changed, 4 deletions(-) diff --git a/composer.json b/composer.json index 3b0ec9f0..e20a3b1b 100644 --- a/composer.json +++ b/composer.json @@ -50,10 +50,6 @@ "sensiolabs/ansi-to-html": "~1.1" }, - "autoload-dev": { - "psr-4": { "Tests\\PHPCI\\": "Tests/PHPCI" } - }, - "require-dev": { "phpunit/phpunit": "~4.5", "phpmd/phpmd": "~2.0", From 647c0eb09cf62c3a7dfb9e300ba1d3efa466ef55 Mon Sep 17 00:00:00 2001 From: Stephen Ball Date: Mon, 5 Oct 2015 10:17:04 +0100 Subject: [PATCH 12/20] Update Build.php Changed the order the files are loaded in --- PHPCI/Model/Build.php | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/PHPCI/Model/Build.php b/PHPCI/Model/Build.php index 3e3ab3e2..3243f9fa 100644 --- a/PHPCI/Model/Build.php +++ b/PHPCI/Model/Build.php @@ -99,14 +99,14 @@ class Build extends BuildBase { $build_config = null; - // Try phpci.yml first: - if (is_file($buildPath . '/phpci.yml')) { - $build_config = file_get_contents($buildPath . '/phpci.yml'); + // Try .phpci.yml + if (is_file($buildPath . '/.phpci.yml')) { + $build_config = file_get_contents($buildPath . '/.phpci.yml'); } - // Try .phpci.yml - if (empty($build_config) && is_file($buildPath . '/.phpci.yml')) { - $build_config = file_get_contents($buildPath . '/.phpci.yml'); + // Try phpci.yml first: + if (empty($build_config) && is_file($buildPath . '/phpci.yml')) { + $build_config = file_get_contents($buildPath . '/phpci.yml'); } // Try getting the project build config from the database: From 06204ef17138e8188203b15a17bfd9f738aae025 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 12:13:22 +0100 Subject: [PATCH 13/20] Adding support for beanstalkd-based workers. --- PHPCI/Command/WorkerCommand.php | 80 +++ PHPCI/Controller/WebhookController.php | 4 - PHPCI/Model/Build.php | 2 +- PHPCI/Service/BuildService.php | 39 +- PHPCI/Worker/BuildWorker.php | 160 ++++++ bootstrap.php | 3 + composer.json | 3 +- composer.lock | 761 ++++++++++++++----------- console | 2 + 9 files changed, 701 insertions(+), 353 deletions(-) create mode 100644 PHPCI/Command/WorkerCommand.php create mode 100644 PHPCI/Worker/BuildWorker.php diff --git a/PHPCI/Command/WorkerCommand.php b/PHPCI/Command/WorkerCommand.php new file mode 100644 index 00000000..49685656 --- /dev/null +++ b/PHPCI/Command/WorkerCommand.php @@ -0,0 +1,80 @@ + +* @package PHPCI +* @subpackage Console +*/ +class WorkerCommand extends Command +{ + /** + * @var OutputInterface + */ + protected $output; + + /** + * @var Logger + */ + protected $logger; + + /** + * @param \Monolog\Logger $logger + * @param string $name + */ + public function __construct(Logger $logger, $name = null) + { + parent::__construct($name); + $this->logger = $logger; + } + + protected function configure() + { + $this + ->setName('phpci:worker') + ->setDescription('Runs the PHPCI build worker.'); + } + + protected function execute(InputInterface $input, OutputInterface $output) + { + $this->output = $output; + + // For verbose mode we want to output all informational and above + // messages to the symphony output interface. + if ($input->hasOption('verbose') && $input->getOption('verbose')) { + $this->logger->pushHandler( + new OutputLogHandler($this->output, Logger::INFO) + ); + } + + $config = Config::getInstance()->get('phpci.worker', []); + + if (empty($config['host']) || empty($config['queue'])) { + $error = 'The worker is not configured. You must set a host and queue in your config.yml file.'; + throw new \Exception($error); + } + + $worker = new BuildWorker($config['host'], $config['queue']); + $worker->setLogger($this->logger); + $worker->setMaxJobs(Config::getInstance()->get('phpci.worker.max_jobs', -1)); + $worker->startWorker(); + } +} diff --git a/PHPCI/Controller/WebhookController.php b/PHPCI/Controller/WebhookController.php index 45a775ad..f9a764ca 100644 --- a/PHPCI/Controller/WebhookController.php +++ b/PHPCI/Controller/WebhookController.php @@ -364,10 +364,6 @@ class WebhookController extends \b8\Controller // If not, create a new build job for it: $build = $this->buildService->createBuild($project, $commitId, $branch, $committer, $commitMessage, $extra); - $build = BuildFactory::getBuild($build); - - // Send a status postback if the build type provides one: - $build->sendStatusPostback(); return array('status' => 'ok', 'buildID' => $build->getID()); } diff --git a/PHPCI/Model/Build.php b/PHPCI/Model/Build.php index a0019438..192acea6 100644 --- a/PHPCI/Model/Build.php +++ b/PHPCI/Model/Build.php @@ -228,7 +228,7 @@ class Build extends BuildBase if (!$this->getId()) { return null; } - return PHPCI_BUILD_ROOT_DIR . $this->getId(); + return PHPCI_BUILD_ROOT_DIR . $this->getId() . '_' . substr(md5(microtime(true)), 0, 5); } /** diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php index ca2fae4d..ed1ed6c3 100644 --- a/PHPCI/Service/BuildService.php +++ b/PHPCI/Service/BuildService.php @@ -9,6 +9,10 @@ namespace PHPCI\Service; +use b8\Config; +use Pheanstalk\Pheanstalk; +use Pheanstalk\PheanstalkInterface; +use PHPCI\BuildFactory; use PHPCI\Helper\Lang; use PHPCI\Model\Build; use PHPCI\Model\Project; @@ -81,7 +85,13 @@ class BuildService $build->setExtra(json_encode($extra)); } - return $this->buildStore->save($build); + $build = $this->buildStore->save($build); + + $build = BuildFactory::getBuild($build); + $build->sendStatusPostback(); + $this->addBuildToQueue($build); + + return $build; } /** @@ -117,4 +127,31 @@ class BuildService $build->removeBuildDirectory(); return $this->buildStore->delete($build); } + + + public function addBuildToQueue(Build $build) + { + $config = Config::getInstance(); + + $settings = $config->get('phpci.worker', []); + + if (!empty($settings['host']) && !empty($settings['queue'])) { + $jobData = array( + 'build_id' => $build->getId(), + ); + + if ($config->get('using_custom_file')) { + $jobData['config'] = $config->getArray(); + } + + $pheanstalk = new Pheanstalk($settings['host']); + $pheanstalk->useTube($settings['queue']); + $pheanstalk->put( + json_encode($jobData), + PheanstalkInterface::DEFAULT_PRIORITY, + PheanstalkInterface::DEFAULT_DELAY, + $config->get('phpci.worker.job_timeout', 600) + ); + } + } } diff --git a/PHPCI/Worker/BuildWorker.php b/PHPCI/Worker/BuildWorker.php new file mode 100644 index 00000000..9d13ffdd --- /dev/null +++ b/PHPCI/Worker/BuildWorker.php @@ -0,0 +1,160 @@ +host = $host; + $this->queue = $queue; + } + + /** + * @param int $maxJobs + */ + public function setMaxJobs($maxJobs = -1) + { + $this->maxJobs = $maxJobs; + } + + /** + * @param Logger $logger + */ + public function setLogger(Logger $logger) + { + $this->logger = $logger; + } + + /** + * Start the worker. + */ + public function startWorker() + { + $pheanstalk = new Pheanstalk($this->host); + $pheanstalk->watch($this->queue); + $buildStore = Factory::getStore('Build'); + + $jobs = 0; + + while ($this->run) { + // Get a job from the queue: + $job = $pheanstalk->reserve(); + + // Make sure we don't run more than maxJobs jobs on this worker: + $jobs++; + + if ($this->maxJobs != -1 && $this->maxJobs <= $jobs) { + $this->run = false; + } + + // Get the job data and run the job: + $jobData = json_decode($job->getData(), true); + $this->logger->addInfo('Received build #'.$jobData['build_id'].' from Beanstalkd'); + + // If the job comes with config data, reset our config and database connections + // and then make sure we kill the worker afterwards: + if (!empty($jobData['config'])) { + $this->logger->addDebug('Using job-specific config.'); + $currentConfig = Config::getInstance()->getArray(); + $config = new Config($jobData['config']); + Database::reset($config); + } + + $build = BuildFactory::getBuildById($jobData['build_id']); + + if (empty($build)) { + $this->logger->addWarning('Build #' . $jobData['build_id'] . ' does not exist in the database.'); + $pheanstalk->delete($job); + } + + try { + // Logging relevant to this build should be stored + // against the build itself. + $buildDbLog = new BuildDBLogHandler($build, Logger::INFO); + $this->logger->pushHandler($buildDbLog); + + $builder = new Builder($build, $this->logger); + $builder->execute(); + + // After execution we no longer want to record the information + // back to this specific build so the handler should be removed. + $this->logger->popHandler($buildDbLog); + } catch (\PDOException $ex) { + // If we've caught a PDO Exception, it is probably not the fault of the build, but of a failed + // connection or similar. Release the job and kill the worker. + $this->run = false; + $pheanstalk->release($job); + } catch (\Exception $ex) { + $build->setStatus(Build::STATUS_FAILED); + $build->setFinished(new \DateTime()); + $build->setLog($build->getLog() . PHP_EOL . PHP_EOL . $ex->getMessage()); + $buildStore->save($build); + $build->sendStatusPostback(); + } + + // Reset the config back to how it was prior to running this job: + if (!empty($currentConfig)) { + $config = new Config($currentConfig); + Database::reset($config); + } + + // Delete the job when we're done: + $pheanstalk->delete($job); + } + } + + /** + * Stops the worker after the current build. + */ + public function stopWorker() + { + $this->run = false; + } +} diff --git a/bootstrap.php b/bootstrap.php index 18d91d07..ef1fe197 100644 --- a/bootstrap.php +++ b/bootstrap.php @@ -17,9 +17,11 @@ if (empty($timezone)) { $configFile = dirname(__FILE__) . '/PHPCI/config.yml'; $configEnv = getenv('phpci_config_file'); +$usingCustomConfigFile = false; if (!empty($configEnv) && file_exists($configEnv)) { $configFile = $configEnv; + $usingCustomConfigFile = true; } // If we don't have a config file at all, fail at this point and tell the user to install: @@ -53,6 +55,7 @@ $conf = array(); $conf['b8']['app']['namespace'] = 'PHPCI'; $conf['b8']['app']['default_controller'] = 'Home'; $conf['b8']['view']['path'] = dirname(__FILE__) . '/PHPCI/View/'; +$conf['using_custom_file'] = $usingCustomConfigFile; $config = new b8\Config($conf); diff --git a/composer.json b/composer.json index e20a3b1b..fad44cd9 100644 --- a/composer.json +++ b/composer.json @@ -47,7 +47,8 @@ "monolog/monolog": "~1.6", "pimple/pimple": "~1.1", "robmorgan/phinx": "~0.4", - "sensiolabs/ansi-to-html": "~1.1" + "sensiolabs/ansi-to-html": "~1.1", + "pda/pheanstalk": "~3.1" }, "require-dev": { diff --git a/composer.lock b/composer.lock index 21e42d42..34626b27 100644 --- a/composer.lock +++ b/composer.lock @@ -1,23 +1,24 @@ { "_readme": [ "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", + "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "0be92d5565a805ffe462c6061ed1dcf4", + "hash": "22ff64c3aa3c951901e6332784ab617e", + "content-hash": "177ce296bc661eb8bff467cbd10a88e4", "packages": [ { "name": "block8/b8framework", - "version": "1.1.9", + "version": "1.1.10", "source": { "type": "git", "url": "https://github.com/Block8/b8framework.git", - "reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a" + "reference": "5d2d2863ce15a6b91e0b2aed4250dd29c6224446" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Block8/b8framework/zipball/3952dabee84cbf5be3dd8d20eadd13b6219e7a6a", - "reference": "3952dabee84cbf5be3dd8d20eadd13b6219e7a6a", + "url": "https://api.github.com/repos/Block8/b8framework/zipball/5d2d2863ce15a6b91e0b2aed4250dd29c6224446", + "reference": "5d2d2863ce15a6b91e0b2aed4250dd29c6224446", "shasum": "" }, "require": { @@ -51,7 +52,7 @@ "mvc", "php" ], - "time": "2014-12-01 21:02:58" + "time": "2015-10-05 10:50:20" }, { "name": "ircmaxell/password-compat", @@ -95,65 +96,18 @@ ], "time": "2014-11-20 16:49:30" }, - { - "name": "jakub-onderka/php-parallel-lint", - "version": "v0.8", - "source": { - "type": "git", - "url": "https://github.com/JakubOnderka/PHP-Parallel-Lint.git", - "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/JakubOnderka/PHP-Parallel-Lint/zipball/2b242dcdbdd7369d2a746518ac31bb30c514b728", - "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "jakub-onderka/php-console-highlighter": "~0.3", - "nette/tester": "~1.3" - }, - "suggest": { - "jakub-onderka/php-console-highlighter": "Highlight syntax in code snippet" - }, - "bin": [ - "parallel-lint" - ], - "type": "library", - "autoload": { - "classmap": [ - "./" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "BSD" - ], - "authors": [ - { - "name": "Jakub Onderka", - "email": "jakub.onderka@gmail.com" - } - ], - "description": "This tool check syntax of PHP files about 20x faster than serial check.", - "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint", - "time": "2014-10-05 10:19:39" - }, { "name": "monolog/monolog", - "version": "1.12.0", + "version": "1.17.1", "source": { "type": "git", "url": "https://github.com/Seldaek/monolog.git", - "reference": "1fbe8c2641f2b163addf49cc5e18f144bec6b19f" + "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/1fbe8c2641f2b163addf49cc5e18f144bec6b19f", - "reference": "1fbe8c2641f2b163addf49cc5e18f144bec6b19f", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/0524c87587ab85bc4c2d6f5b41253ccb930a5422", + "reference": "0524c87587ab85bc4c2d6f5b41253ccb930a5422", "shasum": "" }, "require": { @@ -164,12 +118,15 @@ "psr/log-implementation": "1.0.0" }, "require-dev": { - "aws/aws-sdk-php": "~2.4, >2.4.8", + "aws/aws-sdk-php": "^2.4.9", "doctrine/couchdb": "~1.0@dev", "graylog2/gelf-php": "~1.0", - "phpunit/phpunit": "~4.0", - "raven/raven": "~0.5", - "ruflin/elastica": "0.90.*", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "raven/raven": "~0.11", + "ruflin/elastica": ">=0.90 <3.0", + "swiftmailer/swiftmailer": "~5.3", "videlalvaro/php-amqplib": "~2.4" }, "suggest": { @@ -178,6 +135,7 @@ "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", "ext-mongo": "Allow sending log messages to a MongoDB server", "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "php-console/php-console": "Allow sending log messages to Google Chrome", "raven/raven": "Allow sending log messages to a Sentry server", "rollbar/rollbar": "Allow sending log messages to Rollbar", "ruflin/elastica": "Allow sending log messages to an Elastic Search server", @@ -186,7 +144,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.12.x-dev" + "dev-master": "1.16.x-dev" } }, "autoload": { @@ -212,19 +170,69 @@ "logging", "psr-3" ], - "time": "2014-12-29 21:29:35" + "time": "2015-08-31 09:17:37" + }, + { + "name": "pda/pheanstalk", + "version": "v3.1.0", + "source": { + "type": "git", + "url": "https://github.com/pda/pheanstalk.git", + "reference": "430e77c551479aad0c6ada0450ee844cf656a18b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pda/pheanstalk/zipball/430e77c551479aad0c6ada0450ee844cf656a18b", + "reference": "430e77c551479aad0c6ada0450ee844cf656a18b", + "shasum": "" + }, + "require": { + "php": ">=5.3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.0-dev" + } + }, + "autoload": { + "psr-4": { + "Pheanstalk\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Paul Annesley", + "email": "paul@annesley.cc", + "homepage": "http://paul.annesley.cc/", + "role": "Developer" + } + ], + "description": "PHP client for beanstalkd queue", + "homepage": "https://github.com/pda/pheanstalk", + "keywords": [ + "beanstalkd" + ], + "time": "2015-08-07 21:42:41" }, { "name": "pimple/pimple", "version": "v1.1.1", "source": { "type": "git", - "url": "https://github.com/fabpot/Pimple.git", + "url": "https://github.com/silexphp/Pimple.git", "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/fabpot/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", + "url": "https://api.github.com/repos/silexphp/Pimple/zipball/2019c145fe393923f3441b23f29bbdfaa5c58c4d", "reference": "2019c145fe393923f3441b23f29bbdfaa5c58c4d", "shasum": "" }, @@ -302,23 +310,23 @@ }, { "name": "robmorgan/phinx", - "version": "v0.4.3", + "version": "v0.4.6", "source": { "type": "git", "url": "https://github.com/robmorgan/phinx.git", - "reference": "0d1f9cb9939f65f506a8a3f5fee356764c310fd4" + "reference": "1351ca36dd2419d7de02afd1aaa415929112d7f1" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/robmorgan/phinx/zipball/0d1f9cb9939f65f506a8a3f5fee356764c310fd4", - "reference": "0d1f9cb9939f65f506a8a3f5fee356764c310fd4", + "url": "https://api.github.com/repos/robmorgan/phinx/zipball/1351ca36dd2419d7de02afd1aaa415929112d7f1", + "reference": "1351ca36dd2419d7de02afd1aaa415929112d7f1", "shasum": "" }, "require": { "php": ">=5.3.2", - "symfony/config": "~2.6.0", - "symfony/console": "~2.6.0", - "symfony/yaml": "~2.6.0" + "symfony/config": "~2.7", + "symfony/console": "~2.7", + "symfony/yaml": "~2.7" }, "require-dev": { "phpunit/phpunit": "3.7.*", @@ -360,20 +368,20 @@ "migrations", "phinx" ], - "time": "2015-02-23 16:38:12" + "time": "2015-09-11 15:44:41" }, { "name": "sensiolabs/ansi-to-html", - "version": "v1.1.1", + "version": "v1.1.2", "source": { "type": "git", "url": "https://github.com/sensiolabs/ansi-to-html.git", - "reference": "fd0aa98170e12131ab989c39252df076cff60121" + "reference": "02598b975c510e9e7d07d0be0a89c7a6b43464d6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/ansi-to-html/zipball/fd0aa98170e12131ab989c39252df076cff60121", - "reference": "fd0aa98170e12131ab989c39252df076cff60121", + "url": "https://api.github.com/repos/sensiolabs/ansi-to-html/zipball/02598b975c510e9e7d07d0be0a89c7a6b43464d6", + "reference": "02598b975c510e9e7d07d0be0a89c7a6b43464d6", "shasum": "" }, "require": { @@ -404,32 +412,32 @@ } ], "description": "A library to convert a text with ANSI codes to HTML", - "time": "2015-03-17 06:34:10" + "time": "2015-07-22 03:07:58" }, { "name": "swiftmailer/swiftmailer", - "version": "v5.3.1", + "version": "v5.4.1", "source": { "type": "git", "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "c5f963e7f9d6f6438fda4f22d5cc2db296ec621a" + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/c5f963e7f9d6f6438fda4f22d5cc2db296ec621a", - "reference": "c5f963e7f9d6f6438fda4f22d5cc2db296ec621a", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/0697e6aa65c83edf97bb0f23d8763f94e3f11421", + "reference": "0697e6aa65c83edf97bb0f23d8763f94e3f11421", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "mockery/mockery": "~0.9.1" + "mockery/mockery": "~0.9.1,<0.9.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "5.3-dev" + "dev-master": "5.4-dev" } }, "autoload": { @@ -453,38 +461,41 @@ "description": "Swiftmailer, free feature-rich PHP mailer", "homepage": "http://swiftmailer.org", "keywords": [ + "email", "mail", "mailer" ], - "time": "2014-12-05 14:17:14" + "time": "2015-06-06 14:19:39" }, { "name": "symfony/config", - "version": "v2.6.4", - "target-dir": "Symfony/Component/Config", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/Config.git", - "reference": "a9f781ba1221067d1f07c8cec0bc50f81b8d7408" + "url": "https://github.com/symfony/config.git", + "reference": "9698fdf0a750d6887d5e7729d5cf099765b20e61" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/a9f781ba1221067d1f07c8cec0bc50f81b8d7408", - "reference": "a9f781ba1221067d1f07c8cec0bc50f81b8d7408", + "url": "https://api.github.com/repos/symfony/config/zipball/9698fdf0a750d6887d5e7729d5cf099765b20e61", + "reference": "9698fdf0a750d6887d5e7729d5cf099765b20e61", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.9", "symfony/filesystem": "~2.3" }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Config\\": "" } }, @@ -493,40 +504,40 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Config Component", - "homepage": "http://symfony.com", - "time": "2015-01-21 20:57:55" + "homepage": "https://symfony.com", + "time": "2015-09-21 15:02:29" }, { "name": "symfony/console", - "version": "v2.6.4", - "target-dir": "Symfony/Component/Console", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/Console.git", - "reference": "e44154bfe3e41e8267d7a3794cd9da9a51cfac34" + "url": "https://github.com/symfony/console.git", + "reference": "06cb17c013a82f94a3d840682b49425cd00a2161" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/e44154bfe3e41e8267d7a3794cd9da9a51cfac34", - "reference": "e44154bfe3e41e8267d7a3794cd9da9a51cfac34", + "url": "https://api.github.com/repos/symfony/console/zipball/06cb17c013a82f94a3d840682b49425cd00a2161", + "reference": "06cb17c013a82f94a3d840682b49425cd00a2161", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", "symfony/event-dispatcher": "~2.1", + "symfony/phpunit-bridge": "~2.7", "symfony/process": "~2.1" }, "suggest": { @@ -537,11 +548,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Console\\": "" } }, @@ -550,45 +561,47 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Console Component", - "homepage": "http://symfony.com", - "time": "2015-01-25 04:39:26" + "homepage": "https://symfony.com", + "time": "2015-09-25 08:32:23" }, { "name": "symfony/filesystem", - "version": "v2.6.4", - "target-dir": "Symfony/Component/Filesystem", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/Filesystem.git", - "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7" + "url": "https://github.com/symfony/filesystem.git", + "reference": "a17f8a17c20e8614c15b8e116e2f4bcde102cfab" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/a1f566d1f92e142fa1593f4555d6d89e3044a9b7", - "reference": "a1f566d1f92e142fa1593f4555d6d89e3044a9b7", + "url": "https://api.github.com/repos/symfony/filesystem/zipball/a17f8a17c20e8614c15b8e116e2f4bcde102cfab", + "reference": "a17f8a17c20e8614c15b8e116e2f4bcde102cfab", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Filesystem\\": "" } }, @@ -597,45 +610,47 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Filesystem Component", - "homepage": "http://symfony.com", - "time": "2015-01-03 21:13:09" + "homepage": "https://symfony.com", + "time": "2015-09-09 17:42:36" }, { "name": "symfony/yaml", - "version": "v2.6.4", - "target-dir": "Symfony/Component/Yaml", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/Yaml.git", - "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8" + "url": "https://github.com/symfony/yaml.git", + "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/60ed7751671113cf1ee7d7778e691642c2e9acd8", - "reference": "60ed7751671113cf1ee7d7778e691642c2e9acd8", + "url": "https://api.github.com/repos/symfony/yaml/zipball/31cb2ad0155c95b88ee55fe12bc7ff92232c1770", + "reference": "31cb2ad0155c95b88ee55fe12bc7ff92232c1770", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Yaml\\": "" } }, @@ -644,18 +659,18 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Yaml Component", - "homepage": "http://symfony.com", - "time": "2015-01-25 04:39:26" + "homepage": "https://symfony.com", + "time": "2015-09-14 14:14:09" } ], "packages-dev": [ @@ -714,16 +729,16 @@ }, { "name": "doctrine/instantiator", - "version": "1.0.4", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", "shasum": "" }, "require": { @@ -734,7 +749,7 @@ "ext-pdo": "*", "ext-phar": "*", "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "2.0.*@ALPHA" + "squizlabs/php_codesniffer": "~2.0" }, "type": "library", "extra": { @@ -743,8 +758,8 @@ } }, "autoload": { - "psr-0": { - "Doctrine\\Instantiator\\": "src" + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -764,30 +779,78 @@ "constructor", "instantiate" ], - "time": "2014-10-13 12:58:55" + "time": "2015-06-14 21:17:01" }, { - "name": "pdepend/pdepend", - "version": "2.0.4", + "name": "jakub-onderka/php-parallel-lint", + "version": "v0.8", "source": { "type": "git", - "url": "https://github.com/pdepend/pdepend.git", - "reference": "1b0acf162da4f30237987e61e177a57f78e3d87e" + "url": "https://github.com/JakubOnderka/PHP-Parallel-Lint.git", + "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/pdepend/pdepend/zipball/1b0acf162da4f30237987e61e177a57f78e3d87e", - "reference": "1b0acf162da4f30237987e61e177a57f78e3d87e", + "url": "https://api.github.com/repos/JakubOnderka/PHP-Parallel-Lint/zipball/2b242dcdbdd7369d2a746518ac31bb30c514b728", + "reference": "2b242dcdbdd7369d2a746518ac31bb30c514b728", "shasum": "" }, "require": { - "symfony/config": ">=2.4", - "symfony/dependency-injection": ">=2.4", - "symfony/filesystem": ">=2.4" + "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "4.*@stable", - "squizlabs/php_codesniffer": "@stable" + "jakub-onderka/php-console-highlighter": "~0.3", + "nette/tester": "~1.3" + }, + "suggest": { + "jakub-onderka/php-console-highlighter": "Highlight syntax in code snippet" + }, + "bin": [ + "parallel-lint" + ], + "type": "library", + "autoload": { + "classmap": [ + "./" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "BSD" + ], + "authors": [ + { + "name": "Jakub Onderka", + "email": "jakub.onderka@gmail.com" + } + ], + "description": "This tool check syntax of PHP files about 20x faster than serial check.", + "homepage": "https://github.com/JakubOnderka/PHP-Parallel-Lint", + "time": "2014-10-05 10:19:39" + }, + { + "name": "pdepend/pdepend", + "version": "2.2.1", + "source": { + "type": "git", + "url": "https://github.com/pdepend/pdepend.git", + "reference": "a77b6bede0afdd232155eb6f1de0b2826bcf2803" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/pdepend/pdepend/zipball/a77b6bede0afdd232155eb6f1de0b2826bcf2803", + "reference": "a77b6bede0afdd232155eb6f1de0b2826bcf2803", + "shasum": "" + }, + "require": { + "php": ">=5.3.7", + "symfony/config": "^2.3.0", + "symfony/dependency-injection": "^2.3.0", + "symfony/filesystem": "^2.3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.0.0", + "squizlabs/php_codesniffer": "^2.0.0" }, "bin": [ "src/bin/pdepend" @@ -803,7 +866,7 @@ "BSD-3-Clause" ], "description": "Official version of pdepend to be handled with Composer", - "time": "2014-12-04 12:38:39" + "time": "2015-09-24 14:17:05" }, { "name": "phpdocumentor/reflection-docblock", @@ -856,24 +919,27 @@ }, { "name": "phploc/phploc", - "version": "2.0.6", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phploc.git", - "reference": "322ad07c112d5c6832abed4269d648cacff5959b" + "reference": "6cdf01336c06d20825831fe8cee70764fe373585" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/322ad07c112d5c6832abed4269d648cacff5959b", - "reference": "322ad07c112d5c6832abed4269d648cacff5959b", + "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/6cdf01336c06d20825831fe8cee70764fe373585", + "reference": "6cdf01336c06d20825831fe8cee70764fe373585", "shasum": "" }, "require": { "php": ">=5.3.3", "sebastian/finder-facade": "~1.1", - "sebastian/git": "~1.0", - "sebastian/version": "~1.0", - "symfony/console": "~2.2" + "sebastian/git": "~2.0", + "sebastian/version": "~1.0.3", + "symfony/console": "~2.5" + }, + "require-dev": { + "phpunit/phpunit": "~4" }, "bin": [ "phploc" @@ -881,7 +947,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0-dev" + "dev-master": "2.1-dev" } }, "autoload": { @@ -902,31 +968,29 @@ ], "description": "A tool for quickly measuring the size of a PHP project.", "homepage": "https://github.com/sebastianbergmann/phploc", - "time": "2014-06-25 08:11:02" + "time": "2015-08-04 07:41:00" }, { "name": "phpmd/phpmd", - "version": "2.2.0", + "version": "2.3.2", "source": { "type": "git", "url": "https://github.com/phpmd/phpmd.git", - "reference": "580e6ca75b472a844389ab8df7a0b412901d0d91" + "reference": "08b5bcd454a7148579b68931fc500d824afd3bb5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpmd/phpmd/zipball/580e6ca75b472a844389ab8df7a0b412901d0d91", - "reference": "580e6ca75b472a844389ab8df7a0b412901d0d91", + "url": "https://api.github.com/repos/phpmd/phpmd/zipball/08b5bcd454a7148579b68931fc500d824afd3bb5", + "reference": "08b5bcd454a7148579b68931fc500d824afd3bb5", "shasum": "" }, "require": { - "pdepend/pdepend": "2.0.*", - "php": ">=5.3.0", - "symfony/config": ">=2.4", - "symfony/dependency-injection": ">=2.4", - "symfony/filesystem": ">=2.4" + "pdepend/pdepend": "~2.0", + "php": ">=5.3.0" }, "require-dev": { - "phpunit/phpunit": "*" + "phpunit/phpunit": "^4.0", + "squizlabs/php_codesniffer": "^2.0" }, "bin": [ "src/bin/phpmd" @@ -946,12 +1010,18 @@ "name": "Manuel Pichler", "email": "github@manuel-pichler.de", "homepage": "https://github.com/manuelpichler", - "role": "Project founder" + "role": "Project Founder" }, { "name": "Other contributors", "homepage": "https://github.com/phpmd/phpmd/graphs/contributors", "role": "Contributors" + }, + { + "name": "Marc Würth", + "email": "ravage@bluewin.ch", + "homepage": "https://github.com/ravage84", + "role": "Project Maintainer" } ], "description": "PHPMD is a spin-off project of PHP Depend and aims to be a PHP equivalent of the well known Java tool PMD.", @@ -963,25 +1033,26 @@ "phpmd", "pmd" ], - "time": "2015-01-25 13:46:59" + "time": "2015-09-24 14:37:49" }, { "name": "phpspec/prophecy", - "version": "v1.3.1", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "9ca52329bcdd1500de24427542577ebf3fc2f1c9" + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/9ca52329bcdd1500de24427542577ebf3fc2f1c9", - "reference": "9ca52329bcdd1500de24427542577ebf3fc2f1c9", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7", + "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7", "shasum": "" }, "require": { - "doctrine/instantiator": "~1.0,>=1.0.2", - "phpdocumentor/reflection-docblock": "~2.0" + "doctrine/instantiator": "^1.0.2", + "phpdocumentor/reflection-docblock": "~2.0", + "sebastian/comparator": "~1.1" }, "require-dev": { "phpspec/phpspec": "~2.0" @@ -989,7 +1060,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.4.x-dev" } }, "autoload": { @@ -1013,7 +1084,7 @@ } ], "description": "Highly opinionated mocking framework for PHP 5.3+", - "homepage": "http://phpspec.org", + "homepage": "https://github.com/phpspec/prophecy", "keywords": [ "Double", "Dummy", @@ -1022,20 +1093,20 @@ "spy", "stub" ], - "time": "2014-11-17 16:23:49" + "time": "2015-08-13 10:07:40" }, { "name": "phpunit/php-code-coverage", - "version": "2.0.15", + "version": "2.2.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "34cc484af1ca149188d0d9e91412191e398e0b67" + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/34cc484af1ca149188d0d9e91412191e398e0b67", - "reference": "34cc484af1ca149188d0d9e91412191e398e0b67", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef1ca6835468857944d5c3b48fa503d5554cff2f", + "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f", "shasum": "" }, "require": { @@ -1043,7 +1114,7 @@ "phpunit/php-file-iterator": "~1.3", "phpunit/php-text-template": "~1.2", "phpunit/php-token-stream": "~1.3", - "sebastian/environment": "~1.0", + "sebastian/environment": "^1.3.2", "sebastian/version": "~1.0" }, "require-dev": { @@ -1058,7 +1129,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.2.x-dev" } }, "autoload": { @@ -1084,35 +1155,37 @@ "testing", "xunit" ], - "time": "2015-01-24 10:06:35" + "time": "2015-09-14 06:51:16" }, { "name": "phpunit/php-file-iterator", - "version": "1.3.4", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb" + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/acd690379117b042d1c8af1fafd61bde001bf6bb", - "reference": "acd690379117b042d1c8af1fafd61bde001bf6bb", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", "shasum": "" }, "require": { "php": ">=5.3.3" }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4.x-dev" + } + }, "autoload": { "classmap": [ - "File/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], @@ -1129,20 +1202,20 @@ "filesystem", "iterator" ], - "time": "2013-10-10 15:34:57" + "time": "2015-06-21 13:08:43" }, { "name": "phpunit/php-text-template", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { @@ -1151,20 +1224,17 @@ "type": "library", "autoload": { "classmap": [ - "Text/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -1173,20 +1243,20 @@ "keywords": [ "template" ], - "time": "2014-01-30 17:20:04" + "time": "2015-06-21 13:50:34" }, { "name": "phpunit/php-timer", - "version": "1.0.5", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", - "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", "shasum": "" }, "require": { @@ -1195,13 +1265,10 @@ "type": "library", "autoload": { "classmap": [ - "PHP/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], @@ -1217,20 +1284,20 @@ "keywords": [ "timer" ], - "time": "2013-08-02 07:42:54" + "time": "2015-06-21 08:01:12" }, { "name": "phpunit/php-token-stream", - "version": "1.4.0", + "version": "1.4.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74" + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/db32c18eba00b121c145575fcbcd4d4d24e6db74", - "reference": "db32c18eba00b121c145575fcbcd4d4d24e6db74", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", + "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da", "shasum": "" }, "require": { @@ -1266,20 +1333,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-01-17 09:51:32" + "time": "2015-09-15 10:49:45" }, { "name": "phpunit/phpunit", - "version": "4.5.1", + "version": "4.8.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "d6429b0995b24a2d9dfe5587ee3a7071c1161af4" + "reference": "463163747474815c5ccd4ae12b5b355ec12158e8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/d6429b0995b24a2d9dfe5587ee3a7071c1161af4", - "reference": "d6429b0995b24a2d9dfe5587ee3a7071c1161af4", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/463163747474815c5ccd4ae12b5b355ec12158e8", + "reference": "463163747474815c5ccd4ae12b5b355ec12158e8", "shasum": "" }, "require": { @@ -1289,19 +1356,19 @@ "ext-reflection": "*", "ext-spl": "*", "php": ">=5.3.3", - "phpspec/prophecy": "~1.3,>=1.3.1", - "phpunit/php-code-coverage": "~2.0,>=2.0.11", - "phpunit/php-file-iterator": "~1.3.2", + "phpspec/prophecy": "^1.3.1", + "phpunit/php-code-coverage": "~2.1", + "phpunit/php-file-iterator": "~1.4", "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "~1.0.2", + "phpunit/php-timer": ">=1.0.6", "phpunit/phpunit-mock-objects": "~2.3", "sebastian/comparator": "~1.1", - "sebastian/diff": "~1.1", - "sebastian/environment": "~1.2", + "sebastian/diff": "~1.2", + "sebastian/environment": "~1.3", "sebastian/exporter": "~1.2", "sebastian/global-state": "~1.0", "sebastian/version": "~1.0", - "symfony/yaml": "~2.0" + "symfony/yaml": "~2.1|~3.0" }, "suggest": { "phpunit/php-invoker": "~1.1" @@ -1312,7 +1379,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.5.x-dev" + "dev-master": "4.8.x-dev" } }, "autoload": { @@ -1338,29 +1405,30 @@ "testing", "xunit" ], - "time": "2015-03-29 09:24:05" + "time": "2015-10-01 09:14:30" }, { "name": "phpunit/phpunit-mock-objects", - "version": "2.3.0", + "version": "2.3.8", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "c63d2367247365f688544f0d500af90a11a44c65" + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/c63d2367247365f688544f0d500af90a11a44c65", - "reference": "c63d2367247365f688544f0d500af90a11a44c65", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/ac8e7a3db35738d56ee9a76e78a4e03d97628983", + "reference": "ac8e7a3db35738d56ee9a76e78a4e03d97628983", "shasum": "" }, "require": { - "doctrine/instantiator": "~1.0,>=1.0.1", + "doctrine/instantiator": "^1.0.2", "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2" + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" }, "require-dev": { - "phpunit/phpunit": "~4.3" + "phpunit/phpunit": "~4.4" }, "suggest": { "ext-soap": "*" @@ -1393,20 +1461,20 @@ "mock", "xunit" ], - "time": "2014-10-03 05:12:11" + "time": "2015-10-02 06:51:40" }, { "name": "sebastian/comparator", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e" + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e", - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", "shasum": "" }, "require": { @@ -1420,7 +1488,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -1457,20 +1525,20 @@ "compare", "equality" ], - "time": "2015-01-29 16:28:08" + "time": "2015-07-26 15:48:44" }, { "name": "sebastian/diff", - "version": "1.2.0", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/diff.git", - "reference": "5843509fed39dee4b356a306401e9dd1a931fec7" + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/5843509fed39dee4b356a306401e9dd1a931fec7", - "reference": "5843509fed39dee4b356a306401e9dd1a931fec7", + "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3", + "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3", "shasum": "" }, "require": { @@ -1482,7 +1550,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1509,32 +1577,32 @@ "keywords": [ "diff" ], - "time": "2014-08-15 10:29:00" + "time": "2015-02-22 15:13:53" }, { "name": "sebastian/environment", - "version": "1.2.1", + "version": "1.3.2", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7" + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6e6c71d918088c251b181ba8b3088af4ac336dd7", - "reference": "6e6c71d918088c251b181ba8b3088af4ac336dd7", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44", + "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44", "shasum": "" }, "require": { "php": ">=5.3.3" }, "require-dev": { - "phpunit/phpunit": "~4.3" + "phpunit/phpunit": "~4.4" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2.x-dev" + "dev-master": "1.3.x-dev" } }, "autoload": { @@ -1559,20 +1627,20 @@ "environment", "hhvm" ], - "time": "2014-10-25 08:00:45" + "time": "2015-08-03 06:14:51" }, { "name": "sebastian/exporter", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "84839970d05254c73cde183a721c7af13aede943" + "reference": "7ae5513327cb536431847bcc0c10edba2701064e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943", - "reference": "84839970d05254c73cde183a721c7af13aede943", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", + "reference": "7ae5513327cb536431847bcc0c10edba2701064e", "shasum": "" }, "require": { @@ -1625,25 +1693,25 @@ "export", "exporter" ], - "time": "2015-01-27 07:23:06" + "time": "2015-06-21 07:55:53" }, { "name": "sebastian/finder-facade", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/finder-facade.git", - "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0" + "reference": "a520dcc3dd39160eea480daa3426f4fd419a327b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/1e396fda3449fce9df032749fa4fa2619e0347e0", - "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0", + "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/a520dcc3dd39160eea480daa3426f4fd419a327b", + "reference": "a520dcc3dd39160eea480daa3426f4fd419a327b", "shasum": "" }, "require": { - "symfony/finder": ">=2.2.0", - "theseer/fdomdocument": ">=1.3.1" + "symfony/finder": "~2.3", + "theseer/fdomdocument": "~1.3" }, "type": "library", "autoload": { @@ -1664,20 +1732,20 @@ ], "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2013-05-28 06:10:03" + "time": "2015-06-04 08:11:58" }, { "name": "sebastian/git", - "version": "1.2.0", + "version": "2.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/git.git", - "reference": "a99fbc102e982c1404041ef3e4d431562b29bcba" + "reference": "2d5c139d0eedcb9e67e0e9ca08023be6e9b7b47b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/git/zipball/a99fbc102e982c1404041ef3e4d431562b29bcba", - "reference": "a99fbc102e982c1404041ef3e4d431562b29bcba", + "url": "https://api.github.com/repos/sebastianbergmann/git/zipball/2d5c139d0eedcb9e67e0e9ca08023be6e9b7b47b", + "reference": "2d5c139d0eedcb9e67e0e9ca08023be6e9b7b47b", "shasum": "" }, "require": { @@ -1686,7 +1754,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "2.0-dev" } }, "autoload": { @@ -1701,8 +1769,7 @@ "authors": [ { "name": "Sebastian Bergmann", - "email": "sebastian@phpunit.de", - "role": "lead" + "email": "sebastian@phpunit.de" } ], "description": "Simple wrapper for Git", @@ -1710,7 +1777,7 @@ "keywords": [ "git" ], - "time": "2013-08-04 09:35:29" + "time": "2015-04-06 16:23:43" }, { "name": "sebastian/global-state", @@ -1765,16 +1832,16 @@ }, { "name": "sebastian/recursion-context", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "3989662bbb30a29d20d9faa04a846af79b276252" + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252", - "reference": "3989662bbb30a29d20d9faa04a846af79b276252", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba", + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba", "shasum": "" }, "require": { @@ -1814,20 +1881,20 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-01-24 09:48:32" + "time": "2015-06-21 08:04:50" }, { "name": "sebastian/version", - "version": "1.0.4", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b" + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/a77d9123f8e809db3fbdea15038c27a95da4058b", - "reference": "a77d9123f8e809db3fbdea15038c27a95da4058b", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", "shasum": "" }, "type": "library", @@ -1849,20 +1916,20 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2014-12-15 14:25:24" + "time": "2015-06-21 13:59:46" }, { "name": "squizlabs/php_codesniffer", - "version": "2.3.0", + "version": "2.3.4", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "5046b0e01c416fc2b06df961d0673c85bcdc896c" + "reference": "11a2545c44a5915f883e2e5ec12e14ed345e3ab2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/5046b0e01c416fc2b06df961d0673c85bcdc896c", - "reference": "5046b0e01c416fc2b06df961d0673c85bcdc896c", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/11a2545c44a5915f883e2e5ec12e14ed345e3ab2", + "reference": "11a2545c44a5915f883e2e5ec12e14ed345e3ab2", "shasum": "" }, "require": { @@ -1923,25 +1990,24 @@ "phpcs", "standards" ], - "time": "2015-03-04 02:07:03" + "time": "2015-09-09 00:18:50" }, { "name": "symfony/dependency-injection", - "version": "v2.6.4", - "target-dir": "Symfony/Component/DependencyInjection", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/DependencyInjection.git", - "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14" + "url": "https://github.com/symfony/dependency-injection.git", + "reference": "422c3819b110f610d79c6f1dc38af23787dc790e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/42bbb43fab66292a1865dc9616c299904c3d4d14", - "reference": "42bbb43fab66292a1865dc9616c299904c3d4d14", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/422c3819b110f610d79c6f1dc38af23787dc790e", + "reference": "422c3819b110f610d79c6f1dc38af23787dc790e", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "conflict": { "symfony/expression-language": "<2.6" @@ -1949,6 +2015,7 @@ "require-dev": { "symfony/config": "~2.2", "symfony/expression-language": "~2.6", + "symfony/phpunit-bridge": "~2.7", "symfony/yaml": "~2.1" }, "suggest": { @@ -1959,11 +2026,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" } }, @@ -1972,45 +2039,47 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony DependencyInjection Component", - "homepage": "http://symfony.com", - "time": "2015-01-25 04:39:26" + "homepage": "https://symfony.com", + "time": "2015-09-15 08:30:42" }, { "name": "symfony/finder", - "version": "v2.6.4", - "target-dir": "Symfony/Component/Finder", + "version": "v2.7.5", "source": { "type": "git", - "url": "https://github.com/symfony/Finder.git", - "reference": "16513333bca64186c01609961a2bb1b95b5e1355" + "url": "https://github.com/symfony/finder.git", + "reference": "8262ab605973afbb3ef74b945daabf086f58366f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/16513333bca64186c01609961a2bb1b95b5e1355", - "reference": "16513333bca64186c01609961a2bb1b95b5e1355", + "url": "https://api.github.com/repos/symfony/finder/zipball/8262ab605973afbb3ef74b945daabf086f58366f", + "reference": "8262ab605973afbb3ef74b945daabf086f58366f", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Finder\\": "" } }, @@ -2019,31 +2088,31 @@ "MIT" ], "authors": [ - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - }, { "name": "Fabien Potencier", "email": "fabien@symfony.com" + }, + { + "name": "Symfony Community", + "homepage": "https://symfony.com/contributors" } ], "description": "Symfony Finder Component", - "homepage": "http://symfony.com", - "time": "2015-01-03 08:01:59" + "homepage": "https://symfony.com", + "time": "2015-09-19 19:59:23" }, { "name": "theseer/fdomdocument", - "version": "1.6.0", + "version": "1.6.1", "source": { "type": "git", "url": "https://github.com/theseer/fDOMDocument.git", - "reference": "d08cf070350f884c63fc9078d27893c2ab6c7cef" + "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/d08cf070350f884c63fc9078d27893c2ab6c7cef", - "reference": "d08cf070350f884c63fc9078d27893c2ab6c7cef", + "url": "https://api.github.com/repos/theseer/fDOMDocument/zipball/d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", + "reference": "d9ad139d6c2e8edf5e313ffbe37ff13344cf0684", "shasum": "" }, "require": { @@ -2070,7 +2139,7 @@ ], "description": "The classes contained within this repository extend the standard DOM to use exceptions at all occasions of errors instead of PHP warnings or notices. They also add various custom methods and shortcuts for convenience and to simplify the usage of DOM.", "homepage": "https://github.com/theseer/fDOMDocument", - "time": "2014-09-13 10:57:19" + "time": "2015-05-27 22:58:02" } ], "aliases": [], diff --git a/console b/console index 36645768..412dbbdb 100755 --- a/console +++ b/console @@ -21,6 +21,7 @@ use PHPCI\Command\DaemonCommand; use PHPCI\Command\PollCommand; use PHPCI\Command\CreateAdminCommand; use PHPCI\Command\CreateBuildCommand; +use PHPCI\Command\WorkerCommand; use PHPCI\Service\BuildService; use Symfony\Component\Console\Application; use b8\Store\Factory; @@ -36,5 +37,6 @@ $application->add(new DaemonCommand($loggerConfig->getFor('DaemonCommand'))); $application->add(new PollCommand($loggerConfig->getFor('PollCommand'))); $application->add(new CreateAdminCommand(Factory::getStore('User'))); $application->add(new CreateBuildCommand(Factory::getStore('Project'), new BuildService(Factory::getStore('Build')))); +$application->add(new WorkerCommand($loggerConfig->getFor('WorkerCommand'))); $application->run(); From 183d7d9e50da55295874a2ff610c9dfaf81385e7 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 14:07:48 +0100 Subject: [PATCH 14/20] Making duplicate builds work again. --- PHPCI/Service/BuildService.php | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php index ed1ed6c3..56eb76ed 100644 --- a/PHPCI/Service/BuildService.php +++ b/PHPCI/Service/BuildService.php @@ -114,7 +114,13 @@ class BuildService $build->setCreated(new \DateTime()); $build->setStatus(0); - return $this->buildStore->save($build); + $build = $this->buildStore->save($build); + + $build = BuildFactory::getBuild($build); + $build->sendStatusPostback(); + $this->addBuildToQueue($build); + + return $build; } /** From b2ed9f102b19187b812c0ad49a456b5fa81667f2 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 14:11:43 +0100 Subject: [PATCH 15/20] Docblock fixes --- PHPCI/Service/BuildService.php | 5 ++++- PHPCI/Worker/BuildWorker.php | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php index 56eb76ed..94eb9792 100644 --- a/PHPCI/Service/BuildService.php +++ b/PHPCI/Service/BuildService.php @@ -134,7 +134,10 @@ class BuildService return $this->buildStore->delete($build); } - + /** + * Takes a build and puts it into the queue to be run (if using a queue) + * @param Build $build + */ public function addBuildToQueue(Build $build) { $config = Config::getInstance(); diff --git a/PHPCI/Worker/BuildWorker.php b/PHPCI/Worker/BuildWorker.php index 9d13ffdd..cc070a76 100644 --- a/PHPCI/Worker/BuildWorker.php +++ b/PHPCI/Worker/BuildWorker.php @@ -12,7 +12,10 @@ use PHPCI\BuildFactory; use PHPCI\Logging\BuildDBLogHandler; use PHPCI\Model\Build; - +/** + * Class BuildWorker + * @package PHPCI\Worker + */ class BuildWorker { /** From ea1157066e1904b7d7f02270acdb2e731375015e Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 14:17:13 +0100 Subject: [PATCH 16/20] Fixing new PHPCS errors. --- PHPCI/BuildFactory.php | 3 +-- PHPCI/Helper/MailerFactory.php | 2 +- PHPCI/Model/Build/GithubBuild.php | 3 +-- PHPCI/Plugin/PackageBuild.php | 3 +-- PHPCI/ProcessControl/Factory.php | 2 +- 5 files changed, 5 insertions(+), 8 deletions(-) diff --git a/PHPCI/BuildFactory.php b/PHPCI/BuildFactory.php index ecc37c43..c7bad338 100644 --- a/PHPCI/BuildFactory.php +++ b/PHPCI/BuildFactory.php @@ -41,8 +41,7 @@ class BuildFactory */ public static function getBuild(Build $base) { - switch($base->getProject()->getType()) - { + switch ($base->getProject()->getType()) { case 'remote': $type = 'RemoteGitBuild'; break; diff --git a/PHPCI/Helper/MailerFactory.php b/PHPCI/Helper/MailerFactory.php index 641c06b9..c84c068d 100644 --- a/PHPCI/Helper/MailerFactory.php +++ b/PHPCI/Helper/MailerFactory.php @@ -71,7 +71,7 @@ class MailerFactory } else { // Check defaults - switch($configName) { + switch ($configName) { case 'smtp_address': return "localhost"; case 'default_mailto_address': diff --git a/PHPCI/Model/Build/GithubBuild.php b/PHPCI/Model/Build/GithubBuild.php index b5d8ccbb..0ae3b9e0 100644 --- a/PHPCI/Model/Build/GithubBuild.php +++ b/PHPCI/Model/Build/GithubBuild.php @@ -54,8 +54,7 @@ class GithubBuild extends RemoteGitBuild $url = 'https://api.github.com/repos/'.$project->getReference().'/statuses/'.$this->getCommitId(); $http = new \b8\HttpClient(); - switch($this->getStatus()) - { + switch ($this->getStatus()) { case 0: case 1: $status = 'pending'; diff --git a/PHPCI/Plugin/PackageBuild.php b/PHPCI/Plugin/PackageBuild.php index 8e40c71f..09e4de0d 100644 --- a/PHPCI/Plugin/PackageBuild.php +++ b/PHPCI/Plugin/PackageBuild.php @@ -69,8 +69,7 @@ class PackageBuild implements \PHPCI\Plugin } foreach ($this->format as $format) { - switch($format) - { + switch ($format) { case 'tar': $cmd = 'tar cfz "%s/%s.tar.gz" ./*'; break; diff --git a/PHPCI/ProcessControl/Factory.php b/PHPCI/ProcessControl/Factory.php index a1aa2354..7622fd49 100644 --- a/PHPCI/ProcessControl/Factory.php +++ b/PHPCI/ProcessControl/Factory.php @@ -47,7 +47,7 @@ class Factory */ public static function createProcessControl() { - switch(true) { + switch (true) { case PosixProcessControl::isAvailable(): return new PosixProcessControl(); From 771bee0aa3396d2f386bbfea01d4c7ee0194ab0c Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 14:41:13 +0100 Subject: [PATCH 17/20] Fixings --- PHPCI/BuildFactory.php | 21 ++++++++++++++++----- PHPCI/Model/Build/GithubBuild.php | 18 +++++++++++++----- PHPCI/Service/BuildService.php | 8 +++++++- 3 files changed, 36 insertions(+), 11 deletions(-) diff --git a/PHPCI/BuildFactory.php b/PHPCI/BuildFactory.php index c7bad338..fb20309d 100644 --- a/PHPCI/BuildFactory.php +++ b/PHPCI/BuildFactory.php @@ -36,12 +36,17 @@ class BuildFactory /** * Takes a generic build and returns a type-specific build model. - * @param Build $base The build from which to get a more specific build type. + * @param Build $build The build from which to get a more specific build type. + * @param string $type Set the type manually if you already know it. * @return Build */ - public static function getBuild(Build $base) + public static function getBuild(Build $build, $type = null) { - switch ($base->getProject()->getType()) { + if (is_null($type) && !is_null($build->getProject())) { + $type = $build->getProject()->getType(); + } + + switch ($type) { case 'remote': $type = 'RemoteGitBuild'; break; @@ -63,10 +68,16 @@ class BuildFactory case 'svn': $type = 'SubversionBuild'; break; + default: + $type = null; + break; } - $type = '\\PHPCI\\Model\\Build\\' . $type; + if (!is_null($type)) { + $type = '\\PHPCI\\Model\\Build\\' . $type; + $build = new $type($build->getDataArray()); + } - return new $type($base->getDataArray()); + return $build; } } diff --git a/PHPCI/Model/Build/GithubBuild.php b/PHPCI/Model/Build/GithubBuild.php index 0ae3b9e0..130d7acb 100644 --- a/PHPCI/Model/Build/GithubBuild.php +++ b/PHPCI/Model/Build/GithubBuild.php @@ -45,12 +45,16 @@ class GithubBuild extends RemoteGitBuild { $token = \b8\Config::getInstance()->get('phpci.github.token'); - if (empty($token)) { + if (empty($token) || empty($this->data['id'])) { return; } $project = $this->getProject(); + if (empty($project)) { + return; + } + $url = 'https://api.github.com/repos/'.$project->getReference().'/statuses/'.$this->getCommitId(); $http = new \b8\HttpClient(); @@ -114,10 +118,14 @@ class GithubBuild extends RemoteGitBuild { $rtn = parent::getCommitMessage($this->data['commit_message']); - $reference = $this->getProject()->getReference(); - $commitLink = '#$1'; - $rtn = preg_replace('/\#([0-9]+)/', $commitLink, $rtn); - $rtn = preg_replace('/\@([a-zA-Z0-9_]+)/', '@$1', $rtn); + $project = $this->getProject(); + + if (!is_null($project)) { + $reference = $project->getReference(); + $commitLink = '#$1'; + $rtn = preg_replace('/\#([0-9]+)/', $commitLink, $rtn); + $rtn = preg_replace('/\@([a-zA-Z0-9_]+)/', '@$1', $rtn); + } return $rtn; } diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php index 94eb9792..3f03f559 100644 --- a/PHPCI/Service/BuildService.php +++ b/PHPCI/Service/BuildService.php @@ -87,7 +87,7 @@ class BuildService $build = $this->buildStore->save($build); - $build = BuildFactory::getBuild($build); + $build = BuildFactory::getBuild($build, $project->getType()); $build->sendStatusPostback(); $this->addBuildToQueue($build); @@ -140,6 +140,12 @@ class BuildService */ public function addBuildToQueue(Build $build) { + $buildId = $build->getId(); + + if (empty($buildId)) { + return; + } + $config = Config::getInstance(); $settings = $config->get('phpci.worker', []); From 11445304d6e77a38ef71ed50bbc2a530d7dc4ec8 Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 14:48:17 +0100 Subject: [PATCH 18/20] Making PHPMD happy. --- PHPCI/BuildFactory.php | 64 +++++++++++++++------------------- PHPCI/Service/BuildService.php | 2 +- 2 files changed, 30 insertions(+), 36 deletions(-) diff --git a/PHPCI/BuildFactory.php b/PHPCI/BuildFactory.php index fb20309d..fdc8a212 100644 --- a/PHPCI/BuildFactory.php +++ b/PHPCI/BuildFactory.php @@ -37,45 +37,39 @@ class BuildFactory /** * Takes a generic build and returns a type-specific build model. * @param Build $build The build from which to get a more specific build type. - * @param string $type Set the type manually if you already know it. * @return Build */ - public static function getBuild(Build $build, $type = null) + public static function getBuild(Build $build) { - if (is_null($type) && !is_null($build->getProject())) { - $type = $build->getProject()->getType(); - } + $project = $build->getProject(); - switch ($type) { - case 'remote': - $type = 'RemoteGitBuild'; - break; - case 'local': - $type = 'LocalBuild'; - break; - case 'github': - $type = 'GithubBuild'; - break; - case 'bitbucket': - $type = 'BitbucketBuild'; - break; - case 'gitlab': - $type = 'GitlabBuild'; - break; - case 'hg': - $type = 'MercurialBuild'; - break; - case 'svn': - $type = 'SubversionBuild'; - break; - default: - $type = null; - break; - } - - if (!is_null($type)) { - $type = '\\PHPCI\\Model\\Build\\' . $type; - $build = new $type($build->getDataArray()); + if (!empty($project)) { + switch ($project->getType()) { + case 'remote': + $type = 'RemoteGitBuild'; + break; + case 'local': + $type = 'LocalBuild'; + break; + case 'github': + $type = 'GithubBuild'; + break; + case 'bitbucket': + $type = 'BitbucketBuild'; + break; + case 'gitlab': + $type = 'GitlabBuild'; + break; + case 'hg': + $type = 'MercurialBuild'; + break; + case 'svn': + $type = 'SubversionBuild'; + break; + } + + $class = '\\PHPCI\\Model\\Build\\' . $type; + $build = new $class($build->getDataArray()); } return $build; diff --git a/PHPCI/Service/BuildService.php b/PHPCI/Service/BuildService.php index 3f03f559..117b94e7 100644 --- a/PHPCI/Service/BuildService.php +++ b/PHPCI/Service/BuildService.php @@ -87,7 +87,7 @@ class BuildService $build = $this->buildStore->save($build); - $build = BuildFactory::getBuild($build, $project->getType()); + $build = BuildFactory::getBuild($build); $build->sendStatusPostback(); $this->addBuildToQueue($build); From 9dd6edc24ab5d78a225fb2bfa9955bca4b540c9f Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 15:07:25 +0100 Subject: [PATCH 19/20] Fix --- PHPCI/BuildFactory.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/PHPCI/BuildFactory.php b/PHPCI/BuildFactory.php index fdc8a212..1dbc4017 100644 --- a/PHPCI/BuildFactory.php +++ b/PHPCI/BuildFactory.php @@ -67,7 +67,7 @@ class BuildFactory $type = 'SubversionBuild'; break; } - + $class = '\\PHPCI\\Model\\Build\\' . $type; $build = new $class($build->getDataArray()); } From 90b4de453e1ef0b0911b0116310c236299a4138e Mon Sep 17 00:00:00 2001 From: Dan Cryer Date: Mon, 5 Oct 2015 15:25:45 +0100 Subject: [PATCH 20/20] Moving to new .phpci.yml filename --- phpci.yml => .phpci.yml | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename phpci.yml => .phpci.yml (100%) diff --git a/phpci.yml b/.phpci.yml similarity index 100% rename from phpci.yml rename to .phpci.yml