New issue
Advanced search Search tips

Issue 914992 link

Starred by 2 users

Issue metadata

Status: Started
Owner:
Cc:
Components:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 2
Type: Feature



Sign in to add a comment

First class protobuf support in recipe engine

Project Member Reported by iannu...@google.com, Dec 13

Issue description

Recipes and modules should be able to:
  * Define all property inputs+outputs as a proto message
  * Define intermediate (config) types as proto messages
  * Be able to send proto messages to/from commands (like we send freeform json to/from commands with the 'json' module).

recipe engine should grow a new 'gen' command (with 'doc' and 'proto' as subcommands)

.proto files should be automatically generated during "train" phase of recipes

recipe engine should bring along a matching `protoc` at 'gen' time (using CIPD)

.proto modules should have some sensible organization relative to recipes, modules and expectation file locations.

Eventually proto messages should be used to replace `config.py` and all related config types (Single, ConfigGroup, etc.).
 
Cc: phosek@chromium.org
Status: Available (was: Untriaged)
That could create a structured path forward to migration to Go.
Cc: joshuaseaton@google.com
+joshua who may be interested as well
Owner: iannu...@google.com
Status: Started (was: Available)
I'm actually sorta working on this as part of the build.proto stuff. Not sure if it will turn into a full solution or not.
Project Member

Comment 4 by bugdroid1@chromium.org, Dec 20

The following revision refers to this bug:
  https://chromium.googlesource.com/infra/infra/+/e5a9b06e1ea5e79e15552c3ed22d584f50d961dc

commit e5a9b06e1ea5e79e15552c3ed22d584f50d961dc
Author: Robert Iannucci <iannucci@chromium.org>
Date: Thu Dec 20 22:00:11 2018

[dockerbuild] Add protobuf 3.6.1

Needed so that recipe engine can have a consistent version of protoc and
protobuf library (since the current `protoc` version is actually 3.6.1)

R=jchinlee@chromium.org, tandrii@chromium.org

Bug: 909848, 914992
Change-Id: I419a8410fb6d8d4ac0fe6dcbad619bd9ee0de5e6
Reviewed-on: https://chromium-review.googlesource.com/c/1385677
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
Cr-Commit-Position: refs/heads/master@{#19692}
[modify] https://crrev.com/e5a9b06e1ea5e79e15552c3ed22d584f50d961dc/infra/tools/dockerbuild/wheel.py
[modify] https://crrev.com/e5a9b06e1ea5e79e15552c3ed22d584f50d961dc/infra/tools/dockerbuild/wheels.md

Sign in to add a comment