From 2ae4a936a2c13926808baf0a2928481614b7c823 Mon Sep 17 00:00:00 2001
From: Timm Fitschen <t.fitschen@indiscale.com>
Date: Thu, 1 Sep 2022 13:58:52 +0200
Subject: [PATCH] PIPELINE

Squashed commit of the following:

commit 5f1e18892afedbda73d1fa02ad3f511a03f3c2b1
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Thu Sep 1 13:35:05 2022 +0200

    PIPELINE

commit 911a16c564ed039dc98fde9a7b36090c9c1770ab
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Thu Sep 1 11:48:55 2022 +0200

    PIPELINE

commit a737a9bbb8790ed7a6626b6b91f44a995688b1ad
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Thu Aug 18 13:16:37 2022 +0200

    PIPELINE

commit b4c22e71e2a3a81544d5179449b546dc3a3dd101
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Thu Aug 18 12:15:50 2022 +0200

    PIPELINE

commit 0e13e9aee948d2dfee590303ef97ea5045a3cff7
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Wed Aug 17 13:23:37 2022 +0200

    PIPELINE

commit 4806355a7944da0664bd9d9fd20ea0528fd18456
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Wed Aug 17 13:20:45 2022 +0200

    PIPELINE

commit cbf9be363f88a43cff3bdd12a0fee4594e9fa1ec
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Wed Aug 17 12:51:25 2022 +0200

    PIPELINE

commit 7415b226fff27a3138c50c9d28bdca59a297f240
Author: Timm Fitschen <t.fitschen@indiscale.com>
Date:   Mon Aug 15 19:20:45 2022 +0200

    PIPELINE
---
 .gitlab-ci.yml                                |  2 +-
 Makefile                                      |  2 +-
 conanfile.py                                  |  5 +--
 include/caosdb/logging.h                      |  1 -
 requirements.txt                              | 35 ++++++++-----------
 src/caosdb/connection.cpp                     | 23 ++++++------
 .../download_request_handler.cpp              | 29 ++++++++-------
 .../upload_request_handler.cpp                |  1 -
 src/caosdb/transaction.cpp                    |  2 +-
 src/caosdb/unary_rpc_handler.cpp              |  9 +++--
 test/test_transaction.cpp                     |  8 ++---
 11 files changed, 53 insertions(+), 64 deletions(-)

diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml
index be44d9b..1854a42 100644
--- a/.gitlab-ci.yml
+++ b/.gitlab-ci.yml
@@ -89,7 +89,7 @@ test:
     - mkdir build
     - cd build
     - VERSION="$(conan inspect --raw version ..)"
-    - conan install -s "compiler.libcxx=libstdc++11" -o build_acm=True .. "caosdb/$VERSION@_/_"
+    - conan install -s "compiler.libcxx=libstdc++11" --build=missing -o build_acm=True .. "caosdb/$VERSION@_/_"
     - cmake -DCMAKE_BUILD_TYPE=Debug ..
     - cmake --build . -j
     - cmake --build . -j --target unit_test_coverage
diff --git a/Makefile b/Makefile
index 21cd433..4be361a 100644
--- a/Makefile
+++ b/Makefile
@@ -79,7 +79,7 @@ conan: conan-install conan-create
 .PHONY: conan
 
 doc:
-	mkdir -p build && cd build && conan install .. -s $(CONAN_SETTINGS) \
+	mkdir -p build && cd build && conan install .. --build=missing -s $(CONAN_SETTINGS) \
 	  && cmake .. && cmake --build . --target doc-sphinx \
 	  && echo "The documentation starts at build/doc/sphinx_out/index.html ."
 .PHONY: doc
