| OLD | NEW |
| 1 // Copyright 2016 The LUCI Authors. All rights reserved. | 1 // Copyright 2016 The LUCI Authors. All rights reserved. |
| 2 // Use of this source code is governed under the Apache License, Version 2.0 | 2 // Use of this source code is governed under the Apache License, Version 2.0 |
| 3 // that can be found in the LICENSE file. | 3 // that can be found in the LICENSE file. |
| 4 | 4 |
| 5 // Recompile with libprotoc 2.5.0: | 5 // Recompile with libprotoc 2.5.0: |
| 6 // protoc -I recipe_engine recipe_engine/package.proto --python_out=recipe_engin
e | 6 // protoc -I recipe_engine recipe_engine/package.proto --python_out=recipe_engin
e |
| 7 | 7 |
| 8 syntax = "proto2"; | 8 syntax = "proto2"; |
| 9 | 9 |
| 10 package recipe_engine; | 10 package recipe_engine; |
| 11 | 11 |
| 12 message DepSpec { | 12 message DepSpec { |
| 13 // Same meaning as Package.project_id, but the id for this dependency. This | |
| 14 // should always match the project_id of the repo that we're depending on. | |
| 15 optional string project_id = 1; | 13 optional string project_id = 1; |
| 16 | |
| 17 // The URL of where to fetch the package data. Must always be a git repo URL. | |
| 18 optional string url = 2; | 14 optional string url = 2; |
| 19 | |
| 20 // The ref to git-fetch when syncing this dependency. | |
| 21 optional string branch = 3; | 15 optional string branch = 3; |
| 22 | |
| 23 // The git commit that we depend on. | |
| 24 optional string revision = 4; | 16 optional string revision = 4; |
| 25 | 17 |
| 26 // Treat a subtree of a repo as a whole repo unto itself. This must match | 18 // Treat a subtree of a repo as a whole repo unto itself. |
| 27 // the value of `recipes_path` in the target repo. | |
| 28 optional string path_override = 5; | 19 optional string path_override = 5; |
| 29 | 20 |
| 30 enum RepoType { | 21 enum RepoType { |
| 31 // Do a full 'git clone' of this dependency. | |
| 32 GIT = 0; | 22 GIT = 0; |
| 33 | |
| 34 // Use GITILES to fetch the dependency data via the GITILES REST API. | |
| 35 GITILES = 1; | 23 GITILES = 1; |
| 36 } | 24 } |
| 37 // How this dependency should be fetched. | |
| 38 // | |
| 39 // NOTE: this option may be removed in the future in preference for | |
| 40 // automatically picking the repo fetch method. | |
| 41 optional RepoType repo_type = 6 [default = GIT]; | 25 optional RepoType repo_type = 6 [default = GIT]; |
| 42 } | 26 } |
| 43 | 27 |
| 44 message Package { | 28 message Package { |
| 45 // The "API Version" of this proto. Should always equal 1, currently. This may | |
| 46 // change if a backwards-incompatible update must be done for the proto. In | |
| 47 // the event that a backwards incompatible change happens, however, | |
| 48 // api_version will remain at tag 1. | |
| 49 optional int32 api_version = 1; // Version 1 | 29 optional int32 api_version = 1; // Version 1 |
| 50 | |
| 51 // The "id" of how this package is referred to within recipes. This becomes | |
| 52 // the prefix in DEPS when something depends on one of this package's modules | |
| 53 // (e.g. DEPS=["recipe_engine/path"]). This should match the name of the repo | |
| 54 // in the luci-config service associated with the repo, and should not contain | |
| 55 // slashes. | |
| 56 optional string project_id = 2; | 30 optional string project_id = 2; |
| 57 | |
| 58 // The path (using forward slashes) to where the base of the recipes are found | |
| 59 // in the repo (i.e. where the "recipes" and/or "recipe_modules" directories | |
| 60 // live). | |
| 61 optional string recipes_path = 3; | 31 optional string recipes_path = 3; |
| 62 | 32 repeated DepSpec deps = 4; |
| 63 // The "source of truth" for this package's data, e.g. | |
| 64 // "https://github.com/luci/recipes-py" | |
| 65 // This is used for documentation purposes, and does NOT need to match the | |
| 66 // `url` field in any other package's deps (in order to allow for mirroring). | |
| 67 // | |
| 68 // The documentation generator will infer paths to files that are relative to | |
| 69 // this URL, and knows about the following git host URL schemes: | |
| 70 // * GitHub | |
| 71 // * Gitiles | |
| 72 optional string canonical_base_url = 4; | |
| 73 | |
| 74 // Any package dependencies that this package has. | |
| 75 repeated DepSpec deps = 5; | |
| 76 } | 33 } |
| OLD | NEW |