Proto commits in warp-build/warp

These 55 commits are when the Protocol Buffers files have changed:

Commit:9b4a806
Author:Leandro Ostera
Committer:GitHub

feat(tricorders/rust): generate binary and library signatures (#64) + move to nightly + use our own cargo manifest representation (cargo_toml is insuficient, cargo's own repr is not thread safe) + add tests for generating cargo toml signatures + better tree walking using ripgrep's ignore crate + fixed a bunch of tests + introduce `subpath` to dependency requirement + add better logger support using the `WARP_TRICORDER_LOG` env var + add e2e test for booting + update all deps + add anyhow test repository + add external crate support for rust libraries + add signature configuration to transitive dependencies

The documentation is generated from this commit.

Commit:b01df32
Author:Leandro Ostera
Committer:Leandro Ostera

feat(schemas): send Goal when generating subtrees

Commit:f2e4d2e
Author:Leandro Ostera
Committer:Leandro Ostera

feat(core): support saving multiple signatures in code database Since a single Task now can be turned into several signatures, this changeset supports saving multiple signatures into the Code database, and rehydrating them when reading them out. Also, because tree-splitting should return several ASTs (one for each one of the subtrees that match the test matcher), we now support storing them individually as well.

Commit:b1d5d32
Author:Leandro Ostera
Committer:Leandro Ostera

fix: remove unused rule tests

Commit:40d91bf
Author:Leandro Ostera

Add 'rules/' from commit 'b48f99f7e2e9aeeb67aad904380a681a919d5da6' git-subtree-dir: rules git-subtree-mainline: 3d8e2bac62af08db2a3467cecca55e3f63fb86de git-subtree-split: b48f99f7e2e9aeeb67aad904380a681a919d5da6

Commit:7d61437
Author:Leandro Ostera

feat(core): restore AST splitting

Commit:df77fac
Author:Calin Capitanu

feat(schemas): remove symbol, add test_matcher to get_ast

Commit:224de93
Author:Leandro Ostera
Committer:Leandro Ostera

feat(core): support multiple signatures This changeset allows us to handle multiple signatures coming from the resolution phase, including maintaining references as a task gets replaced by another due to the signature split. For this to work, the unit of work has to go from a single Target, to a compound key including the Target _and_ the Signature that is being built. Tasks were the clearest place where we could add the signature information to make all tasks in the queue and in the results unique. Since signatures are rather heavy objects, we introduce the SignatureRegistry to keep track of our signatures while issuing lightweight copyable handlers (SignatureIds). Because some Tasks get replaced by others when they are split into several new tasks due to the signature resolution, we needed also to be able to _replace_ what a Task was, without needing to replace all of the references to that task. For that we introduced the TaskId handler, that is issued by the TaskRegistry, which keeps track of all the tasks in place. And lastly, to avoid anyone being able to build a Task that will go unaccounted for or that will not be possible to _update_ through the TaskRegistry, we introduced the UnregisteredTask struct. This struct is used to capture the intent of creating a task, without actually creating one. Other than this, all the code has been updated to work with the `Task` struct instead of receiving individual Goal, TargetId, and SignatureId information. fix(core): rule expander double-root append The Rule Expander now makes sure that it does not add the root of a Signature to the paths contained in the Rule Config IF the paths already have that root as a prefix. Example: * root=./a/b path=./a/b/file => ./a/b/file * root=./a/b path=./file => ./a/b/file feat(core): send goal to tricorders In order to avoid filtering sigantures in the core, we will send the current Goal to tricorders to let them figure out what are the necessary signatures.

Commit:4b6a47e
Author:Leandro Ostera

feat(core): send TestMatcher to tricorders

Commit:367eeb6
Author:Leandro Ostera
Committer:Leandro Ostera

feat(schemas): new fields for better dep resolution We extend the UrlRequirement message to include a subpath. This can be used to specify what subpath of a specific url is relevant as a requirement. For example, if the URL is a Git repository, this can help us do subtree clones. If the URL is a tarball, this is used to narrow in the uncompressed output, etc. The Dependency message now includes a list of all the outputs that Dependency has generated. This makes it easier to write rules that rely on paths for includes. The PrepareDependency RPC now also includes the name of the package that is being prepared. We also regenerate all relevant code.

Commit:0bcde1c
Author:Leandro Ostera
Committer:Leandro Ostera

feat(core): reintroduce dependency preparation rpc for tricorders

Commit:625ad1c
Author:Calin Capitanu
Committer:Calin Capitanu

chore: cleanup schemas

Commit:3ad94e4
Author:Leandro Ostera
Committer:Leandro Ostera

feat(schemas): add new field for tricorder urls

Commit:e4ed66a
Author:Leandro Ostera

chore: clean up old mark1 files from the tricorders

Commit:f14cf1d
Author:Leandro Ostera
Committer:Leandro Ostera

chore(MarkII): move all rules from label->target

Commit:3ce11b1
Author:Leandro Ostera
Committer:Leandro Ostera

feat(tricorder/beam): prepare for bootstrapping To make the new tricorder flow work, we'll need a less involved tricorder bootstrapping process. Right now this is a regular Elixir release that has all code-generation pre-done (so no need to install protoc to bootstrap it).

Commit:d627c3b
Author:Leandro Ostera
Committer:Leandro Ostera

chore: move schemas to top of the repo

Commit:fe1fe58
Author:Leandro Ostera

Add 'tricorders/' from commit '278bc98f0f8e2348c09abb5c6881c9a8c86d13c4' git-subtree-dir: tricorders git-subtree-mainline: b2cfc72f21cde0a32190635b8e181d42d4a968d0 git-subtree-split: 278bc98f0f8e2348c09abb5c6881c9a8c86d13c4

Commit:116d031
Author:Leandro Ostera

chore: restructure Mark I

Commit:4875a82
Author:Leandro Ostera

chore(docs): start preparing repo for publishing

Commit:395ab77
Author:Leandro Ostera
Committer:Leandro Ostera

fix(tricorder): define missing messages

Commit:b370409
Author:Leandro Ostera

chore: sync protos

Commit:c96fe6d
Author:Leandro Ostera
Committer:Leandro Ostera

feat(tricorder): begin new tricorder service schema

Commit:e04ea37
Author:Leandro Ostera
Committer:Leandro Ostera

chore: sync protos

Commit:d8da250
Author:Leandro Ostera
Committer:Leandro Ostera

feat(beam): improve analyzer

Commit:db9bae0
Author:Leandro Ostera

fix: pass deps to tree splitting, and fix lift database entry labeling

Commit:b8ef86c
Author:Leandro Ostera

feat: include dependencies during tree splitting

Commit:f70f4ec
Author:Leandro Ostera

feat(beam): receive and use dependency during signature generation

Commit:4f716c2
Author:Leandro Ostera

feat: feed in dependencies into the signature generation

Commit:f64fbac
Author:Leandro Ostera

chore: sync protos

Commit:6697736
Author:Leandro Ostera

chore: bump schemas with new fields

Commit:c6e4970
Author:Leandro Ostera

feat: get dependencies is now relocatable

Commit:3cf166b
Author:Leandro Ostera

chore: bump schemas

Commit:5dbcd03
Author:Leandro Ostera

feat(beam): implement new rpcs and split up sources

Commit:c15c3c8
Author:Leandro Ostera

chore: update schemas

Commit:db005a0
Author:Leandro Ostera

feat(schemas): introduce dependency requirement

Commit:ee5f34b
Author:Leandro Ostera

fix: make build work again

Commit:4ed4572
Author:Leandro Ostera
Committer:Leandro Ostera

feat: bring in new dependency requirement in proto schemas

Commit:e6a302a
Author:Leandro Ostera

feat: introduce resolver services fix: codedb will override symbols now feat: emit new events for a label skipping and entering the queue feat: emit new service started event refactor: migrate all service communications to gRPC refactor: dependency resolver is now split into stages feat: implement experimental-regenerate-signatures flag feat: implement finding signatures by label chore: update protobuf schemas

Commit:a320674
Author:Leandro Ostera

feat(3rdpary): bootstrap tools by vendoring their dependencies

Commit:8fd92d3
Author:Leandro Ostera
Committer:Leandro Ostera

feat(github, gitlab): move git resolvers to gRPC protocol

Commit:8ab3bbd
Author:Leandro Ostera
Committer:Leandro Ostera

feat(beam): rewrite resolver using gRPC protocol

Commit:9dcfd28
Author:Leandro Ostera

fix: clean up rfcs, update protos and namespaces

Commit:5b3ef46
Author:Leandro Ostera

feat: import new get interested paths request rpc

Commit:71859b2
Author:Leandro Ostera

fix(erlang): implement get_interested_paths api

Commit:179a454
Author:Leandro Ostera

chore: sync schemas

Commit:d266e6c
Author:Leandro Ostera

feat(schemas): clean up and update analyzer service rpcs

Commit:63884d0
Author:Leandro Ostera

chore: sync proto schemas

Commit:381b682
Author:Leandro Ostera

fix: update signature service schema

Commit:e5ce0f9
Author:Leandro Ostera
Committer:Leandro Ostera

chore(beam): refactor proto libraries to not depend on symlinks Symlinks break when pulling repositories as tarballs.

Commit:5112dce
Author:Leandro Ostera

fix: add symbol/ast to analyze file req/res

Commit:d832a76
Author:Leandro Ostera

chore(schemas): bump!

Commit:7dadf92
Author:Leandro Ostera

test(protobuf): add test workspace for protobuf + elixir rules/toolchains

Commit:0469319
Author:Leandro Ostera

chore(schemas): copy over proto schemas

Commit:09980c9
Author:Leandro Ostera

feat: start defining grpc interfaces for the codedb