2011-05-23 16:42:58 +02:00
|
|
|
@title Arcanist User Guide: Configuring a New Project
|
|
|
|
@group userguide
|
|
|
|
|
|
|
|
Explains how to configure Arcanist projects with ##.arcconfig## files.
|
|
|
|
|
|
|
|
= .arcconfig Basics =
|
|
|
|
|
|
|
|
Arcanist uses ##.arcconfig## files to determine a number of things about project
|
|
|
|
configuration. For instance, these are things it figures out from
|
|
|
|
##.arcconfig##:
|
|
|
|
|
|
|
|
- where the logical root directory of a project is;
|
|
|
|
- which server Arcanist should send diffs to for code review; and
|
|
|
|
- which lint rules should be applied.
|
|
|
|
|
|
|
|
An ##.arcconfig## file is a JSON file which you check into your project's root.
|
|
|
|
A simple, valid file looks something like this:
|
|
|
|
|
|
|
|
{
|
|
|
|
"project_id" : "some_project_name",
|
2011-06-26 20:52:10 +02:00
|
|
|
"conduit_uri" : "https://phabricator.example.com/"
|
2011-05-23 16:42:58 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
Here's what these options mean:
|
|
|
|
|
|
|
|
- **project_id**: a human-readable string identifying the project
|
2011-06-26 20:52:10 +02:00
|
|
|
- **conduit_uri**: the URI for the Phabricator installation that Arcanist
|
|
|
|
should send diffs to for review. Be mindful about "http" vs "https".
|
2011-05-23 16:42:58 +02:00
|
|
|
|
|
|
|
For an exhaustive list of available options, see below.
|
|
|
|
|
|
|
|
= Advanced .arcconfig =
|
|
|
|
|
|
|
|
Other options include:
|
|
|
|
|
2011-06-26 20:52:10 +02:00
|
|
|
- **lint_engine**: the name of a subclass of
|
|
|
|
@{class@arcanist:ArcanistLintEngine}, which should be used to apply lint
|
|
|
|
rules to this project. See @{article:Arcanist User Guide: Customizing Lint,
|
|
|
|
Unit Tests and Workflows}.
|
2011-05-23 16:42:58 +02:00
|
|
|
- **unit_engine**: the name of a subclass of
|
2011-06-26 20:52:10 +02:00
|
|
|
@{class@arcanist:ArcanistBaseUnitTestEngine}, which should be used to apply
|
|
|
|
unit test rules to this project. See
|
|
|
|
@{article:Arcanist User Guide: Customizing Lint, Unit Tests and Workflows}.
|
2011-05-23 16:42:58 +02:00
|
|
|
- **arcanist_configuration**: the name of a subclass of
|
2011-06-26 20:52:10 +02:00
|
|
|
@{class@arcanist:ArcanistConfiguration} which can add new command flags for
|
|
|
|
this project or provide entirely new commands.
|
2011-05-23 16:42:58 +02:00
|
|
|
- **remote_hooks_installed**: tells Arcanist that you've set up remote hooks
|
2011-06-26 20:52:10 +02:00
|
|
|
in the master repository (see @{article:Arcanist User Guide: Repository
|
|
|
|
Hooks}).
|
|
|
|
- **copyright_holder**: used by @{class@arcanist:ArcanistLicenseLinter} to
|
|
|
|
apply license notices to source files.
|
2011-05-23 16:42:58 +02:00
|
|
|
- **phutil_libraries**: map of additional Phutil libraries to load at startup.
|