Permalink
Commits on Aug 1, 2016
  1. Add a lint error about use of PHP short array syntax ('[...]')

    Summary: Ref T11409. Add lint to detect using `[...]` to define arrays. This doesn't work in PHP 5.2/5.3, which some of our users run.
    
    Test Plan:
      - Ran `arc unit`.
      - Ran `arc lint src/applications/harbormaster/conduit/HarbormasterQueryBuildsConduitAPIMethod.php` to detect the issue in T11409.
    
    Reviewers: yelirekim, chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T11409
    
    Differential Revision: https://secure.phabricator.com/D16357
    epriestley committed Aug 1, 2016
Commits on Jul 27, 2016
  1. Remove command spelling correction from Arcanist

    Summary: Fixes T7489. Depends on D16332, which moved this code to libphutil.
    
    Test Plan:
    ```
    $ arc banch --bystatus
    (Assuming 'banch' is the British spelling of 'branch'.)
    (Assuming '--bystatus' is the British spelling of '--by-status'.)
    ...
    ```
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T7489
    
    Differential Revision: https://secure.phabricator.com/D16333
    epriestley committed Jul 27, 2016
  2. Fixes help message for stop command

    Test Plan: arc help stop will display 'Stop tracking work...'
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: avivey, chad, epriestley
    
    Differential Revision: https://secure.phabricator.com/D16310
    Hunsu committed with epriestley Jul 27, 2016
Commits on Jul 12, 2016
  1. Use phutil functions to copy/move files

    Summary:
    The `cp` and `mv` commands, when run from a Windows
    environment, error out.  Use library functions from `Filesystem`
    for cross-platform compatibility.
    
    Test Plan:
    Ran `arc lint` with auto-fix lint errors on both Linux and
    Windows.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Spies: Korvin, epriestley
    
    Differential Revision: https://secure.phabricator.com/D16273
    alexmv committed Jul 11, 2016
Commits on Jun 28, 2016
  1. Validate Arcanist install-certificate URIs more carefully

    Summary: Fixes T11222. This was lazy-future-proofed for Conduit SSH support, but users are boundlessly creative. Check protocols explicitly.
    
    Test Plan:
    ```
    $ arc install-certificate a.b:1/
    Usage Exception: Server URI "a.b:1/" must include the "http" or "https" protocol. It should be in the form "https://phabricator.example.com/".
    ```
    
      - Also went through a successful workflow with a URI in the form provided in the example.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T11222
    
    Differential Revision: https://secure.phabricator.com/D16188
    epriestley committed Jun 28, 2016
Commits on Jun 17, 2016
  1. Remove the "you have not specified reviewers" prompt from the `arc` c…

    …lient
    
    Summary:
    Ref T4631. Ref T10939. I don't have any good solutions here; this is perhaps the least-bad one.
    
      - This prompt is misleading/confusing in the presence of Herald/Owners.
      - This prompt is likely of very little value for experienced reviewers.
      - When it works, this prompt may be of some value for new reviewers, but getting it wrong is probably more confusing than getting it right is helpful, and there is a more accurate version of the warning in the web UI that new users are likely to see.
      - In the long run, this code should not live in the client.
    
    Test Plan: Created this revision without specifying reviewers, probably didn't get prompted.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T4631, T10939
    
    Differential Revision: https://secure.phabricator.com/D16139
    epriestley committed Jun 17, 2016
Commits on Jun 9, 2016
  1. Use an HTTPEngineExtension to implement "https.blindly-trust-domains"…

    … in Arcanist
    
    Summary: Ref T10227. This converts weird hard-codey magic to the new HTTPEngineExtension.
    
    Test Plan: See D16090.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T10227
    
    Differential Revision: https://secure.phabricator.com/D16091
    epriestley committed Jun 9, 2016
