diff --git a/scripts/__init_env__.php b/scripts/__init_env__.php index f58ac0a4e8..8925464937 100644 --- a/scripts/__init_env__.php +++ b/scripts/__init_env__.php @@ -33,6 +33,7 @@ $conf['phabricator.env'] = $env; phutil_require_module('phabricator', 'infrastructure/env'); PhabricatorEnv::setEnvConfig($conf); +phutil_load_library('arcanist/src'); foreach (PhabricatorEnv::getEnvConfig('load-libraries') as $library) { phutil_load_library($library); diff --git a/scripts/__init_script__.php b/scripts/__init_script__.php index 7a67b3c587..7ebd0c2853 100644 --- a/scripts/__init_script__.php +++ b/scripts/__init_script__.php @@ -26,9 +26,3 @@ if (!@constant('__LIBPHUTIL__')) { } phutil_load_library(dirname(__FILE__).'/../src/'); - -phutil_require_module('phutil', 'symbols'); - -function __autoload($class) { - PhutilSymbolLoader::loadClass($class); -} diff --git a/scripts/repository/parse_one_commit.php b/scripts/repository/parse_one_commit.php index 56f29156a6..a98586d4dd 100755 --- a/scripts/repository/parse_one_commit.php +++ b/scripts/repository/parse_one_commit.php @@ -22,7 +22,7 @@ require_once $root.'/scripts/__init_script__.php'; require_once $root.'/scripts/__init_env__.php'; if (empty($argv[1])) { - echo "usage: parse_one_commit.php \n"; + echo "usage: parse_one_commit.php [--herald]\n"; die(1); } @@ -72,6 +72,10 @@ switch ($repo->getVersionControlSystem()) { throw new Exception("Unknown repository type!"); } +if (isset($argv[2]) && $argv[2] == '--herald') { + $workers[] = new PhabricatorRepositoryCommitHeraldWorker($spec); +} + ExecFuture::pushEchoMode(true); foreach ($workers as $worker) { diff --git a/src/applications/herald/adapter/commit/HeraldCommitAdapter.php b/src/applications/herald/adapter/commit/HeraldCommitAdapter.php index 2939e26106..a897e3f6c3 100644 --- a/src/applications/herald/adapter/commit/HeraldCommitAdapter.php +++ b/src/applications/herald/adapter/commit/HeraldCommitAdapter.php @@ -46,7 +46,7 @@ class HeraldCommitAdapter extends HeraldObjectAdapter { } public function getEmailPHIDs() { - return $this->emailPHIDs; + return array_keys($this->emailPHIDs); } public function getHeraldName() { @@ -195,7 +195,7 @@ class HeraldCommitAdapter extends HeraldObjectAdapter { break; case HeraldActionConfig::ACTION_EMAIL: foreach ($effect->getTarget() as $fbid) { - $this->emailPHIDs[] = $fbid; + $this->emailPHIDs[$fbid] = true; } $result[] = new HeraldApplyTranscript( $effect, diff --git a/src/applications/metamta/controller/send/PhabricatorMetaMTASendController.php b/src/applications/metamta/controller/send/PhabricatorMetaMTASendController.php index f347c09b32..716d356711 100644 --- a/src/applications/metamta/controller/send/PhabricatorMetaMTASendController.php +++ b/src/applications/metamta/controller/send/PhabricatorMetaMTASendController.php @@ -33,7 +33,8 @@ class PhabricatorMetaMTASendController extends PhabricatorMetaMTAController { $mail->setSimulatedFailureCount($request->getInt('failures')); $mail->setIsHTML($request->getInt('html')); $mail->save(); - if ($request->getInt('immediately')) { + if ($request->getInt('immediately') && + !PhabricatorEnv::getEnvConfig('metamta.send-immediately')) { $mail->sendNow($force_send = true); } diff --git a/src/applications/metamta/controller/send/__init__.php b/src/applications/metamta/controller/send/__init__.php index d606f64d0f..7dcf0214e1 100644 --- a/src/applications/metamta/controller/send/__init__.php +++ b/src/applications/metamta/controller/send/__init__.php @@ -9,6 +9,7 @@ phutil_require_module('phabricator', 'aphront/response/redirect'); phutil_require_module('phabricator', 'applications/metamta/controller/base'); phutil_require_module('phabricator', 'applications/metamta/storage/mail'); +phutil_require_module('phabricator', 'infrastructure/env'); phutil_require_module('phabricator', 'view/form/base'); phutil_require_module('phabricator', 'view/form/control/submit'); phutil_require_module('phabricator', 'view/layout/panel'); diff --git a/src/applications/repository/worker/commitchangeparser/base/PhabricatorRepositoryCommitChangeParserWorker.php b/src/applications/repository/worker/commitchangeparser/base/PhabricatorRepositoryCommitChangeParserWorker.php index e9e871c94f..00b7668242 100644 --- a/src/applications/repository/worker/commitchangeparser/base/PhabricatorRepositoryCommitChangeParserWorker.php +++ b/src/applications/repository/worker/commitchangeparser/base/PhabricatorRepositoryCommitChangeParserWorker.php @@ -71,5 +71,17 @@ abstract class PhabricatorRepositoryCommitChangeParserWorker return $result_map; } + protected function finishParse() { + $commit = $this->commit; + if ($this->shouldQueueFollowupTasks()) { + $task = new PhabricatorWorkerTask(); + $task->setTaskClass('PhabricatorRepositoryCommitHeraldWorker'); + $task->setData( + array( + 'commitID' => $commit->getID(), + )); + $task->save(); + } + } } diff --git a/src/applications/repository/worker/commitchangeparser/base/__init__.php b/src/applications/repository/worker/commitchangeparser/base/__init__.php index 08e8c51252..b2279e18cd 100644 --- a/src/applications/repository/worker/commitchangeparser/base/__init__.php +++ b/src/applications/repository/worker/commitchangeparser/base/__init__.php @@ -8,6 +8,7 @@ phutil_require_module('phabricator', 'applications/repository/storage/repository'); phutil_require_module('phabricator', 'applications/repository/worker/base'); +phutil_require_module('phabricator', 'infrastructure/daemon/workers/storage/task'); phutil_require_module('phabricator', 'storage/qsprintf'); phutil_require_module('phabricator', 'storage/queryfx'); diff --git a/src/applications/repository/worker/commitchangeparser/git/PhabricatorRepositoryGitCommitChangeParserWorker.php b/src/applications/repository/worker/commitchangeparser/git/PhabricatorRepositoryGitCommitChangeParserWorker.php index b3d504f1a1..c27f24b9c2 100644 --- a/src/applications/repository/worker/commitchangeparser/git/PhabricatorRepositoryGitCommitChangeParserWorker.php +++ b/src/applications/repository/worker/commitchangeparser/git/PhabricatorRepositoryGitCommitChangeParserWorker.php @@ -244,6 +244,8 @@ class PhabricatorRepositoryGitCommitChangeParserWorker PhabricatorRepository::TABLE_PATHCHANGE, implode(', ', $sql_chunk)); } + + $this->finishParse(); } } diff --git a/src/applications/repository/worker/commitchangeparser/svn/PhabricatorRepositorySvnCommitChangeParserWorker.php b/src/applications/repository/worker/commitchangeparser/svn/PhabricatorRepositorySvnCommitChangeParserWorker.php index 3982a7b94b..f365552475 100644 --- a/src/applications/repository/worker/commitchangeparser/svn/PhabricatorRepositorySvnCommitChangeParserWorker.php +++ b/src/applications/repository/worker/commitchangeparser/svn/PhabricatorRepositorySvnCommitChangeParserWorker.php @@ -366,6 +366,8 @@ class PhabricatorRepositorySvnCommitChangeParserWorker $this->writeChanges($repository, $commit, $effects, $path_map, $commit_map); $this->writeBrowse($repository, $commit, $effects, $path_map); + + $this->finishParse(); } private function writeChanges( diff --git a/src/applications/repository/worker/herald/PhabricatorRepositoryCommitHeraldWorker.php b/src/applications/repository/worker/herald/PhabricatorRepositoryCommitHeraldWorker.php index 8a0b32b2f8..f5cf7b3284 100644 --- a/src/applications/repository/worker/herald/PhabricatorRepositoryCommitHeraldWorker.php +++ b/src/applications/repository/worker/herald/PhabricatorRepositoryCommitHeraldWorker.php @@ -36,11 +36,11 @@ class PhabricatorRepositoryCommitHeraldWorker $data); $engine = new HeraldEngine(); - $effects = $engine->applyRules($this->rules, $adapter); + $effects = $engine->applyRules($rules, $adapter); $engine->applyEffects($effects, $adapter); - $phids = $adapter->getEmailPHIDs(); - if (!$phids) { + $email_phids = $adapter->getEmailPHIDs(); + if (!$email_phids) { return; } @@ -118,7 +118,8 @@ EOBODY; $subject = "[Herald/Commit] {$commit_name} ({$who}){$name}"; $mailer = new PhabricatorMetaMTAMail(); - $mailer->addTos($phids); + $mailer->setRelatedPHID($commit->getPHID()); + $mailer->addTos($email_phids); $mailer->setSubject($subject); $mailer->setBody($body); diff --git a/webroot/index.php b/webroot/index.php index 004b917d27..d3f6a5fd79 100644 --- a/webroot/index.php +++ b/webroot/index.php @@ -170,10 +170,6 @@ function setup_aphront_basics() { phutil_load_library('arcanist/src'); } -function __autoload($class_name) { - PhutilSymbolLoader::loadClass($class_name); -} - function phabricator_fatal_config_error($msg) { header('Content-Type: text/plain', $replace = true, $http_error = 500); $error = "CONFIG ERROR: ".$msg."\n";