git: d79ba67c4595 - main - devel/phorgeit-arcanist-lib: New port

From: Michael Gmelin <grembo_at_FreeBSD.org>
Date: Sun, 24 Mar 2024 10:25:28 UTC
The branch main has been updated by grembo:

URL: https://cgit.FreeBSD.org/ports/commit/?id=d79ba67c45953a48cf95e0e75a2fd87968c23ae5

commit d79ba67c45953a48cf95e0e75a2fd87968c23ae5
Author:     Michael Gmelin <grembo@FreeBSD.org>
AuthorDate: 2024-03-24 10:15:13 +0000
Commit:     Michael Gmelin <grembo@FreeBSD.org>
CommitDate: 2024-03-24 10:22:13 +0000

    devel/phorgeit-arcanist-lib: New port
---
 devel/Makefile                                     |    2 +-
 devel/phorgeit-arcanist-lib/Makefile               |   90 ++
 devel/phorgeit-arcanist-lib/distinfo               |    3 +
 .../files/patch-src_error_PhutilErrorHandler.php   |   14 +
 .../files/patch-src_future_http_HTTPSFuture.php    |   41 +
 .../patch-src_lint_linter_ArcanistPhpLinter.php    |   11 +
 ...tch-src_moduleutils_PhutilLibraryMapBuilder.php |   11 +
 ...rc_phage_bootloader_PhagePHPAgentBootloader.php |   11 +
 .../files/patch-src_runtime_ArcanistRuntime.php    |   11 +
 ...rc_toolset_workflow_ArcanistVersionWorkflow.php |   15 +
 .../patch-src_utils_PhutilExecutionEnvironment.php |   11 +
 .../patch-src_workflow_ArcanistAnoidWorkflow.php   |   16 +
 ...patch-src_workflow_ArcanistLiberateWorkflow.php |   11 +
 .../patch-support_shell_hooks_bash-completion.sh   |   15 +
 devel/phorgeit-arcanist-lib/pkg-descr              |    3 +
 devel/phorgeit-arcanist-lib/pkg-plist              | 1634 ++++++++++++++++++++
 16 files changed, 1898 insertions(+), 1 deletion(-)

diff --git a/devel/Makefile b/devel/Makefile
index 8bb746e9cebf..7ebc5de33f45 100644
--- a/devel/Makefile
+++ b/devel/Makefile
@@ -4113,7 +4113,7 @@
     SUBDIR += perlconsole
     SUBDIR += phabricator
     SUBDIR += phasar
-    SUBDIR += php-Psr_Log
+    SUBDIR += phorgeit-arcanist-lib
     SUBDIR += php-composer
     SUBDIR += php-geshi
     SUBDIR += php-ice37
