diff options
38 files changed, 166 insertions, 59 deletions
diff --git a/src/buildtool/execution_api/bazel_msg/TARGETS b/src/buildtool/execution_api/bazel_msg/TARGETS index 3adeaa9e..69cde0b5 100644 --- a/src/buildtool/execution_api/bazel_msg/TARGETS +++ b/src/buildtool/execution_api/bazel_msg/TARGETS @@ -4,9 +4,7 @@ , "hdrs": ["bazel_blob_container.hpp", "bazel_common.hpp"] , "deps": [ ["src/buildtool/common", "bazel_types"] - , ["src/buildtool/common", "common"] , ["src/buildtool/execution_api/common", "content_blob_container"] - , ["src/buildtool/file_system", "file_system_manager"] ] , "stage": ["src", "buildtool", "execution_api", "bazel_msg"] } @@ -23,7 +21,6 @@ , ["src/buildtool/common", "common"] , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/common", "artifact_blob_container"] - , ["src/buildtool/execution_engine/dag", "dag"] , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] @@ -31,7 +28,9 @@ ] , "private-deps": [ ["@", "fmt", "", "fmt"] + , ["@", "protoc", "", "libprotobuf"] , ["src/buildtool/common", "artifact_digest_factory"] + , ["src/buildtool/execution_api/common", "content_blob_container"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "git_repo"] , ["src/utils/cpp", "hex_string"] diff --git a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp b/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp index 824c3084..039ddf9c 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp @@ -15,13 +15,8 @@ #ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_CONTAINER_HPP #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_BAZEL_BLOB_CONTAINER_HPP -#include <filesystem> -#include <optional> - -#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/execution_api/common/content_blob_container.hpp" -#include "src/buildtool/file_system/file_system_manager.hpp" using BazelBlob = ContentBlob<bazel_re::Digest>; using BazelBlobContainer = ContentBlobContainer<bazel_re::Digest>; diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp index 0d5aa8b0..be0e3309 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.cpp @@ -15,18 +15,22 @@ #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include <algorithm> +#include <compare> #include <exception> #include <filesystem> #include <functional> #include <memory> #include <optional> -#include <sstream> #include <string> +#include <unordered_map> #include <utility> // std::move #include <vector> #include "fmt/core.h" +#include "google/protobuf/duration.pb.h" +#include "google/protobuf/repeated_ptr_field.h" #include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/execution_api/common/content_blob_container.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/utils/cpp/hex_string.hpp" diff --git a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp index 540aaa39..030dc0b1 100644 --- a/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp +++ b/src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp @@ -18,10 +18,11 @@ #include <chrono> #include <filesystem> #include <functional> -#include <memory> +#include <iterator> +#include <map> #include <optional> #include <string> -#include <utility> +#include <variant> #include <vector> #include "gsl/gsl" @@ -32,7 +33,6 @@ #include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp" #include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" -#include "src/buildtool/execution_engine/dag/dag.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" diff --git a/src/buildtool/execution_api/bazel_msg/directory_tree.cpp b/src/buildtool/execution_api/bazel_msg/directory_tree.cpp index c7ddfdef..5f1c4e3d 100644 --- a/src/buildtool/execution_api/bazel_msg/directory_tree.cpp +++ b/src/buildtool/execution_api/bazel_msg/directory_tree.cpp @@ -14,6 +14,8 @@ #include "directory_tree.hpp" +#include <utility> + #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/logging/log_level.hpp" diff --git a/src/buildtool/execution_api/bazel_msg/directory_tree.hpp b/src/buildtool/execution_api/bazel_msg/directory_tree.hpp index 5436be9e..5b3aad60 100644 --- a/src/buildtool/execution_api/bazel_msg/directory_tree.hpp +++ b/src/buildtool/execution_api/bazel_msg/directory_tree.hpp @@ -16,6 +16,7 @@ #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_BAZEL_MSG_DIRECTORY_TREE_HPP #include <filesystem> +#include <functional> #include <memory> #include <optional> #include <string> diff --git a/src/buildtool/execution_api/common/TARGETS b/src/buildtool/execution_api/common/TARGETS index 0de32644..41eb07b4 100644 --- a/src/buildtool/execution_api/common/TARGETS +++ b/src/buildtool/execution_api/common/TARGETS @@ -13,10 +13,11 @@ , "srcs": ["tree_reader_utils.cpp"] , "deps": [ "artifact_blob_container" + , ["@", "fmt", "", "fmt"] , ["@", "gsl", "", "gsl"] + , ["@", "protoc", "", "libprotobuf"] , ["src/buildtool/common", "bazel_types"] , ["src/buildtool/common", "common"] - , ["src/buildtool/common", "protocol_traits"] , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_engine/dag", "dag"] , ["src/buildtool/file_system", "git_repo"] @@ -30,6 +31,7 @@ , "private-deps": [ ["@", "json", "", "json"] , ["src/buildtool/common", "artifact_digest_factory"] + , ["src/utils/cpp", "path"] ] , "stage": ["src", "buildtool", "execution_api", "common"] } @@ -51,7 +53,10 @@ , "deps": [ "common" , ["@", "gsl", "", "gsl"] + , ["src/buildtool/auth", "auth"] , ["src/buildtool/common", "config"] + , ["src/buildtool/common/remote", "remote_common"] + , ["src/buildtool/common/remote", "retry_config"] , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/local", "context"] , ["src/buildtool/execution_api/remote", "context"] @@ -60,6 +65,8 @@ [ ["src/buildtool/execution_api/bazel_msg", "bazel_msg"] , ["src/buildtool/execution_api/local", "local"] , ["src/buildtool/execution_api/remote", "bazel"] + , ["src/buildtool/execution_api/remote", "config"] + , ["src/buildtool/storage", "config"] ] } , "message_limits": @@ -87,7 +94,11 @@ , ["src/buildtool/logging", "logging"] ] , "stage": ["src", "buildtool", "execution_api", "common"] - , "private-deps": [["@", "fmt", "", "fmt"]] + , "private-deps": + [ "artifact_blob_container" + , ["@", "fmt", "", "fmt"] + , ["src/buildtool/file_system", "object_type"] + ] } , "blob_tree": { "type": ["@", "rules", "CC", "library"] @@ -105,6 +116,7 @@ , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/file_system", "git_repo"] , ["src/buildtool/file_system", "object_type"] + , ["src/utils/cpp", "expected"] , ["src/utils/cpp", "hex_string"] ] , "stage": ["src", "buildtool", "execution_api", "common"] diff --git a/src/buildtool/execution_api/common/api_bundle.cpp b/src/buildtool/execution_api/common/api_bundle.cpp index 2106f555..23b8b15d 100644 --- a/src/buildtool/execution_api/common/api_bundle.cpp +++ b/src/buildtool/execution_api/common/api_bundle.cpp @@ -14,9 +14,14 @@ #include "src/buildtool/execution_api/common/api_bundle.hpp" +#include <memory> +#include <utility> + #include "src/buildtool/execution_api/bazel_msg/bazel_common.hpp" #include "src/buildtool/execution_api/local/local_api.hpp" #include "src/buildtool/execution_api/remote/bazel/bazel_api.hpp" +#include "src/buildtool/execution_api/remote/config.hpp" +#include "src/buildtool/storage/config.hpp" /// \note Some logic from MakeRemote is duplicated here as that method cannot /// be used without the hash_function field being set prior to the call. diff --git a/src/buildtool/execution_api/common/api_bundle.hpp b/src/buildtool/execution_api/common/api_bundle.hpp index e342ce55..19146f66 100644 --- a/src/buildtool/execution_api/common/api_bundle.hpp +++ b/src/buildtool/execution_api/common/api_bundle.hpp @@ -15,10 +15,12 @@ #ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_API_BUNDLE_HPP #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_API_BUNDLE_HPP -#include <memory> #include <optional> #include "gsl/gsl" +#include "src/buildtool/auth/authentication.hpp" +#include "src/buildtool/common/remote/remote_common.hpp" +#include "src/buildtool/common/remote/retry_config.hpp" #include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" diff --git a/src/buildtool/execution_api/common/blob_tree.cpp b/src/buildtool/execution_api/common/blob_tree.cpp index 6bb503b7..a0d362b4 100644 --- a/src/buildtool/execution_api/common/blob_tree.cpp +++ b/src/buildtool/execution_api/common/blob_tree.cpp @@ -14,6 +14,9 @@ #include "src/buildtool/execution_api/common/blob_tree.hpp" +#include <functional> +#include <string> +#include <unordered_map> #include <utility> #include <variant> @@ -23,6 +26,7 @@ #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_type.hpp" +#include "src/utils/cpp/expected.hpp" #include "src/utils/cpp/hex_string.hpp" auto BlobTree::FromDirectoryTree(DirectoryTreePtr const& tree, diff --git a/src/buildtool/execution_api/common/blob_tree.hpp b/src/buildtool/execution_api/common/blob_tree.hpp index 051b0fe2..4b2bde01 100644 --- a/src/buildtool/execution_api/common/blob_tree.hpp +++ b/src/buildtool/execution_api/common/blob_tree.hpp @@ -22,6 +22,7 @@ #include <vector> #include "gsl/gsl" +#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" diff --git a/src/buildtool/execution_api/common/common_api.cpp b/src/buildtool/execution_api/common/common_api.cpp index c21d14a4..87079602 100644 --- a/src/buildtool/execution_api/common/common_api.cpp +++ b/src/buildtool/execution_api/common/common_api.cpp @@ -14,10 +14,22 @@ #include "src/buildtool/execution_api/common/common_api.hpp" +#ifdef __unix__ +#include <unistd.h> +#else +#error "Non-unix is not supported yet" +#endif + #include <cstddef> #include <exception> +#include <memory> +#include <sstream> +#include <string> +#include <utility> #include "fmt/core.h" +#include "src/buildtool/execution_api/common/artifact_blob_container.hpp" +#include "src/buildtool/file_system/object_type.hpp" auto CommonRetrieveToFds( std::vector<Artifact::ObjectInfo> const& artifacts_info, diff --git a/src/buildtool/execution_api/common/common_api.hpp b/src/buildtool/execution_api/common/common_api.hpp index 16931832..991b9875 100644 --- a/src/buildtool/execution_api/common/common_api.hpp +++ b/src/buildtool/execution_api/common/common_api.hpp @@ -20,9 +20,7 @@ #include <functional> #include <iterator> #include <optional> -#include <type_traits> #include <unordered_map> -#include <utility> #include <vector> #include "gsl/gsl" diff --git a/src/buildtool/execution_api/common/execution_action.hpp b/src/buildtool/execution_api/common/execution_action.hpp index a5284ca1..e0d629a7 100644 --- a/src/buildtool/execution_api/common/execution_action.hpp +++ b/src/buildtool/execution_api/common/execution_action.hpp @@ -19,11 +19,8 @@ #include <cstdint> #include <memory> -#include "gsl/gsl" #include "src/buildtool/execution_api/common/execution_response.hpp" - -class Logger; -class ExecutionArtifactContainer; +#include "src/buildtool/logging/logger.hpp" /// \brief Abstract action. /// Can execute multiple commands. Commands are executed in arbitrary order and diff --git a/src/buildtool/execution_api/common/execution_api.hpp b/src/buildtool/execution_api/common/execution_api.hpp index c9ee276b..7cee8b7e 100644 --- a/src/buildtool/execution_api/common/execution_api.hpp +++ b/src/buildtool/execution_api/common/execution_api.hpp @@ -23,7 +23,6 @@ #include <string> #include <vector> -#include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" // Artifact::ObjectInfo #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" diff --git a/src/buildtool/execution_api/common/execution_common.hpp b/src/buildtool/execution_api/common/execution_common.hpp index 0cf0983d..7a55003c 100644 --- a/src/buildtool/execution_api/common/execution_common.hpp +++ b/src/buildtool/execution_api/common/execution_common.hpp @@ -24,6 +24,8 @@ #include <array> #include <cstddef> +#include <cstdint> +#include <exception> #include <filesystem> #include <optional> #include <random> @@ -31,6 +33,7 @@ #include <string> #include <thread> +#include "fmt/core.h" #include "gsl/gsl" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/logging/log_level.hpp" diff --git a/src/buildtool/execution_api/common/execution_response.hpp b/src/buildtool/execution_api/common/execution_response.hpp index 90c67317..6b313874 100644 --- a/src/buildtool/execution_api/common/execution_response.hpp +++ b/src/buildtool/execution_api/common/execution_response.hpp @@ -20,7 +20,6 @@ #include <string> #include <unordered_map> #include <unordered_set> -#include <vector> #include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" diff --git a/src/buildtool/execution_api/common/stream_dumper.hpp b/src/buildtool/execution_api/common/stream_dumper.hpp index c1d99588..3129c58d 100644 --- a/src/buildtool/execution_api/common/stream_dumper.hpp +++ b/src/buildtool/execution_api/common/stream_dumper.hpp @@ -22,7 +22,6 @@ #include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" -#include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/execution_api/common/tree_reader_utils.hpp" #include "src/buildtool/file_system/object_type.hpp" diff --git a/src/buildtool/execution_api/common/tree_reader.hpp b/src/buildtool/execution_api/common/tree_reader.hpp index 9c1b295e..7ec66163 100644 --- a/src/buildtool/execution_api/common/tree_reader.hpp +++ b/src/buildtool/execution_api/common/tree_reader.hpp @@ -16,16 +16,15 @@ #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_COMMON_TREE_READER_HPP #include <filesystem> -#include <functional> #include <optional> #include <utility> #include <vector> +#include "google/protobuf/repeated_ptr_field.h" #include "src/buildtool/common/artifact.hpp" +#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" -#include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/execution_api/common/tree_reader_utils.hpp" -#include "src/buildtool/file_system/git_repo.hpp" #include "src/buildtool/file_system/object_type.hpp" struct ReadTreeResult final { diff --git a/src/buildtool/execution_api/common/tree_reader_utils.cpp b/src/buildtool/execution_api/common/tree_reader_utils.cpp index 5a55c059..2ec90cc2 100644 --- a/src/buildtool/execution_api/common/tree_reader_utils.cpp +++ b/src/buildtool/execution_api/common/tree_reader_utils.cpp @@ -15,9 +15,11 @@ #include "src/buildtool/execution_api/common/tree_reader_utils.hpp" #include <exception> -#include <type_traits> +#include <unordered_map> #include <utility> +#include <vector> +#include "google/protobuf/repeated_ptr_field.h" #include "nlohmann/json.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" @@ -25,7 +27,9 @@ #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/utils/cpp/expected.hpp" #include "src/utils/cpp/hex_string.hpp" +#include "src/utils/cpp/path.hpp" namespace { [[nodiscard]] auto CreateObjectInfo(HashFunction hash_function, diff --git a/src/buildtool/execution_api/git/TARGETS b/src/buildtool/execution_api/git/TARGETS index 860a9388..8b79f029 100644 --- a/src/buildtool/execution_api/git/TARGETS +++ b/src/buildtool/execution_api/git/TARGETS @@ -4,16 +4,21 @@ , "hdrs": ["git_api.hpp"] , "deps": [ ["@", "gsl", "", "gsl"] + , ["@", "json", "", "json"] , ["src/buildtool/common", "artifact_digest_factory"] , ["src/buildtool/common", "common"] , ["src/buildtool/common", "config"] , ["src/buildtool/crypto", "hash_function"] - , ["src/buildtool/execution_api/bazel_msg", "bazel_msg_factory"] , ["src/buildtool/execution_api/common", "artifact_blob_container"] , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/execution_api/common", "common_api"] + , ["src/buildtool/execution_engine/dag", "dag"] + , ["src/buildtool/file_system", "file_system_manager"] + , ["src/buildtool/file_system", "git_tree"] + , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] + , ["src/utils/cpp", "expected"] ] , "stage": ["src", "buildtool", "execution_api", "git"] } diff --git a/src/buildtool/execution_api/git/git_api.hpp b/src/buildtool/execution_api/git/git_api.hpp index aab488b3..a02f577e 100644 --- a/src/buildtool/execution_api/git/git_api.hpp +++ b/src/buildtool/execution_api/git/git_api.hpp @@ -17,22 +17,34 @@ #include <cstddef> #include <cstdio> +#include <filesystem> +#include <functional> #include <map> +#include <memory> #include <optional> #include <string> +#include <unordered_map> +#include <utility> #include <vector> #include "gsl/gsl" +#include "nlohmann/json.hpp" +#include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/repository_config.hpp" #include "src/buildtool/crypto/hash_function.hpp" -#include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" #include "src/buildtool/execution_api/common/common_api.hpp" +#include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" +#include "src/buildtool/execution_engine/dag/dag.hpp" +#include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/file_system/git_tree.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/utils/cpp/expected.hpp" /// \brief API for local execution. class GitApi final : public IExecutionApi { diff --git a/src/buildtool/execution_api/local/TARGETS b/src/buildtool/execution_api/local/TARGETS index 66a27034..5114dc35 100644 --- a/src/buildtool/execution_api/local/TARGETS +++ b/src/buildtool/execution_api/local/TARGETS @@ -2,13 +2,7 @@ { "type": ["@", "rules", "CC", "library"] , "name": ["config"] , "hdrs": ["config.hpp"] - , "deps": - [ ["@", "fmt", "", "fmt"] - , ["@", "json", "", "json"] - , ["src/buildtool/logging", "log_level"] - , ["src/buildtool/logging", "logging"] - , ["src/utils/cpp", "expected"] - ] + , "deps": [["@", "fmt", "", "fmt"], ["src/utils/cpp", "expected"]] , "stage": ["src", "buildtool", "execution_api", "local"] } , "local": @@ -26,6 +20,7 @@ , ["@", "fmt", "", "fmt"] , ["@", "grpc", "", "grpc++"] , ["@", "gsl", "", "gsl"] + , ["@", "protoc", "", "libprotobuf"] , ["src/buildtool/common", "artifact_digest_factory"] , ["src/buildtool/common", "bazel_types"] , ["src/buildtool/common", "common"] @@ -34,24 +29,29 @@ , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/bazel_msg", "bazel_msg"] , ["src/buildtool/execution_api/bazel_msg", "bazel_msg_factory"] + , ["src/buildtool/execution_api/bazel_msg", "directory_tree"] , ["src/buildtool/execution_api/common", "artifact_blob_container"] - , ["src/buildtool/execution_api/common", "blob_tree"] , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/execution_api/common", "common_api"] , ["src/buildtool/execution_api/execution_service", "cas_utils"] , ["src/buildtool/execution_api/git", "git"] + , ["src/buildtool/execution_engine/dag", "dag"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/file_system", "git_repo"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] + , ["src/buildtool/storage", "config"] , ["src/buildtool/storage", "storage"] , ["src/utils/cpp", "expected"] , ["src/utils/cpp", "path"] , ["src/utils/cpp", "tmp_dir"] + , ["src/utils/cpp", "transformed_range"] ] , "stage": ["src", "buildtool", "execution_api", "local"] , "private-deps": - [ ["src/buildtool/execution_api/utils", "outputscheck"] + [ "config" + , ["@", "json", "", "json"] + , ["src/buildtool/execution_api/utils", "outputscheck"] , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/system", "system_command"] ] diff --git a/src/buildtool/execution_api/local/config.hpp b/src/buildtool/execution_api/local/config.hpp index f2c8bf57..c642f5aa 100644 --- a/src/buildtool/execution_api/local/config.hpp +++ b/src/buildtool/execution_api/local/config.hpp @@ -22,9 +22,6 @@ #include <vector> #include "fmt/core.h" -#include "nlohmann/json.hpp" -#include "src/buildtool/logging/log_level.hpp" -#include "src/buildtool/logging/logger.hpp" #include "src/utils/cpp/expected.hpp" /// \brief Store local execution configuration. diff --git a/src/buildtool/execution_api/local/local_action.cpp b/src/buildtool/execution_api/local/local_action.cpp index c500afba..8847692b 100644 --- a/src/buildtool/execution_api/local/local_action.cpp +++ b/src/buildtool/execution_api/local/local_action.cpp @@ -16,21 +16,30 @@ #include <algorithm> #include <cstddef> +#include <exception> #include <filesystem> +#include <iterator> +#include <memory> #include <string> #include <system_error> #include <utility> +#include "google/protobuf/repeated_ptr_field.h" +#include "nlohmann/json.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/protocol_traits.hpp" +#include "src/buildtool/execution_api/common/execution_common.hpp" #include "src/buildtool/execution_api/common/tree_reader.hpp" +#include "src/buildtool/execution_api/local/config.hpp" #include "src/buildtool/execution_api/local/local_cas_reader.hpp" #include "src/buildtool/execution_api/local/local_response.hpp" #include "src/buildtool/execution_api/utils/outputscheck.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" +#include "src/buildtool/storage/storage.hpp" #include "src/buildtool/system/system_command.hpp" +#include "src/utils/cpp/expected.hpp" #include "src/utils/cpp/path.hpp" namespace { diff --git a/src/buildtool/execution_api/local/local_action.hpp b/src/buildtool/execution_api/local/local_action.hpp index 96541f58..ea19632e 100644 --- a/src/buildtool/execution_api/local/local_action.hpp +++ b/src/buildtool/execution_api/local/local_action.hpp @@ -15,27 +15,32 @@ #ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_ACTION_HPP #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_ACTION_HPP +#include <algorithm> #include <chrono> +#include <compare> +#include <filesystem> +#include <functional> // IWYU pragma: keep #include <map> -#include <memory> #include <optional> #include <string> #include <unordered_map> #include <utility> // std::move +#include <variant> #include <vector> #include "gsl/gsl" +#include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/bazel_types.hpp" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" #include "src/buildtool/execution_api/local/context.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/buildtool/storage/config.hpp" #include "src/utils/cpp/tmp_dir.hpp" -class LocalApi; - /// \brief Action for local execution. class LocalAction final : public IExecutionAction { friend class LocalApi; diff --git a/src/buildtool/execution_api/local/local_api.hpp b/src/buildtool/execution_api/local/local_api.hpp index 2302cb5c..8df51d27 100644 --- a/src/buildtool/execution_api/local/local_api.hpp +++ b/src/buildtool/execution_api/local/local_api.hpp @@ -15,8 +15,11 @@ #ifndef INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_API_HPP #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_API_HPP +#include <algorithm> #include <cstddef> -#include <iterator> +#include <cstdio> +#include <filesystem> +#include <functional> #include <map> #include <memory> #include <new> // std::nothrow @@ -25,20 +28,21 @@ #include <string> #include <unordered_map> #include <utility> // std::move -#include <variant> #include <vector> -#include "fmt/core.h" -#include "grpcpp/support/status.h" +#include <grpcpp/support/status.h> + #include "gsl/gsl" +#include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/common/repository_config.hpp" -#include "src/buildtool/execution_api/bazel_msg/bazel_blob_container.hpp" +#include "src/buildtool/crypto/hash_function.hpp" +#include "src/buildtool/execution_api/bazel_msg/directory_tree.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" -#include "src/buildtool/execution_api/common/blob_tree.hpp" #include "src/buildtool/execution_api/common/common_api.hpp" +#include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_api/common/stream_dumper.hpp" #include "src/buildtool/execution_api/common/tree_reader.hpp" @@ -47,9 +51,15 @@ #include "src/buildtool/execution_api/local/context.hpp" #include "src/buildtool/execution_api/local/local_action.hpp" #include "src/buildtool/execution_api/local/local_cas_reader.hpp" +#include "src/buildtool/execution_engine/dag/dag.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/buildtool/storage/config.hpp" +#include "src/buildtool/storage/storage.hpp" +#include "src/utils/cpp/expected.hpp" +#include "src/utils/cpp/transformed_range.hpp" /// \brief API for local execution. class LocalApi final : public IExecutionApi { diff --git a/src/buildtool/execution_api/local/local_cas_reader.cpp b/src/buildtool/execution_api/local/local_cas_reader.cpp index bac7ee71..5365404f 100644 --- a/src/buildtool/execution_api/local/local_cas_reader.cpp +++ b/src/buildtool/execution_api/local/local_cas_reader.cpp @@ -15,20 +15,28 @@ #include "src/buildtool/execution_api/local/local_cas_reader.hpp" #include <algorithm> +#include <compare> +#include <cstddef> #include <cstdio> +#include <deque> #include <memory> #include <stack> +#include <type_traits> #include <unordered_map> #include <utility> #include <vector> +#include "google/protobuf/repeated_ptr_field.h" #include "gsl/gsl" #include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/utils/cpp/expected.hpp" #include "src/utils/cpp/path.hpp" namespace { diff --git a/src/buildtool/execution_api/local/local_response.hpp b/src/buildtool/execution_api/local/local_response.hpp index fbb58b28..60d37ae5 100644 --- a/src/buildtool/execution_api/local/local_response.hpp +++ b/src/buildtool/execution_api/local/local_response.hpp @@ -16,13 +16,20 @@ #define INCLUDED_SRC_BUILDTOOL_EXECUTION_API_LOCAL_LOCAL_RESPONSE_HPP #include <cstddef> +#include <exception> +#include <filesystem> +#include <functional> #include <optional> #include <string> #include <utility> #include "fmt/core.h" +#include "google/protobuf/repeated_ptr_field.h" #include "gsl/gsl" +#include "src/buildtool/common/artifact.hpp" +#include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/artifact_digest_factory.hpp" +#include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/common/execution_response.hpp" @@ -30,6 +37,7 @@ #include "src/buildtool/execution_api/local/local_action.hpp" #include "src/buildtool/execution_api/local/local_cas_reader.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" #include "src/buildtool/storage/storage.hpp" diff --git a/src/buildtool/execution_api/serve/TARGETS b/src/buildtool/execution_api/serve/TARGETS index 2d45ed14..f4d999b2 100644 --- a/src/buildtool/execution_api/serve/TARGETS +++ b/src/buildtool/execution_api/serve/TARGETS @@ -12,6 +12,7 @@ , "stage": ["src", "buildtool", "execution_api", "serve"] , "private-deps": [ ["@", "fmt", "", "fmt"] + , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/file_system", "file_system_manager"] , ["src/buildtool/storage", "fs_utils"] ] @@ -25,7 +26,6 @@ [ ["@", "gsl", "", "gsl"] , ["src/buildtool/common", "common"] , ["src/buildtool/common", "config"] - , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/common", "artifact_blob_container"] , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/execution_engine/dag", "dag"] @@ -51,7 +51,6 @@ , "deps": [ ["@", "gsl", "", "gsl"] , ["src/buildtool/common", "common"] - , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/common", "artifact_blob_container"] , ["src/buildtool/execution_api/common", "common"] , ["src/buildtool/execution_api/local", "context"] @@ -65,6 +64,8 @@ , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] + , ["src/buildtool/storage", "config"] + , ["src/buildtool/storage", "storage"] , ["src/utils/cpp", "expected"] ] } diff --git a/src/buildtool/execution_api/serve/mr_git_api.cpp b/src/buildtool/execution_api/serve/mr_git_api.cpp index 1e433fff..46bc4c83 100644 --- a/src/buildtool/execution_api/serve/mr_git_api.cpp +++ b/src/buildtool/execution_api/serve/mr_git_api.cpp @@ -15,6 +15,7 @@ #include "src/buildtool/execution_api/serve/mr_git_api.hpp" #include <utility> +#include <variant> #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/git/git_api.hpp" diff --git a/src/buildtool/execution_api/serve/mr_git_api.hpp b/src/buildtool/execution_api/serve/mr_git_api.hpp index 74864218..3a4fd184 100644 --- a/src/buildtool/execution_api/serve/mr_git_api.hpp +++ b/src/buildtool/execution_api/serve/mr_git_api.hpp @@ -25,8 +25,8 @@ #include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" #include "src/buildtool/common/repository_config.hpp" -#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" +#include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_engine/dag/dag.hpp" #include "src/buildtool/storage/config.hpp" diff --git a/src/buildtool/execution_api/serve/mr_local_api.cpp b/src/buildtool/execution_api/serve/mr_local_api.cpp index 78e960c2..7a8eb61a 100644 --- a/src/buildtool/execution_api/serve/mr_local_api.cpp +++ b/src/buildtool/execution_api/serve/mr_local_api.cpp @@ -14,9 +14,8 @@ #include "src/buildtool/execution_api/serve/mr_local_api.hpp" -#include <cstddef> -#include <memory> #include <utility> +#include <variant> #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" @@ -24,6 +23,8 @@ #include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" +#include "src/buildtool/storage/config.hpp" +#include "src/buildtool/storage/storage.hpp" #include "src/utils/cpp/expected.hpp" MRLocalApi::MRLocalApi( diff --git a/src/buildtool/execution_api/serve/mr_local_api.hpp b/src/buildtool/execution_api/serve/mr_local_api.hpp index e86efb2f..813d164b 100644 --- a/src/buildtool/execution_api/serve/mr_local_api.hpp +++ b/src/buildtool/execution_api/serve/mr_local_api.hpp @@ -24,8 +24,8 @@ #include "gsl/gsl" #include "src/buildtool/common/artifact.hpp" #include "src/buildtool/common/artifact_digest.hpp" -#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/common/artifact_blob_container.hpp" +#include "src/buildtool/execution_api/common/execution_action.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_api/local/context.hpp" #include "src/buildtool/execution_engine/dag/dag.hpp" diff --git a/src/buildtool/execution_api/serve/utils.cpp b/src/buildtool/execution_api/serve/utils.cpp index 2796d3b1..39c4f7d3 100644 --- a/src/buildtool/execution_api/serve/utils.cpp +++ b/src/buildtool/execution_api/serve/utils.cpp @@ -20,6 +20,7 @@ #include <utility> // std::move #include "fmt/core.h" +#include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/file_system/file_system_manager.hpp" #include "src/buildtool/storage/fs_utils.hpp" diff --git a/src/buildtool/execution_api/utils/TARGETS b/src/buildtool/execution_api/utils/TARGETS index f4033ee5..bff656ec 100644 --- a/src/buildtool/execution_api/utils/TARGETS +++ b/src/buildtool/execution_api/utils/TARGETS @@ -8,10 +8,14 @@ , ["src/buildtool/execution_api/common", "api_bundle"] ] , "private-deps": - [ ["src/buildtool/common", "protocol_traits"] + [ ["@", "gsl", "", "gsl"] + , ["src/buildtool/common", "bazel_types"] + , ["src/buildtool/common", "protocol_traits"] , ["src/buildtool/crypto", "hash_function"] , ["src/buildtool/execution_api/bazel_msg", "bazel_msg_factory"] , ["src/buildtool/execution_api/common", "common"] + , ["src/buildtool/file_system", "git_repo"] + , ["src/buildtool/file_system", "object_type"] , ["src/buildtool/logging", "log_level"] , ["src/buildtool/logging", "logging"] ] @@ -21,7 +25,10 @@ { "type": ["@", "rules", "CC", "library"] , "name": ["outputscheck"] , "hdrs": ["outputscheck.hpp"] - , "deps": [["src/buildtool/common", "bazel_types"]] + , "deps": + [ ["@", "protoc", "", "libprotobuf"] + , ["src/buildtool/common", "bazel_types"] + ] , "stage": ["src", "buildtool", "execution_api", "utils"] } } diff --git a/src/buildtool/execution_api/utils/outputscheck.hpp b/src/buildtool/execution_api/utils/outputscheck.hpp index 4719d2d6..da20ee90 100644 --- a/src/buildtool/execution_api/utils/outputscheck.hpp +++ b/src/buildtool/execution_api/utils/outputscheck.hpp @@ -22,6 +22,7 @@ #include <string> #include <vector> +#include "google/protobuf/repeated_ptr_field.h" #include "src/buildtool/common/bazel_types.hpp" [[nodiscard]] static inline auto ActionResultContainsExpectedOutputs( diff --git a/src/buildtool/execution_api/utils/subobject.cpp b/src/buildtool/execution_api/utils/subobject.cpp index 912e2d4f..106e8859 100644 --- a/src/buildtool/execution_api/utils/subobject.cpp +++ b/src/buildtool/execution_api/utils/subobject.cpp @@ -15,13 +15,19 @@ #include "src/buildtool/execution_api/utils/subobject.hpp" #ifndef BOOTSTRAP_BUILD_TOOL +#include <functional> +#include <memory> #include <utility> +#include "gsl/gsl" +#include "src/buildtool/common/bazel_types.hpp" #include "src/buildtool/common/protocol_traits.hpp" #include "src/buildtool/crypto/hash_function.hpp" #include "src/buildtool/execution_api/bazel_msg/bazel_msg_factory.hpp" #include "src/buildtool/execution_api/common/execution_api.hpp" #include "src/buildtool/execution_api/common/tree_reader_utils.hpp" +#include "src/buildtool/file_system/git_repo.hpp" +#include "src/buildtool/file_system/object_type.hpp" #include "src/buildtool/logging/log_level.hpp" #include "src/buildtool/logging/logger.hpp" |