Page Menu
Home
Phabricator
Search
Configure Global Search
Log In
Files
F15412195
D9058.id21507.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Flag For Later
Size
11 KB
Referenced Files
None
Subscribers
None
D9058.id21507.diff
View Options
diff --git a/src/lint/engine/ComprehensiveLintEngine.php b/src/lint/engine/ComprehensiveLintEngine.php
--- a/src/lint/engine/ComprehensiveLintEngine.php
+++ b/src/lint/engine/ComprehensiveLintEngine.php
@@ -33,7 +33,7 @@
$py_paths = preg_grep('/\.py$/', $paths);
$linters[] = id(new ArcanistPyFlakesLinter())->setPaths($py_paths);
$linters[] = id(new ArcanistPEP8Linter())
- ->setConfig(array('options' => $this->getPEP8WithTextOptions()))
+ ->setConfig(array('flags' => array($this->getPEP8WithTextOptions())))
->setPaths($py_paths);
$linters[] = id(new ArcanistRubyLinter())
diff --git a/src/lint/linter/ArcanistCSSLintLinter.php b/src/lint/linter/ArcanistCSSLintLinter.php
--- a/src/lint/linter/ArcanistCSSLintLinter.php
+++ b/src/lint/linter/ArcanistCSSLintLinter.php
@@ -34,15 +34,11 @@
}
public function getDefaultFlags() {
- // TODO: Deprecation warning.
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource('lint.csslint.options', array());
+ return $this->getDeprecatedConfiguration('lint.csslint.options', array());
}
public function getDefaultBinary() {
- // TODO: Deprecation warning.
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource('lint.csslint.bin', 'csslint');
+ return $this->getDeprecatedConfiguration('lint.csslint.bin', 'csslint');
}
public function getVersion() {
diff --git a/src/lint/linter/ArcanistCpplintLinter.php b/src/lint/linter/ArcanistCpplintLinter.php
--- a/src/lint/linter/ArcanistCpplintLinter.php
+++ b/src/lint/linter/ArcanistCpplintLinter.php
@@ -14,10 +14,8 @@
}
public function getDefaultBinary() {
- // TODO: Warn that all of this is deprecated.
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.cpplint.prefix');
- $bin = $config->getConfigFromAnySource('lint.cpplint.bin', 'cpplint.py');
+ $prefix = $this->getDeprecatedConfiguration('lint.cpplint.prefix');
+ $bin = $this->getDeprecatedConfiguration('lint.cpplint.bin', 'cpplint.py');
if ($prefix) {
return $prefix.'/'.$bin;
@@ -44,8 +42,7 @@
}
protected function getDefaultFlags() {
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource('lint.cpplint.options', array());
+ return $this->getDeprecatedConfiguration('lint.cpplint.options', array());
}
protected function parseLinterOutput($path, $err, $stdout, $stderr) {
diff --git a/src/lint/linter/ArcanistExternalLinter.php b/src/lint/linter/ArcanistExternalLinter.php
--- a/src/lint/linter/ArcanistExternalLinter.php
+++ b/src/lint/linter/ArcanistExternalLinter.php
@@ -150,7 +150,7 @@
* @task bin
*/
final public function setFlags($flags) {
- $this->flags = (array) $flags;
+ $this->flags = (array)$flags;
return $this;
}
diff --git a/src/lint/linter/ArcanistFlake8Linter.php b/src/lint/linter/ArcanistFlake8Linter.php
--- a/src/lint/linter/ArcanistFlake8Linter.php
+++ b/src/lint/linter/ArcanistFlake8Linter.php
@@ -29,21 +29,18 @@
}
public function getDefaultFlags() {
- // TODO: Deprecated.
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource('lint.flake8.options', array());
+ return $this->getDeprecatedConfiguration('lint.flake8.options', array());
}
public function getDefaultBinary() {
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.flake8.prefix');
- $bin = $config->getConfigFromAnySource('lint.flake8.bin', 'flake8');
+ $prefix = $this->getDeprecatedConfiguration('lint.flake8.prefix');
+ $bin = $this->getDeprecatedConfiguration('lint.flake8.bin', 'flake8');
- if ($prefix || ($bin != 'flake8')) {
+ if ($prefix) {
return $prefix.'/'.$bin;
+ } else {
+ return $bin;
}
-
- return 'flake8';
}
public function getVersion() {
diff --git a/src/lint/linter/ArcanistJSHintLinter.php b/src/lint/linter/ArcanistJSHintLinter.php
--- a/src/lint/linter/ArcanistJSHintLinter.php
+++ b/src/lint/linter/ArcanistJSHintLinter.php
@@ -35,9 +35,8 @@
}
public function getDefaultBinary() {
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.jshint.prefix');
- $bin = $config->getConfigFromAnySource('lint.jshint.bin', 'jshint');
+ $prefix = $this->getDeprecatedConfiguration('lint.jshint.prefix');
+ $bin = $this->getDeprecatedConfiguration('lint.jshint.bin', 'jshint');
if ($prefix) {
return $prefix.'/'.$bin;
@@ -81,12 +80,11 @@
}
protected function getDefaultFlags() {
- $config_manager = $this->getEngine()->getConfigurationManager();
- $options = $config_manager->getConfigFromAnySource(
+ $options = $this->getDeprecatedConfiguration(
'lint.jshint.options',
array());
- $config = $config_manager->getConfigFromAnySource('lint.jshint.config');
+ $config = $this->getDeprecatedConfiguration('lint.jshint.config');
if ($config) {
$options[] = '--config='.$config;
}
diff --git a/src/lint/linter/ArcanistLinter.php b/src/lint/linter/ArcanistLinter.php
--- a/src/lint/linter/ArcanistLinter.php
+++ b/src/lint/linter/ArcanistLinter.php
@@ -438,4 +438,49 @@
return $code;
}
+
+ /**
+ * Retrieve an old lint configuration value from `.arcconfig` or a similar
+ * source.
+ *
+ * Modern linters should use @{method:getConfig} to read configuration from
+ * `.arclint`.
+ *
+ * @param string Configuration key to retrieve.
+ * @param wild Default value to return if key is not present in config.
+ * @return wild Configured value, or default if no configuration exists.
+ */
+ protected function getDeprecatedConfiguration($key, $default = null) {
+
+ // If we're being called in a context without an engine (probably from
+ // `arc linters`), just return the default value.
+ if (!$this->engine) {
+ return $default;
+ }
+
+ $config = $this->getEngine()->getConfigurationManager();
+
+ // Construct a sentinel object so we can tell if we're reading config
+ // or not.
+ $sentinel = (object)array();
+ $result = $config->getConfigFromAnySource($key, $sentinel);
+
+ // If we read config, warn the user that this mechanism is deprecated and
+ // discouraged.
+ if ($result !== $sentinel) {
+ $console = PhutilConsole::getConsole();
+ $console->writeErr(
+ "**%s**: %s\n",
+ pht('Deprecation Warning'),
+ pht(
+ 'Configuration option "%s" is deprecated. Generally, linters should '.
+ 'now be configured using an `.arclint` file. See "Arcanist User '.
+ 'Guide: Lint" in the documentation for more information.',
+ $key));
+ return $result;
+ }
+
+ return $default;
+ }
+
}
diff --git a/src/lint/linter/ArcanistPEP8Linter.php b/src/lint/linter/ArcanistPEP8Linter.php
--- a/src/lint/linter/ArcanistPEP8Linter.php
+++ b/src/lint/linter/ArcanistPEP8Linter.php
@@ -28,11 +28,7 @@
}
public function getDefaultFlags() {
- // TODO: Warn that all of this is deprecated.
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource(
- 'lint.pep8.options',
- $this->getConfig('options', array()));
+ return $this->getDeprecatedConfiguration('lint.pep8.options', array());
}
public function shouldUseInterpreter() {
@@ -48,12 +44,9 @@
return 'pep8';
}
- $config = $this->getEngine()->getConfigurationManager();
- $old_prefix = $config->getConfigFromAnySource('lint.pep8.prefix');
- $old_bin = $config->getConfigFromAnySource('lint.pep8.bin');
-
+ $old_prefix = $this->getDeprecatedConfiguration('lint.pep8.prefix');
+ $old_bin = $this->getDeprecatedConfiguration('lint.pep8.bin');
if ($old_prefix || $old_bin) {
- // TODO: Deprecation warning.
$old_bin = nonempty($old_bin, 'pep8');
return $old_prefix.'/'.$old_bin;
}
diff --git a/src/lint/linter/ArcanistPhpcsLinter.php b/src/lint/linter/ArcanistPhpcsLinter.php
--- a/src/lint/linter/ArcanistPhpcsLinter.php
+++ b/src/lint/linter/ArcanistPhpcsLinter.php
@@ -48,13 +48,8 @@
}
public function getDefaultFlags() {
- // TODO: Deprecation warnings.
-
- $config = $this->getEngine()->getConfigurationManager();
-
- $options = $config->getConfigFromAnySource('lint.phpcs.options', array());
-
- $standard = $config->getConfigFromAnySource('lint.phpcs.standard');
+ $options = $this->getDeprecatedConfiguration('lint.phpcs.options', array());
+ $standard = $this->getDeprecatedConfiguration('lint.phpcs.standard');
if (!empty($standard)) {
if (is_array($options)) {
$options[] = '--standard='.$standard;
@@ -67,9 +62,7 @@
}
public function getDefaultBinary() {
- // TODO: Deprecation warnings.
- $config = $this->getEngine()->getConfigurationManager();
- return $config->getConfigFromAnySource('lint.phpcs.bin', 'phpcs');
+ return $this->getDeprecatedConfiguration('lint.phpcs.bin', 'phpcs');
}
public function getVersion() {
diff --git a/src/lint/linter/ArcanistPyFlakesLinter.php b/src/lint/linter/ArcanistPyFlakesLinter.php
--- a/src/lint/linter/ArcanistPyFlakesLinter.php
+++ b/src/lint/linter/ArcanistPyFlakesLinter.php
@@ -28,9 +28,8 @@
}
public function getDefaultBinary() {
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.pyflakes.prefix');
- $bin = $config->getConfigFromAnySource('lint.pyflakes.bin', 'pyflakes');
+ $prefix = $this->getDeprecatedConfiguration('lint.pyflakes.prefix');
+ $bin = $this->getDeprecatedConfiguration('lint.pyflakes.bin', 'pyflakes');
if ($prefix) {
return $prefix.'/'.$bin;
diff --git a/src/lint/linter/ArcanistRubyLinter.php b/src/lint/linter/ArcanistRubyLinter.php
--- a/src/lint/linter/ArcanistRubyLinter.php
+++ b/src/lint/linter/ArcanistRubyLinter.php
@@ -26,9 +26,7 @@
}
public function getDefaultBinary() {
- // TODO: Deprecation warning.
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.ruby.prefix');
+ $prefix = $this->getDeprecatedConfiguration('lint.ruby.prefix');
if ($prefix !== null) {
$ruby_bin = $prefix.'ruby';
}
diff --git a/src/lint/linter/ArcanistScalaSBTLinter.php b/src/lint/linter/ArcanistScalaSBTLinter.php
--- a/src/lint/linter/ArcanistScalaSBTLinter.php
+++ b/src/lint/linter/ArcanistScalaSBTLinter.php
@@ -2,8 +2,6 @@
/**
* Uses `sbt compile` to detect various warnings/errors in Scala code.
- *
- * @group linter
*/
final class ArcanistScalaSBTLinter extends ArcanistLinter {
@@ -26,24 +24,11 @@
private function getSBTPath() {
$sbt_bin = "sbt";
- // Use the SBT prefix specified in the config file
- $config = $this->getEngine()->getConfigurationManager();
- $prefix = $config->getConfigFromAnySource('lint.scala_sbt.prefix');
+ $prefix = $this->getDeprecatedConfiguration('lint.scala_sbt.prefix');
if ($prefix !== null) {
$sbt_bin = $prefix . $sbt_bin;
}
- if (!Filesystem::pathExists($sbt_bin)) {
-
- list($err) = exec_manual('which %s', $sbt_bin);
- if ($err) {
- throw new ArcanistUsageException(
- "SBT does not appear to be installed on this system. Install it or ".
- "add 'lint.scala_sbt.prefix' in your .arcconfig to point to ".
- "the directory where it resides.");
- }
- }
-
return $sbt_bin;
}
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Mar 20, 11:48 AM (2 d, 20 h ago)
Storage Engine
blob
Storage Format
Encrypted (AES-256-CBC)
Storage Handle
7677382
Default Alt Text
D9058.id21507.diff (11 KB)
Attached To
Mode
D9058: Warn when accessing deprecated lint config
Attached
Detach File
Event Timeline
Log In to Comment