Commit 3261092e authored by Andrew Grieve's avatar Andrew Grieve Committed by Commit Bot

cipd.md: Add "What is CIPD?" section

Change-Id: I31401d78ab9da6a1a8f00945e617e70e6c1ecd56
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2110631Reviewed-by: default avatarPeter Wen <wnwen@chromium.org>
Reviewed-by: default avatarJohn Budorick <jbudorick@chromium.org>
Commit-Queue: Peter Wen <wnwen@chromium.org>
Cr-Commit-Position: refs/heads/master@{#751817}
parent 05e29bde
# CIPD for chromium dependencies
This document outlines how to use [CIPD][1] for managing binary dependencies in
chromium.
[TOC]
## What is CIPD?
* CIPD stands for "Chrome Infrastructure Package Deployment".
* Its code and docs [live within the luci-go project][CIPD].
* Chromium uses CIPD to avoid checking large binary files into git, which git
does not handle well.
* gclient supports CIPD packages in the same way as git repositories. They are
specified in [DEPS] and updated via `gclient sync`.
* You can [browse Chromium's CIPD repository][browse] online.
[CIPD]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/cipd/README.md
[DEPS]: /DEPS
[browse]: https://chrome-infra-packages.appspot.com/p/chromium
## Adding a new CIPD dependency
### 1. Set up a new directory for your dependency
......@@ -26,7 +36,9 @@ create the following:
README.chromium
```
For more on third-party dependencies, see [adding_to_third_party.md][2].
For more on third-party dependencies, see [adding_to_third_party.md].
[adding_to_third_party.md]: /docs/adding_to_third_party.md
### 2. Acquire whatever you want to package
......@@ -122,6 +134,8 @@ For more information about the package definition spec, see [the code][3].
> but it is recommended. Doing so has benefits for visibility and ease of
> future updates.
[the code]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/cipd/client/cipd/builder/pkgdef.go
### 4. Create your CIPD package
To actually create your package, you'll need:
......@@ -204,7 +218,7 @@ $ cipd acl-list chromium
...
```
By default, [cria/project-chromium-cipd-owners][4] own all CIPD packages
By default, [cria/project-chromium-cipd-owners][cria] own all CIPD packages
under `chromium/`. If you're adding a package, talk to one of them.
To obtain write access to a new package, ask an owner to run:
......@@ -213,6 +227,8 @@ To obtain write access to a new package, ask an owner to run:
$ cipd acl-edit chromium/third_party/sample_cipd_dep -owner user:email@address.com
```
[cria]: https://chrome-infra-auth.appspot.com/auth/groups/project-chromium-cipd-owners
## Troubleshooting
- **A file maintained by CIPD is missing, and gclient sync doesn't recreate it.**
......@@ -225,8 +241,3 @@ To clear the cache and force a full reinstallation, delete your
Note that there is a [bug](https://crbug.com/794764) on file to add a mode to CIPD
that is not so trusting of its own cache.
[1]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/cipd/
[2]: /docs/adding_to_third_party.md
[3]: https://chromium.googlesource.com/infra/luci/luci-go/+/master/cipd/client/cipd/builder/pkgdef.go
[4]: https://chrome-infra-auth.appspot.com/auth/groups/project-chromium-cipd-owners
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment