Skip to content

Commit 2669c6a

Browse files
committed
Merge branch 'cwl-283_rv355_grpc_proto' of https://github.com/IntelLabs/vdms into cwl-283_rv355_grpc_proto
Signed-off-by: Lacewell, Chaunte W <[email protected]>
2 parents f3ccce7 + c0e37b4 commit 2669c6a

File tree

16 files changed

+583
-173
lines changed

16 files changed

+583
-173
lines changed

.github/coverage/cpp.develop.coverage_report.txt

Lines changed: 12 additions & 12 deletions
Large diffs are not rendered by default.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
71.332
1+
68.113

.github/requirements.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ colorlog==6.9.0
55
coverage==7.8.0
66
cryptography==44.0.2
77
Flask==3.1.1
8-
gcovr==8.3
8+
gcovr==8.4
99
imutils==0.5.4
1010
itsdangerous==2.2.0
1111
Jinja2==3.1.6
@@ -14,7 +14,7 @@ MarkupSafe==3.0.2
1414
numpy==1.26.4
1515
opencv-python-headless==4.11.0.86
1616
pillow==11.1.0
17-
protobuf==4.24.2
17+
protobuf==4.25.8
1818
pycparser==2.22
1919
Pygments==2.19.1
2020
pyzmq==26.4.0

.github/scripts/Dockerfile.checkin

Lines changed: 64 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -73,79 +73,82 @@ ENV PATH="$VIRTUAL_ENV/bin:$PATH"
7373

7474
# Pull and Install Dependencies
7575
WORKDIR /dependencies
76-
ENV AUTOCONF_VERSION="2.71" \
76+
ENV ABSEIL_VERSION="20250512.1" \
77+
AUTOCONF_VERSION="2.71" \
7778
AWS_SDK_VERSION="1.11.336" \
7879
CMAKE_VERSION="v3.28.5" \
7980
FAISS_VERSION="v1.9.0" \
81+
GRPC_VERSION="v1.75.1" \
82+
GTEST_VERSION="52eb8108c5bdec04579160ae17225d66034bd723" \
83+
PROTOBUF_VERSION="74211c0dfc2777318ab53c2cd2c317a2ef9012de" \
8084
LIBEDIT_VERSION="20230828-3.1" \
8185
OPENCV_VERSION="4.9.0" \
8286
PEG_VERSION="0.1.19" \
8387
TILEDB_VERSION="2.14.1" \
84-
VALIJSON_VERSION="v0.6" \
85-
GRPC_VERSION="v1.73.0"
88+
VALIJSON_VERSION="v0.6"
8689

8790
# CMAKE
8891
# hadolint ignore=DL3003,SC2086
8992
RUN git clone --branch ${CMAKE_VERSION} https://github.com/Kitware/CMake.git /dependencies/CMake && \
9093
cd /dependencies/CMake && ./bootstrap && make ${BUILD_THREADS} && \
9194
make install DESTDIR=/opt/dist && make install
9295

93-
# PROTOBUF & ITS DEPENDENCIES
96+
# PROTOBUF & ITS DEPENDENCIES (GOOGLETEST, ABSEIL-CPP)
9497
# hadolint ignore=DL3003,SC2086
98+
RUN git clone https://github.com/google/googletest.git /dependencies/googletest && \
99+
cd /dependencies/googletest && git checkout ${GTEST_VERSION} && \
100+
mkdir build && cd build && \
101+
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
102+
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
103+
-DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
104+
make ${BUILD_THREADS} && make install && \
105+
git clone -b ${ABSEIL_VERSION} https://github.com/abseil/abseil-cpp.git /dependencies/abseil && \
106+
cd /dependencies/abseil && mkdir build && cd build && \
107+
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
108+
-DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
109+
-DABSL_USE_EXTERNAL_GOOGLETEST=ON \
110+
-DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
111+
make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
112+
git clone --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
113+
cd /dependencies/protobuf && git checkout ${PROTOBUF_VERSION} && \
114+
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
115+
-DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
116+
-Dprotobuf_ABSL_PROVIDER=package \
117+
-Dprotobuf_GTEST_PROVIDER=package \
118+
-Dprotobuf_BUILD_TESTS=ON \
119+
-Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
120+
make ${BUILD_THREADS} && make install
121+
# -DBUILD_SHARED_LIBS=ON \
95122

