Giter Club home page Giter Club logo

arcanist's Introduction

Build Status

!!!!IMPORTANT!!!!

This is Uber fork of Phabricator Arcanist tooling and the only Arcanist version supported by Uber's Phabricator installation. Make sure you install this version and not upstream! Other than that you can refer to upstream documentation for help and general guidance

Arcanist is the command-line tool for Phabricator. It allows you to interact with Phabricator installs to send code for review, download patches, transfer files, view status, make API calls, and various other things. You can read more in the User Guide

For more information about Phabricator, see http://phabricator.org/.

LICENSE

Arcanist is released under the Apache 2.0 license except as otherwise noted.

arcanist's People

Contributors

20after4 avatar andrewdeandrade avatar andrewjcg avatar artms avatar ascandella avatar aurelijus avatar avivey avatar blampe avatar bobtrahan avatar bvaradar avatar cburroughs avatar dcramer avatar dereckson avatar dschleimer avatar durhamg avatar firehed avatar gonix avatar hach-que avatar indiefan avatar jlfwong avatar joshuaspence avatar kageiit avatar mareksapota-fb avatar mattlwilliams avatar pawka avatar pengstanford avatar robbertvanginkel avatar robpol86 avatar rvanvelzen avatar vrana avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

arcanist's Issues

Receiving BadFunctionCallException From ConfigurableGolangTestEngine

Trying to set up a new Golang service scaffolded from Weaver, I set "unit.engine" to "ConfigurableGolangTestEngine" in my .arcconfig. I am now receiving the following exception when I run arc unit:

tag@tag-C02RQ11AG8WM ~/gocode/src/code.uber.internal/hwautomation/blacksmith $ arc unit --trace
 ARGV  '/usr/local/Cellar/arcanist/tip/arcanist/bin/../scripts/arcanist.php' 'unit' '--trace'
 LOAD  Loaded "phutil" from "/usr/local/Cellar/arcanist/tip/arcanist/externals/includes/libphutil/src".
 LOAD  Loaded "arcanist" from "/usr/local/Cellar/arcanist/tip/arcanist/src".
Config: Reading user configuration file "/Users/tag/.arcrc"...
Config: Did not find system configuration at "/etc/arcconfig".
Working Copy: Reading .arcconfig from "/Users/tag/gocode/src/code.uber.internal/hwautomation/blacksmith/.arcconfig".
Working Copy: Path "/Users/tag/gocode/src/code.uber.internal/hwautomation/blacksmith" is part of `git` working copy "/Users/tag/gocode/src/code.uber.internal/hwautomation/blacksmith".
Working Copy: Project root is at "/Users/tag/gocode/src/code.uber.internal/hwautomation/blacksmith".
Config: Did not find local configuration at "/Users/tag/gocode/src/code.uber.internal/hwautomation/blacksmith/.git/arc/config".
>>> [0] <exec> $ git rev-parse --verify HEAD^
<<< [0] <exec> 9,675 us
>>> [1] <exec> $ git cat-file -t 'origin/master'
<<< [1] <exec> 8,119 us
>>> [2] <exec> $ git merge-base 'origin/master' HEAD
<<< [2] <exec> 6,885 us
>>> [3] <exec> $ git diff --no-ext-diff --no-textconv --raw 'd64b8535f79526eb562f100ec10a69530e2a87fc' --
<<< [3] <exec> 34,996 us
>>> [4] <exec> $ git diff --no-ext-diff --no-textconv --raw 'HEAD' --
>>> [5] <exec> $ git ls-files --others --exclude-standard
<<< [5] <exec> 8,361 us
<<< [4] <exec> 35,103 us
>>> [6] <exec> $ git diff-files --name-only
<<< [6] <exec> 32,579 us

[2016-10-27 01:21:27] EXCEPTION: (BadFunctionCallException) Too many arguments to xsprintf(). at [<phutil>/src/xsprintf/xsprintf.php:83]
arcanist(head=master, ref.master=e9d6fcb78e5d), phutil(head=master, ref.master=84b0feab4220)
  #0 xsprintf(string, array, array) called at [<phutil>/src/xsprintf/PhutilCommandString.php:45]
  #1 PhutilCommandString::renderString(boolean) called at [<phutil>/src/xsprintf/PhutilCommandString.php:30]
  #2 PhutilCommandString::getMaskedString() called at [<phutil>/src/xsprintf/PhutilCommandString.php:18]
  #3 PhutilCommandString::__construct(array) called at [<phutil>/src/xsprintf/csprintf.php:36]
  #4 csprintf(NULL, TempFile, TempFile) called at [<arcanist>/src/unit/engine/ConfigurableGolangTestEngine.php:25]
  #5 ConfigurableGolangTestEngine::buildTestFuture(TempFile, TempFile) called at [<arcanist>/src/unit/engine/ConfigurableGolangTestEngine.php:14]
  #6 ConfigurableGolangTestEngine::run() called at [<arcanist>/src/workflow/ArcanistUnitWorkflow.php:167]
  #7 ArcanistUnitWorkflow::run() called at [<arcanist>/scripts/arcanist.php:392]