diff --git a/conanfile.py b/conanfile.py
index 5d1c5f4..906ba04 100644
--- a/conanfile.py
+++ b/conanfile.py
@@ -22,10 +22,10 @@ class CaosdbConan(ConanFile):
     }
     generators = "cmake"
     requires = [
-        ("grpc/1.45.2"),
+        ("grpc/1.48.0"),
     ]
     build_requires = [
-        ("boost/1.77.0"),
+        ("boost/1.78.0"),
         ("gtest/1.11.0"),
     ]
     exports = ("*.cmake", "*CMakeLists.txt", "*.in",
@@ -38,6 +38,7 @@ class CaosdbConan(ConanFile):
         if self.settings.os == "Windows":
             del self.options.fPIC
         self.options["boost"].without_python = True
+        self.options["boost"].filesystem_version = "3"
 
     # def source(self):
         # self.run("git clone https://gitlab.indiscale.com/caosdb/src/caosdb-cpplib.git")
diff --git a/include/caosdb/logging.h b/include/caosdb/logging.h
index 94c78ed..50e61ee 100644
--- a/include/caosdb/logging.h
+++ b/include/caosdb/logging.h
@@ -27,7 +27,6 @@
 #include <cstdint>            // for uint64_t
 #include <iosfwd>             // for streamsize
 #include <memory>             // for shared_ptr
-#include <ostream>            // for ostream
 #include <string>             // for string
 #include <vector>             // for vector
 
diff --git a/requirements.txt b/requirements.txt
index 171a4c3..2ef3545 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -1,29 +1,22 @@
-attrs==21.2.0
-bottle==0.12.19
-certifi==2021.10.8
-chardet==4.0.0
-charset-normalizer==2.0.7
-colorama==0.4.4
-conan==1.48.0
-deprecation==2.1.0
+bottle==0.12.21
+certifi==2022.6.15
+charset-normalizer==2.1.0
+colorama==0.4.5
+conan==1.52.0
 distro==1.6.0
-fasteners==0.16.3
+fasteners==0.17.3
 future==0.18.2
-idna==3.2
-Jinja2==3.1.1
-jsonschema==4.1.0
-MarkupSafe==2.0.1
+idna==3.3
+Jinja2==3.1.2
+MarkupSafe==2.1.1
 node-semver==0.6.1
-packaging==21.0
 patch-ng==1.17.4
 pluginbase==1.0.1
-Pygments==2.10.0
-PyJWT==1.7.1
-pyparsing==2.4.7
-pyrsistent==0.18.0
+Pygments==2.12.0
+PyJWT==2.4.0
 python-dateutil==2.8.2
 PyYAML==5.4.1
-requests==2.26.0
+requests==2.28.1
 six==1.16.0
-tqdm==4.62.3
-urllib3==1.26.7
+tqdm==4.64.0
+urllib3==1.26.9
diff --git a/src/caosdb/connection.cpp b/src/caosdb/connection.cpp
index abc87da..b5219d9 100644
--- a/src/caosdb/connection.cpp
+++ b/src/caosdb/connection.cpp
@@ -25,18 +25,17 @@
 #include "caosdb/acm/v1alpha1/main.grpc.pb.h" // for AccessControlMan...
 #include "caosdb/acm/v1alpha1/main.pb.h"      // for CreateSingleUser...
 #endif
-#include "caosdb/configuration.h"            // for ConnectionConfigur...
-#include "caosdb/exceptions.h"               // for ConfigurationError
-#include "caosdb/info.h"                     // for VersionInfo
-#include "caosdb/info/v1/main.grpc.pb.h"     // for GeneralInfoService
-#include "caosdb/info/v1/main.pb.h"          // for GetVersionInfoRequest
-#include "caosdb/transaction.h"              // for Transaction
-#include "caosdb/transaction_status.h"       // for TransactionStatus
-#include <grpcpp/client_context.h>           // for ClientContext
-#include <grpcpp/create_channel.h>           // for CreateChannel
-#include <grpcpp/support/status.h>           // for Status
-#include <grpcpp/support/status_code_enum.h> // for StatusCode, UNAUTHENTIC...
-#include <string>                            // for string, operator+
+#include "caosdb/configuration.h"        // for ConnectionConfigur...
+#include "caosdb/exceptions.h"           // for ConfigurationError
+#include "caosdb/info.h"                 // for VersionInfo
+#include "caosdb/info/v1/main.grpc.pb.h" // for GeneralInfoService
+#include "caosdb/info/v1/main.pb.h"      // for GetVersionInfoRequest
+#include "caosdb/transaction.h"          // for Transaction
+#include "caosdb/transaction_status.h"   // for TransactionStatus
+#include <grpcpp/client_context.h>       // for ClientContext
+#include <grpcpp/create_channel.h>       // for CreateChannel
+#include <grpcpp/support/status.h>       // for Status
+#include <string>                        // for string, operator+
 // IWYU pragma: no_include "net/proto2/public/repeated_field.h"
 
 namespace caosdb::connection {
diff --git a/src/caosdb/file_transmission/download_request_handler.cpp b/src/caosdb/file_transmission/download_request_handler.cpp
index 821ed79..2415a14 100644
--- a/src/caosdb/file_transmission/download_request_handler.cpp
+++ b/src/caosdb/file_transmission/download_request_handler.cpp
@@ -47,21 +47,20 @@
  * > DEALINGS IN THE SOFTWARE.
  */
 #include "caosdb/file_transmission/download_request_handler.h"
-#include "caosdb/logging.h"                  // for CAOSDB_LOG_TRACE
-#include "caosdb/protobuf_helper.h"          // for get_arena
-#include "caosdb/status_code.h"              // for GENERIC_RPC_E...
-#include "caosdb/transaction_status.h"       // for TransactionStatus
-#include <exception>                         // IWYU pragma: keep
-#include <filesystem>                        // for operator<<, path
-#include <google/protobuf/arena.h>           // for Arena
-#include <grpcpp/client_context.h>           // for ClientContext
-#include <grpcpp/completion_queue.h>         // for CompletionQueue
-#include <grpcpp/support/async_stream.h>     // for ClientAsyncReader
-#include <grpcpp/support/status.h>           // for Status
-#include <grpcpp/support/status_code_enum.h> // for OK
-#include <stdexcept>                         // for runtime_error
-#include <string>                            // for string, opera...
-#include <utility>                           // for move
+#include "caosdb/logging.h"              // for CAOSDB_LOG_TRACE
+#include "caosdb/protobuf_helper.h"      // for get_arena
+#include "caosdb/status_code.h"          // for GENERIC_RPC_E...
+#include "caosdb/transaction_status.h"   // for TransactionStatus
+#include <exception>                     // IWYU pragma: keep
+#include <filesystem>                    // for operator<<, path
+#include <google/protobuf/arena.h>       // for Arena
+#include <grpcpp/client_context.h>       // for ClientContext
+#include <grpcpp/completion_queue.h>     // for CompletionQueue
+#include <grpcpp/support/async_stream.h> // for ClientAsyncReader
+#include <grpcpp/support/status.h>       // for Status
+#include <stdexcept>                     // for runtime_error
+#include <string>                        // for string, opera...
+#include <utility>                       // for move
 // IWYU pragma: no_include <bits/exception.h>
 //
 namespace caosdb::transaction {
diff --git a/src/caosdb/file_transmission/upload_request_handler.cpp b/src/caosdb/file_transmission/upload_request_handler.cpp
index 32bb813..d307e8e 100644
--- a/src/caosdb/file_transmission/upload_request_handler.cpp
+++ b/src/caosdb/file_transmission/upload_request_handler.cpp
@@ -57,7 +57,6 @@
 #include <filesystem>                        // for operator<<, path
 #include <google/protobuf/arena.h>           // for Arena
 #include <grpcpp/impl/codegen/call_op_set.h> // for WriteOptions
-#include <grpcpp/support/status_code_enum.h> // for OK
 #include <string>                            // for basic_string
 #include <utility>                           // for move
 // IWYU pragma: no_include <bits/exception.h>
diff --git a/src/caosdb/transaction.cpp b/src/caosdb/transaction.cpp
index c75fdeb..9da3716 100644
--- a/src/caosdb/transaction.cpp
+++ b/src/caosdb/transaction.cpp
@@ -32,7 +32,7 @@
 #include <filesystem>                                              // for operator<<, path
 #include <future>                                                  // for async, future
 #include <google/protobuf/arena.h>                                 // for Arena
-#include <grpc/impl/codegen/gpr_types.h>                           // for gpr_timespec
+#include <grpc/grpc.h>                                             // for gpr_timespec
 #include <map>                                                     // for map, operator!=
 #include <memory>                                                  // for unique_ptr
 #include <random>                                                  // for mt19937, rand...
diff --git a/src/caosdb/unary_rpc_handler.cpp b/src/caosdb/unary_rpc_handler.cpp
index 06afc12..e68afc8 100644
--- a/src/caosdb/unary_rpc_handler.cpp
+++ b/src/caosdb/unary_rpc_handler.cpp
@@ -47,11 +47,10 @@
  * > DEALINGS IN THE SOFTWARE.
  */
 #include "caosdb/unary_rpc_handler.h"
-#include "caosdb/logging.h"                  // for CAOSDB_LOG_TRACE
-#include "caosdb/status_code.h"              // for GENERIC_RPC_E...
-#include <exception>                         // IWYU pragma: keep
-#include <grpcpp/support/status_code_enum.h> // for OK
-#include <string>                            // for string, opera...
+#include "caosdb/logging.h"     // for CAOSDB_LOG_TRACE
+#include "caosdb/status_code.h" // for GENERIC_RPC_E...
+#include <exception>            // IWYU pragma: keep
+#include <string>               // for string, opera...
 // IWYU pragma: no_include <bits/exception.h>
 
 namespace caosdb::transaction {
diff --git a/test/test_transaction.cpp b/test/test_transaction.cpp
index e710b6c..dfe6bea 100644
--- a/test/test_transaction.cpp
+++ b/test/test_transaction.cpp
@@ -55,10 +55,10 @@ TEST(test_transaction, create_transaction) {
   auto transaction = connection.CreateTransaction();
 
   ASSERT_EQ(StatusCode::GO_ON, transaction->RetrieveById("100"));
-  EXPECT_THROW_MESSAGE(transaction->Execute(), ConnectionError,
-                       "The attempt to execute this transaction was not successful because the "
-                       "connection to the server could not be established. "
-                       "Original message: failed to connect to all addresses");
+  EXPECT_THROW_STARTS_WITH(transaction->Execute(), ConnectionError,
+                           "The attempt to execute this transaction was not successful because the "
+                           "connection to the server could not be established. "
+                           "Original message: failed to connect to all addresses");
 }
 
 TEST(test_transaction, test_multi_result_set) {
-- 
GitLab