ARROW-14708: [C++] Adding missing abseil dependencies to enable static flight build

ARROW-14708

Thanks! Unfortunately I still get a lot of linker errors using the repro from JIRA, but at least the Abseil issues are eliminated. I think the remaining issues are just because of the order of libraries/needing to repeat libraries.
This is what CMake generates, which fails with linker errors:
/usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example  /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow.a  /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow_flight.a  -pthread  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  -lrt  /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow_bundled_dependencies.a

The errors indicate libarrow_flight.a is missing symbols from libarrow.a and the bundled gRPC is missing symbols from OpenSSL.
This works:
/usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example  /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow_flight.a  /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow.a  -pthread /home/lidavidm/Code/upstream/arrow-14708/install/lib/libarrow_bundled_dependencies.a  /usr/lib/x86_64-linux-gnu/libssl.so  /usr/lib/x86_64-linux-gnu/libcrypto.so  -lrt

i.e. link libarrow_flight, then libarrow, then libarrow_bundled_dependencies, then OpenSSL.
Flipping the order of libraries in the CMakeLists.txt fixes the first issue, so I suppose this is user error, or we're missing some dependency expressed in CMake(?).
The installed ArrowFlightTargets.cmake does not declare arrow_static in INTERFACE_LINK_LIBRARIES - my CMake understanding is poor but perhaps we need to do so? (It is odd because arrow_static is in the STATIC_LINK_LIBS in flight/CMakeLists.txt.) Also, ArrowTargets.cmake declares OpenSSL as part of arrow_static's INTERFACE_LINK_LIBRARIES, but ArrowConfig.cmake does not do the same for arrow_bundled_dependencies.

This diff gets CMake to repeat libarrow.a after libarrow_flight.a, so we don't have to order the Arrow libraries ourselves in our "consumer" CMakeLists.txt:
diff --git a/cpp/src/arrow/flight/CMakeLists.txt b/cpp/src/arrow/flight/CMakeLists.txt
index 8a3228e50..846a420f9 100644
--- a/cpp/src/arrow/flight/CMakeLists.txt
+++ b/cpp/src/arrow/flight/CMakeLists.txt
@@ -170,7 +170,9 @@ add_arrow_lib(arrow_flight
               ${ARROW_FLIGHT_LINK_LIBS}
               STATIC_LINK_LIBS
               arrow_static
-              ${ARROW_FLIGHT_LINK_LIBS})
+              ${ARROW_FLIGHT_LINK_LIBS}
+              STATIC_INSTALL_INTERFACE_LIBS
+              arrow_static)

 foreach(LIB_TARGET ${ARROW_FLIGHT_LIBRARIES})
   target_compile_definitions(${LIB_TARGET} PRIVATE ARROW_FLIGHT_EXPORTING)

And this additional diff, while questionable, fixes the rest of the link errors:
diff --git a/cpp/src/arrow/ArrowConfig.cmake.in b/cpp/src/arrow/ArrowConfig.cmake.in
index 6209baeec..750d3aba6 100644
--- a/cpp/src/arrow/ArrowConfig.cmake.in
+++ b/cpp/src/arrow/ArrowConfig.cmake.in
@@ -87,6 +87,10 @@ if(NOT (TARGET arrow_shared OR TARGET arrow_static))
       set_target_properties(
         arrow_static PROPERTIES INTERFACE_LINK_LIBRARIES
         "${arrow_static_interface_link_libraries};arrow_bundled_dependencies")
+      # Propagate dependencies like OpenSSL
+      set_target_properties(
+        arrow_bundled_dependencies PROPERTIES INTERFACE_LINK_LIBRARIES
+        "${arrow_static_interface_link_libraries}")
     endif()
   endif()
 endif()

Thanks @lidavidm I was gonna ask for ideas about the flight linking errors! I'll include your diffs and test.

@lidavidm I'm able to compile this locally now. I've also reduced the abseil dependencies (I think to a minimum).
Do we want further review on this?

@github-actions crossbow submit -g nightly

@kou Sorry to trouble you, but would you be able to look over the CMake changes here? I'm not sure if the changes to ArrowConfig.cmake.in are strictly correct.

Thanks for the feedback @kou and @lidavidm! I've moved things around as suggested. My cmake skills are lacking.
I've also added a shell script to extract the gRPCVariables. It extracts Abseil and gRPC dependencies at the moment, but I am not sure about it's correctness. Could one of you please take a look and suggest improvements if needed?

I'm getting:
CMake Error: install(EXPORT "arrow_targets" ...) includes target "arrow_static" which requires target "arrow_bundled_dependencies" that is not in any export set.

When running:
cmake -DARROW_DEPENDENCY_SOURCE=BUNDLED ..

I'll continue tomorrow but would appreciate pointers :)

Just a thought, maybe the create_merged_static_lib call needs to be moved before add_arrow_lib so that it exists before we use it?

@kou thanks for the pointers!
I've pushed the change you proposed and hit another error (below). If you can spare time on this I'd be thankful but it's also a nice learning opportunity for me in case you're busy :).
 -Wall -fno-semantic-interposition -msse4.2
CMake Error at cmake_modules/BuildUtils.cmake:469 (install):
  install EXPORT given unknown argument "ArrowTargets.cmake".
Call Stack (most recent call first):
  src/arrow/CMakeLists.txt:539 (add_arrow_lib)

-- Creating bundled static library target arrow_bundled_dependencies at /home/rok/Documents/repos/arrow/cpp/build/release/libarrow_bundled_dependencies.a
CMake Error at cmake_modules/BuildUtils.cmake:469 (install):
  install EXPORT given unknown argument "ArrowTestingTargets.cmake".
Call Stack (most recent call first):
  src/arrow/CMakeLists.txt:601 (add_arrow_lib)

CMake Error at cmake_modules/BuildUtils.cmake:469 (install):
  install EXPORT given unknown argument "ArrowDatasetTargets.cmake".
Call Stack (most recent call first):
  src/arrow/dataset/CMakeLists.txt:51 (add_arrow_lib)

-- Found Python3: /home/rok/miniconda3/envs/pyarrow-dev/bin/python3.7 (found version "3.7.12") found components: Interpreter Development NumPy Development.Module Development.Embed
CMake Error at cmake_modules/BuildUtils.cmake:469 (install):
  install EXPORT given unknown argument "ArrowPythonTargets.cmake".
Call Stack (most recent call first):
  src/arrow/python/CMakeLists.txt:70 (add_arrow_lib)

CMake Error at cmake_modules/BuildUtils.cmake:469 (install):
  install EXPORT given unknown argument "ParquetTargets.cmake".
Call Stack (most recent call first):
  src/parquet/CMakeLists.txt:240 (add_arrow_lib)

@github-actions crossbow submit -g nightly

@github-actions crossbow submit -g nightly

@kou could you please review if this change makes sense?

@github-actions crossbow submit -g nightly

@github-actions crossbow submit -g nightly

@rok could you please trigger more selective builds with this frequency and trigger the big nightly group once those builds are passing? Additionally I'm working on the release which requires more crossbow bandwidth but the queue is filled now for hours.

@kszucs apologies for taking the resources! I accidentally triggered on the wrong commit and reran quickly on the right one. I'll be more selective in the future. Thanks for the feedback :).

I checked the failing builds that did not fail in the nightly:
Seems unrelated:

test-conda-python-3.9-spark-master
test-ubuntu-20.04-cpp-thread-sanitizer
ubuntu-hirsute-amd64

Seems flaky:

debian-bookworm-arm64 - GitHub 502 on archery crossbow
homebrew-r-autobrew - Minio issue with R
python-sdist - GDB issue
test-build-cpp-fuzz - GitHub permissions issue
test-fedora-33-python-3 - dependency download issue
test-r-rstudio-r-base-4.1-opensuse15 - dependency download issue
wheel-manylinux2014-cp39-arm64 - dependency download issue
wheel-manylinux2014-cp39-amd64 - vcpkg download issue
wheel-manylinux2014-cp310-arm64 - vcpkg download issue
wheel-manylinux2014-cp38-arm64 - vcpkg download issue

