bazelbuild / bazelbuild/remote-apis
REv3 idea: Make is_topologically_sorted the default, and eliminate tag bytes
- 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
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