Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Commits on May 27, 2015
  1. @joshuaspence

    Send arcanist error output to STDERR

    joshuaspence authored
    Summary: Currently, arcanist error output is sent to `STDOUT` instead of `STDOUT`. This is annoying because I am running `arc lint --everything --never-apply-patches --output=xml > checkstyle.xml` and the `checkstyle.xml` file is not valid XML.
    
    Test Plan: Forced a linter to throw an exception and ran `arc lint >/dev/null`... saw error output.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D13043
Commits on May 25, 2015
  1. @joshuaspence

    Remove reentrant code

    joshuaspence authored
    Summary: Ref T7604. Remove the `reenter_if_this_is_arcanist_or_libphutil` function. Some discussion in D12945.
    
    Test Plan: Ran `./bin/arc --trace help` and saw things happen as expected.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T7604
    
    Differential Revision: https://secure.phabricator.com/D12999
Commits on May 22, 2015
  1. @joshuaspence

    `pht`ize a bunch more strings

    joshuaspence authored
    Summary: I found a few strings that I had missed, using a mostly-broken-but-somewhat-okay custom linter ruler (https://secure.phabricator.com/differential/diff/30988/).
    
    Test Plan: Intense eyeballing.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: aurelijus, Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D12888
Commits on May 7, 2015
  1. @epriestley

    Make --conduit-token work without requiring .arcrc

    epriestley authored
    Summary:
    Ref T5955. This logic is a little cleaner than the previous version.
    
    Don't require `~/.arcrc` to exist if the caller provides `--conduit-token`.
    
    Test Plan:
      - Made calls with `--conduit-token` and no `~/.arcrc`.
      - Made calls with `--conduit-token` and a normal `~/.arcrc`.
      - Made calls with normal `arc`.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: mbishopim3, epriestley
    
    Maniphest Tasks: T5955
    
    Differential Revision: https://secure.phabricator.com/D12750
Commits on May 5, 2015
  1. @epriestley

    Add a --conduit-token parameter to `arc`

    epriestley authored
    Summary: Ref T5955. This makes it easier to write scripts which call Conduit via `arc call-conduit`.
    
    Test Plan: Used `arc --conduit-token ... call-conduit user.whoami` to make calls as various users.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: mbishopim3, epriestley
    
    Maniphest Tasks: T5955
    
    Differential Revision: https://secure.phabricator.com/D12717
Commits on Apr 7, 2015
  1. @joshuaspence

    Fix text lint issues

    joshuaspence authored
    Summary: Ref T5105. This is a proof-of-concept for D11458.
    
    Test Plan: `arc lint --everything`
    
    Reviewers: chad, #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T5105
    
    Differential Revision: https://secure.phabricator.com/D11640
Commits on Apr 5, 2015
  1. @joshuaspence

    Fix an odd looking array

    joshuaspence authored
    Summary: This array looks a little odd, most likely due to the autofix applied by `ArcanistXHPASTLinter::LINT_ARRAY_SEPARATOR`. See D12296 in which I attempt to improve the autocorrection from this linter rule.
    
    Test Plan: N/A
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley
    
    Differential Revision: https://secure.phabricator.com/D12280
Commits on Feb 11, 2015
  1. @epriestley

    Update arcanist to work with more modular translations

    epriestley authored
    Summary:
    Ref T7152. Ref T1139.
    
      - Tweak API.
      - Move translations out of __init__ file.
    
    Test Plan:
      - Ran `arc`.
      - Added a goofy translation and made sure it was working.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T7152, T1139
    
    Differential Revision: https://secure.phabricator.com/D11746
Commits on Feb 10, 2015
  1. @joshuaspence

    Fix `pht` method calls

    joshuaspence authored
    Summary: Ref T7046. This is mainly a proof-of-concept for D11661.
    
    Test Plan: `arc lint`
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin, epriestley
    
    Maniphest Tasks: T7046
    
    Differential Revision: https://secure.phabricator.com/D11683
Commits on Feb 3, 2015
  1. @epriestley

    Make "no working copy" a more explicit "arc" VCS

    epriestley authored
    Summary:
    Some commands (like `get-config`) do not require a working copy at all. Recent changes prevented these commands from running outside a VCS working copy.
    
    Let `null` mean "no working copy".
    
    See also <https://github.com/phacility/phabricator/issues/800>.
    
    Test Plan:
      - Ran `arc get-config` from outside a working copy.
      - Ran `arc list` from outside a working copy, got an error.
      - Ran `arc commit` in a Git working copy, got an error.
    
    Reviewers: joshuaspence
    
    Reviewed By: joshuaspence
    
    Subscribers: epriestley
    
    Differential Revision: https://secure.phabricator.com/D11643
Commits on Feb 2, 2015
  1. @joshuaspence

    Explicitly check for supported VCS

    joshuaspence authored
    Summary: Instead of having an `ArcanistWorkflow` subclass explicitly throw an exception when run in an unsupported VCS, consolidate this code and move it to `arcanist.php`. In doing so, we lose some specificity in some of the error messages, but this otherwise feels cleaner. We could consider adding a `getUnsupportedRevisionControlSystemMessage()` method to provide a more tailored error message. Depends on D11604.
    
    Test Plan:
    Ran `arc bookmark` in a `git` working copy:
    
    ```
    Usage Exception: `arc bookmark` is only supported under hg.
    ```
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D11550
Commits on Jan 6, 2015
  1. @epriestley

    Don't try to call library functions during arc sanity checking

    epriestley authored
    Summary: These functions won't exist yet. See 7e2df9a#commitcomment-9172274
    
    Test Plan: Faked a fatal, ran `arc`, got message.
    
    Reviewers: joshuaspence, chad, btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Differential Revision: https://secure.phabricator.com/D11254
  2. @joshuaspence

    `pht`ize some strings

    joshuaspence authored
    Summary: Self-explanatory.
    
    Test Plan: Eye-balled it.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D10596
Commits on Dec 15, 2014
  1. @epriestley

    Support simpler, token-based Conduit authentication in Arcanist

    epriestley authored
    Summary:
    Ref T5955. If the server supports token-based authentication, prefer it over certificate-based authentication.
    
    Also fixes T3117.
    
    Test Plan:
      - Used `arc install-certificate` to install credentials from both token-based and certificate-based hosts.
      - Used `arc list` with a token-based host.
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Maniphest Tasks: T3117, T2878, T5955
    
    Differential Revision: https://secure.phabricator.com/D10988
Commits on Sep 27, 2014
  1. @joshuaspence

    Minor linter fixes

    joshuaspence authored
    Summary: Apply some linter autofixes.
    
    Test Plan: `arc lint` and `arc unit`
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D10568
Commits on Jul 12, 2014
  1. @joshuaspence

    Fix various spelling mistakes

    joshuaspence authored
    Summary: Minor change, self-explanatory.
    
    Test Plan: Eye-ball it.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9910
Commits on Jul 8, 2014
  1. @joshuaspence

    Remove `@group` annotations

    joshuaspence authored
    Summary: I'm pretty sure that `@group` annotations are useless now... I believe that they were originally used by Diviner?
    
    Test Plan: Eye-balled it.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin, aurelijus
    
    Differential Revision: https://secure.phabricator.com/D9855
Commits on Jul 5, 2014
  1. @joshuaspence

    Move `PhutilLibraryMapBuilder` to `libphutil`

    joshuaspence authored
    Summary: See D9813 for a detailed explanation.
    
    Test Plan:
    ```
    > ./bin/arc liberate
    Finding source files...
    Found 194 files.
    Loading symbol cache...
    Found 194 files in cache.
    Building library map...
    Writing map...
    Done.
    ```
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9815
Commits on Jun 23, 2014
  1. @joshuaspence

    If a `PhutilProxyException` is thrown by Arcanist, print all error me…

    joshuaspence authored
    …ssages.
    
    Summary: `PhutilProxyException` provides the capability to nest exceptions. However, if we throw a `PhutilProxyException` then we currently only display the error message from the top-most exception. Instead, we should print all of the nested exception messages.
    
    Test Plan: Faked an error, saw multiple lines of exception messages.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9697
Commits on Jun 22, 2014
  1. @joshuaspence

    Read extension classes and functions from `php_compat_info.json`.

    joshuaspence authored
    Summary: Consolidate `php_extension_classes.txt` and `php_extension_functions.txt` with `php_compat_info.json`. Given that `php_extension_classes.txt` and `php_extension_functions.txt` are manually generated whereas `php_compat_info.json` is generated automatically, this should make maintenance easier.
    
    Test Plan: Deleted the `src/.phutil_module_cache` file (in each of rARC, rPHU and rP) and ran `arc liberate`.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9662
Commits on Jun 17, 2014
  1. @joshuaspence

    Allow PHP version to be customized with `ArcanistXHPASTLinter`

    joshuaspence authored
    Summary: Fixes T5385. Provide a flexible means of setting a minimum PHP version for the `ArcanistXHPASTLinter`, instead of relying on `ArcanistXHPASTLinter::LINT_PHP_53_FEATURES` and `ArcanistXHPASTLinter::LINT_PHP_54_FEATURES`.
    
    Test Plan: Fixed up and ran unit tests.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T5385
    
    Differential Revision: https://secure.phabricator.com/D9576
  2. @rvanvelzen @epriestley

    Let `arc liberate` throw on unsupported PHP features

    rvanvelzen authored epriestley committed
    Summary: Ref T4725.
    
    Test Plan: add some files that have unsupported constructs all over the place and run `arc liberate`
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T4725
    
    Differential Revision: https://secure.phabricator.com/D9585
Commits on Jun 16, 2014
  1. @rvanvelzen @epriestley

    Let phutil_rebuild_map **really** be quiet

    rvanvelzen authored epriestley committed
    Summary: Depends on D9586. The progress bar is written to stderr which results in bad stuff happening when you try run `lint` (`PhutilLibraryLinter` calls it)
    
    Test Plan: run `arc lint`, see no more errors
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9587
  2. @tals @epriestley

    Allow specifying runtime configuration with --set-config key=value

    tals authored epriestley committed
    Summary:
    This is useful for wrapper scripts that want to customize arcanist's behavior without affecting the global configuration.
    This can be implemented with arcanist_configuration entry in .arcconfig, however it is currently limited to
    per-project settings, and this feature makes writing wrapper scripts a little easier.
    
    Test Plan: arc diff --set-config editor=vim (yeah yeah, crappy test case)
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9442
  3. @rvanvelzen @epriestley

    Let `phutil_rebuild_map` show a progress bar

    rvanvelzen authored epriestley committed
    Summary: .. Instead of dots that are hard to count.
    
    Test Plan: remove `.phutil_module_cache` and do `arc liberate`
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9584
  4. @joshuaspence

    Add constants and class methods to `php_compat_info.json`.

    joshuaspence authored
    Summary: Allows the `ArcanistXHPASTLinter` to determine whether constants can be used, based on the target PHP version. Also added class methods to the compatibility information, although this isn't used yet (it is small anyway).
    
    Test Plan: Created a test file that contained the `JSON_PRETTY_PRINT` constant. Verified that a linter error was raised.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9571
  5. @joshuaspence

    Update `update_compat_info.php` to use PHP_CompatInfo version 3

    joshuaspence authored
    Summary:
    Fixes T5377. The current `scripts/update_compat_info.php` script works for PHP CompatInfo version 2, but doesn't work with the newer version 3.
    
    There are a few breaking changes in version 3 that had to be addressed:
    
    - PHP 5.3 is required. Whilst Arcanist is generally compatible with PHP 5.2, I don't think that having this dependency presents any real issues because it is purely a development tool that is rarely updated.
    - [[https://getcomposer.org/ | Composer]] is used for packaging, which makes including the library slightly more complicated. Basically, I had to install `PHP_CompatInfo` globally with Composer (`composer global require "bartlett/php-compatinfo"` and then symlink `~/.composer/vendor` into `externals/includes`.
    
    Test Plan: Compared the `resources/php_compat_info.json` file. There are a bunch of functions/classes that //were// in this file but are no longer, but I think that I've covered the most popular extensions.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T5377
    
    Differential Revision: https://secure.phabricator.com/D9568
Commits on May 23, 2014
  1. @epriestley

    set custom arcrc file earlier

    epriestley authored
    Summary: It appears to have never really work? At least as far as phabricator.uri (empirically).
    
    Test Plan:
    removed ~/.arcrc, run call-conduit user.whoami with --arcrc-file and --trace.
    set-config, get-config and alias also read and write to the right place now.
    
    Reviewers: avivey
    
    Reviewed By: avivey
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D9263
  2. @joshuaspence @epriestley

    Change double quotes to single quotes.

    joshuaspence authored epriestley committed
    Summary: Ran `arc lint --apply-patches --everything` over rARC, mainly to change double quotes to single quotes where appropriate. These changes also validate that the `ArcanistXHPASTLinter::LINT_DOUBLE_QUOTE` rule is working as expected.
    
    Test Plan: Eyeballed //most// of the diff.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin, aurelijus
    
    Differential Revision: https://secure.phabricator.com/D9269
Commits on May 22, 2014
  1. @joshuaspence @epriestley

    Capture maximum version information in `php_compat_info`.

    joshuaspence authored epriestley committed
    Summary: Ref T5141. In order to be able to warn when deprecated functions are used, we need to be aware of from which version the functions were deprecated.
    
    Test Plan: Ran `arc lint` and made sure no unexpected warnings were raised.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T5141
    
    Differential Revision: https://secure.phabricator.com/D9248
  2. @joshuaspence @epriestley

    Capture a wider range of version information in `php_compat_info.json`.

    joshuaspence authored epriestley committed
    Summary: Ref T5141. Currently, `php_compat_info.json` is hardcoded to support PHP 5.2.3. Instead, store as much version information as possible in `php_compat_info.json` and filter accordingly in `ArcanistXHPASTLinter.`
    
    Test Plan: Ran `arc lint` and made sure no additional warnings were raised.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Maniphest Tasks: T5141
    
    Differential Revision: https://secure.phabricator.com/D9247
Commits on May 13, 2014
  1. @epriestley

    Read 'phabricator.uri' and 'default' out of more config sources

    epriestley authored
    Summary: We have old/inconsistent code for reading these. Instead, read from sources in a modern way.
    
    Test Plan:
      - Removed "default" and "phabricator.uri" from user/local/project config.
      - Set "default" in "/etc/arcconfig".
      - Ran `arc tasks` and got a "connect to Phabricator" message.
    
    Reviewers: btrahan, davedash
    
    Reviewed By: davedash
    
    Subscribers: davedash, epriestley
    
    Differential Revision: https://secure.phabricator.com/D9105
Commits on Apr 29, 2014
  1. @epriestley

    Add "CURLFile" to the class whitelist

    epriestley authored
    Summary: See D8876, etc.
    
    Test Plan: ~o.O~
    
    Reviewers: btrahan
    
    Reviewed By: btrahan
    
    Subscribers: epriestley
    
    Differential Revision: https://secure.phabricator.com/D8877
Commits on Mar 26, 2014
  1. @avivey @epriestley

    fix tab complete for out-of-workdir

    avivey authored epriestley committed
    Summary:
    see https://github.com/facebook/phabricator/issues/546 - arc complete blows up when not
    in a workdir.
    
    There's no "is ArcanistWorkingCopyIdentity object valid" method, but getVCSType() looks like the
    closest match.
    
    git grep for `getProjectRoot` didn't reveal any more problmatic call sites.
    
    Test Plan: `arc [tab] [tab]`
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: epriestley, Korvin
    
    Differential Revision: https://secure.phabricator.com/D8578
Commits on Feb 21, 2014
  1. @epriestley

    Add password_* functions to extension functions list

    epriestley authored
    Summary: These are technically added in PHP 5.5.0 mainline, not an extension, but the two are effectively equiavlent.
    
    Test Plan: o.O
    
    Reviewers: btrahan, dctrwatson
    
    Reviewed By: btrahan
    
    CC: aran
    
    Differential Revision: https://secure.phabricator.com/D8280
Something went wrong with that request. Please try again.