diff --git a/devel/phorgeit-arcanist-lib/Makefile b/devel/phorgeit-arcanist-lib/Makefile
new file mode 100644
index 000000000000..35a8be54bc88
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/Makefile
@@ -0,0 +1,90 @@
+PORTNAME?=	arcanist
+PORTVERSION?=	20240304
+CATEGORIES?=	devel
+PKGNAMEPREFIX=	phorgeit-
+PKGNAMESUFFIX=	${SLAVE_PKGNAMESUFFIX}${PHP_PKGNAMESUFFIX}
+
+MAINTAINER=	grembo@FreeBSD.org
+COMMENT?=	Libraries for the command line interface for Phorge.it
+WWW?=		https://we.phorge.it/book/arcanist/
+
+SLAVEPORT?=	lib
+
+LICENSE=	APACHE20
+LICENSE_FILE=	${WRKSRC}/LICENSE
+
+PHP_DESTDIR=	lib/php/arcanist
+USES=		php:cli,flavors python:env shebangfix
+SHEBANG_FILES=	bin/arc \
+		bin/phage \
+		scripts/*.php \
+		scripts/hgdaemon/*.php \
+		src/parser/*.php \
+		support/arcanoid/arcanoid.py \
+		support/lib/*.php \
+		support/unit/*.php \
+		support/xhpast/*.php \
+		support/xhpast/bin/*.php
+
+USE_PHP=	curl dom simplexml zlib
+USE_GITHUB=	yes
+NO_BUILD=	yes
+NO_ARCH=	yes
+PORTSCOUT=	ignore:1
+GH_ACCOUNT=	phorgeit
+GH_TAGNAME=	174bf094ef9fe
+PLIST=		${.CURDIR}/pkg-plist
+
+.if ${SLAVEPORT} == lib
+SLAVE_PKGNAMESUFFIX=	-${SLAVEPORT}
+
+OPTIONS_DEFINE=	ENCODINGS
+OPTIONS_DEFAULT=ENCODINGS
+ENCODINGS_DESC=	Support for encodings other than utf-8
+ENCODINGS_USE=	PHP=mbstring
+
+.else # link only
+
+RUN_DEPENDS=	phorgeit-arcanist-lib${PHP_PKGNAMESUFFIX}>0:devel/phorgeit-arcanist-lib@${PHP_FLAVOR}
+
+CONFLICTS=	arc arcanist-php?? phorgeit-arcanist-php??
+
+PLIST_FILES=	bin/arc
+
+.endif
+
+do-install:
+.if ${SLAVEPORT} == bin
+	${RLN} ../${PHP_DESTDIR}/bin/arc ${STAGEDIR}${PREFIX}/bin/arc
+.else
+	@${MKDIR} ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}
+	cd ${WRKSRC} ; ${PAX} -rw * ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}
+	@${MKDIR} ${STAGEDIR}${PREFIX}/share/bash-completion/completions/
+	@${REINPLACE_CMD} \
+		's|%%PREFIX%%|${PREFIX}|g; \
+		 s|%%PHP_DESTDIR%%|${PHP_DESTDIR}|g' \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/support/shell/hooks/bash-completion.sh
+	@${REINPLACE_CMD} \
+		's|%%PKGNAME%%|${PKGNAMEPREFIX}${PORTNAME}${PKGNAMESUFFIX}|g; \
+		 s|%%PKGVERSION%%|${PKGVERSION}|g; \
+		 s|%%PKGORIGIN%%|${PKGORIGIN}|g' \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/toolset/workflow/ArcanistVersionWorkflow.php
+	@${REINPLACE_CMD} \
+		's|%%PHP_CMD%%|${PREFIX}/bin/php|g' \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/lint/linter/ArcanistPhpLinter.php \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/moduleutils/PhutilLibraryMapBuilder.php \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/phage/bootloader/PhagePHPAgentBootloader.php \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/runtime/ArcanistRuntime.php \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/utils/PhutilExecutionEnvironment.php \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/workflow/ArcanistLiberateWorkflow.php
+	@${REINPLACE_CMD} \
+		's|%%PYTHON_CMD%%|${PYTHON_CMD}|g' \
+		${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/src/workflow/ArcanistAnoidWorkflow.php
+	${RLN} ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/support/shell/hooks/bash-completion.sh \
+		 ${STAGEDIR}${PREFIX}/share/bash-completion/completions/arc
+	${RM} ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/resources/ssl/default.pem
+	@${FIND} ${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/ -name '*.bak' -delete -o -name '*.orig' -delete
+	${STAGEDIR}${PREFIX}/${PHP_DESTDIR}/bin/arc shell-complete --generate
+.endif
+
+.include <bsd.port.mk>
diff --git a/devel/phorgeit-arcanist-lib/distinfo b/devel/phorgeit-arcanist-lib/distinfo
new file mode 100644
index 000000000000..faffd985b4a9
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/distinfo
@@ -0,0 +1,3 @@
+TIMESTAMP = 1709549888
+SHA256 (phorgeit-arcanist-20240304-174bf094ef9fe_GH0.tar.gz) = 0be6f73b9487080f96f70759b8e2ca99a637f1fbd03cd4436365a58fb3a1d695
+SIZE (phorgeit-arcanist-20240304-174bf094ef9fe_GH0.tar.gz) = 2287140
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_error_PhutilErrorHandler.php b/devel/phorgeit-arcanist-lib/files/patch-src_error_PhutilErrorHandler.php
new file mode 100644
index 000000000000..c5a89b45c7de
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_error_PhutilErrorHandler.php
@@ -0,0 +1,14 @@
+--- src/error/PhutilErrorHandler.php.orig	2022-05-17 23:20:14 UTC
++++ src/error/PhutilErrorHandler.php
+@@ -181,6 +181,11 @@ final class PhutilErrorHandler extends Phobject {
+    * @task internal
+    */
+   public static function handleError($num, $str, $file, $line, $ctx = null) {
++    // work around PHP 8.1+ null argument deprecation error
++    if ($num === E_DEPRECATED && preg_match('/Passing null to parameter #.* of type .* is deprecated/', $str)) {
++      return true;
++    }
++
+     foreach (self::$traps as $trap) {
+       $trap->addError($num, $str, $file, $line);
+     }
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_future_http_HTTPSFuture.php b/devel/phorgeit-arcanist-lib/files/patch-src_future_http_HTTPSFuture.php
new file mode 100644
index 000000000000..4298c2616b8b
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_future_http_HTTPSFuture.php
@@ -0,0 +1,41 @@
+--- src/future/http/HTTPSFuture.php.orig	2022-05-17 23:20:14 UTC
++++ src/future/http/HTTPSFuture.php
+@@ -375,31 +375,24 @@ final class HTTPSFuture extends BaseHTTPFuture {
+       //   means that the user wants to override everything (also because the
+       //   user might not have access to change the box's php.ini to add
+       //   curl.cainfo).
+-      // - Otherwise, try using curl.cainfo. If it's set explicitly, it's
+-      //   probably reasonable to try using it before we fall back to what
+-      //   libphutil ships with.
+-      // - Lastly, try the default that libphutil ships with. If it doesn't
+-      //   work, give up and yell at the user.
+ 
+       if (!$this->getCABundle()) {
+         $caroot = dirname(phutil_get_library_root('arcanist'));
+         $caroot = $caroot.'/resources/ssl/';
+-
+-        $ini_val = ini_get('curl.cainfo');
+         if (self::getGlobalCABundle()) {
+           $this->setCABundleFromPath(self::getGlobalCABundle());
+         } else if (Filesystem::pathExists($caroot.'custom.pem')) {
+           $this->setCABundleFromPath($caroot.'custom.pem');
+-        } else if ($ini_val) {
+-          // TODO: We can probably do a pathExists() here, even.
+-          $this->setCABundleFromPath($ini_val);
+-        } else {
+-          $this->setCABundleFromPath($caroot.'default.pem');
+         }
+       }
+ 
+-      if ($this->canSetCAInfo()) {
+-        curl_setopt($curl, CURLOPT_CAINFO, $this->getCABundle());
++      $ca_bundle = $this->getCABundle();
++      if ($ca_bundle && $this->canSetCAInfo()) {
++        if (is_dir($ca_bundle)) {
++          curl_setopt($curl, CURLOPT_CAPATH, $ca_bundle);
++        } else {
++          curl_setopt($curl, CURLOPT_CAINFO, $ca_bundle);
++        }
+       }
+ 
+       $verify_peer = 1;
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_lint_linter_ArcanistPhpLinter.php b/devel/phorgeit-arcanist-lib/files/patch-src_lint_linter_ArcanistPhpLinter.php
new file mode 100644
index 000000000000..52a889b3829d
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_lint_linter_ArcanistPhpLinter.php
@@ -0,0 +1,11 @@
+--- src/lint/linter/ArcanistPhpLinter.php.orig	2020-05-19 10:39:38 UTC
++++ src/lint/linter/ArcanistPhpLinter.php
+@@ -44,7 +44,7 @@ final class ArcanistPhpLinter extends ArcanistExternal
+   }
+ 
+   public function getDefaultBinary() {
+-    return 'php';
++    return '%%PHP_CMD%%';
+   }
+ 
+   public function getVersion() {
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_moduleutils_PhutilLibraryMapBuilder.php b/devel/phorgeit-arcanist-lib/files/patch-src_moduleutils_PhutilLibraryMapBuilder.php
new file mode 100644
index 000000000000..f941da199fab
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_moduleutils_PhutilLibraryMapBuilder.php
@@ -0,0 +1,11 @@
+--- src/moduleutils/PhutilLibraryMapBuilder.php.orig	2022-03-04 17:30:36 UTC
++++ src/moduleutils/PhutilLibraryMapBuilder.php
+@@ -240,7 +240,7 @@ final class PhutilLibraryMapBuilder extends Phobject {
+     $bin = dirname(__FILE__).'/../../support/lib/extract-symbols.php';
+ 
+     return new ExecFuture(
+-      'php -f %R -- --ugly %Ls -- %Ls',
++      '%%PHP_CMD%% -f %R -- --ugly %Ls -- %Ls',
+       $bin,
+       $flags,
+       $paths);
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_phage_bootloader_PhagePHPAgentBootloader.php b/devel/phorgeit-arcanist-lib/files/patch-src_phage_bootloader_PhagePHPAgentBootloader.php
new file mode 100644
index 000000000000..582ee8ff0314
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_phage_bootloader_PhagePHPAgentBootloader.php
@@ -0,0 +1,11 @@
+--- src/phage/bootloader/PhagePHPAgentBootloader.php.orig	2020-05-19 10:37:09 UTC
++++ src/phage/bootloader/PhagePHPAgentBootloader.php
+@@ -27,7 +27,7 @@ final class PhagePHPAgentBootloader extends PhageAgent
+     // reads and evaluates the main agent program.
+ 
+     return csprintf(
+-      'php -r %s',
++      '%%PHP_CMD%% -r %s',
+       "eval(fread(\$I=fopen('php://stdin', 'r'), {$len})); /* phage! */");
+   }
+ 
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_runtime_ArcanistRuntime.php b/devel/phorgeit-arcanist-lib/files/patch-src_runtime_ArcanistRuntime.php
new file mode 100644
index 000000000000..b080e77b3b5f
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_runtime_ArcanistRuntime.php
@@ -0,0 +1,11 @@
+--- src/runtime/ArcanistRuntime.php.orig	2021-12-10 00:42:19 UTC
++++ src/runtime/ArcanistRuntime.php
+@@ -208,7 +208,7 @@ final class ArcanistRuntime {
+     $bin = $arcanist_root.'/scripts/arcanist.php';
+ 
+     $err = phutil_passthru(
+-      'php -f %R -- %Ls',
++      '%%PHP_CMD%% -f %R -- %Ls',
+       $bin,
+       array_slice($argv, 1));
+ 
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_toolset_workflow_ArcanistVersionWorkflow.php b/devel/phorgeit-arcanist-lib/files/patch-src_toolset_workflow_ArcanistVersionWorkflow.php
new file mode 100644
index 000000000000..e76384bac69e
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_toolset_workflow_ArcanistVersionWorkflow.php
@@ -0,0 +1,15 @@
+--- src/toolset/workflow/ArcanistVersionWorkflow.php.orig	2020-05-14 16:16:36 UTC
++++ src/toolset/workflow/ArcanistVersionWorkflow.php
+@@ -36,6 +36,12 @@ EOTEXT
+ 
+     $console = PhutilConsole::getConsole();
+ 
++    $versions = array("%%PKGNAME%% %%PKGVERSION%% (%%PKGORIGIN%%)");
++    foreach ($versions as $pkg) {
++      $console->writeOut($pkg."\n");
++    }
++    return;
++
+     if (!Filesystem::binaryExists('git')) {
+       throw new ArcanistUsageException(
+         pht(
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_utils_PhutilExecutionEnvironment.php b/devel/phorgeit-arcanist-lib/files/patch-src_utils_PhutilExecutionEnvironment.php
new file mode 100644
index 000000000000..717f78d04873
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_utils_PhutilExecutionEnvironment.php
@@ -0,0 +1,11 @@
+--- src/utils/PhutilExecutionEnvironment.php.orig	2020-05-19 10:38:43 UTC
++++ src/utils/PhutilExecutionEnvironment.php
+@@ -36,7 +36,7 @@ final class PhutilExecutionEnvironment extends Phobjec
+     }
+ 
+     list($env) = execx(
+-      'php -d variables_order=E -r %s',
++      '%%PHP_CMD%% -d variables_order=E -r %s',
+       'echo json_encode($_ENV);');
+     $env = phutil_json_decode($env);
+ 
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistAnoidWorkflow.php b/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistAnoidWorkflow.php
new file mode 100644
index 000000000000..5efc47a6ea8f
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistAnoidWorkflow.php
@@ -0,0 +1,16 @@
+--- src/workflow/ArcanistAnoidWorkflow.php.orig	2020-05-14 23:31:28 UTC
++++ src/workflow/ArcanistAnoidWorkflow.php
+@@ -24,11 +24,10 @@ EOTEXT
+   }
+ 
+   public function runWorkflow() {
+-    if (!Filesystem::binaryExists('python3')) {
++    if (!Filesystem::binaryExists('%%PYTHON_CMD%%')) {
+       throw new PhutilArgumentUsageException(
+         pht(
+-          'The "arc anoid" workflow requires "python3" to be available '.
+-          'in your $PATH.'));
++          'The "arc anoid" workflow requires "%%PYTHON_CMD%%" to be available.'));
+     }
+ 
+     $support_dir = phutil_get_library_root('arcanist');
diff --git a/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistLiberateWorkflow.php b/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistLiberateWorkflow.php
new file mode 100644
index 000000000000..f89aa19d3528
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-src_workflow_ArcanistLiberateWorkflow.php
@@ -0,0 +1,11 @@
+--- src/workflow/ArcanistLiberateWorkflow.php.orig	2021-12-10 00:42:19 UTC
++++ src/workflow/ArcanistLiberateWorkflow.php
+@@ -163,7 +163,7 @@ EOTEXT
+     }
+ 
+     return phutil_passthru(
+-      'php -f %R -- %Ls %R',
++      '%%PHP_CMD%% -f %R -- %Ls %R',
+       $bin,
+       $argv,
+       $path);
diff --git a/devel/phorgeit-arcanist-lib/files/patch-support_shell_hooks_bash-completion.sh b/devel/phorgeit-arcanist-lib/files/patch-support_shell_hooks_bash-completion.sh
new file mode 100644
index 000000000000..1d77c05d639d
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/files/patch-support_shell_hooks_bash-completion.sh
@@ -0,0 +1,15 @@
+--- support/shell/hooks/bash-completion.sh.orig	2020-05-14 22:49:28 UTC
++++ support/shell/hooks/bash-completion.sh
+@@ -1,9 +1,10 @@
+ SCRIPTDIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" > /dev/null && pwd )"
+-GENERATED_RULES_FILE="${SCRIPTDIR}/../rules/bash-rules.sh"
++GENERATED_RULES_FILE="%%PREFIX%%/%%PHP_DESTDIR%%/support/shell/rules/bash-rules.sh"
+ 
+ # Try to generate the shell completion rules if they do not yet exist.
+ if [ ! -f "${GENERATED_RULES_FILE}" ]; then
+-  arc shell-complete --generate >/dev/null 2>/dev/null
++  %%PREFIX%%/%%PHP_DESTDIR%%/bin/arc \
++  	shell-complete --generate >/dev/null 2>/dev/null
+ fi;
+ 
+ # Source the shell completion rules.
diff --git a/devel/phorgeit-arcanist-lib/pkg-descr b/devel/phorgeit-arcanist-lib/pkg-descr
new file mode 100644
index 000000000000..01a9dbfcac7e
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/pkg-descr
@@ -0,0 +1,3 @@
+Arcanist is the command-line tool for Phorge. It allows you to interact
+with Phorge installs to send code for review, download patches, transfer
+files, view status, make API calls, and various other things.
diff --git a/devel/phorgeit-arcanist-lib/pkg-plist b/devel/phorgeit-arcanist-lib/pkg-plist
new file mode 100644
index 000000000000..52b0bec53495
--- /dev/null
+++ b/devel/phorgeit-arcanist-lib/pkg-plist
@@ -0,0 +1,1634 @@
+lib/php/arcanist/LICENSE
+lib/php/arcanist/NOTICE
+lib/php/arcanist/README.md
+lib/php/arcanist/bin/arc
+lib/php/arcanist/bin/arc.bat
+lib/php/arcanist/bin/phage
+lib/php/arcanist/externals/README
+lib/php/arcanist/externals/includes/README
+lib/php/arcanist/externals/jsonlint/LICENSE
+lib/php/arcanist/externals/jsonlint/src/Seld/JsonLint/JsonParser.php
+lib/php/arcanist/externals/jsonlint/src/Seld/JsonLint/Lexer.php
+lib/php/arcanist/externals/jsonlint/src/Seld/JsonLint/ParsingException.php
+lib/php/arcanist/externals/jsonlint/src/Seld/JsonLint/Undefined.php
+lib/php/arcanist/resources/arclint/cornucopia.arclint.example
+lib/php/arcanist/resources/arclint/general-purpose.arclint.example
+lib/php/arcanist/resources/arclint/include-exclude.arclint.example
+lib/php/arcanist/resources/php/symbol-information.json
+lib/php/arcanist/resources/spelling/english.json
+lib/php/arcanist/resources/ssl/README
+lib/php/arcanist/scripts/__init_script__.php
+lib/php/arcanist/scripts/arcanist.php
+lib/php/arcanist/scripts/hgdaemon/hgdaemon_client.php
+lib/php/arcanist/scripts/hgdaemon/hgdaemon_server.php
+lib/php/arcanist/scripts/repository/binary_safe_diff.sh
+lib/php/arcanist/src/__phutil_library_init__.php
+lib/php/arcanist/src/__phutil_library_map__.php
+lib/php/arcanist/src/__tests__/PhutilLibraryTestCase.php
+lib/php/arcanist/src/browse/query/ArcanistBrowseCommitHardpointQuery.php
+lib/php/arcanist/src/browse/query/ArcanistBrowseCommitURIHardpointQuery.php
+lib/php/arcanist/src/browse/query/ArcanistBrowseObjectNameURIHardpointQuery.php
+lib/php/arcanist/src/browse/query/ArcanistBrowsePathURIHardpointQuery.php
+lib/php/arcanist/src/browse/query/ArcanistBrowseRevisionURIHardpointQuery.php
+lib/php/arcanist/src/browse/query/ArcanistBrowseURIHardpointQuery.php
+lib/php/arcanist/src/browse/ref/ArcanistBrowseRef.php
+lib/php/arcanist/src/browse/ref/ArcanistBrowseURIRef.php
+lib/php/arcanist/src/browse/workflow/ArcanistBrowseWorkflow.php
+lib/php/arcanist/src/channel/PhutilChannel.php
+lib/php/arcanist/src/channel/PhutilChannelChannel.php
+lib/php/arcanist/src/channel/PhutilExecChannel.php
+lib/php/arcanist/src/channel/PhutilJSONProtocolChannel.php
+lib/php/arcanist/src/channel/PhutilLogFileChannel.php
+lib/php/arcanist/src/channel/PhutilMetricsChannel.php
+lib/php/arcanist/src/channel/PhutilPHPObjectProtocolChannel.php
+lib/php/arcanist/src/channel/PhutilProtocolChannel.php
+lib/php/arcanist/src/channel/PhutilSocketChannel.php
+lib/php/arcanist/src/channel/__tests__/PhutilChannelTestCase.php
+lib/php/arcanist/src/channel/__tests__/PhutilJSONProtocolChannelTestCase.php
+lib/php/arcanist/src/channel/__tests__/PhutilPHPObjectProtocolChannelTestCase.php
+lib/php/arcanist/src/conduit/ArcanistConduitCallFuture.php
+lib/php/arcanist/src/conduit/ArcanistConduitEngine.php
+lib/php/arcanist/src/conduit/ArcanistConduitException.php
+lib/php/arcanist/src/conduit/ArcanistNoURIConduitException.php
+lib/php/arcanist/src/conduit/ConduitClient.php
+lib/php/arcanist/src/conduit/ConduitClientException.php
+lib/php/arcanist/src/conduit/ConduitFuture.php
+lib/php/arcanist/src/conduit/ConduitSearchFuture.php
+lib/php/arcanist/src/conduit/FutureAgent.php
+lib/php/arcanist/src/conduit/__tests__/ConduitClientTestCase.php
+lib/php/arcanist/src/config/ArcanistConfigurationEngine.php
+lib/php/arcanist/src/config/ArcanistConfigurationEngineExtension.php
+lib/php/arcanist/src/config/ArcanistConfigurationSourceList.php
+lib/php/arcanist/src/config/ArcanistConfigurationSourceValue.php
+lib/php/arcanist/src/config/arc/ArcanistArcConfigurationEngineExtension.php
+lib/php/arcanist/src/config/option/ArcanistAliasesConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistBoolConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistListConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistMultiSourceConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistPromptsConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistSingleSourceConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistStringConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistStringListConfigOption.php
+lib/php/arcanist/src/config/option/ArcanistWildConfigOption.php
+lib/php/arcanist/src/config/source/ArcanistConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistDefaultsConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistDictionaryConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistFileConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistFilesystemConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistLocalConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistProjectConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistRuntimeConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistSystemConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistUserConfigurationSource.php
+lib/php/arcanist/src/config/source/ArcanistWorkingCopyConfigurationSource.php
+lib/php/arcanist/src/configuration/ArcanistBlindlyTrustHTTPEngineExtension.php
+lib/php/arcanist/src/configuration/ArcanistConfiguration.php
+lib/php/arcanist/src/configuration/ArcanistConfigurationManager.php
+lib/php/arcanist/src/configuration/ArcanistSetting.php
+lib/php/arcanist/src/configuration/ArcanistSettings.php
+lib/php/arcanist/src/console/PhutilConsole.php
+lib/php/arcanist/src/console/PhutilConsoleFormatter.php
+lib/php/arcanist/src/console/PhutilConsoleMessage.php
+lib/php/arcanist/src/console/PhutilConsoleMetrics.php
+lib/php/arcanist/src/console/PhutilConsoleProgressBar.php
+lib/php/arcanist/src/console/PhutilConsoleServer.php
+lib/php/arcanist/src/console/PhutilConsoleServerChannel.php
+lib/php/arcanist/src/console/PhutilConsoleStdinNotInteractiveException.php
+lib/php/arcanist/src/console/PhutilInteractiveEditor.php
+lib/php/arcanist/src/console/__tests__/PhutilConsoleWrapTestCase.php
+lib/php/arcanist/src/console/__tests__/wrap/long.txt
+lib/php/arcanist/src/console/__tests__/wrap/long.txt.expect
+lib/php/arcanist/src/console/__tests__/wrap/newlines.txt
+lib/php/arcanist/src/console/__tests__/wrap/newlines.txt.expect
+lib/php/arcanist/src/console/__tests__/wrap/plain.txt
+lib/php/arcanist/src/console/__tests__/wrap/plain.txt.expect
+lib/php/arcanist/src/console/__tests__/wrap/trailing-space-prompt.txt
+lib/php/arcanist/src/console/__tests__/wrap/trailing-space-prompt.txt.expect
+lib/php/arcanist/src/console/__tests__/wrap/utf8.txt
+lib/php/arcanist/src/console/__tests__/wrap/utf8.txt.expect
+lib/php/arcanist/src/console/format.php
+lib/php/arcanist/src/console/grid/ArcanistGridCell.php
+lib/php/arcanist/src/console/grid/ArcanistGridColumn.php
+lib/php/arcanist/src/console/grid/ArcanistGridRow.php
+lib/php/arcanist/src/console/grid/ArcanistGridView.php
+lib/php/arcanist/src/console/view/PhutilConsoleBlock.php
+lib/php/arcanist/src/console/view/PhutilConsoleError.php
+lib/php/arcanist/src/console/view/PhutilConsoleInfo.php
+lib/php/arcanist/src/console/view/PhutilConsoleList.php
+lib/php/arcanist/src/console/view/PhutilConsoleLogLine.php
+lib/php/arcanist/src/console/view/PhutilConsoleSkip.php
+lib/php/arcanist/src/console/view/PhutilConsoleTable.php
+lib/php/arcanist/src/console/view/PhutilConsoleView.php
+lib/php/arcanist/src/console/view/PhutilConsoleWarning.php
+lib/php/arcanist/src/difference/ArcanistDiffUtils.php
+lib/php/arcanist/src/difference/ArcanistDiffVectorNode.php
+lib/php/arcanist/src/difference/ArcanistDiffVectorTree.php
+lib/php/arcanist/src/difference/__tests__/ArcanistDiffUtilsTestCase.php
+lib/php/arcanist/src/differential/ArcanistDifferentialCommitMessage.php
+lib/php/arcanist/src/differential/ArcanistDifferentialCommitMessageParserException.php
+lib/php/arcanist/src/differential/ArcanistDifferentialDependencyGraph.php
+lib/php/arcanist/src/differential/constants/ArcanistDifferentialRevisionHash.php
+lib/php/arcanist/src/differential/constants/ArcanistDifferentialRevisionStatus.php
+lib/php/arcanist/src/docs/article/aws.diviner
+lib/php/arcanist/src/docs/article/command_execution.diviner
+lib/php/arcanist/src/docs/article/core_quick_reference.diviner
+lib/php/arcanist/src/docs/article/developing_xhpast.diviner
+lib/php/arcanist/src/docs/article/overview.diviner
+lib/php/arcanist/src/docs/article/using_futures.diviner
+lib/php/arcanist/src/docs/book/arcanist.book
+lib/php/arcanist/src/docs/book/libphutil.book
+lib/php/arcanist/src/engine/ArcanistWorkflowEngine.php
+lib/php/arcanist/src/error/PhutilAggregateException.php
+lib/php/arcanist/src/error/PhutilErrorHandler.php
+lib/php/arcanist/src/error/PhutilErrorTrap.php
+lib/php/arcanist/src/error/PhutilMethodNotImplementedException.php
+lib/php/arcanist/src/error/PhutilOpaqueEnvelope.php
+lib/php/arcanist/src/error/PhutilOpaqueEnvelopeKey.php
+lib/php/arcanist/src/error/PhutilProxyException.php
+lib/php/arcanist/src/error/__tests__/PhutilErrorHandlerTestCase.php
+lib/php/arcanist/src/error/__tests__/PhutilOpaqueEnvelopeTestCase.php
+lib/php/arcanist/src/error/phlog.php
+lib/php/arcanist/src/events/PhutilEvent.php
+lib/php/arcanist/src/events/PhutilEventEngine.php
+lib/php/arcanist/src/events/PhutilEventListener.php
+lib/php/arcanist/src/events/constant/ArcanistEventType.php
+lib/php/arcanist/src/events/constant/PhutilEventConstants.php
+lib/php/arcanist/src/events/constant/PhutilEventType.php
+lib/php/arcanist/src/exception/ArcanistConduitAuthenticationException.php
+lib/php/arcanist/src/exception/ArcanistDiffByteSizeException.php
+lib/php/arcanist/src/exception/ArcanistMissingArgumentTerminatorException.php
+lib/php/arcanist/src/exception/ArcanistUsageException.php
+lib/php/arcanist/src/exception/PhutilInvalidStateException.php
+lib/php/arcanist/src/exception/PhutilRegexException.php
+lib/php/arcanist/src/exception/__tests__/PhutilInvalidStateExceptionTestCase.php
+lib/php/arcanist/src/exception/usage/ArcanistNoEffectException.php
+lib/php/arcanist/src/exception/usage/ArcanistNoEngineException.php
+lib/php/arcanist/src/exception/usage/ArcanistUserAbortException.php
+lib/php/arcanist/src/extensions/README
+lib/php/arcanist/src/filesystem/FileFinder.php
+lib/php/arcanist/src/filesystem/FileList.php
+lib/php/arcanist/src/filesystem/Filesystem.php
+lib/php/arcanist/src/filesystem/FilesystemException.php
+lib/php/arcanist/src/filesystem/PhutilDeferredLog.php
+lib/php/arcanist/src/filesystem/PhutilDirectoryFixture.php
+lib/php/arcanist/src/filesystem/PhutilErrorLog.php
+lib/php/arcanist/src/filesystem/PhutilFileLock.php
+lib/php/arcanist/src/filesystem/PhutilLock.php
+lib/php/arcanist/src/filesystem/PhutilLockException.php
+lib/php/arcanist/src/filesystem/PhutilProcessQuery.php
+lib/php/arcanist/src/filesystem/PhutilProcessRef.php
+lib/php/arcanist/src/filesystem/TempFile.php
+lib/php/arcanist/src/filesystem/__tests__/FileFinderTestCase.php
+lib/php/arcanist/src/filesystem/__tests__/FilesystemTestCase.php
+lib/php/arcanist/src/filesystem/__tests__/PhutilDeferredLogTestCase.php
+lib/php/arcanist/src/filesystem/__tests__/PhutilFileLockTestCase.php
+lib/php/arcanist/src/filesystem/__tests__/PhutilProcessRefTestCase.php
+lib/php/arcanist/src/filesystem/__tests__/data/.hidden.txt
+lib/php/arcanist/src/filesystem/__tests__/data/exclude/file.txt
+lib/php/arcanist/src/filesystem/__tests__/data/exclude/test
+lib/php/arcanist/src/filesystem/__tests__/data/file.txt
+lib/php/arcanist/src/filesystem/__tests__/data/include_dir.txt/anotherfile.txt
+lib/php/arcanist/src/filesystem/__tests__/data/include_dir.txt/subdir.txt/alsoinclude.txt
+lib/php/arcanist/src/filesystem/__tests__/data/include_dir.txt/subdir.txt/test
+lib/php/arcanist/src/filesystem/__tests__/data/include_dir.txt/test
+lib/php/arcanist/src/filesystem/__tests__/data/test
+lib/php/arcanist/src/filesystem/__tests__/data/test.txt
+lib/php/arcanist/src/filesystem/binary/PhutilBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/PhutilDiffBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/PhutilGitBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/PhutilMercurialBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/PhutilPygmentizeBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/PhutilSubversionBinaryAnalyzer.php
+lib/php/arcanist/src/filesystem/binary/__tests__/PhutilBinaryAnalyzerTestCase.php
+lib/php/arcanist/src/filesystem/linesofalarge/LinesOfALarge.php
+lib/php/arcanist/src/filesystem/linesofalarge/LinesOfALargeExecFuture.php
+lib/php/arcanist/src/filesystem/linesofalarge/LinesOfALargeFile.php
+lib/php/arcanist/src/filesystem/linesofalarge/__tests__/LinesOfALargeExecFutureTestCase.php
+lib/php/arcanist/src/filesystem/linesofalarge/__tests__/LinesOfALargeFileTestCase.php
+lib/php/arcanist/src/filesystem/memory/ArcanistHostMemorySnapshot.php
+lib/php/arcanist/src/filesystem/memory/__tests__/ArcanistHostMemorySnapshotTestCase.php
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_badunits.txt
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_duplicate.txt
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_invalid.txt
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_missing.txt
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_normal.txt
+lib/php/arcanist/src/filesystem/memory/__tests__/data/meminfo_swap_zero.txt
+lib/php/arcanist/src/future/Future.php
+lib/php/arcanist/src/future/FutureIterator.php
+lib/php/arcanist/src/future/FuturePool.php
+lib/php/arcanist/src/future/FutureProxy.php
+lib/php/arcanist/src/future/ImmediateFuture.php
+lib/php/arcanist/src/future/MethodCallFuture.php
+lib/php/arcanist/src/future/__tests__/FutureIteratorTestCase.php
+lib/php/arcanist/src/future/__tests__/MethodCallFutureTestCase.php
+lib/php/arcanist/src/future/asana/PhutilAsanaFuture.php
+lib/php/arcanist/src/future/aws/PhutilAWSCloudFormationFuture.php
+lib/php/arcanist/src/future/aws/PhutilAWSCloudWatchFuture.php
+lib/php/arcanist/src/future/aws/PhutilAWSEC2Future.php
+lib/php/arcanist/src/future/aws/PhutilAWSException.php
+lib/php/arcanist/src/future/aws/PhutilAWSFuture.php
+lib/php/arcanist/src/future/aws/PhutilAWSS3Future.php
+lib/php/arcanist/src/future/aws/PhutilAWSv4Signature.php
+lib/php/arcanist/src/future/aws/PhutilCloudWatchMetric.php
+lib/php/arcanist/src/future/aws/__tests__/PhutilAWSv4SignatureTestCase.php
+lib/php/arcanist/src/future/aws/management/PhutilAWSManagementWorkflow.php
+lib/php/arcanist/src/future/aws/management/PhutilAWSS3DeleteManagementWorkflow.php
+lib/php/arcanist/src/future/aws/management/PhutilAWSS3GetManagementWorkflow.php
+lib/php/arcanist/src/future/aws/management/PhutilAWSS3ManagementWorkflow.php
+lib/php/arcanist/src/future/aws/management/PhutilAWSS3PutManagementWorkflow.php
+lib/php/arcanist/src/future/exec/CommandException.php
+lib/php/arcanist/src/future/exec/ExecFuture.php
+lib/php/arcanist/src/future/exec/PhutilBacktraceSignalHandler.php
+lib/php/arcanist/src/future/exec/PhutilCallbackSignalHandler.php
+lib/php/arcanist/src/future/exec/PhutilConsoleMetricsSignalHandler.php
+lib/php/arcanist/src/future/exec/PhutilExecPassthru.php
+lib/php/arcanist/src/future/exec/PhutilExecutableFuture.php
+lib/php/arcanist/src/future/exec/PhutilSignalHandler.php
+lib/php/arcanist/src/future/exec/PhutilSignalRouter.php
+lib/php/arcanist/src/future/exec/__tests__/ExecFutureTestCase.php
+lib/php/arcanist/src/future/exec/__tests__/ExecPassthruTestCase.php
+lib/php/arcanist/src/future/exec/execx.php
+lib/php/arcanist/src/future/github/PhutilGitHubFuture.php
+lib/php/arcanist/src/future/github/PhutilGitHubResponse.php
+lib/php/arcanist/src/future/http/BaseHTTPFuture.php
+lib/php/arcanist/src/future/http/HTTPFuture.php
+lib/php/arcanist/src/future/http/HTTPSFuture.php
+lib/php/arcanist/src/future/http/PhutilHTTPEngineExtension.php
+lib/php/arcanist/src/future/http/status/HTTPFutureCURLResponseStatus.php
+lib/php/arcanist/src/future/http/status/HTTPFutureCertificateResponseStatus.php
+lib/php/arcanist/src/future/http/status/HTTPFutureHTTPResponseStatus.php
+lib/php/arcanist/src/future/http/status/HTTPFutureParseResponseStatus.php
+lib/php/arcanist/src/future/http/status/HTTPFutureResponseStatus.php
+lib/php/arcanist/src/future/http/status/HTTPFutureTransportResponseStatus.php
+lib/php/arcanist/src/future/oauth/PhutilOAuth1Future.php
+lib/php/arcanist/src/future/oauth/__tests__/PhutilOAuth1FutureTestCase.php
+lib/php/arcanist/src/future/paypal/PhutilPayPalAPIFuture.php
+lib/php/arcanist/src/future/postmark/PhutilPostmarkFuture.php
+lib/php/arcanist/src/future/slack/PhutilSlackFuture.php
+lib/php/arcanist/src/future/twitch/PhutilTwitchFuture.php
+lib/php/arcanist/src/future/wordpress/PhutilWordPressFuture.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpoint.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointEngine.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointFutureList.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointList.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointObject.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointQuery.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointRequest.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointRequestList.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointTask.php
+lib/php/arcanist/src/hardpoint/ArcanistHardpointTaskResult.php
+lib/php/arcanist/src/hardpoint/ArcanistObjectListHardpoint.php
+lib/php/arcanist/src/hardpoint/ArcanistScalarHardpoint.php
+lib/php/arcanist/src/hardpoint/ArcanistVectorHardpoint.php
+lib/php/arcanist/src/hgdaemon/ArcanistHgClientChannel.php
+lib/php/arcanist/src/hgdaemon/ArcanistHgProxyClient.php
+lib/php/arcanist/src/hgdaemon/ArcanistHgProxyServer.php
+lib/php/arcanist/src/hgdaemon/ArcanistHgServerChannel.php
+lib/php/arcanist/src/init/init-library.php
+lib/php/arcanist/src/init/lib/PhutilBootloader.php
+lib/php/arcanist/src/init/lib/PhutilBootloaderException.php
+lib/php/arcanist/src/init/lib/PhutilLibraryConflictException.php
+lib/php/arcanist/src/init/lib/PhutilMissingSymbolException.php
+lib/php/arcanist/src/init/lib/__tests__/PhutilModuleUtilsTestCase.php
+lib/php/arcanist/src/init/lib/core.php
+lib/php/arcanist/src/init/lib/moduleutils.php
+lib/php/arcanist/src/inspector/ArcanistBrowseRefInspector.php
+lib/php/arcanist/src/inspector/ArcanistRefInspector.php
+lib/php/arcanist/src/inspector/ArcanistWorkingCopyStateRefInspector.php
+lib/php/arcanist/src/internationalization/ArcanistUSEnglishTranslation.php
+lib/php/arcanist/src/internationalization/PhutilLocale.php
+lib/php/arcanist/src/internationalization/PhutilNumber.php
+lib/php/arcanist/src/internationalization/PhutilPerson.php
+lib/php/arcanist/src/internationalization/PhutilTranslation.php
+lib/php/arcanist/src/internationalization/PhutilTranslator.php
+lib/php/arcanist/src/internationalization/__tests__/PhutilLocaleTestCase.php
+lib/php/arcanist/src/internationalization/__tests__/PhutilPersonTest.php
+lib/php/arcanist/src/internationalization/__tests__/PhutilPhtTestCase.php
+lib/php/arcanist/src/internationalization/__tests__/PhutilTranslationTestCase.php
+lib/php/arcanist/src/internationalization/__tests__/PhutilTranslatorTestCase.php
+lib/php/arcanist/src/internationalization/locales/PhutilAllCapsEnglishLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilBritishEnglishLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilCzechLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilEmojiLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilEnglishCanadaLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilFrenchLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilGermanLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilKoreanLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilPirateEnglishLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilPortugueseBrazilLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilPortuguesePortugalLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilRawEnglishLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilSimplifiedChineseLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilSpanishSpainLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilTraditionalChineseLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilUSEnglishLocale.php
+lib/php/arcanist/src/internationalization/locales/PhutilVeryWowEnglishLocale.php
+lib/php/arcanist/src/internationalization/pht.php
+lib/php/arcanist/src/internationalization/translation/LibphutilUSEnglishTranslation.php
+lib/php/arcanist/src/ip/PhutilCIDRBlock.php
+lib/php/arcanist/src/ip/PhutilCIDRList.php
+lib/php/arcanist/src/ip/PhutilIPAddress.php
+lib/php/arcanist/src/ip/PhutilIPv4Address.php
+lib/php/arcanist/src/ip/PhutilIPv6Address.php
+lib/php/arcanist/src/ip/__tests__/PhutilIPAddressTestCase.php
+lib/php/arcanist/src/land/ArcanistLandCommit.php
+lib/php/arcanist/src/land/ArcanistLandCommitSet.php
+lib/php/arcanist/src/land/ArcanistLandSymbol.php
+lib/php/arcanist/src/land/ArcanistLandTarget.php
+lib/php/arcanist/src/land/engine/ArcanistGitLandEngine.php
+lib/php/arcanist/src/land/engine/ArcanistLandEngine.php
+lib/php/arcanist/src/land/engine/ArcanistMercurialLandEngine.php
+lib/php/arcanist/src/land/exception/ArcanistLandPushFailureException.php
+lib/php/arcanist/src/lexer/PhutilJSONFragmentLexer.php
+lib/php/arcanist/src/lexer/PhutilJavaFragmentLexer.php
+lib/php/arcanist/src/lexer/PhutilLexer.php
+lib/php/arcanist/src/lexer/PhutilPHPFragmentLexer.php
+lib/php/arcanist/src/lexer/PhutilPythonFragmentLexer.php
+lib/php/arcanist/src/lexer/PhutilShellLexer.php
+lib/php/arcanist/src/lexer/PhutilSimpleOptionsLexer.php
+lib/php/arcanist/src/lexer/PhutilTypeLexer.php
+lib/php/arcanist/src/lexer/__tests__/PhutilPHPFragmentLexerTestCase.php
+lib/php/arcanist/src/lexer/__tests__/PhutilShellLexerTestCase.php
+lib/php/arcanist/src/lexer/__tests__/PhutilSimpleOptionsLexerTestCase.php
+lib/php/arcanist/src/lexer/__tests__/php/basics.txt
+lib/php/arcanist/src/lexer/__tests__/php/case-insensitive.txt
+lib/php/arcanist/src/lexer/__tests__/php/catch.txt
+lib/php/arcanist/src/lexer/__tests__/php/comments.txt
+lib/php/arcanist/src/lexer/__tests__/php/extendsimplements.txt
+lib/php/arcanist/src/lexer/__tests__/php/haltcompiler.txt
+lib/php/arcanist/src/lexer/__tests__/php/heredocs.txt
+lib/php/arcanist/src/lexer/__tests__/php/pop-from-php.txt
+lib/php/arcanist/src/lexer/__tests__/php/symbols.txt
+lib/php/arcanist/src/lexer/__tests__/php/trailing-backslash-1.txt
+lib/php/arcanist/src/lexer/__tests__/php/trailing-backslash-2.txt
+lib/php/arcanist/src/lexer/__tests__/php/trailing-backslash-b.txt
+lib/php/arcanist/src/lexer/__tests__/shell/basic.txt
+lib/php/arcanist/src/lexer/__tests__/shell/escape.txt
+lib/php/arcanist/src/lexer/__tests__/shell/slashes.txt
+lib/php/arcanist/src/lexer/__tests__/shell/spaces.txt
+lib/php/arcanist/src/lexer/__tests__/shell/strings.txt
+lib/php/arcanist/src/lexer/__tests__/shell/unterminated.txt
+lib/php/arcanist/src/lint/ArcanistLintMessage.php
+lib/php/arcanist/src/lint/ArcanistLintPatcher.php
+lib/php/arcanist/src/lint/ArcanistLintResult.php
+lib/php/arcanist/src/lint/ArcanistLintSeverity.php
+lib/php/arcanist/src/lint/__tests__/ArcanistLintMessageTestCase.php
+lib/php/arcanist/src/lint/engine/ArcanistComprehensiveLintEngine.php
+lib/php/arcanist/src/lint/engine/ArcanistConfigurationDrivenLintEngine.php
+lib/php/arcanist/src/lint/engine/ArcanistLintEngine.php
+lib/php/arcanist/src/lint/engine/ArcanistSingleLintEngine.php
+lib/php/arcanist/src/lint/engine/ArcanistUnitTestableLintEngine.php
+lib/php/arcanist/src/lint/linter/ArcanistBaseXHPASTLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistCSSLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistCSharpLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistChmodLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistClosureLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistCoffeeLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistComposerLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistCppcheckLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistCpplintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistExternalLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistFilenameLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistFlake8Linter.php
+lib/php/arcanist/src/lint/linter/ArcanistFutureLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistGeneratedLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistGoLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistHLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistInlineHTMLXHPASTLinterRule.php
+lib/php/arcanist/src/lint/linter/ArcanistJSHintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistJSONLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistJSONLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistJscsLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistLesscLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistMergeConflictLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistNoLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPEP8Linter.php
+lib/php/arcanist/src/lint/linter/ArcanistPhpLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPhpcsLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPhutilLibraryLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPuppetLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPyFlakesLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistPyLintLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistRuboCopLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistRubyLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistScriptAndRegexLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistSpellingLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistTextLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistXHPASTLinter.php
+lib/php/arcanist/src/lint/linter/ArcanistXMLLinter.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistCSSLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistChmodLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistClosureLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistCoffeeLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistCppcheckLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistCpplintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistExternalLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistFilenameLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistFlake8LinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistGeneratedLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistGoLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistHLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistJSHintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistJSONLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistJscsLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistLesscLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistMergeConflictLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistNoLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPEP8LinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPhpLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPhpcsLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPuppetLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPyFlakesLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistPyLintLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistRuboCopLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistRubyLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistSpellingLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistTestXHPASTLintSwitchHook.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistTextLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistXHPASTLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/ArcanistXMLLinterTestCase.php
+lib/php/arcanist/src/lint/linter/__tests__/chmod/empty_executable.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/chmod/shebang.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/camel_case_classes.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/duplicate_key.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/indentation.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/max_line_length.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_backticks.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_debugger.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_tabs.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_throwing_strings.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_trailing_semicolons.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/coffeelint/no_trailing_whitespace.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/cppcheck/file1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/cppcheck/inline-suppr.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/cppcheck/ok.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/cppcheck/zblair.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/cpplint/googlestyle.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/csslint/duplicate-properties.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/csslint/empty-rule.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/csslint/no-line-related-issue.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/csslint/parse-error.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/filename/bad_filename.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/filename/good_filename.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/flake8/undefined.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/generated/generated.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/generated/not-generated.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/gjslint/gjslint.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/golint/1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/hlint/01_warn_null.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/hlint/02_err_eta.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/hlint/03_no_err.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jscs/curly-brace.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/dot-notation.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/expected-conditional.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/jshint.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/missing-semicolon.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/too-many-errors.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/jshint/unnecessary-semicolon.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/10.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/11.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/12.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/13.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/14.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/15.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/16.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/17.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/19.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/2.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/20.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/21.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/22.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/23.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/24.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/25.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/26.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/27.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/28.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/29.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/3.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/30.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/31.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/32.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/33.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/34.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/4.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/5.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/6.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/7.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/8.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/json/9.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/css.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/empty.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/add-mixed-units.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/color-func-invalid-color.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/divide-mixed-units.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/import-missing.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/javascript-error.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/javascript-undefined-var.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/mixin-not-visible-in-scope-1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/multiply-mixed-units.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/parens-error-1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/parse-error-curly-bracket.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/parse-error-missing-bracket.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/recursive-variable.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/errors/unit-function.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/extract-and-length.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/functions.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/javascript.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/media.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/mixins.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/no-output.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/operations.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/parens.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/selectors.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/lessc/variables.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/mergeconflict/mergeconflict.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/nolint/lint.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/nolint/nolint.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/pep8/imports.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/php/fatal.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/php/no-errors.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/php/syntax.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/phpcs/basics.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/phpcs/no-errors.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/arrow_alignment.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/double_quoted_strings.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/duplicate_params.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/ensure_not_symlink_target.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/file_mode.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/hard_tabs.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/names_containing_dash.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/quoted_booleans.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/right_to_left_relationship.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/site.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/slash_comments.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/star_comments.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/puppet-lint/unquoted_file_mode.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/pyflakes/pyflakes.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/pylint/negativechar.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/pylint/pylint.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/rubocop/convention.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/rubocop/error.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/rubocop/no_errors.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/rubocop/warning.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/ruby/hello.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/ruby/semicolon.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/ruby/wvswc.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/spelling/spell.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/bad-charset.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/bof-whitespace-1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/bof-whitespace-2.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/dos-newline.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/empty.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/eof-whitespace.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/line-wrap.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/trailing-whitespace-1.lint-test
+lib/php/arcanist/src/lint/linter/__tests__/text/trailing-whitespace-2.lint-test
*** 1044 LINES SKIPPED ***