96-
# googletest
97-
RUN git clone https://github.com/google/googletest.git -b v1.12.0 /dependencies/googletest && \
98-
cd /dependencies/googletest && mkdir build && cd build && \
99-
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
100-
-DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
101-
-DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
102-
make ${BUILD_THREADS} && make install
103-
104-
# Abseil-CPP
105-
RUN git clone https://github.com/abseil/abseil-cpp.git /dependencies/abseil && \
106-
cd /dependencies/abseil && mkdir build && cd build && \
107-
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
108-
-DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
109-
-DABSL_USE_EXTERNAL_GOOGLETEST=ON \
110-
-DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
111-
make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib
112-
113-
# Protobuf
114-
RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
115-
cd /dependencies/protobuf && \
116-
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
117-
-DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
118-
-Dprotobuf_ABSL_PROVIDER=package \
119-
-Dprotobuf_BUILD_TESTS=ON \
120-
-Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
121-
make ${BUILD_THREADS} && make install
122-
123-
# RUN git clone -b "v${PROTOBUF_VERSION}" --recurse-submodules https://github.com/protocolbuffers/protobuf.git /dependencies/protobuf && \
124-
# cd /dependencies/protobuf/third_party/googletest && mkdir build && cd build/ && \
125-
# cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_BUILD_TYPE=Release \
126-
# -DBUILD_SHARED_LIBS=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
127-
# -DBUILD_GMOCK=ON -DCMAKE_CXX_STANDARD=17 .. && \
128-
# make ${BUILD_THREADS} && make install && \
129-
# cd /dependencies/protobuf/third_party/abseil-cpp && mkdir build && cd build && \
130-
# cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
131-
# -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local -DABSL_BUILD_TESTING=ON \
132-
# -DABSL_USE_EXTERNAL_GOOGLETEST=ON \
133-
# -DABSL_FIND_GOOGLETEST=ON -DCMAKE_CXX_STANDARD=17 .. && \
134-
# make ${BUILD_THREADS} && make install && ldconfig /opt/dist/usr/local/lib && \
135-
# cd /dependencies/protobuf && \
136-
# cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
137-
# -DCMAKE_CXX_STANDARD=17 -Dprotobuf_BUILD_SHARED_LIBS=ON \
138-
# -Dprotobuf_ABSL_PROVIDER=package \
139-
# -Dprotobuf_BUILD_TESTS=ON \
140-
# -Dabsl_DIR=/opt/dist/usr/local/lib/cmake/absl . && \
141-
# make ${BUILD_THREADS} && make install
123+
# AUTOCONF VERSION FOR NEO4J
124+
# hadolint ignore=DL3003,SC2086
125+
RUN curl -L -O http://ftpmirror.gnu.org/autoconf/autoconf-${AUTOCONF_VERSION}.tar.gz && \
126+
tar -xzf autoconf-${AUTOCONF_VERSION}.tar.gz && cd autoconf-${AUTOCONF_VERSION} && \
127+
./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
142128

143129
# gRPC
144-
RUN git clone -b ${GRPC_VERSION} https://github.com/grpc/grpc && \
145-
cd grpc && \
146-
git submodule update --init && mkdir -p cmake/build && cd cmake/build && \
147-
cmake -DCMAKE_CXX_STANDARD=17 -DgRPC_INSTALL=ON ../.. && \
148-
make ${BUILD_THREADS} && make install
130+
RUN ldconfig && git clone -b ${GRPC_VERSION} --depth 1 --recursive https://github.com/grpc/grpc /dependencies/grpc && \
131+
cd /dependencies/grpc && \
132+
mkdir -p cmake/build && cd cmake/build && \
133+
cmake -DCMAKE_POSITION_INDEPENDENT_CODE=ON -DBUILD_SHARED_LIBS=ON \
134+
-DCMAKE_CXX_STANDARD=17 -DgRPC_INSTALL=ON -DgRPC_BUILD_TESTS=OFF \
135+
-DCMAKE_INSTALL_PREFIX=/opt/dist/usr/local \
136+
-DgRPC_ABSL_PROVIDER=package \
137+
-DgRPC_PROTOBUF_PROVIDER=package \
138+
# -DgRPC_CARES_PROVIDER=module \
139+
# -DgRPC_RE2_PROVIDER=module \
140+
# -DgRPC_SSL_PROVIDER=module \
141+
# -DgRPC_ZLIB_PROVIDER=module \
142+
# -DgRPC_BUILD_GRPC_CPP_PLUGIN=ON \
143+
# -DgRPC_BUILD_GRPC_PHP_PLUGIN=OFF \
144+
# -DgRPC_BUILD_GRPC_NODE_PLUGIN=OFF \
145+
# -DgRPC_BUILD_GRPC_RUBY_PLUGIN=OFF \
146+
# -DgRPC_BUILD_GRPC_PYTHON_PLUGIN=ON \
147+
# -DgRPC_BUILD_GRPC_CSHARP_PLUGIN=OFF \
148+
# -DgRPC_BUILD_GRPC_OBJECTIVE_C_PLUGIN=OFF \
149+
../.. && \
150+
cmake --build . -- -j && cmake --install .
151+
# make ${BUILD_THREADS} && make install
149152

