bazelbuild / bazelbuild/remote-apis

REv3 idea: Make is_topologically_sorted the default, and eliminate tag bytes

Open
#232 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Go
Stars
445
Forks
141
PR merge metrics
No merged PRs in 30d

Description

In #229 and #230 we added a new `is_topologically_sorted` flag that can be used by workers to indicate that Tree objects are topologically sorted, making it easier to process them. It also simplified the wire format of Tree objects slightly, making it easier to parse them without using a Protobuf library.

1. This proposal is to make this option the default, requiring that all workers generate such Trees.
2. It proposes that we remove the tag bytes from the records, as they no longer serve any real purpose. It is already implied that the root directory is the first to be stored.
3. As (2) causes the encoding to differ from message Tree, we should then remove this message entirely. There are no other parts of the protocol where it is used.

Note that this is just a minor cleanup. If it turns out we manage to solve issues like #170, we can close this as being irrelevant.

Contributor guide

Open the contributing guide

Research direction

Start by reading issues #229 and #230 and locating the Tree wire-format definition and uses of the Tree message; the payload names no files or tests. Determine whether the proposed default ordering, tag-byte removal, and message removal are still relevant, with completion defined by an agreed protocol change and corresponding worker compatibility.

Written by the indexing model from the issue text.

Assessment

Domain
api, backend-api-design
Issue type
Refactor
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
20/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.