blob: 6fcadccd48eb65cd34708b8b1b8f80b63ec8d566 [file] [log] [blame] [view]
# Fuchsia Recipes
This repository contains recipes for Fuchsia.
A recipe is a Python script that runs a series of commands, using the
[recipe engine](https://chromium.googlesource.com/infra/luci/recipes-py/)
framework from the LUCI project. We use recipes to automatically check out,
build, and test Fuchsia in continuous integration jobs. The commands the recipes
use are very similar to the ones you would use as a developer to check out,
build, and test Fuchsia in your local environment.
See [go/fuchsia-recipe-docs](http://go/fuchsia-recipe-docs) for complete
documentation and a guide for getting started with writing recipes.
## Getting the code and setting up your environment
### For everyday development
The recommended way to get the source code is with jiri. A recipe will not run
without `vpython` and `cipd`, and using these recommended jiri manifests will
ensure that you have these tools.
You can use the
[fuchsia infra Jiri manifest](https://fuchsia.googlesource.com/manifest/+/main/infra)
or the
[internal version (Googlers-only)](http://go/fxi-cookbook#infra-checkout).
Once that manifest is imported in your local jiri manifest, `jiri update` should
download `vpython` and `cipd` into `<JIRI ROOT>/fuchsia-infra/prebuilt/tools/`.
If you add that directory to your PATH, you should be good to go.
### Quick changes
If you're just trying to make a single small change to in this repository and
already have your local environment set up for recipe development (e.g.
because you work with another recipes repository) you can simply clone this
repository with git:
```sh
git clone https://fuchsia.googlesource.com/infra/recipes
```
Then it will be up to you to ensure that `vpython` and `cipd` are available
in your PATH.
## Code formatting
We format python code using [Black](https://github.com/psf/black), an
open-source Python autoformatter. It should be in your PATH if you followed the
instructions for
[setting up your environment](#getting-the-code-and-setting-up-your-environment).
After committing recipe changes, you can format the files in your commit by
running `black .` in your project root.
Many editors also have a setting to run Black automatically whenever you save a
Python file (or on a keyboard shortcut). For VS Code, add the following to your
workspace `settings.json` to make your editor compatible with Black and turn on
auto-formatting on save:
```js
{
"python.formatting.provider": "black",
"python.formatting.blackPath": "<absolute path to the black executable>",
"[python]": {
"editor.formatOnSave": true,
"editor.rulers": [88], // Black enforces a line length of 88 characters.
},
...
}
```