Commits on Jun 7, 2016
  1. Use "internal" smoothing for code diffs in Arcanist

    Summary: Ref T7643. This moves the prefix/suffix smoothing behavior back to the old one, which seems better for code diffs.
    
    Test Plan: `arc unit --everything`
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T7643
    
    Differential Revision: https://secure.phabricator.com/D16074
    epriestley committed Jun 7, 2016
  2. Use EditDistanceMatrix diff smoothing in Arcanist

    Summary:
    Ref T7643. We've done the smoothing from D16068 for a long time, it just wasn't part of EditDistanceMatrix.
    
    Since it now is, call it instead of keeping a copy of the logic around.
    
    Previously, the unit tests were testing un-smoothed diffs. Just have them test smoothed diffs instead, since nothing actually uses unsmoothed diffs.
    
    Test Plan: Pasted a raw diff into the web UI, got a sensible inline diff for it.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T7643
    
    Differential Revision: https://secure.phabricator.com/D16069
    epriestley committed Jun 7, 2016
Commits on Jun 6, 2016
  1. Don't specify size 0 for deleted files

    Summary: See D15828 - arc is reporting file size as `0` for unexisting files - make it stop.
    
    Test Plan: `arc diff` with empty, deleted, added files - see size reported as `null` when appropriate.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: chad, Korvin
    
    Differential Revision: https://secure.phabricator.com/D16059
    avivey committed with avivey Jun 6, 2016
  2. Read arc aliases from all available configuration files

    Summary: Fixes T10431. Updates the getAliases() method to read every `arc` configuration file.
    
    Test Plan:
    Added an `arc duck` alias to `/etc/arcconfig`, ran `arc duck`, saw "quack".
    
    Added an `arc pig` alias to `~/.arcrc` via `arc alias`, ran `arc pig`, saw "oink oink".
    
    Reviewers: nevogd, chad, #blessed_reviewers
    
    Reviewed By: chad, #blessed_reviewers
    
    Subscribers: eadler, epriestley
    
    Tags: #twitter
    
    Maniphest Tasks: T10431
    
    Differential Revision: https://secure.phabricator.com/D15342
    epriestley committed Jun 6, 2016
Commits on Jun 5, 2016
  1. SVN buildSyntheticAdditionDiff: exit sooner if path is a directory

    Summary:
    When doing svn copy, or svn mv, a SynthenticAdditionDiff is generated.
    
    If the path is a directory, an error will occur when checking the
    mime-type of the directory. Immediately after the properties check,
    the function returns null if the path is a directory. Move this
    check to before the properties check to avoid exiting with an error.
    
    ```
    Command failed with error #1!
    COMMAND
    svn propget 'svn:mime-type' '/home/trasz/svn/ports/cad/py-pycam'@
    
    STDOUT
    (empty)
    
    STDERR
    svn: warning: W200017: Property 'svn:mime-type' not found on '/home/trasz/svn/ports/cad/py-pycam@'
    svn: E200000: A problem occurred; see other errors for details
    
    (Run with `--trace` for a full exception trace.)
    ```
    
    Test Plan: Created differentials of changes with `svn copy` and `svn mv`
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin
    
    Tags: #subversion
    
    Differential Revision: https://secure.phabricator.com/D15985
    allanjude committed with epriestley Jun 5, 2016
Commits on May 16, 2016
  1. Fix `arc which` for svn repos

    Summary:
    `arc which` is currently broken for svn repos.
    
    Fixes T6635
    
    (I think I independently wrote an identical change to yours)
    
    Test Plan: `∴../../p/arcanist/bin/arc which` on a svn repo.
    
    Reviewers: aik099, epriestley, #blessed_reviewers
    
    Reviewed By: aik099, epriestley, #blessed_reviewers
    
    Subscribers: aik099, Korvin
    
    Maniphest Tasks: T6635
    
    Differential Revision: https://secure.phabricator.com/D15922
    epriestley committed with eadler May 16, 2016
