Changeset View
Changeset View
Standalone View
Standalone View
src/applications/config/check/PhabricatorExtraConfigSetupCheck.php
Show All 34 Lines | foreach ($all_keys as $key) { | ||||
$ancient_config[$key]); | $ancient_config[$key]); | ||||
$short = pht('Obsolete Config'); | $short = pht('Obsolete Config'); | ||||
$name = pht('Obsolete Configuration Option "%s"', $key); | $name = pht('Obsolete Configuration Option "%s"', $key); | ||||
} else { | } else { | ||||
$summary = pht('This option is not recognized. It may be misspelled.'); | $summary = pht('This option is not recognized. It may be misspelled.'); | ||||
$message = pht( | $message = pht( | ||||
"The configuration option '%s' is not recognized. It may be ". | "The configuration option '%s' is not recognized. It may be ". | ||||
"misspelled, or it might have existed in an older version of ". | "misspelled, or it might have existed in an older version of ". | ||||
"Phabricator. It has no effect, and should be corrected or deleted.", | "%s. It has no effect, and should be corrected or deleted.", | ||||
$key); | $key, | ||||
PhabricatorPlatformSite::getName()); | |||||
$short = pht('Unknown Config'); | $short = pht('Unknown Config'); | ||||
$name = pht('Unknown Configuration Option "%s"', $key); | $name = pht('Unknown Configuration Option "%s"', $key); | ||||
} | } | ||||
$issue = $this->newIssue('config.unknown.'.$key) | $issue = $this->newIssue('config.unknown.'.$key) | ||||
->setShortName($short) | ->setShortName($short) | ||||
->setName($name) | ->setName($name) | ||||
->setSummary($summary); | ->setSummary($summary); | ||||
▲ Show 20 Lines • Show All 97 Lines • ▼ Show 20 Lines | foreach ($defined_keys as $key => $value) { | ||||
'You should copy this configuration value to a local configuration '. | 'You should copy this configuration value to a local configuration '. | ||||
'source (usually by using %s) and then remove it from the database '. | 'source (usually by using %s) and then remove it from the database '. | ||||
'with the command below.'. | 'with the command below.'. | ||||
"\n\n". | "\n\n". | ||||
'For more information on locked and hidden configuration, including '. | 'For more information on locked and hidden configuration, including '. | ||||
'details about this setup issue, see %s.'. | 'details about this setup issue, see %s.'. | ||||
"\n\n". | "\n\n". | ||||
'This database value is currently respected, but a future version '. | 'This database value is currently respected, but a future version '. | ||||
'of Phabricator will stop respecting database values for locked '. | 'of %s will stop respecting database values for locked '. | ||||
'configuration options.', | 'configuration options.', | ||||
$key, | $key, | ||||
$set_command, | $set_command, | ||||
phutil_tag( | phutil_tag( | ||||
'a', | 'a', | ||||
array( | array( | ||||
'href' => $doc_href, | 'href' => $doc_href, | ||||
'target' => '_blank', | 'target' => '_blank', | ||||
), | ), | ||||
$doc_name)); | $doc_name), | ||||
PhabricatorPlatformSite::getName()); | |||||
$command = csprintf( | $command = csprintf( | ||||
'phabricator/ $ ./bin/config delete --database %R', | 'phabricator/ $ ./bin/config delete --database %R', | ||||
$key); | $key); | ||||
$this->newIssue('config.locked.'.$key) | $this->newIssue('config.locked.'.$key) | ||||
->setShortName(pht('Deprecated Config Source')) | ->setShortName(pht('Deprecated Config Source')) | ||||
->setName( | ->setName( | ||||
pht( | pht( | ||||
Show All 9 Lines | if (PhabricatorEnv::getEnvConfig('feed.http-hooks')) { | ||||
$this->newIssue('config.deprecated.feed.http-hooks') | $this->newIssue('config.deprecated.feed.http-hooks') | ||||
->setShortName(pht('Feed Hooks Deprecated')) | ->setShortName(pht('Feed Hooks Deprecated')) | ||||
->setName(pht('Migrate From "feed.http-hooks" to Webhooks')) | ->setName(pht('Migrate From "feed.http-hooks" to Webhooks')) | ||||
->addPhabricatorConfig('feed.http-hooks') | ->addPhabricatorConfig('feed.http-hooks') | ||||
->setMessage( | ->setMessage( | ||||
pht( | pht( | ||||
'The "feed.http-hooks" option is deprecated in favor of '. | 'The "feed.http-hooks" option is deprecated in favor of '. | ||||
'Webhooks. This option will be removed in a future version '. | 'Webhooks. This option will be removed in a future version '. | ||||
'of Phabricator.'. | 'of %s.'. | ||||
"\n\n". | "\n\n". | ||||
'You can configure Webhooks in Herald.'. | 'You can configure Webhooks in Herald.'. | ||||
"\n\n". | "\n\n". | ||||
'To resolve this issue, remove all URIs from "feed.http-hooks".')); | 'To resolve this issue, remove all URIs from "feed.http-hooks".', | ||||
PhabricatorPlatformSite::getName())); | |||||
} | } | ||||
} | } | ||||
/** | /** | ||||
* Return a map of deleted config options. Keys are option keys; values are | * Return a map of deleted config options. Keys are option keys; values are | ||||
* explanations of what happened to the option. | * explanations of what happened to the option. | ||||
*/ | */ | ||||
▲ Show 20 Lines • Show All 71 Lines • ▼ Show 20 Lines | $reply_domain_reason = pht( | ||||
'Individual application reply handler domains have been removed. '. | 'Individual application reply handler domains have been removed. '. | ||||
'Configure a reply domain with "%s".', | 'Configure a reply domain with "%s".', | ||||
'metamta.reply-handler-domain'); | 'metamta.reply-handler-domain'); | ||||
$reply_handler_reason = pht( | $reply_handler_reason = pht( | ||||
'Reply handlers can no longer be overridden with configuration.'); | 'Reply handlers can no longer be overridden with configuration.'); | ||||
$monospace_reason = pht( | $monospace_reason = pht( | ||||
'Phabricator no longer supports global customization of monospaced '. | '%s no longer supports global customization of monospaced '. | ||||
'fonts.'); | 'fonts.', | ||||
PhabricatorPlatformSite::getName()); | |||||
$public_mail_reason = pht( | $public_mail_reason = pht( | ||||
'Inbound mail addresses are now configured for each application '. | 'Inbound mail addresses are now configured for each application '. | ||||
'in the Applications tool.'); | 'in the Applications tool.'); | ||||
$gc_reason = pht( | $gc_reason = pht( | ||||
'Garbage collectors are now configured with "%s".', | 'Garbage collectors are now configured with "%s".', | ||||
'bin/garbage set-policy'); | 'bin/garbage set-policy'); | ||||
▲ Show 20 Lines • Show All 45 Lines • ▼ Show 20 Lines | $ancient_config += array( | ||||
'Maniphest fields are now defined in `%s`. '. | 'Maniphest fields are now defined in `%s`. '. | ||||
'Existing definitions have been migrated.', | 'Existing definitions have been migrated.', | ||||
'maniphest.custom-field-definitions'), | 'maniphest.custom-field-definitions'), | ||||
'differential.custom-remarkup-rules' => $markup_reason, | 'differential.custom-remarkup-rules' => $markup_reason, | ||||
'differential.custom-remarkup-block-rules' => $markup_reason, | 'differential.custom-remarkup-block-rules' => $markup_reason, | ||||
'auth.sshkeys.enabled' => pht( | 'auth.sshkeys.enabled' => pht( | ||||
'SSH keys are now actually useful, so they are always enabled.'), | 'SSH keys are now actually useful, so they are always enabled.'), | ||||
'differential.anonymous-access' => pht( | 'differential.anonymous-access' => pht( | ||||
'Phabricator now has meaningful global access controls. See `%s`.', | '%s now has meaningful global access controls. See `%s`.', | ||||
'policy.allow-public'), | 'policy.allow-public', | ||||
PhabricatorPlatformSite::getName()), | |||||
'celerity.resource-path' => pht( | 'celerity.resource-path' => pht( | ||||
'An alternate resource map is no longer supported. Instead, use '. | 'An alternate resource map is no longer supported. Instead, use '. | ||||
'multiple maps. See T4222.'), | 'multiple maps. See T4222.'), | ||||
'metamta.send-immediately' => pht( | 'metamta.send-immediately' => pht( | ||||
'Mail is now always delivered by the daemons.'), | 'Mail is now always delivered by the daemons.'), | ||||
'auth.sessions.conduit' => $session_reason, | 'auth.sessions.conduit' => $session_reason, | ||||
'auth.sessions.web' => $session_reason, | 'auth.sessions.web' => $session_reason, | ||||
'tokenizer.ondemand' => pht( | 'tokenizer.ondemand' => pht( | ||||
'Phabricator now manages typeahead strategies automatically.'), | '%s now manages typeahead strategies automatically.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'differential.revision-custom-detail-renderer' => pht( | 'differential.revision-custom-detail-renderer' => pht( | ||||
'Obsolete; use standard rendering events instead.'), | 'Obsolete; use standard rendering events instead.'), | ||||
'differential.show-host-field' => $differential_field_reason, | 'differential.show-host-field' => $differential_field_reason, | ||||
'differential.show-test-plan-field' => $differential_field_reason, | 'differential.show-test-plan-field' => $differential_field_reason, | ||||
'differential.field-selector' => $differential_field_reason, | 'differential.field-selector' => $differential_field_reason, | ||||
'phabricator.show-beta-applications' => pht( | 'phabricator.show-beta-applications' => pht( | ||||
'This option has been renamed to `%s` to emphasize the '. | 'This option has been renamed to `%s` to emphasize the '. | ||||
'unfinished nature of many prototype applications. '. | 'unfinished nature of many prototype applications. '. | ||||
Show All 10 Lines | $ancient_config += array( | ||||
'config.mask' => pht( | 'config.mask' => pht( | ||||
'Use `%s` instead of this option.', | 'Use `%s` instead of this option.', | ||||
'config.hide'), | 'config.hide'), | ||||
'phd.start-taskmasters' => pht( | 'phd.start-taskmasters' => pht( | ||||
'Taskmasters now use an autoscaling pool. You can configure the '. | 'Taskmasters now use an autoscaling pool. You can configure the '. | ||||
'pool size with `%s`.', | 'pool size with `%s`.', | ||||
'phd.taskmasters'), | 'phd.taskmasters'), | ||||
'storage.engine-selector' => pht( | 'storage.engine-selector' => pht( | ||||
'Phabricator now automatically discovers available storage engines '. | '%s now automatically discovers available storage engines '. | ||||
'at runtime.'), | 'at runtime.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'storage.upload-size-limit' => pht( | 'storage.upload-size-limit' => pht( | ||||
'Phabricator now supports arbitrarily large files. Consult the '. | '%s now supports arbitrarily large files. Consult the '. | ||||
'documentation for configuration details.'), | 'documentation for configuration details.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'security.allow-outbound-http' => pht( | 'security.allow-outbound-http' => pht( | ||||
'This option has been replaced with the more granular option `%s`.', | 'This option has been replaced with the more granular option `%s`.', | ||||
'security.outbound-blacklist'), | 'security.outbound-blacklist'), | ||||
'metamta.reply.show-hints' => pht( | 'metamta.reply.show-hints' => pht( | ||||
'Phabricator no longer shows reply hints in mail.'), | '%s no longer shows reply hints in mail.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'metamta.differential.reply-handler-domain' => $reply_domain_reason, | 'metamta.differential.reply-handler-domain' => $reply_domain_reason, | ||||
'metamta.diffusion.reply-handler-domain' => $reply_domain_reason, | 'metamta.diffusion.reply-handler-domain' => $reply_domain_reason, | ||||
'metamta.macro.reply-handler-domain' => $reply_domain_reason, | 'metamta.macro.reply-handler-domain' => $reply_domain_reason, | ||||
'metamta.maniphest.reply-handler-domain' => $reply_domain_reason, | 'metamta.maniphest.reply-handler-domain' => $reply_domain_reason, | ||||
'metamta.pholio.reply-handler-domain' => $reply_domain_reason, | 'metamta.pholio.reply-handler-domain' => $reply_domain_reason, | ||||
'metamta.diffusion.reply-handler' => $reply_handler_reason, | 'metamta.diffusion.reply-handler' => $reply_handler_reason, | ||||
'metamta.differential.reply-handler' => $reply_handler_reason, | 'metamta.differential.reply-handler' => $reply_handler_reason, | ||||
'metamta.maniphest.reply-handler' => $reply_handler_reason, | 'metamta.maniphest.reply-handler' => $reply_handler_reason, | ||||
'metamta.package.reply-handler' => $reply_handler_reason, | 'metamta.package.reply-handler' => $reply_handler_reason, | ||||
'metamta.precedence-bulk' => pht( | 'metamta.precedence-bulk' => pht( | ||||
'Phabricator now always sends transaction mail with '. | '%s now always sends transaction mail with '. | ||||
'"Precedence: bulk" to improve deliverability.'), | '"Precedence: bulk" to improve deliverability.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'style.monospace' => $monospace_reason, | 'style.monospace' => $monospace_reason, | ||||
'style.monospace.windows' => $monospace_reason, | 'style.monospace.windows' => $monospace_reason, | ||||
'search.engine-selector' => pht( | 'search.engine-selector' => pht( | ||||
'Phabricator now automatically discovers available search engines '. | '%s now automatically discovers available search engines '. | ||||
'at runtime.'), | 'at runtime.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'metamta.files.public-create-email' => $public_mail_reason, | 'metamta.files.public-create-email' => $public_mail_reason, | ||||
'metamta.maniphest.public-create-email' => $public_mail_reason, | 'metamta.maniphest.public-create-email' => $public_mail_reason, | ||||
'metamta.maniphest.default-public-author' => $public_mail_reason, | 'metamta.maniphest.default-public-author' => $public_mail_reason, | ||||
'metamta.paste.public-create-email' => $public_mail_reason, | 'metamta.paste.public-create-email' => $public_mail_reason, | ||||
'security.allow-conduit-act-as-user' => pht( | 'security.allow-conduit-act-as-user' => pht( | ||||
'Impersonating users over the API is no longer supported.'), | 'Impersonating users over the API is no longer supported.'), | ||||
Show All 38 Lines | $ancient_config += array( | ||||
'This option has been replaced with `ui.logo`, which provides more '. | 'This option has been replaced with `ui.logo`, which provides more '. | ||||
'flexible configuration options.'), | 'flexible configuration options.'), | ||||
'welcome.html' => $dashboard_reason, | 'welcome.html' => $dashboard_reason, | ||||
'maniphest.priorities.unbreak-now' => $dashboard_reason, | 'maniphest.priorities.unbreak-now' => $dashboard_reason, | ||||
'maniphest.priorities.needs-triage' => $dashboard_reason, | 'maniphest.priorities.needs-triage' => $dashboard_reason, | ||||
'mysql.implementation' => pht( | 'mysql.implementation' => pht( | ||||
'Phabricator now automatically selects the best available '. | '%s now automatically selects the best available '. | ||||
'MySQL implementation.'), | 'MySQL implementation.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'mysql.configuration-provider' => pht( | 'mysql.configuration-provider' => pht( | ||||
'Phabricator now has application-level management of partitioning '. | '%s now has application-level management of partitioning '. | ||||
'and replicas.'), | 'and replicas.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'search.elastic.host' => $elastic_reason, | 'search.elastic.host' => $elastic_reason, | ||||
'search.elastic.namespace' => $elastic_reason, | 'search.elastic.namespace' => $elastic_reason, | ||||
'metamta.mail-adapter' => $mailers_reason, | 'metamta.mail-adapter' => $mailers_reason, | ||||
'amazon-ses.access-key' => $mailers_reason, | 'amazon-ses.access-key' => $mailers_reason, | ||||
'amazon-ses.secret-key' => $mailers_reason, | 'amazon-ses.secret-key' => $mailers_reason, | ||||
'amazon-ses.endpoint' => $mailers_reason, | 'amazon-ses.endpoint' => $mailers_reason, | ||||
▲ Show 20 Lines • Show All 50 Lines • ▼ Show 20 Lines | $ancient_config += array( | ||||
'aphront.default-application-configuration-class' => pht( | 'aphront.default-application-configuration-class' => pht( | ||||
'This ancient extension point has been replaced with other '. | 'This ancient extension point has been replaced with other '. | ||||
'mechanisms, including "AphrontSite".'), | 'mechanisms, including "AphrontSite".'), | ||||
'differential.whitespace-matters' => pht( | 'differential.whitespace-matters' => pht( | ||||
'Whitespace rendering is now handled automatically.'), | 'Whitespace rendering is now handled automatically.'), | ||||
'phd.pid-directory' => pht( | 'phd.pid-directory' => pht( | ||||
'Phabricator daemons no longer use PID files.'), | '%s daemons no longer use PID files.', | ||||
PhabricatorPlatformSite::getName()), | |||||
'phd.trace' => $phd_reason, | 'phd.trace' => $phd_reason, | ||||
'phd.verbose' => $phd_reason, | 'phd.verbose' => $phd_reason, | ||||
); | ); | ||||
return $ancient_config; | return $ancient_config; | ||||
} | } | ||||
} | } |
Content licensed under Creative Commons Attribution-ShareAlike 4.0 (CC-BY-SA) unless otherwise noted; code licensed under Apache 2.0 or other open source licenses. · CC BY-SA 4.0 · Apache 2.0