ZSTD (undefined reference to `ZSTD_}’ …):

example-cpp-minimal-build-static
example-cpp-minimal-build-static-system-dependency

Unclear:

ubuntu-bionic-arm64 - errored and did not run

I'll check if ZSTD is related to the change and report back.

@github-actions crossbow submit example-cpp-minimal-build-static*

@github-actions crossbow submit ubuntu-bionic-arm64

@kou I'm still working on the missing symbols, please don't merge :)

@lidavidm using your repro this change now only complains of flight not having grpc symbols. Any idea how to approach this?
/Library/Developer/CommandLineTools/usr/bin/c++ -O3 -DNDEBUG -arch arm64 -isysroot /Library/Developer/CommandLineTools/SDKs/MacOSX12.1.sdk -Wl,-search_paths_first -Wl,-headerpad_max_install_names CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example \
        /Users/rok/builds/arrow-arm64/lib/libarrow.a \
        /Users/rok/builds/arrow-arm64/lib/libarrow_flight.a \
<EMAIL_ADDRESS>\
<EMAIL_ADDRESS>\
        /Users/rok/builds/arrow-arm64/lib/libarrow_bundled_dependencies.a

Undefined symbols for architecture arm64:
  "grpc::ServerBuilder::BuildAndStart()", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerBuilder::RegisterService(grpc::Service*)", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerBuilder::AddListeningPort(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::shared_ptr<grpc::ServerCredentials>, int*)", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerBuilder::SetOption(std::__1::unique_ptr<grpc::ServerBuilderOption, std::__1::default_delete<grpc::ServerBuilderOption> >)", referenced from:
      grpc::ServerBuilder& grpc::ServerBuilder::AddChannelArgument<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerBuilder::ServerBuilder()", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerBuilder::~ServerBuilder()", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::CreateAuthContext(grpc_call*)", referenced from:
      grpc::ServerContextBase::auth_context() const in libarrow_flight.a(server.cc.o)
  "grpc::ServerContextBase::AddInitialMetadata(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      arrow::flight::(anonymous namespace)::GrpcAddCallHeaders::AddHeader(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&) in libarrow_flight.a(server.cc.o)
  "grpc::ServerContextBase::AddTrailingMetadata(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&)", referenced from:
      arrow::flight::internal::ToGrpcStatus(arrow::Status const&, grpc::ServerContext*) in libarrow_flight.a(internal.cc.o)
  "grpc::SslServerCredentials(grpc::SslServerCredentialsOptions const&)", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::g_core_codegen_interface", referenced from:
      grpc::ServerInterface::Shutdown() in libarrow_flight.a(server.cc.o)
      grpc::CompletionQueue::Pluck(grpc::internal::CompletionQueueTag*) in libarrow_flight.a(server.cc.o)
      grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<arrow::flight::protocol::HandshakeRequest>, grpc::internal::CallNoOp<2>, grpc::internal::CallNoOp<3>, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6> >::FinalizeResult(void**, bool*) in libarrow_flight.a(server.cc.o)
      grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<arrow::flight::protocol::HandshakeRequest>, grpc::internal::CallNoOp<2>, grpc::internal::CallNoOp<3>, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6> >::FillOps(grpc::internal::Call*) in libarrow_flight.a(server.cc.o)
      grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<arrow::flight::protocol::HandshakeRequest>, grpc::internal::CallNoOp<2>, grpc::internal::CallNoOp<3>, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6> >::ContinueFillOpsAfterInterception() in libarrow_flight.a(server.cc.o)
      grpc::internal::CallOpSet<grpc::internal::CallOpRecvMessage<arrow::flight::protocol::HandshakeRequest>, grpc::internal::CallNoOp<2>, grpc::internal::CallNoOp<3>, grpc::internal::CallNoOp<4>, grpc::internal::CallNoOp<5>, grpc::internal::CallNoOp<6> >::ContinueFinalizeResultAfterInterception() in libarrow_flight.a(server.cc.o)
      grpc::internal::InterceptorBatchMethodsImpl::Proceed() in libarrow_flight.a(server.cc.o)
      ...
  "grpc::InsecureServerCredentials()", referenced from:
      arrow::flight::FlightServerBase::Init(arrow::flight::FlightServerOptions const&) in libarrow_flight.a(server.cc.o)
  "grpc::MakeChannelArgumentOption(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int)", referenced from:
      grpc::ServerBuilder& grpc::ServerBuilder::AddChannelArgument<int>(std::__1::basic_string<char, std::__1::char_traits<char>, std::__1::allocator<char> > const&, int const&) in libarrow_flight.a(server.cc.o)
  "grpc::Status::OK", referenced from:
      arrow::flight::(anonymous namespace)::FlightServiceImpl::ListFlights(grpc::ServerContext*, arrow::flight::protocol::Criteria const*, grpc::ServerWriter<arrow::flight::protocol::FlightInfo>*) in libarrow_flight.a(server.cc.o)
      arrow::flight::(anonymous namespace)::FlightServiceImpl::GetFlightInfo(grpc::ServerContext*, arrow::flight::protocol::FlightDescriptor const*, arrow::flight::protocol::FlightInfo*) in libarrow_flight.a(server.cc.o)
      arrow::flight::(anonymous namespace)::FlightServiceImpl::GetSchema(grpc::ServerContext*, arrow::flight::protocol::FlightDescriptor const*, arrow::flight::protocol::SchemaResult*) in libarrow_flight.a(server.cc.o)
      arrow::flight::(anonymous namespace)::FlightServiceImpl::DoGet(grpc::ServerContext*, arrow::flight::protocol::Ticket const*, grpc::ServerWriter<arrow::flight::protocol::FlightData>*) in libarrow_flight.a(server.cc.o)
      arrow::flight::(anonymous namespace)::FlightServiceImpl::DoAction(grpc::ServerContext*, arrow::flight::protocol::Action const*, grpc::ServerWriter<arrow::flight::protocol::Result>*) in libarrow_flight.a(server.cc.o)
      arrow::flight::(anonymous namespace)::FlightServiceImpl::MakeCallContext(arrow::flight::FlightMethod const&, grpc::ServerContext*, arrow::flight::(anonymous namespace)::GrpcServerCallContext&) in libarrow_flight.a(server.cc.o)
      grpc::Status arrow::flight::(anonymous namespace)::FlightServiceImpl::WriteStream<arrow::flight::FlightInfo, arrow::flight::FlightListing, arrow::flight::protocol::FlightInfo>(arrow::flight::FlightListing*, grpc::ServerWriter<arrow::flight::protocol::FlightInfo>*) in libarrow_flight.a(server.cc.o)
      ...
  "grpc::Status::CANCELLED", referenced from:
      arrow::flight::(anonymous namespace)::FlightServiceImpl::DoAction(grpc::ServerContext*, arrow::flight::protocol::Action const*, grpc::ServerWriter<arrow::flight::protocol::Result>*) in libarrow_flight.a(server.cc.o)
  "grpc::g_glip", referenced from:
      grpc::GrpcLibraryCodegen::GrpcLibraryCodegen(bool) in libarrow_flight.a(protocol_internal.cc.o)
      grpc::GrpcLibraryCodegen::~GrpcLibraryCodegen() in libarrow_flight.a(protocol_internal.cc.o)
  "grpc::ServerContextBase::IsCancelled() const", referenced from:
      arrow::flight::(anonymous namespace)::GrpcServerCallContext::is_cancelled() const in libarrow_flight.a(server.cc.o)
  "grpc::ServerContextBase::peer() const", referenced from:
      arrow::flight::(anonymous namespace)::GrpcServerCallContext::GrpcServerCallContext(grpc::ServerContext*) in libarrow_flight.a(server.cc.o)
  "_grpc_byte_buffer_reader_destroy", referenced from:
      arrow::flight::internal::GrpcBuffer::Wrap(grpc::ByteBuffer*, std::__1::shared_ptr<arrow::Buffer>*) in libarrow_flight.a(serialization_internal.cc.o)
  "_grpc_byte_buffer_reader_init", referenced from:
      arrow::flight::internal::GrpcBuffer::Wrap(grpc::ByteBuffer*, std::__1::shared_ptr<arrow::Buffer>*) in libarrow_flight.a(serialization_internal.cc.o)
  "_grpc_byte_buffer_reader_readall", referenced from:
      arrow::flight::internal::GrpcBuffer::Wrap(grpc::ByteBuffer*, std::__1::shared_ptr<arrow::Buffer>*) in libarrow_flight.a(serialization_internal.cc.o)
  "_grpc_slice_ref", referenced from:
      arrow::flight::internal::GrpcBuffer::GrpcBuffer(grpc_slice, bool) in libarrow_flight.a(serialization_internal.cc.o)
  "_grpc_slice_unref", referenced from:
      arrow::flight::internal::GrpcBuffer::~GrpcBuffer() in libarrow_flight.a(serialization_internal.cc.o)
ld: symbol(s) not found for architecture arm64

I've noticed that with the original set of abseil dependencies we were probably getting namespace collisions. That caused some symbols to not be available. Example error message when doing a static build:
cmake \
 -GNinja \
 -DCMAKE_INSTALL_PREFIX=$ARROW_HOME \
 -DCMAKE_INSTALL_LIBDIR=lib \
 -DARROW_EXTRA_ERROR_CONTEXT=ON \
 -DARROW_GRPC_USE_SHARED=ON \
 -DARROW_USE_GLOG=ON \
 -DARROW_PARQUET=ON \
 -DARROW_WITH_SNAPPY=ON \
 -DARROW_DATASET=ON \
 -DARROW_CSV=ON \
 -DARROW_JSON=ON \
 -DARROW_PYTHON=ON \
 -DARROW_WITH_LZ4=ON \
 -DARROW_FLIGHT=ON \
 -DARROW_VERBOSE_THIRDPARTY_BUILD=OFF \
 -DCMAKE_BUILD_TYPE="Debug" \
 -DARROW_DEPENDENCY_SOURCE=BUNDLED \
 ..
ninja -j8

/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (any.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(any.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(any.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (any.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(any.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(any.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (arena.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(arena.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgpr.a(arena.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (descriptor.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(descriptor.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(descriptor.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (duration.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(duration.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(duration.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (duration.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(duration.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(duration.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (empty.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(empty.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(empty.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (empty.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(empty.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(empty.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (http.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(http.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(http.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (http.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(http.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(http.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (insecure_credentials.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(insecure_credentials.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/libgrpcpp.a(insecure_credentials.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (json_util.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(json_util.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(json_util.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (json_util.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(json_util.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(json_util.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (metadata.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(metadata.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(metadata.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (metadata.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(metadata.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(metadata.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (parser.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(parser.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(parser.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (resource.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(resource.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(resource.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (resource.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(resource.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(resource.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (status.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/libgrpcpp.a(status.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(status.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (status.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(status.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(status.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (status.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(status.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(status.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (struct.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(struct.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(struct.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (struct.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(struct.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(struct.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (time.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgpr.a(time.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/protobuf_ep-install/lib/libprotobuf.a(time.cc.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (timestamp.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(timestamp.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(timestamp.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (timestamp.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(timestamp.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(timestamp.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (wrappers.upb.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(wrappers.upb.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(wrappers.upb.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (wrappers.upbdefs.c.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libupb.a(wrappers.upbdefs.c.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(wrappers.upbdefs.c.o) due to use of basename, truncation and blank padding
/Library/Developer/CommandLineTools/usr/bin/libtool: warning same member name (xds_credentials.cc.o) in output file used for input files: /Users/rok/Documents/repos/ARROW-14708/cpp/build/libgrpcpp.a(xds_credentials.cc.o) and: /Users/rok/Documents/repos/ARROW-14708/cpp/build/grpc_ep-install/lib/libgrpc.a(xds_credentials.cc.o) due to use of basename, truncation and blank padding

This lead me to removing some abseil packages from flight, but I can't solve the missing gRPC probably because it's bundled differently.

Looking at CI, it seems the set of Abseil libraries we need might be different per-platform even.
Also, I get failures with the repro. The link command is missing the bundled dependencies, and the order of libraries still seems off. (Can't paste the log, it's too long.)
[1/1] Linking CXX executable arrow_example
FAILED: arrow_example
: && /usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example  /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow.a  /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a  -pthread && :

Even if I change the order of linking and add the bundled dependencies, I still have gRPC symbols missing. And indeed, the dependencies archive seems to be missing gRPC.
CREATE /home/lidavidm/Code/upstream/rok-arrow-14708/build/debug/libarrow_bundled_dependencies.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/snappy_ep/src/snappy_ep-install/lib/libsnappy.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/glog_ep-prefix/src/glog_ep/lib/libglogd.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/gflags_ep-prefix/src/gflags_ep/lib/libgflags_debug.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/thrift_ep-install/lib/libthriftd.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/protobuf_ep-install/lib/libprotobuf.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/zlib_ep/src/zlib_ep-install/lib/libz.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/lz4_ep-prefix/src/lz4_ep/lib/liblz4.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/utf8proc_ep-install/lib/libutf8proc.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/cares_ep-install/lib/libcares.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_base.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_cord.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_synchronization.a
SAVE
END

@github-actions crossbow submit example-cpp-minimal-build-static*

@kou I think this is ready for review could you please take a look?
Please note cpp/build-support/list-absl-libraries.sh seems a bit unnecessary now. We should probably remove it.

Could you confirm test failures?

It seems that they are related because they are failed by link error:
https://github.com/apache/arrow/runs/5386081478?check_suite_focus=true
Error: package or namespace load failed for ‘arrow’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so':
  /arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so: undefined symbol: _ZN3re23RE2D1Ev

https://github.com/apache/arrow/runs/5386081500?check_suite_focus=true
Error: package or namespace load failed for ‘arrow’ in dyn.load(file, DLLpath = DLLpath, ...):
 unable to load shared object '/arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so':
  /arrow/r/check/arrow.Rcheck/00LOCK-arrow/00new/arrow/libs/arrow.so: undefined symbol: _ZN3re23RE2D1Ev

https://github.com/ursacomputing/crossbow/runs/5386355726?check_suite_focus=true
[100%] Linking CXX executable arrow_example
/usr/bin/ld: /usr/local/lib/libarrow.a(compression_brotli.cc.o): in function `arrow::util::internal::(anonymous namespace)::BrotliDecompressor::~BrotliDecompressor()':
compression_brotli.cc:(.text+0x13c): undefined reference to `BrotliDecoderDestroyInstance'
/usr/bin/ld: /usr/local/lib/libarrow.a(compression_brotli.cc.o): in function `std::_Sp_counted_ptr_inplace<arrow::util::internal::(anonymous namespace)::BrotliDecompressor, std::allocator<arrow::util::internal::(anonymous namespace)::BrotliDecompressor>, (__gnu_cxx::_Lock_policy)2>::_M_dispose()':
...

This still gives me a lot of errors with the repro:
> ninja                                                                                (base)
[1/1] Linking CXX executable arrow_example
FAILED: arrow_example
: && /usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example  /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow.a  /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a  /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_bundled_dependencies.a  -pthread && :
/home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a(server.cc.o): In function `arrow::flight::(anonymous namespace)::DoExchangeMessageWriter::DoExchangeMessageWriter(grpc::ServerReaderWriter<arrow::flight::protocol::FlightData, arrow::flight::protocol::FlightData>*)':
/home/lidavidm/Code/upstream/rok-arrow-14708/cpp/src/arrow/flight/server.cc:301: undefined reference to `arrow::ipc::IpcWriteOptions::Defaults()'
/home/lidavidm/Code/upstream/rok-arrow-14708/cpp/src/arrow/flight/server.cc:301: undefined reference to `arrow::ipc::DictionaryFieldMapper::DictionaryFieldMapper()'
/home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a(server.cc.o): In function `arrow::flight::(anonymous namespace)::DoExchangeMessageWriter::Begin(std::shared_ptr<arrow::Schema> const&, arrow::ipc::IpcWriteOptions const&)':
...

The link order is still wrong - libarrow_flight.a needs to come before libarrow.a. After that, it seems gRPC isn't getting bundled. Indeed, the .ar file is missing gRPC:
CREATE /home/lidavidm/Code/upstream/rok-arrow-14708/build/debug/libarrow_bundled_dependencies.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/snappy_ep/src/snappy_ep-install/lib/libsnappy.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/glog_ep-prefix/src/glog_ep/lib/libglogd.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/gflags_ep-prefix/src/gflags_ep/lib/libgflags_debug.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/thrift_ep-install/lib/libthriftd.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/protobuf_ep-install/lib/libprotobuf.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/jemalloc_ep-prefix/src/jemalloc_ep/dist//lib/libjemalloc_pic.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/zlib_ep/src/zlib_ep-install/lib/libz.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/lz4_ep-prefix/src/lz4_ep/lib/liblz4.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/re2_ep-install/lib/libre2.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/utf8proc_ep-install/lib/libutf8proc.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/cares_ep-install/lib/libcares.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_base.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_cord.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_status.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_statusor.a
ADDLIB /home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/lib/libabsl_synchronization.a
SAVE
END

aaaaand when I try to fix it: https://github.com/google/shaderc/issues/473#issuecomment-409754031
…

So, I can manually fix that by copying libgrpc++.a to libgrpcpp.a, then running ar myself. So far, these changes have been made:
diff --git a/cpp/cmake_modules/ThirdpartyToolchain.cmake b/cpp/cmake_modules/ThirdpartyToolchain.cmake
index 84c27c254..220a5ded0 100644
--- a/cpp/cmake_modules/ThirdpartyToolchain.cmake
+++ b/cpp/cmake_modules/ThirdpartyToolchain.cmake
@@ -3647,6 +3647,8 @@ macro(build_grpc)
   add_custom_target(grpc_copy_grpc++ ALL DEPENDS "${GRPC_STATIC_LIBRARY_GRPCPP_FOR_AR}")
   add_dependencies(gRPC::grpcpp_for_bundling grpc_copy_grpc++)

+  list(APPEND ARROW_BUNDLED_STATIC_LIBS gRPC::upb gRPC::gpr gRPC::address_sorting
+         gRPC::grpc++ gRPC::grpc)
   list(APPEND ARROW_BUNDLED_STATIC_LIBS ${GRPC_GPR_ABSL_LIBRARIES})
 endmacro()

and I'm running
/usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow.a /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_bundled_dependencies.a  -pthread

That fails with more missing symbols. A lot look like OpenSSL, so that's another issue here: something isn't properly declaring the dependency on OpenSSL.
/usr/bin/c++ -O3 -DNDEBUG  CMakeFiles/arrow_example.dir/example.cc.o -o arrow_example /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_flight.a /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow.a /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_bundled_dependencies.a -lssl -lcrypto  -pthread

This still fails, now we're missing more abseil symbols:
/home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_bundled_dependencies.a(completion_queue.cc.o): In function `std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > absl::lts_20210324::StrFormat<void*>(absl::lts_20210324::str_format_internal::FormatSpecTemplate<(ArgumentToConv<void*>)()> const&, void* const&)':
/home/lidavidm/Code/upstream/rok-arrow-14708/build/absl_ep-install/include/absl/strings/str_format.h:342: undefined reference to `absl::lts_20210324::str_format_internal::FormatPack[abi:cxx11](absl::lts_20210324::str_format_internal::UntypedFormatSpecImpl, absl::lts_20210324::Span<absl::lts_20210324::str_format_internal::FormatArgImpl const>)'
/home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/libarrow_bundled_dependencies.a(completion_queue.cc.o): In function `void absl::lts_20210324::str_format_internal::FormatArgImpl::Init<absl::lts_20210324::str_format_internal::VoidPtr>(absl::lts_20210324::str_format_internal::VoidPtr const&)':
...

@rok does the repro work for you?

Aren't a lot of these issues the same ones we had initially? Especially the missing OpenSSL and the wrong order of the link parameters.

I started working on this on mac and was getting namespace collision and therefore removed some abseils. I was also hitting this and couldn't get around it so I decided to focus on linux.

@lidavidm Thanks for the suggestions, let me try them together with reintroducing those abseils.

@rok does the repro work for you?

No, static examples do not build yet.

Ah, ok, understood. Hmm, we should probably see about setting this case up in Crossbow once we get it fixed.

Ah, ok, understood. Hmm, we should probably see about setting this case up in Crossbow once we get it fixed.

That would be a good idea. We should make sure we check the mac issues once we're done here, but I would prefer that in a separate scope.

@lidavidm this now runs for me on linux (conda env on ubuntu) if I replace cpp/examples/minimal_build/example.cc and cpp/examples/minimal_build/CMakeLists.txt with repro code:
cmake ..

On mac:
Undefined symbols for architecture arm64:
  "_CFRelease", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)
  "_CFStringGetCString", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)
  "_CFStringGetLength", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)
  "_CFStringGetMaximumSizeForEncoding", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)
  "_CFTimeZoneCopyDefault", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)
  "_CFTimeZoneGetName", referenced from:
      absl::lts_20210324::time_internal::cctz::local_time_zone() in libabsl_time_zone.a(time_zone_lookup.cc.o)

Which looks like this cctz issue.

It's still failing for me.

@lidavidm I've reintroduced all abseils that were there before and hopefully changed the order of imports. Could you please check again? Strangely this keeps on building for me here.

I wonder if it's because one of us is enabling C++17? Apparently that changes the available symbols: https://github.com/conda-forge/abseil-cpp-feedstock/pull/25#issuecomment-1058682145

I'll try with the docker container now

Wait, what changes exactly are you making to the minimal build?  The example there doesn't actually link to or use Flight by default, so it might not complain.

@lidavidm Ah sorry, I was building the repro with -DARROW_BUILD_EXAMPLES=ON and wasn't getting issues. Building with:
cmake . -DCMAKE_MODULE_PATH=/home/rok/Documents/repos/arrow/cpp/cmake_modules/ -DCMAKE_PREFIX_PATH=/home/rok/miniconda3/envs/pyarrow-dev/lib/

Surfaces the symbol issues again. I'll fix it and get back.

@lidavidm this now builds the repro on my laptop with a small adjustment to CMakeLists.txt. Namely last line should be:
target_link_libraries(arrow_example PRIVATE arrow_flight_static arrow_static arrow_bundled_dependencies ssl crypto rt Threads::Threads).
Could you please check again on your end?

For some reason it now refuses to link:
> cmake ../ -GNinja -DCMAKE_PREFIX_PATH=../install/lib/cmake/arrow
-- The C compiler identification is GNU 7.5.0
-- The CXX compiler identification is GNU 7.5.0
-- Detecting C compiler ABI info
-- Detecting C compiler ABI info - done
-- Check for working C compiler: /usr/bin/cc - skipped
-- Detecting C compile features
-- Detecting C compile features - done
-- Detecting CXX compiler ABI info
-- Detecting CXX compiler ABI info - done
-- Check for working CXX compiler: /usr/bin/c++ - skipped
-- Detecting CXX compile features
-- Detecting CXX compile features - done
-- Looking for pthread.h
-- Looking for pthread.h - found
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD
-- Performing Test CMAKE_HAVE_LIBC_PTHREAD - Failed
-- Check if compiler accepts -pthread
-- Check if compiler accepts -pthread - yes
-- Found Threads: TRUE
-- Found OpenSSL: /usr/lib/x86_64-linux-gnu/libcrypto.so (found version "1.1.1")
CMake Error at /home/lidavidm/Code/upstream/rok-arrow-14708/install/lib/cmake/arrow/ArrowConfig.cmake:101 (set_target_properties):
  set_target_properties called with incorrect number of arguments.
Call Stack (most recent call first):
  CMakeLists.txt:5 (find_package)

-- Arrow version: 8.0.0-SNAPSHOT
-- Arrow SO version: 800.0.0
-- Configuring incomplete, errors occurred!
See also "/home/lidavidm/Code/upstream/rok-arrow-14708/repro/build/CMakeFiles/CMakeOutput.log".
See also "/home/lidavidm/Code/upstream/rok-arrow-14708/repro/build/CMakeFiles/CMakeError.log".

The problem is here:
101       set_target_properties(
102         arrow_bundled_dependencies
103         PROPERTIES
104           IMPORTED_LOCATION
105           "${arrow_lib_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}arrow_bundled_dependencies${CMAKE_STATIC_LIBRARY_SUFFIX}"
106           INTERFACE_LINK_LIBRARIES
107           ${ARROW_STATIC_INSTALL_INTERFACE_LIBS}
108       )

ARROW_STATIC_INSTALL_INTERFACE_LIBS is blank:
 65 set(ARROW_STATIC_INSTALL_INTERFACE_LIBS "")

This fixes it:
diff --git a/cpp/src/arrow/ArrowConfig.cmake.in b/cpp/src/arrow/ArrowConfig.cmake.in
index e8d79c089..1f4ae96b1 100644
--- a/cpp/src/arrow/ArrowConfig.cmake.in
+++ b/cpp/src/arrow/ArrowConfig.cmake.in
@@ -80,7 +80,7 @@ if(NOT (TARGET arrow_shared OR TARGET arrow_static))
           IMPORTED_LOCATION
           "${arrow_lib_dir}/${CMAKE_STATIC_LIBRARY_PREFIX}arrow_bundled_dependencies${CMAKE_STATIC_LIBRARY_SUFFIX}"
           INTERFACE_LINK_LIBRARIES
-          ${ARROW_STATIC_INSTALL_INTERFACE_LIBS}
+          "${ARROW_STATIC_INSTALL_INTERFACE_LIBS}"
       )
       get_property(arrow_static_interface_link_libraries
                    TARGET arrow_static

Also if we change this, we don't need to list ssl, crypto, etc. in the downstream package:
diff --git a/cpp/src/arrow/CMakeLists.txt b/cpp/src/arrow/CMakeLists.txt
index 403a4e39a..b206ba894 100644
--- a/cpp/src/arrow/CMakeLists.txt
+++ b/cpp/src/arrow/CMakeLists.txt
@@ -533,7 +533,7 @@ else()
   set(ARROW_BUILD_BUNDLED_DEPENDENCIES FALSE)
 endif()

-if(NOT ARROW_BUILD_BUNDLED_DEPENDENCIES)
+if(ARROW_BUILD_BUNDLED_DEPENDENCIES)
   set(ARROW_STATIC_INSTALL_INTERFACE_LIBS_REAL ${ARROW_STATIC_INSTALL_INTERFACE_LIBS})
 endif()
 # Need -latomic on Raspbian.

But it finally works!

@lidavidm that's great! Thanks for the review I'll address the comments and get back.
Question: should we add a test for the static build?

@lidavidm Implemented your suggestions and added a workaround for the abseil issue on macOS.

@lidavidm thanks for your patience. I've pushed another change with your suggestions.

Sorry for the rebasing mess @lidavidm ! :)

@kou thank you for the review! I've pushed suggested changes.


ShopperLogin - getAccessToken - 415 Unsupported Media Type

Hello!
I'm trying to use the getAccessToken function from the ShopperLogin client, and I'm getting a 415 Unsupported Media Type response.
Looking at the source code this is where the issue is,
return core_1.StaticClient.post({
      client: this,
      rawResponse: rawResponse,
      path: "/organizations/{organizationId}/oauth2/token",
      pathParameters: pathParameters,
      queryParameters: queryParameters,
      retrySettings: (options || {}).retrySettings,
      headers: headers,
      body: (options || {}).body,
    });

core_1.StaticClient.post internally is setting the body property to body: JSON.stringify(options.body), which is wrong for this particular API.  The body should be body: new URLSearchParams(options.body).toString() and the Content-Type header set to application/x-www-form-urlencoded

Hi @andrewgadziksonos, thanks for reporting this issue! We will have a fix released in the next week or two. I'll let you know as soon as the release is done.

This issue should be fixed in v2.6.1 of the SDK.


Prebuilt proofs for examples

Component
Other (please describe)
Describe the feature you would like
I'm interested in benchmarking proof verification performance for groth16 and plonk on various machines and execution environments. The examples in this repository seem like a nice set of programs to experiment with. However, generating the proofs is quite resource-intensive and time-consuming. If you happen to already have groth16 and plonk proofs for some/all of the examples it would be great if these could be uploaded somewhere. I would only need the proof-with-pis.bin file, plus the associated ELF (looks like prebuilt ELFs already exist for all examples). Thanks!
Additional context
No response

As a band aid, there are some pre-generated proofs I use for testing here: https://github.com/succinctlabs/sp1/tree/dev/crates/verifier/test_binaries. You can see the tests here for an example of how to verify them.
If these suffice then I can close the issue, unless you'd want more serialized core /  compressed proofs or proofs for more varied programs.

Thanks! I did manage to generate groth16/plonk proofs for the fibonacci example, but I would ideally like to benchmark with a larger set of more varied programs.

Closing as we will likely not being maintaining example proofs in this repo


fix: jest is missing in dev dependencies of template

jest is specified because jest.config.ts is listed in the template

@PainterPuppets @Daryl-L please have a review


Improve German translations

I messed up my fork, so #1099 was closed automatically. Here it is again.
Please review @fxedel and/or @kripton.

Thanks :+1:


Flutter versioning mismatch/old when pub get

Update: This is likely caused by the versioning calculation taking the earliest branch point as the version.
When working on old branches of Flutter, the version can remain old and become out of sync with master.
Error:
The current Flutter SDK version is 1.4.2-pre.103.

Because flutter_gallery depends on device_info 0.4.0+2 which requires Flutter SDK version >=1.5.0 <2.0.0, version solving failed.
Running "flutter pub get" in flutter_gallery...
pub get failed (1)

This is after syncing tags, deleting flutter/version and running pub get and update-packages.
cc @jonahwilliams

Running git fetch upstream master --tags resolved this for me.
I ran into a similar issue trying to run flutter_gallery when my Flutter SDK version was showing as Flutter 1.2.1-pre.1477 on tip-of-tree master. It seems like the tags for each branch do not get updated when running git fetch upstream.
The current Flutter SDK version is 1.2.1-pre.1477.
Because flutter_gallery depends on video_player >=0.10.1+3 which requires Flutter SDK version >=1.5.0 <2.0.0, version solving failed.
Running "flutter pub get" in flutter_gallery...
pub get failed (1)

@GaryQian Could you give some detailed repro steps along with expected/actual behavior? Thanks!

ping @GaryQian


How to delete a project?

The delete button disappeared in version 2.3.4

if you delete the project folder, or move it, the project should no longer be displayed. since we've moved to file-based rather than database based. what additional functionality do you need?

A delete button which does what for the user would be nice

i have added back the project delete button. It deleted the project's entire directory! (it does warn the user in advance)

version 2.3.6


Path to 1.0

Things we need to do:

[x] Set up automated accessibility tests. @contolini @anselmbradford
[x] Remove CFPB typefaces from all CF components. @KimberlyMunoz
[x] Refactor build process (per #151) on components' dev branches. @contolini
[x] Test dev branches in real CFPB environments. @contolini @anselmbradford @jimmynotjim
[x] Merge in dev branches and bump all CF components to 1.x.x (see notes below). @Scotchester
[x] Review all the old 1.0 issues in this milestone and check for blockers. @contolini
[x] Remove compiled CSS from docs pages (#164). @Scotchester
[x] Add download button to the homepage (https://github.com/cfpb/capital-framework/pull/166) @ascott1
[ ] Publish an intro to CF blog post. @anselmbradford @Scotchester
[ ] Publish a tutorial blog post after errything's good-to-go. @ascott1 @Scotchester

Component notes
cf-core

[x] bump bower: 0.11.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-core/pull/39
[x] git tag and push

cf-grid

[x] bump bower: 0.9.3 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-grid/pull/26
[x] git tag and push

cf-icons

[x] bump bower: 0.6.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-icons/pull/51
[x] git tag and push

cf-buttons

[x] bump bower: 1.5.1 -> 1.6.1
[x] update deps
[x] PR: https://github.com/cfpb/cf-buttons/pull/46
[x] git tag and push

cf-forms

[x] bump bower: 1.2.0 -> 1.3.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-forms/pull/32
[x] git tag and push

cf-pagination

[x] bump bower: 0.5.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-pagination/pull/29
[x] git tag and push

cf-expandables

[x] bump bower: 0.7.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-expandables/pull/51
[x] git tag and push

cf-layout

[x] bump bower: 0.3.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-layout/pull/13
[x] git tag and push

cf-typography

[x] bump bower: 0.8.1 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-typography/pull/36
[x] git tag and push

capital-framework

[x] bump bower: 0.1.0 -> 1.0.0
[x] bump npm:  0.1.0 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/capital-framework/pull/169
[x] git tag and push

cf-grunt-config

[x] bump npm: 0.3.1 -> 1.0.0
[x] PR: https://github.com/cfpb/cf-grunt-config/pull/30
[x] npm publish
[x] git tag and push

cf-component-demo

[x] bump npm: 0.9.2 -> 1.0.0
[x] update deps
[x] PR: https://github.com/cfpb/cf-component-demo/pull/40
[x] npm publish
[x] git tag and push

Onward to 2.0!


Make easier creating a new file

Is your feature request related to a problem? Please describe.
Creating a new file is somewhat tricky
Describe the solution you'd like
As far as I have seen, to start editing a new file, at the moment, you should:

create a new file
refresh the folder view (or it doesn't appear)
then start the edit

This process is too complicated for a quick use, at least for me.
It would be easier if the main screen is already in editing mode when the software is opened, so to speed up starting to work on a new file.
Another way to make the things easier could be to have the chance, in the opening screen, to choose between "Open File or Folder" and "Create a new file".

Add

Folder Manager

It is very helpful for creating file/delete file/move/replication/search.

Recursive Search String

File name to find (support * )
Text to find
Match case

Can you explain this in details


Random heroku 403 forbidden errors

I recently created a boarding app and started getting emails from my beta users about a crash.
After looking at the website all I see is a REASON:
FORBIDDEN
.
Whats odd is that restarting the dynos on heroku resolves the issue but only for a certain amount of time until it happens again. I've now restarted it 4 times. It's strange since the application isn't being overworked. Memory usage is usually below 22% and throughput is <1rps. The dynos are Hobby Dev.
Any ideas?

Actually it seems I have have set the APP_ID incorrectly. I fixed it and haven't been able to reproduce the failure.

Nope..still randomly getting failures..

Same.

I will ask about logs. For what it's worth, here's the error message that's printed to the boarding page itself:
Something went wrong, please contact the application owner:   <meta http-equiv="Content-Type" content="text/html;charset=ISO-8859-1"/> <title>Error 403 </title>
HTTP ERROR: 403

Problem accessing /v2/providers/70630800/apps/309601447/testers. Reason:
 Forbidden

Powered by Jetty://

Here's an application log file.

I have exactly the same issue.
Do you have any news on this?
I just rebooted all my dynos in the heroku dashboard for now, and it is working again.
Will investigate if the issue reappears and keep you updated if I find a solution.

After searching through the Fastlane org's repos and looking at similar
issues, it looks like this is an issue with iTunes Connect authentication
going stale. For now, I've just set our dynos to restart every hour.
On Mon, May 7, 2018 at 2:54 AM Michael Kugler<EMAIL_ADDRESS>wrote:

I have exactly the same issue.
Do you have any news on this?
I just rebooted all my dynos in the heroku dashboard for now, and it is
working again.
Will investigate if the issue reappears and keep you updated if I find a
solution.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/fastlane/boarding/issues/202#issuecomment-387016928,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AE_CPfuwPHqGIJte-cvSOxX7BxV--v5pks5twBnPgaJpZM4SiOTi
.

@nzeltzer any tips for auto restarting heroku to work around this problem? Not a heroku expert here.

Do you think a 2FA account might have no issues with the authentication stale issue?


Getting a PluginTool in Headless Mode

I'm looking to get a PluginTool for use in a test. When extending AbstractGhidraHeadlessIntegrationTest and using TestEnv.launchDefaultTool(Program) I always encounter a HeadlessException. This is obviously solved by extending AbstractGhidraHeadedIntegrationTest instead, but I don't actually have a need for the Code Browser. Is there a tool I can get in headless mode to retrieve services with?

This is advanced territory, for which there is no guide.
The short answer is that you can do something like this on your own, but you may have to pave your own way.   We have examples of headless tests that use tools sparingly.  See uses of FakeDockingTool.  However, to use this, you must configure it yourself.    In your case, you would have to somehow register the services you need with the tool so that you can later retrieve them.   The point of doing this would be to have a fast test that allows you to configure the fake tool to use dependency injection in your system under test.
The hard part with doing the above is that you will probably have to create custom test services, as opposed to using the normal plugins available in Ghidra.  The issue is that most plugins will probably have a dependency on Swing that will cause a headless exception.
As a historical note, we have never correctly/fully separated the notion of plugins and services.   Currently, most services are defined by plugins, which are usually dependent upon the UI.   However, it would make more sense to me if there was also a notion of generic services that exist in both headless and UI environments.   This would allow clients to easily create scripts that work in both environments.   This was the idea behind the ServiceProvider interface.   We use that interface in many places instead of PluginTool to allow for things like dependency injection in tests.
As we grow, we create more fake versions of UI concepts for testing, but the library of these items is not yet robust.

It is probably simpler to just use the headed integration test as I don't have a large amount of test cases.


Suggest Edit: meshchaninov/translate

Gallery URL
https://alfred.app/workflows/meshchaninov/translate/
Website
https://github.com/meshchaninov/alfred-translate-workflow/releases/tag/v0.2.3
Forum
https://www.alfredforum.com/topic/20511-translate-free-translate-word-or-sentence/
About
Hi, I want to update my workflow.
I added more supported languages
Notes
No response

Please submit the updated text you feel is needed, following the Style Guide.
Also (I was going to send you a message soon regarding this), please update the default keyword to be at least three characters long. Please use the new default in the new screenshots.

On closer inspection, I see that no update text or screenshots are needed. Updating.
Though please do increase the number of default characters for the next release.


[mangrove-station-qv-scaled-to-mgv] Add Mangrove Station GroupOS voting strategy

This PR depends on https://github.com/snapshot-labs/snapshot-strategies/pull/1316 and https://github.com/snapshot-labs/snapshot-strategies/pull/1315.
This PR adds the mangrove-station-qv-scaled-to-mgv strategy. The strategy allows active members of one of Mangrove DAO's governance groups (Builders Group and Pods Group) to vote in the Mangrove multistakeholder governance.
Quadratic voting is applied to each member's score and then the voting weight is scaled such that the total voting weight of the group is equal to the circulating supply of MGV tokens. This ensures that the three stakeholder groups have equal voting weights.
Notes
Mangrove DAO governance groups are Station GroupOS groups on-chain, and active members have a ERC-1155 badge.
The circulating supply of MGV tokens is the total number of allocated, claimable tokens.

Hi @espendk One PR should contain changes of one strategy, else it will hard to test or review

Ok. But I'm unsure how to do that when submitting multiple, interdependent strategies for review as is the case here?


Can you enable Github Discussions for this repo?

I'd like to be able to start and enter discussions about open_llama.

Sure


BAEL-1258 Added example code for Jess and JSR94

removed.
On Wed, 15 Jul 2020 at 07:24, KevinGilmore<EMAIL_ADDRESS>wrote:

@KevinGilmore requested changes on this pull request.
remove README file
In rule-engines/jess/README.MD
https://github.com/eugenp/tutorials/pull/9693#discussion_r454653638:

@@ -0,0 +1,10 @@
+## Jess

We can do without the README file since there's one in the parent
rule-engines module already that will cover this and the other articles.
I'll add this one to it after we publish.
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/eugenp/tutorials/pull/9693#pullrequestreview-448476426,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAEPLXVI3444NWQOEKZNWDDR3TEHTANCNFSM4OYOXP2A
.

retest this please


Bug: sharding dosent works normaly

Bug Type
Function
Bugged Function
$creationDate - not working when sharding enabled

and other sharding functions, $forEachGuild and $updatecommands doesnt works normaly when sharding enabled

Version of aoi.js
v6.6.1
Version of Node.js
v21.4.0 (Current)
Excepted Output
No response
Relevant log output
in $creationDate:
Error [ReferenceError]: id is not defined
    at eval (eval at _eval (/home/container/node_modules/discord.js/src/client/Client.js:502:12), <anonymous>:2:37)
    at eval (eval at _eval (/home/container/node_modules/discord.js/src/client/Client.js:502:12), <anonymous>:2:41)
    at Client._eval (/home/container/node_modules/discord.js/src/client/Client.js:502:12)
    at ShardClientUtil._handleMessage (/home/container/node_modules/discord.js/src/sharding/ShardClientUtil.js:207:82)
    at process.emit (node:events:530:35)
    at emit (node:internal/child_process:951:14)
    at process.processTicksAndRejections (node:internal/process/task_queues:83:21)

Code of Conduct

[X] I agree to follow this project's Code of Conduct

Foreachguild executes within one guild of the shard.
$updatecommands works for the current instance where you use the command. Not for all shards.
Don't know about creationDate
cc @Leref

and how to update commands on all shards at once? mb add an option to update commands without respawning shards, so that the music doesn't stop on all servers

$rolePerms dosent works with sharding with the same error $creationDate (there is an error in the first message)

will the $creationDate function be fixed when sharding is enabled?

@USERSATOSHI up to ya

will the $creationDate function be fixed when sharding is enabled?

does this also fail on latest version of aoi.js

will the $creationDate function be fixed when sharding is enabled?

does this also fail on latest version of aoi.js

yes

$rolePerms dosent works with sharding with the same error

Can't reproduce that, can reproduce $creationDate though

creation date has been fixed we need more info and screenshots for rest of the functions

Closing due to inactivity.


Add scope to list of symbols

Fixes #311

I have signed the CLA!

I should have suggested this in https://github.com/Shopify/ruby-lsp-rails/pull/332 too, but can we add an example of this to the dummy app to allow for easy manual testing?

Done! https://github.com/Shopify/ruby-lsp-rails/pull/333/commits/0630ff5be0d7b1be6b42a87757a575faf5470cc5

We need to change the behaviour a little:

For before_create, it's expected there will be two entries, since you can give it a list of callbacks. It would be the equivalent of writing:
before_create :foo
before_create -> () {}

But scope is different, the first argument is the name and second argument is the relation to be applied, so we should only see one entry in the explorer, i.e. scope :adult.

@andyw8 Ahh, right. I haven't figured out how to run this locally yet, but the test output seems to do what you're looking for now.
https://github.com/Shopify/ruby-lsp-rails/pull/333/commits/510342c13665fc285ef6149c84879d299dfc7692

This might not be a blocker, but when testing I realised that we will be unintentionally listing scope entries in routes.rb.

@vinistock @st0012 we could try make this only detect scope for ActiveRecord instances, but then we'd also have deal with cases such as scopes being defined in a concern. 🤔

Is there a way to scope all of these to the app/models folder? Right now you’re kind of assuming these are ActiveRecord methods right?
Gems like ActiveModelSerizers define belongs_to and has_many methods for you to use. I assume this code would add symbols for them. Is that a bug or is that a feature? Idk

@natematykiewicz do you want to try that? It would a similar what we do here, but allowing for any class.

@andyw8 how's this look? https://github.com/Shopify/ruby-lsp-rails/pull/333/commits/ffd73e73b6ea7ca9349f253a1b7540d91a070f50
This is my first time using Sorbet. I think I set up that union type right.
I also struggled to figure out how Prism knows to call on_class_node_enter. I couldn't find it in this documentation.
I basically guessed that on_module_node_enter and on_module_node_leave exist based on the fact that Prism::ModuleNode is listed in the documentation.
Without the module ones, the concern's symbols started failing to get indexed.
I wasn't sure if you wanted this class/module check only for scope, or for all of these ActiveRecord methods. I've currently applied it to everything. If you want me to only have that check for scope, I can move that check further down.


Adding cropping utility notebook for Pixie

Is your feature request related to a problem? Please describe.
For very large whole slide images, even loading one image (all the channels) can cause memory errors. Here, the memory issues happen during preprocessing, which is a step we haven't optimized for memory (we have mainly been working on optimizing training by subsetting pixels).
Describe the solution you'd like
A quick solution is to first crop large images into smaller "fovs", and run those smaller images through Pixie normally. Since Pixie doesn't rely on spatial information, cropping the images first shouldn't make a difference. Once the pixel phenotype maps are generated, we can stitch these back together to the original size. We can have a utility notebook that users can run before and after Pixie to crop/decrop their images.
Describe alternatives you've considered
We have discussed additional solutions, such as reading in patches of images or reading in one channel at a time. These options will take longer to implement - we will continue discussing these alternatives.
Additional context
One consideration is the size of the crops. Perhaps we can just start with 1024 x 1024 crops as a default (and this can be a parameter that users can change). We will also need to think about the logic of re-stitching - we need some way of keeping track of where each crop came from to stitch them back together (maybe specifying "RxCx" in the filename? Or just number them like "crop1" through "cropx" and then keep track of the number of rows/columns somehow? Open to other suggestions).

@cliu72 agree with defaulting to 1024x1024 crops, though I'm curious to know the dimensions of the images that are causing these issues.
For de-cropping, I prefer RxCx over cropx, the former will be easier to follow along.

You can see here for some discussion about this: https://github.com/angelolab/ark-analysis/discussions/1034. Some of the large whole slide image can be like 40,000 x 40,000 pixels (for just one "fov").


unused local function should not be renamed to _

Add an unused function
let main _ =
        let isSourceFile (n: string) =
            not(n.StartsWith "-") && n.EndsWith(".fs")
        ()

the quick is shown

The Prefix with _ is ok.
The Replace with _ is wrong because create an invalid function
        let _ (n: string) =
            not(n.StartsWith "-") && n.EndsWith(".fs")

Fixed in 3.15.0


list_objects_v2 not supported

I noticed that when I use list_objects_v2() for a given bucket & prefix, the plugin issues a get-data-access API call for the whole bucket.
I think this is due to the current way of constructing s3_prefix within __get_s3_prefix(). It will built s3 prefix only if there is a parameter Key. list_objects_v2() however works with a parameter Prefix.

Hi pmarko1711,
Thank you for bringing this to our attention. We were able to reproduce the issue, and it was a bug. This should be patched as of release 1.1.0. Can you please upgrade and confirm your problem is resolved?


sugestion: in the preview,html tab add a react or nextjs tab

on the preview tab, html tab....add nextjs tab that change tags to camelCase and change some like Class to className

      ❮
      ❯

thanks

I am working on it should be done soon #1034  just need to sort the syntax highlight for the React.

Pull request has been done #1035. Code needs to be reviewed and merged.

Thank you. Amazing job.
I will review it to make sure all examples are okay.


[minor]Visual selection not showing correct in some situations

Given a text: something
vim action: viw
If cursor postion is at the last character(e.g. g in this case), nothing seems to be selected, but if continue vim action like y the whole something is copied as expected. When cursor at other position works fine.

Looks like not easy to fix. Changing selection this case doesn't trigger cursor move event so vscode is unaware that the start of selection was changed. possible but very clunky workaround is to rebind v to notify vscode after operator has completed.

Fixed in 0.0.43 (will be released soon)


content.opf compatibility issues

The opf: prefix in content.opf will cause some ebook readers to fail to recognize it. How to generate a content.opf file without opf:?

Seems like the opf spec allows the use of the default namespace without a prefix.
What we will need may be a new option to enable it.


Adding new HDP GPL repo

HDP 2.6.4 release onwards, there is an additional GPL repo. Adding the new repo.

Hi Clay,
I missed them, thanks for notifying.
Will update all the repos to 2.6.4 and point them to release repo.
Thanks
Vinesh
From: "Clay B."<EMAIL_ADDRESS>Reply-To: bloomberg/chef-bach<EMAIL_ADDRESS>Date: Tuesday, March 6, 2018 at 11:51 AM
To: bloomberg/chef-bach<EMAIL_ADDRESS>Cc: Vinesh Chemmala Paul<EMAIL_ADDRESS>Author<EMAIL_ADDRESS>Subject: Re: [bloomberg/chef-bach] Adding new HDP GPL repo (#1132)
@cbaenziger commented on this pull request.
Hi Vinesh, this looks good; however to avoid inconsistencies, should all repos move to 2.6.4 at once? Also, can we point to a 2.6.4 release repo, rather than a dev one?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHubhttps://github.com/bloomberg/chef-bach/pull/1132#pullrequestreview-101429969, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ANfFcUwXZb_fykDuqQjP_vUsMW-MPEImks5tbirtgaJpZM4SeKVr.

Can you describe what's in the GPL Repo and why it is needed now?
A few reference links and a summary should suffice.

@aespinosa We have removed GPL licensed softwares from the HDP repo. It is left to end user to select the GPL repo in case they want to consume.
Latest HDP is having only one package identified with GPL from HDP which is "hadooplzo" and is served through the hdp.gpl.repo|list.
Repo:
http://public-repo-1.hortonworks.com/HDP-GPL/ubuntu14/2.x/updates/<IP_ADDRESS>/hdp.gpl.list
/cc
@vineshcpaul

Thanks @vijayk !
Can you link the release note in 2.6.4/2.6.5 indicating that?

Let's close this out for #1230 for 2.6.5 and we will simply skip 2.6.4 at this time.


Different environment variables per instance?

I'd like to create staging and production instances with different values for environment variables. Does the plugin support this?

Figured out a quick and dirty workaround for this. I'm swapping between two configuration files before I run the deploy. Would still love to hear if there's a better way I'm missing.


Issue with longer image URL

Sharing fails in services like Facebook and WhatsApp when the URL of the image shared is too long.
https://api.backendless.com/ca31bb1d-82e1-53e1-ff27-a63f89ef2200/v1/files/import%2F65F816E6-3F10-DE2F-FF69-71F999E262000dd44-blouse.png
The same code wtih shorter url's work fine. Is this a limit of the plugin or an issue?

If the below URL
https://api.backendless.com/ca31bb1d-82e1-53e1-ff27-a63f89ef2200/v1/files/import%2F65F816E6-3F10-DE2F-FF69-71F999E262000dd44-blouse.png
is changed as below, it works. (%2F is changed to /)
https://api.backendless.com/ca31bb1d-82e1-53e1-ff27-a63f89ef2200/v1/files/import/65F816E6-3F10-DE2F-FF69-71F999E262000dd44-blouse.png

Since part of the URL is encoded %2F and others are not / I'm assuming the URL isn't valid. The browser is forgiving, but Fb is not.


Migration of Boot2Docker VM failed on Windows 10 10240

Hi @codefoster can provide more details? Otherwise I'll have to close the issue

No details. Closing as a duplicate of #1762


detect shell and platform and add to prompt.

Adding the operating system and shell to the prompt:
You are an AI Terminal Copilot. Your job is to help users find the right terminal command in a /usr/bin/zsh on Linux.
...

Thanks, great PR!


Using GCN to predict embeddings for new nodes.

I have a nx graph which is converted to stellar-graph. A GCN model is trained for embedding on this graph. Some new nodes are introduced in original graph. I create a new stellar-graph.  Now i want to get node embeddings for this new graph without re training the model. Is this possible?

please answer for above question,i am also facing issue to add new node in link prediction model

You're trying to generate embeddings via inductive representation learning, according to the demo table, this is not possible with vanilla GCN, you should use the Cluster-GCN. If your model doesn't necessarily need to be GCN you can try this GraphSage demo. I was able to construct the pipeline you aim following these steps, recommended by the tutorial:

Train the link prediction model on your data.
Extract the node-based model (embedding generator) from 1.
When a new node comes, construct a new stellargraph object with this node.
Create a node generator based on this new graph.
Flow the generator to the node-based model.

Hope this helps!

I aim to capture the structural properties of the graph. The nodes do not have any features. There can be features on edges. GraphSage with one hot encoding will fail to scale. Any suggestions for inductive algorithm.

I believe SG doesn't support edge features in the ML algorithms.  #1326

Hi all and thanks for the valuable advice on this.
I wanted to ask a question regarding step 3. listed above:

When a new node comes, construct a new stellargraph object with this node.

I am trying constructing a stellargraph object in 2 ways:

with only the node I want the prediction for
starting from the node of interest, I am also adding a little context to it, such as: its first direct connections and therefore other related nodes and edges.

Then I build the generator and do the prediction.
The problem is, I've noticed that the embedding changes depending on how this graph is built, my question is: which of the two approaches should provide a better embedding for an unseen node between 1. and 2.?
Does it need to be 'alone' in the graph or I can add some more nodes and connections to create some more context?
Another possibility is that I am doing it all wrong and that's why I have 2 different embeddings as result for the same node! (d'oh)
I am using the attri2vec embedding layer for it.
Thanks a lot in advance for your help!

Hi @shoegazerstella, yes the second way is the correct one. What I meant in step 3 is to add the node and It's connections to the new stellargraph object. In this way you will have a better context and thus a better embedding for the new node.


Feature request - GPS timer in milliseconds

@tiagoshibata , thank you for that app. It works very well.
I'm in no position to ask for new features to you. But, please, at least let me express a request.
It would be possible to implement a timer function? Where given a input in milliseconds, the application adjust the interval of how often it receive data from GPS. For example, if said interval is set to 4000, GPSd should receive NMEA strings each 4 seconds.
The motivation for that request is just to enable a way to adjust GPS polling for a slow paced walking device. Think of a walking person who takes 4-6 seconds to get a significant location movement to be polled - I'm currently using your application for warwalking, and take control of said interval can be invaluable.
Best regards.

Hi @julianoborba,
Sorry, I haven't been active on GitHub. This application forwards all NMEA messages directly. If you need some throttling logic, it could be implemented on the client.


JSON not working on Row

I have a simple row like this:
Row::make('Rules', [
    Number::make('Count'),
    JSON::make('Rule', [
       Text::make('name'),
        Text::make('index'),
         Text::make('value'),
      ]),
]),

but the JSON Field is not shown on the edit form.

Nested Json and Row fields are not supported yet. This is a planned feature. Feel free to open a PR if you have something in mind.
Thanks!

Is Autocomplete supported inside of Row? i'm getting this:
[Vue warn]: Invalid prop: type check failed for prop "rowValues". Expected Array, got Object found in
--->

 at resources/js/components/Card.vue
 at resources/js/components/Form/Panel.vue
 at resources/js/components/LoadingView.vue
 at resources/js/views/Update.vue

Okay, so how about now? It's been a few years now and we still do not have support for JSON and ROW fields being nested. Is this something that is still in the works?


[Ready For Merge] [2.4.6] Support DingTalk and Microsoft Teams as the notifier

Problem:
Microsoft Teams and DingTalk are all very popular IM tools. However, users cannot use them in Rancher out of box.
Solution:
AlertManager doesn't support them as a in-tree notifiers.
We can use a generic webhook type alert in AlertManager side and point it to a micro service for redirecting alert requests to Microsoft Teams and DingTalk.
The micro service is responsible for changing the alert payload to fulfill MS Teams' API and redirecting the alert to MS Teams.
Also the micro service will be deployed on demand if there is no Microsoft Teams or DingTalk targets. It will not be deployed.
From Rancher users' perspective, they will be able to use Microsoft Teams and DingTalk out of box just like use other existing notifiers in Rancher UI such as Slack and email.
Related Issue:
https://github.com/rancher/rancher/issues/15802
https://github.com/rancher/rancher/issues/19537
Related PR:
https://github.com/rancher/ui/pull/4054
https://github.com/rancher/system-charts/pull/263
https://github.com/rancher/types/pull/1167

rebase

Hi @GGGitBoy Is it possible to provide QA with a custom build to run the validation test? This can help to speed up the review process.

@maggieliu @guangbochen @loganhz

docker run -d -e CATTLE_AGENT_IMAGE=dockerrrboy/rancher-agent:alert-enhance -p 443:443 dockerrrboy/rancher:alert-enhance
Set ui-index: https://rancherui.oss-cn-shanghai.aliyuncs.com/ui/jiandao/2.4-fixes/index.html
Set system-library: https://github.com/GGGitBoy/system-charts.git. (Branch is alert-enhance-pr)
Add notifier dingtalk and MicrosoftTeams
Add alert rule and choose recipient dingtalk or MicrosoftTeams
Receive alert message successfully

DingTalk：

MicrosoftTeams：


[tcgc] filter out resource manager models as well

All changed packages have been documented.

You can try these changes at https://cadlplayground.z22.web.core.windows.net/typespec-azure/prs/563/
Check the website changes at https://tspwebsitepr.z22.web.core.windows.net/typespec-azure/prs/563/


Bug while comparing values vs min or max inclusive.

The comparison of the search term vs the collection description min or max inclusive values should be done after converting both in int or float; comparing them as string may lead to incorrect results:
a = "2"
b = "11"
print(a > b)

This will print True.

Fixed in #49 and released in v0.2.3


HDFS-14648. DeadNodeDetector state machine model

1309

 Quality gate: Failed
8 Issues

 3 Vulnerabilities
 5 Code issues

Details

 Quality gate: Failed
8 Issues

 3 Vulnerabilities
 5 Code issues

Details


MedicationDispense: Fine-tuning the preferred dateTime

We noticed that 'whenHandedOver' and 'whenPrepared' may have been included in the L3. 'whenHandedOver' is the dateTime that we are most interested in.
Why was 'whenPrepared' included? That dateTime is not relevant if the patient never picked it up.
If 'whenPrepared' is retained and the dateTime for both 'whenPrepared' and 'whenHandedOver' is present in the patient data, have you included a business rule that "considers" 'whenHandedOver' and disregards 'whenPrepared'?

Essentially, yes! This is another situation where whenPrepared is used as the backup date if whenHandedOver does not exist (neither are required).
There are two places this is used:
1) Populating the date in the Dashboard:
This is where whenPrepared is used as a backup if whenHandedOver does not exist. I think it is appropriate to keep this, since it would be more helpful to see a date associated with the medication as opposed to no date at all.
2) Medication Lookback Period:
When "looking back" for a MedicationDispense our code only requires one of either whenHandedOver or whenPrepared to fall in the lookback period (the default value for this period is 6 months for medications). So it is not explicitly "disregarded" but if they both exist, the Medication Dispense would be included as long as whenHandedOver is within the lookback. Since we only use it here in the context of "looking back", I don't believe we need to add any extra business rule than that, since MedicationDispense has an invariant that "whenHandedOver cannot be before whenPrepared" (See https://build.fhir.org/medicationdispense-definitions.html#MedicationDispense). Therefore we would not have to worry about a situation where something is improperly included in the lookback because of its whenPrepared date.
Let me know if this makes sense, or if you do in fact think we need to change the way we're handling either of the above. Happy to to discuss this one over a call if need be!

That makes sense. Thanks for the explanation!

Let me talk to Rose about this one and I will circle back.


[Blockchain]Handle Joined Event

Component
write here
Assignee
write here
Problem or Necessity
write here
Detail
write here
Reference
write here

@junk-sound


⚠ Bofrost.lu has degraded performance

In 345de33, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1123 ms

Resolved: Bofrost.lu performance has improved in b478091.


Connection Failed!

Hello friends.
I setup Mtproxy and everything is fine, but after a while the access to the server is cut off (either via ssh and Mtproto) but the server is not filtered and the problem is solved after Hard Reboot.
(This proxy is used personally)
My Location : Iran
Server specification :
Datacenter : Hetzner-SATA (Germany)
OS : Linux ubuntu21.04 64Bit
Ram : 2GB
CPU : 1 Core

All proxies are beeing blocked some how

All proxies are beeing blocked some how

Ok, but this proxy is not filtered
This proxy is sometimes interrupted but works fine

Mine too
Even ssh is okay

It seems that the filtering devices detect mtproto packets and just block them.

I started noticing today that the Telegram client fails to connect via the proxy most of the time, but situation gets better immediately after proxy restart and sometimes connection comes through without a restart, but after a lot of failed attempts.
Did a little debugging and found out that connection between client and a proxy is being closed by the proxy after an exception is thrown here https://github.com/alexbers/mtprotoproxy/blob/446682521b9a5cc0eb7297fc05a61758db2df8b0/mtprotoproxy.py#L1584
in a task tg_connect_reader_to_writer, while piping data from client to Telegram servers. The exception thrown is ConnectionResetError('Connection lost',).
I have a suspicion that it has to do with connection pooling. Since my proxy server is not a high volume one, maybe pooled prepared connections to TG servers become stale, causing proxy to terminate the connection to a client.
I fixed this problem on my server by setting TgConnectionPool.MAX_CONNS_IN_POOL to zero, disabling pooling altogether. And now I don't have a ton of idling connections to TG servers, and the proxy seems to work much more stably.

how should I set TgConnectionPool.MAX_CONNS_IN_POOL to zero ?

I fixed this problem on my server by setting TgConnectionPool.MAX_CONNS_IN_POOL to zero, disabling pooling altogether. And now I don't have a ton of idling connections to TG servers, and the proxy seems to work much more stably.

how should I set TgConnectionPool.MAX_CONNS_IN_POOL to zero ?

I started noticing today that the Telegram client fails to connect via the proxy most of the time, but situation gets better immediately after proxy restart and sometimes connection comes through without a restart, but after a lot of failed attempts.
Did a little debugging and found out that connection between client and a proxy is being closed by the proxy after an exception is thrown here
https://github.com/alexbers/mtprotoproxy/blob/446682521b9a5cc0eb7297fc05a61758db2df8b0/mtprotoproxy.py#L1584
in a task tg_connect_reader_to_writer, while piping data from client to Telegram servers. The exception thrown is ConnectionResetError('Connection lost',).
I have a suspicion that it has to do with connection pooling. Since my proxy server is not a high volume one, maybe pooled prepared connections to TG servers become stale, causing proxy to terminate the connection to a client.
I fixed this problem on my server by setting TgConnectionPool.MAX_CONNS_IN_POOL to zero, disabling pooling altogether. And now I don't have a ton of idling connections to TG servers, and the proxy seems to work much more stably.

Thank you for your answer.  But I did not understand exactly, I do not know how to do it.  Note also that my problem is not only the proxy in case of failure, but also my access to SSH will be lost and to solve the problem I have to Hard Reboot the server.  Or worse, I have to reinstall the operating system.  Always after changing the operating system, the connection to the proxy may work for several days without any problems.


Unable to preview images on Android

Describe the bug
Unable to preview images on Android
To reproduce

Go to '...'
Click on '...'
Scroll down to '...'
See error

Expected behavior
show selected image
Screenshots
No response
Desktop (please complete the following information)
No response
Smartphone (please complete the following information)
No response
Additional context
No response

Please provide a screenshot or further information


Push required module options not possible

For example we use @babel/register.
In this module is default: ignore node_modules
Is there any way to do this?

See too: https://github.com/babel/babel/issues/9961

@martinoppitz you got an answer to your question in your babel issue.
Please close this issue, when that solution has been working for you.

@juergba Yes that is correct, but hoped I can config that in .mochrc too.

Maybe it's just me but it seems rather wrongheaded to be compiling anything in "node_modules" since they're already installed. If the installed packages require babelizing, that should be done by the packages themselves...

@martinoppitz no, that's not possible and currently there are no plans/resources to implement your hopes.
I guess you could also use one of Babels configuration files as babel.config.js to pass your options to Babel.


NVRAppDevOps PowerShell Modules

Hello Kamil,
Thanks for your investment into BC automated builds and deployment. I'm very interested to read more about your findings, since we're on the same path although a little bit behind ;-).
You're using NVRAppDevOps commandlets throughout your templates. I've not been able to find any sources for this module and I was wondering if you're planning to release those information? If so, will you release more information on how your AL Configuration does look like asf.
Cheers,
Andreas

Hi Andreas,
the PS module is live on https://www.powershellgallery.com/packages/NVRAppDevOps. I am not decided if the source code will be available on GitHub or not. You have still access to the scripts when you install the module anyway.
The AL Configuration mostly includes data from app.json and from the Settings.ps1 from the template you can find here: https://github.com/kine/MSDyn365BC_AppTemplate

Ok, the module is available here: https://github.com/kine/NVRAppDevOps


When having the same 2 accounts in the app and switching between them, all grades disappear

https://github.com/Vulcanova/Vulcanova/assets/105926196/dcc2e509-bafc-45ad-b7c3-b95ed3acc688

fixed in 0.1.6


feature: Implement authentication for API v2 based on OAuth2 potocol.

Describe your changes
Created authorization for third-party clients based on the OAuth2 protocol standard.
Related Issues / Projects
https://github.com/orgs/osuAkatsuki/projects/2
Checklist

[x] The changes pass pre-commit checks (make lint)
[x] The changes follow coding style

hey, there are quite a few typing errors still, i suspect your vscode is using type_checking_mode: off in your preferences
you can open preferences with ctrl+, and set type checking mode to basic to have vs code redline any of these errors

e.g.

there are also quite a few cases like this state: str = Query(default=None), where the variable is typed as T but at runtime can actually be of type Optional[T] due to the default case

started work, a couple of things stand out:

since this is meant to be an api for frontend clients, i think we should use jwt and avoid storing raw access tokens on our server. we can avoid the need to store raw access tokens, and instead store only identifiers to allow for token revocation by server staff.
i'm not certain whether it's best to persist access tokens vs. refresh tokens vs. both -- i'll have to look a bit deeper into the oauth 2.0 standard to see if there's a reason to prefer one over the other.
there are some typing/code implementation inconsistencies -- shouldn't be very major, the two above issues are more fundamental questions/blocking in nature.

i'm not certain whether it's best to persist access tokens vs. refresh tokens vs. both -- i'll have to look a bit deeper into the oauth 2.0 standard to see if there's a reason to prefer one over the other.

It may also be worth storing other things, such as authorization grants and failed authorization attempts.


$10k project idea #4 - Accessible Drag & Drop

There is no good pattern for accessible Drag/Drop interfaces. There are some ideas defined here https://www.drupal.org/project/drupal/issues/2920006
But none of them have been tested in a comparable framework with AT.  The goal here is to test these products for accessibility & submit both issues to their respective issue queues, as well as summarize concerns in a report submitted to the government.

From Medium post: https://medium.com/@mgifford/i-would-definitely-update-it-with-or-without-covid-19-e326e1882603
Update on issue from May 2020
#4 — Drag and drop, still needs to be done. Not much has happened on this front in the last 2 years.

I'm pretty confident that this pattern is used in government, but it isn't available in WET-BOEW https://github.com/wet-boew/wet-boew/


MANGO-454. Write DH handshake tests in the pipeline.

MANGO-454. Write DH handshake tests in the pipeline.

Codecov Report

Merging #191 (d806cf1) into develop (dbfeafc) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff            @@
##           develop     #191   +/-   ##
========================================
  Coverage    59.69%   59.69%
========================================
  Files          202      202
  Lines         2970     2970
  Branches       110      110
========================================
  Hits          1773     1773
  Misses        1176     1176
  Partials        21       21

Flag
Coverage Δ

web
59.69% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update dbfeafc...d806cf1. Read the comment docs.


Move ClinicIO to 1.3

URGENT
Move ClinicIO to version 1.3

Pull Request Test Coverage Report for Build 533

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 78.189%

Totals

Change from base Build 503:
0.0%

Covered Lines:
2047

Relevant Lines:
2618

💛  - Coveralls


Initial prototype

Provide a prototype of the solution using a preferred tool for UI prototying.
User story:
As a data analyst, I want to be able to display my data in a Pareto chart style, so that I can easily analyse the biggest impact factor (80/20 rule).
Acceptance criteria:
The prototype should include visual representation of bar charts sorted in descending order, as well as a cumulative sum line.

A prototype for demonstrating a bar chart in descending order and cumulative sum as a line.
Figma file link: Figma
Design Elements used as per Tbico design system:

Colors
Typography
Grid system

Different states of the chart:

Success state

Hover State

Selected(clicked on the bar or line) state

Design documentation from the research:
Design Documentation

Canvas Styling from Tibco Spotfire Analyst:
Open a visualization you want, now follow these steps:
Step 1: Select Visualizations --> Canvas Styling --> Edit custom theme

Step 2: You should be able to see this wizard

Step 3: Let's try to change the background for the visualization you are viewing now.

Step 4: The background has been changed to a new color

Other styling options that can be customized in Custom theme wizard:
Fonts style
Font size
Font colors
Annotation styling
Margins
Paddings
Scales styling

Great work and documentation, Navya! Looks good to me as a first prototype.

The acceptance criteria for this issue from Sprint 1 is done. Documentation related to this is also updated. A detailed guide for canvas setting from Spotfire has also been documented for future use.


Insert the clang_analyzer option before the first -D command line option

I ran into an issue when using ccache.
My compile_commands.json looks like this
"command": "/usr/bin/ccache  clang++ -DBOOST_PROPERTY_TREE_RAPIDXML_STATIC_POOL_SIZE=1024  -D ......"
clang-tidy-cache tries to put -D__clang_analyzer option in position 1 which is before 'clang++' which causes an error, and doesn't carry on with the hash.
It now puts the -D option before the first -D option, or the existing position 1 as the default.
This error was also hidden as stderr isn't logged. The hash function just returns None.  I was going to create a separate PR for that, but could put it in this one if needed.

Merged, thanks for the PR


New release request

Is there any change to release a version containing support to CMake?

+1 about new release.

I would also love to see cmake support 👍🏼


[0001] Using l!exc command to access exchange rates between two non-TRY currencies results in unwanted behaviour.

Fixed. The bot will now send an error message upon invalid use of the l!exc <CURRENCY> <AMOUNT> command.


make value in tolerations optionals

As per the Kubernetes API, make the value in a Toleration optional.
https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#taint
https://kubernetes.io/docs/concepts/scheduling-eviction/taint-and-toleration/

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.

I've added a test for it.
Although in general, I'm not sure the value of a test in this situation, as I would consider this more a refactor, than a feature addition. Given though there was no testing around a Toleration inside a Task I did add a test anyways.

Thank you for the patch @bchalk101 🚀