150153
# OPENCV
151154
# hadolint ignore=DL3003,SC2086
@@ -186,9 +189,9 @@ RUN curl -L -O https://github.com/TileDB-Inc/TileDB/archive/refs/tags/${TILEDB_V
186189

187190
# AUTOCONF VERSION FOR NEO4J
188191
# hadolint ignore=DL3003,SC2086
189-
RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
190-
tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
191-
./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
192+
# RUN curl -O https://ftp.gnu.org/gnu/autoconf/autoconf-${AUTOCONF_VERSION}.tar.xz && \
193+
# tar -xf autoconf-${AUTOCONF_VERSION}.tar.xz && cd autoconf-${AUTOCONF_VERSION} && \
194+
# ./configure && make ${BUILD_THREADS} && make install DESTDIR=/opt/dist && make install
192195

193196
# LIB-OMNI FOR NEO4J QUERY HANDLER
194197
# hadolint ignore=DL3003,SC2086
@@ -295,15 +298,16 @@ RUN apt-get update -y && apt-get upgrade -y && \
295298
python3 -m pip install --no-cache-dir "numpy>=${NUMPY_MIN_VERSION},<2.0.0" "protobuf==6.${PROTOBUF_VERSION}" \
296299
"coverage>=7.3.1" "cryptography>=44.0.1"
297300

298-
# COVERAGE TESTING
299301
WORKDIR /vdms
302+
303+
# COVERAGE TESTING
300304
# hadolint ignore=DL3008,SC2086
301305
RUN if [ "${BUILD_COVERAGE}" = "ON" ]; then \
302306
apt-get update -y ; \
303307
apt-get install -y --no-install-suggests --no-install-recommends gdb ; \
304308
apt-get clean ; \
305309
rm -rf /var/lib/apt/lists/* ; \
306-
python3 -m pip install --no-cache-dir "gcovr>=7.0" ; \
310+
python3 -m pip install --no-cache-dir "gcovr==8.4" ; \
307311
curl -L -o /vdms/minio https://dl.min.io/server/minio/release/linux-amd64/minio ; \
308312
chmod +x /vdms/minio ; \
309313
mkdir -p /vdms/minio_files/minio-bucket ; \

.github/scripts/setup_vdms.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ LIBEDIT_VERSION="20230828-3.1"
198198
NUMPY_MIN_VERSION="1.26.0"
199199
OPENCV_VERSION="4.9.0"
200200
PEG_VERSION="0.1.19"
201-
PROTOBUF_VERSION="24.2"
201+
PROTOBUF_VERSION="25.8"
202202
TILEDB_VERSION="2.14.1"
203203
VALIJSON_VERSION="v0.6"
204204
Lines changed: 100 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,100 @@
1+
name: "CodeQL Analysis"
2+
3+
on:
4+
push:
5+
branches: [ "develop" ]
6+
workflow_dispatch:
7+
8+
jobs:
9+
analyze-python:
10+
name: Analyze Python
11+
runs-on: ubuntu-latest
12+
13+
permissions:
14+
actions: read
15+
contents: read
16+
security-events: write
17+
18+
steps:
19+
- name: Checkout code
20+
uses: actions/checkout@v4
21+
22+
- name: Initialize CodeQL (Python)
23+
uses: github/codeql-action/init@v3
24+
with:
25+
languages: python
26+
27+
- name: Autobuild Python
28+
uses: github/codeql-action/autobuild@v3
29+
30+
- name: Perform CodeQL Analysis (Python)
31+
uses: github/codeql-action/analyze@v3
32+
33+
analyze-cpp:
34+
name: Analyze CPP
35+
runs-on: ubuntu-latest
36+
37+
# Run everything inside your Docker image
38+
container:
39+
image: intellabs/vdms:latest
40+
41+
permissions:
42+
actions: read
43+
contents: read
44+
security-events: write
45+
46+
strategy:
47+
fail-fast: false
48+
matrix:
49+
language: [ 'cpp' ] # VDMS is C++ based
50+
51+
steps:
52+
- name: Checkout repository
53+
uses: actions/checkout@v4
54+
with:
55+
submodules: recursive
56+
57+
58+
- name: Install latest CMake
59+
run: |
60+
apt-get update
61+
apt-get remove --purge -y cmake cmake-data || true
62+
apt-get install -y wget tar xz-utils build-essential
63+
64+
CMAKE_VERSION=3.30.4
65+
wget https://github.com/Kitware/CMake/releases/download/v${CMAKE_VERSION}/cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
66+
tar -xzf cmake-${CMAKE_VERSION}-linux-x86_64.tar.gz
67+
mv cmake-${CMAKE_VERSION}-linux-x86_64 /opt/cmake
68+
ln -sf /opt/cmake/bin/* /usr/local/bin/
69+
cmake --version
70+
71+
- name: Initialize CodeQL
72+
uses: github/codeql-action/init@v3
73+
with:
74+
languages: cpp
75+
queries: security-extended,security-and-quality
76+
build-mode: manual
77+
78+
- name: Configure CMake (disable linking)
79+
run: |
80+
sed -i "s|#include <stdio.h>|#include <stdio.h>\n#include <stdexcept>|" src/pmgd/test/neighbortest.cc
81+
sed -i "s|#include <stdio.h>|#include <stdio.h>\n#include <stdexcept>|" src/pmgd/tools/mkgraph.cc
82+
sed -i "s|java-11-openjdk|java-17-openjdk|g" src/pmgd/java/CMakeLists.txt
83+
cmake -S . -B build -DCMAKE_EXPORT_COMPILE_COMMANDS=ON \
84+
-DCMAKE_C_LINK_EXECUTABLE="/bin/true" \
85+
-DCMAKE_CXX_LINK_EXECUTABLE="/bin/true"
86+
87+
- name: Build (compile only, no linking)
88+
run: cmake --build build -j$(nproc)
89+
90+
- name: Perform CodeQL Analysis
91+
uses: github/codeql-action/analyze@v3
92+
with:
93+
category: '/language:cpp'
94+
output: ./codeql-results
95+
96+
- name: Upload SARIF File
97+
uses: actions/upload-artifact@v4
98+
with:
99+
name : codeql-results
100+
path: ./codeql-results/**/*.sarif
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
name: Intel Security Scan
2+
3+
permissions: read-all
4+
5+
on:
6+
workflow_dispatch: {}
7+
schedule:
8+
- cron: "5 4 * * sun" # 4:05 AM Sunday
9+
10+
jobs:
11+
Call-Workflow:
12+
uses: intel/.github/.github/workflows/intel_scan.yaml@main
13+
permissions:
14+
contents: read
15+
packages: read
16+
actions: read
17+
security-events: write