arc land is broken when pushurl is not present

With addition of #139 if git config doesn't have pushurl, arc land breaks with following error:

[2019-06-25 14:01:08] EXCEPTION: (CommandException) Command failed with error #1!
COMMAND
git config --get remote.'origin'.pushurl

STDOUT
(empty)

STDERR
(empty) at [<phutil>/src/future/exec/ExecFuture.php:380]
arcanist(head=master, ref.master=527c1882d563), custom-unit-test-engine(), phutil(head=master, ref.master=80b9ff4ad23b)
  #0 ExecFuture::resolvex() called at [<arcanist>/src/repository/api/ArcanistRepositoryAPI.php:406]
  #1 ArcanistRepositoryAPI::execxLocal(string, string) called at [<arcanist>/src/land/UberArcanistSubmitQueueEngine.php:104]
  #2 UberArcanistSubmitQueueEngine::pushChangeToSubmitQueue() called at [<arcanist>/src/land/UberArcanistSubmitQueueEngine.php:44]
  #3 UberArcanistSubmitQueueEngine::execute() called at [<arcanist>/src/workflow/ArcanistLandWorkflow.php:370]
  #4 ArcanistLandWorkflow::run() called at [<arcanist>/scripts/arcanist.php:394]

unit.pytest.command is broken

Our existing unit.pytest.command stops working, I think because of the change from 30b7f12.

# our config 
"unit.pytest.command": "env/bin/pytest --cov-report=xml --junit-xml=%s"

# arc diff output 
EXCEPTION: (Exception) Config option "unit.pytest.command" must have two "%s" placeholders. The first is used for JUNIT_XML. The second for COVERAGE_XML.
Example:
  make clean && make -j8 test-xml JUNIT_XML=%s COVERAGE_XML=%s

However, if we added the placeholder for COVERAGE_XML as suggested, like env/bin/pytest --cov-report=xml:% --junit-xml=%s, we would get the following error,

EXCEPTION: (BadFunctionCallException) Too few arguments to xsprintf(). at [<phutil>/src/xsprintf/xsprintf.php:63]
arcanist(head=master, ref.master=5f1a791f0f0a), phutil(head=master, ref.master=80b9ff4ad23b)
  #0 xsprintf(string, array, array) called at [<phutil>/src/xsprintf/PhutilCommandString.php:45]
  #1 PhutilCommandString::renderString(boolean) called at [<phutil>/src/xsprintf/PhutilCommandString.php:30]
  #2 PhutilCommandString::getMaskedString() called at [<phutil>/src/xsprintf/PhutilCommandString.php:18]
  #3 PhutilCommandString::__construct(array) called at [<phutil>/src/xsprintf/csprintf.php:37]
  #4 csprintf(string, TempFile) called at [<arcanist>/src/unit/engine/ConfigurablePytestTestEngine.php:26]
  #5 ConfigurablePytestTestEngine::buildTestFuture(TempFile, TempFile) called at [<arcanist>/src/unit/engine/ConfigurablePytestTestEngine.php:14]
  #6 ConfigurablePytestTestEngine::run() called at [<arcanist>/src/workflow/ArcanistUnitWorkflow.php:170]
  #7 ArcanistUnitWorkflow::run() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1434]
  #8 ArcanistDiffWorkflow::runUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:1322]
  #9 ArcanistDiffWorkflow::runLintUnit() called at [<arcanist>/src/workflow/ArcanistDiffWorkflow.php:486]
  #10 ArcanistDiffWorkflow::run() called at [<arcanist>/scripts/arcanist.php:394]

"Some reviewers are currently away" breaking non-interactive uses of `arc diff`

Hi,

We are calling arc diff non-interactively from CI tooling, and getting the following new prompt in some cases:

Some reviewers are currently away: 
[REDACTED]

    Continue even though reviewers are unavailable? [y/N]

This seems to be due to this new code merged from upstream: c5920b1#diff-669069c591e7d4fa8ba0a361efd01caa

This doesn't get skipped by arc diff --nolint --nounit and I know of no other way to skip prompts other than echoing y into it (hacky).

I'd like to add a --nointeractive flag to our fork and start using that to gate prompts like this. I'd be happy to create that PR, but I'd thought I better first ask:

a) if there is a better way?,
b) whether we could instead get something like that upstreamed?,
c) if there is anything else I am not considering here

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.