Commits on Apr 29, 2016
  1. Prefer pip to easy_install

    Summary:
    Prefer pip to easy_install
    also fixes incorrect install instructions for closure linters
    
    Fixes T10892
    Ref T10038
    
    Test Plan: inspection
    
    Reviewers: avivey, #blessed_reviewers, epriestley, tjstum
    
    Reviewed By: avivey, #blessed_reviewers, epriestley, tjstum
    
    Subscribers: avivey, Korvin
    
    Maniphest Tasks: T10038, T10892
    
    Differential Revision: https://secure.phabricator.com/D15818
    grimreaper committed with eadler Apr 29, 2016
  2. When running XHPAST unit tests, include the "syntax error" lint rule

    Summary:
    See rARC3ffed59bd7. Currently, when a unit test includes a syntax error, it is raised in an unclear way ("error at line 10, char 1: XHP1 Unknown lint message!").
    
    This is because each test case only activates rules it wants to test, so we lose the ID/name for the syntax message. However, we always want to test this and the lint engine can always raise it.
    
    To get a better error message, include it unconditionally. So a test for rule `X` really tests two rules: syntax, and `X`.
    
    Test Plan:
    Ran `arc unit` at HEAD, got a better test failure:
    
    ```
       FAIL  ArcanistCallTimePassByReferenceXHPASTLinterRuleTestCase::testLinter
    In 'call-time-pass-by-reference.lint-test', expected lint to raise error on line 10 at char 8, but no error was raised. Actually raised:
      error at line 10, char 1: XHP1 PHP Syntax Error!
    ```
    
    NOTE: This doesn't pass tests yet, it just makes the test failure easier to understand. I'll see about fixing the test in the next change.
    
    Reviewers: chad, richardvanvelzen
    
    Reviewed By: richardvanvelzen
    
    Differential Revision: https://secure.phabricator.com/D15819
    epriestley committed Apr 29, 2016
  3. Update xhpast linter rules for new function AST format

    Summary: See D15678. A node containing a return type hint is added right before the statement body node. This updates all relevant linter rules to now retrieve the body from the correct index.
    
    Test Plan: Ran `arc unit --everything`, inspected every single message to make sure all xhpast test cases succeeded. Also grepped for `getChildByIndex(5` and `getChildOfType(5`.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D15814
    rvanvelzen committed Apr 28, 2016
  4. Fix incorrect variable for linter standards

    Summary: It is currently not possible to apply multiple linter standards because `$value` was used instead of `$standard`.
    
    Test Plan: Was able to apply multiple linter standards.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: eadler, thaiphv, Korvin
    
    Differential Revision: https://secure.phabricator.com/D15212
    joshuaspence committed with eadler Apr 29, 2016
Commits on Apr 27, 2016
  1. Recognize error codes from Flake8 extensions

    Summary:
    Flake8 extensions are allowed to use their own letter-prefixed codes. For
    example, the flake8-debugger extension emits 'T002'-tagged messages.
    
    This change relaxes getLintCodeFromLinterConfigurationKey() to also recognize
    extension codes. Otherwise, attempting to configure message severities for
    e.g. 'T002' would result in an exception.
    
    Messages from extensions continue to default to ERROR severity, as they did
    before this change.
    
    Test Plan:
    Successfully reduced the severity of 'T002' to a warning via .arclint:
    
        "severity": {
            "T002": "warning"
        }
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D15810
    jparise committed Apr 27, 2016
Commits on Apr 16, 2016
  1. Improve performance of `arc branch` in Git with many branches

    Summary:
    This is mostly just a personal quality-of-life fix. I run this command fairly often and having it return a little faster is nice.
    
    This replaces a `git show` for each individual branch with a big `git for-each-ref` which we were already running anyway. This is quite a bit faster.
    
    This command also occasionally hangs or segfaults for me while executing the huge pile of subprocesses. This is unreliable to reproduce, probably some bug in some PHP extension I have, and likely hard to narrow down, and this approach is better in every way anyway.
    
    Test Plan:
      - Ran `arc branch` in Git, observed faster output (in my `phabricator/`, about 2000ms -> 1200ms).
      - Ran `arc feature` in Mercurial.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Differential Revision: https://secure.phabricator.com/D15735
    epriestley committed Apr 16, 2016