CMakeLists.txt

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,11 @@ find_package(Protobuf CONFIG REQUIRED)
2323
find_package( CURL REQUIRED )
2424
find_package(AWSSDK REQUIRED COMPONENTS core s3)
2525
find_package(gRPC CONFIG REQUIRED)
26-
# find_package(absl CONFIG REQUIRED)
27-
find_package(GTest REQUIRED)
26+
find_package(absl CONFIG REQUIRED)
2827

29-
# set(_PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>)
30-
# set(_GRPC_GRPCPP gRPC::grpc++)
31-
# set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
28+
set(_PROTOBUF_PROTOC $<TARGET_FILE:protobuf::protoc>)
29+
set(_GRPC_GRPCPP gRPC::grpc++)
30+
set(_GRPC_CPP_PLUGIN_EXECUTABLE $<TARGET_FILE:gRPC::grpc_cpp_plugin>)
3231

3332
include_directories(${Protobuf_INCLUDE_DIRS})
3433
include_directories(${CMAKE_CURRENT_BINARY_DIR})
@@ -119,11 +118,41 @@ else()
119118
src/VideoLoop.cc
120119
)
121120

122-
target_link_libraries(dms vcl pmgd pmgd-util protobuf tbb tiledb vdms-utils pthread -lcurl -lzmq -lzip ${AWSSDK_LINK_LIBRARIES} neo4j-client)
121+
target_link_libraries(dms
122+
vcl
123+
pmgd
124+
pmgd-util
125+
protobuf
126+
tbb
127+
tiledb
128+
vdms-utils
129+
pthread
130+
-lcurl
131+
-lzmq
132+
-lzip
133+
${AWSSDK_LINK_LIBRARIES}
134+
neo4j-client
135+
gRPC::grpc++
136+
)
123137

124138
add_executable(vdms src/vdms.cc)
125139

126-
target_link_libraries(vdms dms vdms_protobuf vcl tiledb faiss flinng jsoncpp ${OpenCV_LIBS} ${AWSSDK_LINK_LIBRARIES} ${Protobuf_LIBRARIES} GTest::gtest GTest::gtest_main)
140+
target_link_libraries(vdms
141+
dms
142+
vdms_protobuf
143+
vcl
144+
tiledb
145+
faiss
146+
flinng
147+
jsoncpp
148+
${OpenCV_LIBS}
149+
${AWSSDK_LINK_LIBRARIES}
150+
${Protobuf_LIBRARIES}
151+
${_REFLECTION}
152+
${_GRPC_GRPCPP}
153+
${_PROTOBUF_LIBPROTOBUF}
154+
)
155+
127156
endif ()
128157

129158
message("Coverage:" ${CODE_COVERAGE})

client/python/setup.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(
77
name="vdms",
8-
version="0.0.21",
8+
version="0.0.22",
99
author="Chaunté W. Lacewell",
1010
author_email="[email protected]",
1111
description="VDMS Client Module",

0 commit comments

Comments
 (0)