Index: recipe_engine/package.proto |
diff --git a/recipe_engine/package.proto b/recipe_engine/package.proto |
index 40345018b765b07a1203a46fadf7a5478ce6c635..f419746853852ac4ce1d173497565b0b3e9cd57c 100644 |
--- a/recipe_engine/package.proto |
+++ b/recipe_engine/package.proto |
@@ -10,24 +10,67 @@ syntax = "proto2"; |
package recipe_engine; |
message DepSpec { |
+ // Same meaning as Package.project_id, but the id for this dependency. This |
+ // should always match the project_id of the repo that we're depending on. |
optional string project_id = 1; |
+ |
+ // The URL of where to fetch the package data. Must always be a git repo URL. |
optional string url = 2; |
+ |
+ // The ref to git-fetch when syncing this dependency. |
optional string branch = 3; |
+ |
+ // The git commit that we depend on. |
optional string revision = 4; |
- // Treat a subtree of a repo as a whole repo unto itself. |
+ // Treat a subtree of a repo as a whole repo unto itself. This must match |
+ // the value of `recipes_path` in the target repo. |
optional string path_override = 5; |
enum RepoType { |
+ // Do a full 'git clone' of this dependency. |
GIT = 0; |
+ |
+ // Use GITILES to fetch the dependency data via the GITILES REST API. |
GITILES = 1; |
} |
+ // How this dependency should be fetched. |
+ // |
+ // NOTE: this option may be removed in the future in preference for |
+ // automatically picking the repo fetch method. |
optional RepoType repo_type = 6 [default = GIT]; |
} |
message Package { |
+ // The "API Version" of this proto. Should always equal 1, currently. This may |
+ // change if a backwards-incompatible update must be done for the proto. In |
+ // the event that a backwards incompatible change happens, however, |
+ // api_version will remain at tag 1. |
optional int32 api_version = 1; // Version 1 |
+ |
+ // The "id" of how this package is referred to within recipes. This becomes |
+ // the prefix in DEPS when something depends on one of this package's modules |
+ // (e.g. DEPS=["recipe_engine/path"]). This should match the name of the repo |
+ // in the luci-config service associated with the repo, and should not contain |
+ // slashes. |
optional string project_id = 2; |
+ |
+ // The path (using forward slashes) to where the base of the recipes are found |
+ // in the repo (i.e. where the "recipes" and/or "recipe_modules" directories |
+ // live). |
optional string recipes_path = 3; |
- repeated DepSpec deps = 4; |
+ |
+ // The "source of truth" for this package's data, e.g. |
+ // "https://github.com/luci/recipes-py" |
+ // This is used for documentation purposes, and does NOT need to match the |
+ // `url` field in any other package's deps (in order to allow for mirroring). |
+ // |
+ // The documentation generator will infer paths to files that are relative to |
+ // this URL, and knows about the following git host URL schemes: |
+ // * GitHub |
+ // * Gitiles |
+ optional string canonical_base_url = 4; |
+ |
+ // Any package dependencies that this package has. |
+ repeated DepSpec deps = 5; |
} |