Commits on Apr 9, 2016
  1. Allow amending revisions without commandeering first

    Summary:
    It is common practice in Wikimedia's projects to amend a contributor's
    change without taking over authorship of the change. We found that
    the only enforcement of commandeering before amending is in arcanist,
    not validated server-side. While it would be fairly straightforward to
    maintain this as a patch to arcanist, I thought I would see if upstream
    is willing to support making this optional.
    
    With this change, amending without commandeering is enabled by a flag in
    `.arcconfig` and it defaults to the old behavior.
    
    For background see [wmf T121751](https://phabricator.wikimedia.org/T121751)
    
    Test Plan:
    * ran `arc patch D146` to locally apply a revision that I did not author,
    * made a trivial change and amended the commit.
    * ran `arc diff --update D146 HEAD^` to send the update to differential
    * Saw that https://phabricator.wikimedia.org/D146 updated as it should.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: greggrossmeier, aklapper, Luke081515.2, Korvin, dereckson
    
    Maniphest Tasks: T10584
    
    Differential Revision: https://secure.phabricator.com/D15468
    20after4 committed Apr 9, 2016
Commits on Apr 2, 2016
  1. Strip tips out of commit messages from `arc backout`

    Summary:
    Fixes T10707. Currently, `arc backout` creates a commit message which includes questionably-helpful "tips" in the message itself.
    
    Strip these out.
    
    Test Plan:
    Used `arc backout` to revert any commit, then `git show` to see the generated message.
    
      - Before patch: included tips.
      - After patch: no tips.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T10707
    
    Differential Revision: https://secure.phabricator.com/D15573
    epriestley committed Apr 2, 2016
Commits on Mar 15, 2016
  1. Make callsigns optional in arcanist

    Summary:
    Remove couple of references to callsigns:
    - `arc which` now prints repository name
    - `getShouldAmend()` can now use new format of commit name
    
    a quick git-grep looks like the remaining references are all about `repository.callsign` config.
    
    Ref T4245
    
    Test Plan:
    - `arc which` on a repository with no callsign
    - trigger `requireCleanWorkingCopy()`, see both "Do you want to amend this change" and "Do you want to create a new commit" prompts.
    - fire this diff with new code.
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin
    
    Maniphest Tasks: T4245
    
    Differential Revision: https://secure.phabricator.com/D15472
    avivey committed with avivey Mar 15, 2016
Commits on Mar 7, 2016
  1. When `arc` pushes to the staging area, tell Phabricator what we did

    Summary:
    Ref T10093. Right now, Phabricator kind of guesses that `arc` probably pushed stuff to the staging area.
    
    This can cause confusing/misleading errors later, if it didn't actually push.
    
    Instead, tell Phabricator that we pushed, so we can raise more tailored messages in the web UI (e.g., make "Land Revision" say "this wasn't pushed to the staging area" instead of "whoops, error!!~").
    
    Test Plan:
    Ran `arc diff` a few times, then looked in the database for properties.
    
    {F1161655}
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T10093
    
    Differential Revision: https://secure.phabricator.com/D15426
    epriestley committed Mar 7, 2016
  2. When pushing changes to staging, also push the base commit

    Summary:
    Fixes T10509. Pushing changes to staging can be inefficient. What happens, roughly, is:
    
      - Master is at commit "W" -- "W" is the most recent published commit in the main repository.
      - The local working copy has one change on top of that, "X", so its history is commits "A, B, C, D, E, F, ..., U, V, W, X".
      - The remote has some other previous changes that I or other users have made, maybe like "A, B, C, ..., S, T, U, Y" and "A, B, C, ..., T, U, V, Z", from previous pushes to staging areas.
      - "X", "Y" and "Z" will never actually make it to master, because they'll be squash-merged/amended by `arc land`.
    
    So the local says "I want to push 'X'", and the remote says "I know about 'Y' and 'Z', are those in the history of 'W'? You only need to send me new stuff if they are".
    
    But they aren't, so the local says "nope, so here's the whole history for you". This is slow and sends a ton of data that the remote already has over the network.
    
    In theory, Git could use a slightly different algorithm to tell the local about more commits, but this is hard, rarely useful, and not the kind of thing I'd be excited about changing if I was the Git upstream.
    
    Instead, when pushing "X", also push "W", to trick Git into telling future clients about it.
    
    Now, the remote should say "I know about 'W', 'Y' and 'Z'", and the local will say "oh, great, 'W' is in history, here's just the changes since then".
    
    Also, fail `arc diff` if the push to staging fails, and tell users to use `--skip-staging`. This code has been in production for a while and doesn't seem to have any issues, and a failed push to staging prevents builds, lands, etc.
    
    Test Plan:
      - Ran `arc diff`, saw two changes push.
      - Ran `arc diff --base arc:empty`, saw only one change push.
      - Ran `arc diff` with an intentionally broken staging area, saw an error.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T10509
    
    Differential Revision: https://secure.phabricator.com/D15424
    epriestley committed Mar 7, 2016
Commits on Mar 5, 2016
  1. Use python2 instead of python in `arc anoid` shebang`

    Summary:
    With the old shebang of `#!/usr/bin/env python` on machines with python 3 as the default python it would fail.
    Prefer an explicit python2 like PEP 394 suggests.
    
    Test Plan: ran ./arc anoid and played a game
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D15408
    grimreaper committed with epriestley Mar 5, 2016
Commits on Mar 4, 2016
  1. Properly URL encode branches in `arc browse --branch ...`

    Summary: Fixes T10511. If you `arc browse --branch x/y/z`, we do not encode the URI properly.
    
    Test Plan:
    Ran `arc browse --branch x/y/z/ something.c`.
    
    Before, got an error about "x" does not exist. This is wrong; the error should be about "x/y/z".
    
    After, got the proper error:
    
    {F1141096}
    
    Reviewers: chad, avivey
    
    Reviewed By: avivey
    
    Maniphest Tasks: T10511
    
    Differential Revision: https://secure.phabricator.com/D15397
    epriestley committed Mar 4, 2016
  2. Report unit test details from Arcanist to Harbormaster

    Summary: Ref T10457. Provides information for D15363.
    
    Test Plan: See D15363.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Maniphest Tasks: T9951, T10457
    
    Differential Revision: https://secure.phabricator.com/D15364
    epriestley committed Feb 29, 2016
Commits on Feb 24, 2016
  1. Filter out some Clover coverage to prevent false positives

    Summary: Clover reports generated from PHPUnit sometimes give false positives of lines that were not covered by a test that should have actually been not coverable, apparently due to inaccurate static analysis of files that weren't actually executed. This filters coverage reports of files that show no coverage which avoids these false positives. Fixes T10420.
    
    Test Plan:
    Looked at coverage reports of files before and after the change
    
    Before: {F1124115}
    
    After: {F1124113}
    
    Reviewers: #blessed_reviewers, epriestley
    
    Reviewed By: #blessed_reviewers, epriestley
    
    Subscribers: Korvin, aurelijus
    
    Maniphest Tasks: T10420
    
    Differential Revision: https://secure.phabricator.com/D15343
    Firehed committed Feb 24, 2016
Commits on Feb 10, 2016
  1. Add --quiet to `git fetch` on `arc land`

    Summary: This makes it a bit quieter.
    
    Test Plan: shh
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Differential Revision: https://secure.phabricator.com/D15236
    epriestley committed Feb 10, 2016
  2. Use passthru to run `git fetch` in `arc land` so password prompts work

    Summary:
    Fixes T10314. In `arc land`, we currently run `git fetch` as a subprocess.
    
    However, this can prevent password prompts (when fetching over HTTP with basic authentication) from working properly.
    
    Instead, use passthru to redirect stdin/stdout to the subprocess so the user can type their password.
    
    This adds a little extra clutter to the `arc land` output but I think that's OK.
    
    Test Plan: See T10314, @maxie confirmed this fixes the issue.
    
    Reviewers: chad
    
    Reviewed By: chad
    
    Subscribers: maxie
    
    Maniphest Tasks: T10314
    
    Differential Revision: https://secure.phabricator.com/D15233
    epriestley committed Feb 10, 2016
Commits on Jan 25, 2016
  1. Make `arc unit` NoseTestEngine work in a sub-dir

    Summary:
    D14362 didn't actually work in a subdirectory.
    
    This globs the tests/ directory to find test_*.py, now you get
    more than just a coverage report when running `arc unit --everything`
    whether it's run from the project root or a subdirectory.
    
    Test Plan:
    ran `arc unit --everything` from project root and also ran it from
    a sub-directory.
    
    ```
    $ arc unit --everything
       PASS    1ms★  test_log.FilterTest.test_filter_can_invert_behavior
       PASS    1ms★  test_log.FilterTest.test_filter_filters_matching
       PASS   <1ms★  test_log.FilterTest.test_filter_filters_matching_lambda
       PASS    1ms★  test_log.FilterTest.test_filter_filters_matching_regex
       PASS    3ms★  test_log.FilterTest.test_filter_loads
       PASS    2ms★  test_log.FilterTest.test_filter_loads_filters_correctly
       PASS   <1ms★  test_log.FilterTest.test_filter_loads_supports_numeric_comparisons
       PASS    1ms★  test_log.FilterTest.test_filter_parse
       PASS    1ms★  test_log.JSONFormatterTest.test_format_includes_all_serializable_logrecord_fields
       PASS    1ms★  test_log.JSONFormatterTest.test_format_includes_exceptions_as_text
       PASS   <1ms★  test_log.JSONFormatterTest.test_format_includes_extra_fields
       PASS    1ms★  test_log.JSONFormatterTest.test_make_record
       PASS    1ms★  test_nrpe.NRPETest.test_load
       PASS   <1ms★  test_nrpe.NRPETest.test_registered_check
       PASS   <1ms★  test_nrpe.NRPETest.test_unregistered_check
       PASS   <1ms★  test_ssh.JSONOutputHandlerTest.test_accept_ignores_bad_json
       PASS   <1ms★  test_ssh.JSONOutputHandlerTest.test_accept_parses_and_logs_json_messages
       PASS   <1ms★  test_ssh.JSONOutputHandlerTest.test_lines_buffers_partial_lines
       PASS    4ms★  test_checks.ChecksConfigTest.test_custom_type
       PASS    2ms★  test_checks.ChecksConfigTest.test_load_bad_type
       PASS    5ms★  test_checks.ChecksConfigTest.test_load_valid_config
       PASS   19ms★  test_checks.ChecksExecuteTest.test_execute
       PASS  222ms   test_checks.ChecksExecuteTest.test_execute_concurrency
       PASS   18ms★  test_checks.ChecksExecuteTest.test_execute_failure
       PASS   15ms★  test_checks.ChecksExecuteTest.test_execute_timeout
       PASS   <1ms★  test_utils.UtilsTest.test_check_php_opening_tag
       PASS    3ms★  test_utils.UtilsTest.test_check_target_hosts
       PASS    1ms★  test_utils.UtilsTest.test_check_valid_json_file
       PASS   <1ms★  test_utils.UtilsTest.test_get_env_specific_filename
    ```
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin
    
    Differential Revision: https://secure.phabricator.com/D14363
    20after4 committed Jan 25, 2016
  2. Add support for '--everything' in NoseTestEngine

    Summary: Adds support for running all unit tests with NoseTestEngine.
    
    Test Plan:
    `ran arc unit --everything` and got unit test results
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: joshuaspence, Korvin
    
    Differential Revision: https://secure.phabricator.com/D14362
    20after4 committed Jan 25, 2016
Commits on Jan 15, 2016
  1. Cleans up some minor issues in cpplint

    Summary:
    - Corrected typo in install instructions
    - Sets the default binary to cpplint.py
    
    Test Plan:
    - Running the unit tests.
    
    You may need to check your test environment is set up with the latest
    cpplint.py available, since the default binary is being changed.
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin
    
    Maniphest Tasks: T10157
    
    Differential Revision: https://secure.phabricator.com/D15030
    michaeloa committed with epriestley Jan 15, 2016
Commits on Jan 14, 2016
  1. Minor fixes to arcanist cpplint

    Summary:
    This fixes the regex in "getLintCode..." so that it accepts lint
    codes such as `build/c++11` which have become valid lint codes
    in later versions of cpplint.
    
    It also corrects the install instructions for the linter (Google's
    style guide is no longer available on SVN and has been migrated to
    Github).
    
    Test Plan:
    For the Regex:
    - Create an .arclint in a project such as:
    ```
    {
      "linters": {
        "cpplint": {
          "type": "cpplint",
          "severity": {
            "build/c++11": "advice"
          }
        }
      }
    }
    ```
    - Run `arc lint` with the existing linter. This should fail. Patch the linter, and this should now be accepted.
    
    For the Instructions
    - Verify the download location `wget https://raw.github.com/google/styleguide/gh-pages/cpplint/cpplint.py`
    
    Reviewers: epriestley, #blessed_reviewers
    
    Reviewed By: epriestley, #blessed_reviewers
    
    Subscribers: Korvin
    
    Maniphest Tasks: T10118
    
    Differential Revision: https://secure.phabricator.com/D15019
    michaeloa committed with epriestley Jan 14, 2016