Compare commits
311 Commits
MG-for-mrm
...
MG-determi
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
18edf17496 | ||
|
|
eeb7ab6272 | ||
|
|
5c0e41ed44 | ||
|
|
6df2db0d19 | ||
|
|
968584a8fc | ||
|
|
33add3ecd0 | ||
|
|
91b5092c71 | ||
|
|
c0f576c187 | ||
|
|
51fb4a6e7a | ||
|
|
cba183898a | ||
|
|
5f5fe7eb29 | ||
|
|
efa4378fb4 | ||
|
|
3c07a5dc04 | ||
|
|
e442963466 | ||
|
|
32fe4d94d9 | ||
|
|
94b66a4e81 | ||
|
|
61b9457718 | ||
|
|
159b30ba5f | ||
|
|
b67e5b9a6c | ||
|
|
79756ae6fb | ||
|
|
a54bcb9819 | ||
|
|
c16f948de9 | ||
|
|
2a7ed1ad82 | ||
|
|
5201db46d2 | ||
|
|
91550128a5 | ||
|
|
d5966101ad | ||
|
|
88487e2513 | ||
|
|
b10b1eb239 | ||
|
|
dca94f42bb | ||
|
|
39b40ecf00 | ||
|
|
baacc52a65 | ||
|
|
5273d319e2 | ||
|
|
23838b50ea | ||
|
|
d85fb94bc7 | ||
|
|
4d2036249e | ||
|
|
d23643d4ff | ||
|
|
e52ce1e363 | ||
|
|
1abfe28806 | ||
|
|
d17970f6d9 | ||
|
|
9e72c7cb54 | ||
|
|
528e30a9be | ||
|
|
bb7c7f7627 | ||
|
|
bab5e1386a | ||
|
|
3d954e7abc | ||
|
|
fa5c9a2568 | ||
|
|
c745f8c877 | ||
|
|
486231b1b9 | ||
|
|
43ad5855c4 | ||
|
|
24864ff7d2 | ||
|
|
8598f6edf4 | ||
|
|
e41073bc2c | ||
|
|
14e3e72565 | ||
|
|
1cee7ecb8a | ||
|
|
690a389563 | ||
|
|
9203616283 | ||
|
|
d198819bf1 | ||
|
|
3a8f01af79 | ||
|
|
7e6ec8bb26 | ||
|
|
6138d76690 | ||
|
|
25fdb1a1f0 | ||
|
|
2de1d6c359 | ||
|
|
0364311dd0 | ||
|
|
9235515dab | ||
|
|
b83fb287ad | ||
|
|
70dc19dfdb | ||
|
|
b685a21171 | ||
|
|
4db83b8159 | ||
|
|
dd8dd4f6c4 | ||
|
|
fa1ddfea12 | ||
|
|
a815ec9617 | ||
|
|
78528bd609 | ||
|
|
6239f4fc3e | ||
|
|
c5eb3ff2c0 | ||
|
|
9f71ce0f78 | ||
|
|
589dd36bf2 | ||
|
|
57e7169203 | ||
|
|
bb3b053375 | ||
|
|
a96f489756 | ||
|
|
e909e7d2d8 | ||
|
|
2d91a7fd1e | ||
|
|
1d18f1197f | ||
|
|
edeebf46ec | ||
|
|
1148fe9aad | ||
|
|
c92c795b1a | ||
|
|
0fee412f92 | ||
|
|
7596e85358 | ||
|
|
014836ca3c | ||
|
|
68654b5a19 | ||
|
|
4d96bf5006 | ||
|
|
9bb70eb0b9 | ||
|
|
7076788dd5 | ||
|
|
ee4be9aa5b | ||
|
|
96a2ad4b63 | ||
|
|
84509fa477 | ||
|
|
19b5fe3caf | ||
|
|
74db669e23 | ||
|
|
599802033f | ||
|
|
6dd57426f8 | ||
|
|
3c9f0c48e9 | ||
|
|
9a1258a708 | ||
|
|
c55ca836a4 | ||
|
|
5674ef4016 | ||
|
|
77c2afc9e7 | ||
|
|
27292dd921 | ||
|
|
e4f1fd8647 | ||
|
|
4608af9d00 | ||
|
|
50e72a7c28 | ||
|
|
17a104677d | ||
|
|
a6add80fc9 | ||
|
|
5d3eaf6a55 | ||
|
|
a13f260236 | ||
|
|
1f778ba5f3 | ||
|
|
787987168c | ||
|
|
7b4b1ba8ed | ||
|
|
bb1e8aa164 | ||
|
|
27a1311966 | ||
|
|
30ff6487f2 | ||
|
|
119da2d7a7 | ||
|
|
fa972813d2 | ||
|
|
951b058116 | ||
|
|
d0cad6e6ba | ||
|
|
6138277972 | ||
|
|
2f77eb96ff | ||
|
|
d7bc93c55f | ||
|
|
039d5f51d3 | ||
|
|
cebe6f62fa | ||
|
|
6834ce01fe | ||
|
|
4c5cd1f847 | ||
|
|
f9e2a66961 | ||
|
|
d5700ab5ff | ||
|
|
b0aaba6765 | ||
|
|
e1f18f3733 | ||
|
|
c90b38faf0 | ||
|
|
acbf3c764c | ||
|
|
37df41796f | ||
|
|
f04e1cda4b | ||
|
|
f28ba89584 | ||
|
|
60485311c8 | ||
|
|
36a1c43851 | ||
|
|
bae8c084b1 | ||
|
|
2898120eeb | ||
|
|
d62a45752a | ||
|
|
c5ee6ffbc2 | ||
|
|
5ef08f841a | ||
|
|
59c7d81ae8 | ||
|
|
03c095e780 | ||
|
|
b542e49b3e | ||
|
|
ddb30f49ea | ||
|
|
d920d7c293 | ||
|
|
6b0168cb3d | ||
|
|
03cf264b76 | ||
|
|
9448e23dc9 | ||
|
|
eafccaea84 | ||
|
|
0c4f591b3c | ||
|
|
534e365271 | ||
|
|
281ae158ec | ||
|
|
39c9c215b1 | ||
|
|
f6e78ce6da | ||
|
|
3cf79f5bbf | ||
|
|
6a31c49432 | ||
|
|
fea92f4829 | ||
|
|
1703cd039d | ||
|
|
ca2351124b | ||
|
|
5784c0d473 | ||
|
|
8ebc704819 | ||
|
|
5939fb2b0c | ||
|
|
ee64684b0b | ||
|
|
1e4c02f8a5 | ||
|
|
8353228ba7 | ||
|
|
332afadf21 | ||
|
|
acc655f4fd | ||
|
|
12e7a261aa | ||
|
|
1c3bb969e9 | ||
|
|
e5437080c5 | ||
|
|
17090dd8ac | ||
|
|
281cebd386 | ||
|
|
f89a2bbf42 | ||
|
|
85b8ce9101 | ||
|
|
6bb40a7f49 | ||
|
|
1707ee648e | ||
|
|
07f34838bd | ||
|
|
b6f8b5e130 | ||
|
|
58243f4a26 | ||
|
|
d06132cb33 | ||
|
|
f063c1b1ad | ||
|
|
5347c06d76 | ||
|
|
4634ac484a | ||
|
|
a5dc818e19 | ||
|
|
4cb3b064c4 | ||
|
|
23171e76b6 | ||
|
|
6fd64d31f2 | ||
|
|
87111b2f89 | ||
|
|
b5c7078c7d | ||
|
|
925835b080 | ||
|
|
ce788f5f65 | ||
|
|
b8186bea2e | ||
|
|
3c4856dcb7 | ||
|
|
b4d6dc0930 | ||
|
|
817161a915 | ||
|
|
58eb2caf0f | ||
|
|
ecda71168c | ||
|
|
8e1f83acc9 | ||
|
|
f910cb770c | ||
|
|
38d0b89b04 | ||
|
|
a2a6a3855b | ||
|
|
e9f0360fb3 | ||
|
|
fe4955447e | ||
|
|
1631c20df2 | ||
|
|
947baedbe6 | ||
|
|
c6447eb48b | ||
|
|
7e84744d07 | ||
|
|
c0d03888f4 | ||
|
|
efb3c8d03d | ||
|
|
95dbc022c0 | ||
|
|
a40403e3ce | ||
|
|
14c9e68456 | ||
|
|
68b26275a3 | ||
|
|
5012824e05 | ||
|
|
a12a1ea358 | ||
|
|
2891041468 | ||
|
|
cc5ee6a496 | ||
|
|
f57f30c8cf | ||
|
|
462daf3a2b | ||
|
|
2009fefc8a | ||
|
|
eb3f96d1f6 | ||
|
|
80e0e439b7 | ||
|
|
351258ace8 | ||
|
|
74d3663821 | ||
|
|
264b233053 | ||
|
|
2ceaf59767 | ||
|
|
eb0b3141d5 | ||
|
|
c0bee760bf | ||
|
|
ff2f8031a9 | ||
|
|
094d4f282d | ||
|
|
3dd2657320 | ||
|
|
6fe474282a | ||
|
|
7fc0fb6520 | ||
|
|
3f4f66b57f | ||
|
|
063e297e1e | ||
|
|
2998f92595 | ||
|
|
86b1688192 | ||
|
|
f629de7e60 | ||
|
|
b737e53456 | ||
|
|
1bdc32ba5d | ||
|
|
10ca68bb2a | ||
|
|
bfbd8538d4 | ||
|
|
3e0e17d469 | ||
|
|
b57f91fcfc | ||
|
|
066a96c0ae | ||
|
|
1ae6b71c5f | ||
|
|
21870a0e7e | ||
|
|
cbe15e7f44 | ||
|
|
65a7ba01da | ||
|
|
7a2bbd4bb3 | ||
|
|
589e0e098b | ||
|
|
41d4185156 | ||
|
|
599c0a641f | ||
|
|
1fb49c4865 | ||
|
|
df1485aeec | ||
|
|
b2e1056389 | ||
|
|
e4c9411e63 | ||
|
|
a0bc1371dd | ||
|
|
21ad5d4328 | ||
|
|
8e3ab1ad0f | ||
|
|
cccf32e79d | ||
|
|
22bd60c613 | ||
|
|
8059a3e653 | ||
|
|
a7f4c98bea | ||
|
|
483f4d04bd | ||
|
|
3e7aef432f | ||
|
|
10ea9c773e | ||
|
|
b782271be8 | ||
|
|
a8ffcfa046 | ||
|
|
7b78665cd8 | ||
|
|
4abaf27765 | ||
|
|
ea2806bd57 | ||
|
|
c8dbaf5979 | ||
|
|
17049ada09 | ||
|
|
1b619f51b2 | ||
|
|
537855a0b2 | ||
|
|
5822b44b15 | ||
|
|
bf01c58ed9 | ||
|
|
89a5566f3f | ||
|
|
29452f8774 | ||
|
|
60ad05acff | ||
|
|
4f593c7fca | ||
|
|
770ea1189a | ||
|
|
695bb343f1 | ||
|
|
12b4ec1589 | ||
|
|
b33d2c3940 | ||
|
|
477acad1f6 | ||
|
|
ddca2b40f5 | ||
|
|
4817be0add | ||
|
|
3fb7e5378d | ||
|
|
1d88893715 | ||
|
|
bd2c30fddc | ||
|
|
06e6ead4d2 | ||
|
|
728b37080d | ||
|
|
48a531aac1 | ||
|
|
914fc1a656 | ||
|
|
1d1c182c2d | ||
|
|
c6e19ec09f | ||
|
|
693dab78d2 | ||
|
|
69eca9b043 | ||
|
|
5aeaad198b | ||
|
|
b23f88c607 | ||
|
|
4fd8bdce4c | ||
|
|
265b203b00 | ||
|
|
661e5185d8 | ||
|
|
7348ad6800 | ||
|
|
6c00d146f2 |
@@ -1,9 +1,12 @@
|
|||||||
---
|
---
|
||||||
Checks: '*,
|
Checks: '*,
|
||||||
-abseil-string-find-str-contains,
|
-abseil-string-find-str-contains,
|
||||||
|
-altera-id-dependent-backward-branch,
|
||||||
-altera-struct-pack-align,
|
-altera-struct-pack-align,
|
||||||
|
-altera-unroll-loops,
|
||||||
-android-*,
|
-android-*,
|
||||||
-cert-err58-cpp,
|
-cert-err58-cpp,
|
||||||
|
-cert-str34-c,
|
||||||
-cppcoreguidelines-avoid-c-arrays,
|
-cppcoreguidelines-avoid-c-arrays,
|
||||||
-cppcoreguidelines-avoid-goto,
|
-cppcoreguidelines-avoid-goto,
|
||||||
-cppcoreguidelines-avoid-magic-numbers,
|
-cppcoreguidelines-avoid-magic-numbers,
|
||||||
@@ -47,6 +50,7 @@ Checks: '*,
|
|||||||
-misc-non-private-member-variables-in-classes,
|
-misc-non-private-member-variables-in-classes,
|
||||||
-modernize-avoid-c-arrays,
|
-modernize-avoid-c-arrays,
|
||||||
-modernize-concat-nested-namespaces,
|
-modernize-concat-nested-namespaces,
|
||||||
|
-modernize-loop-convert,
|
||||||
-modernize-pass-by-value,
|
-modernize-pass-by-value,
|
||||||
-modernize-use-equals-default,
|
-modernize-use-equals-default,
|
||||||
-modernize-use-nodiscard,
|
-modernize-use-nodiscard,
|
||||||
@@ -59,7 +63,9 @@ Checks: '*,
|
|||||||
-readability-magic-numbers,
|
-readability-magic-numbers,
|
||||||
-readability-named-parameter,
|
-readability-named-parameter,
|
||||||
-misc-no-recursion,
|
-misc-no-recursion,
|
||||||
-concurrency-mt-unsafe'
|
-concurrency-mt-unsafe,
|
||||||
|
-bugprone-easily-swappable-parameters'
|
||||||
|
|
||||||
WarningsAsErrors: ''
|
WarningsAsErrors: ''
|
||||||
HeaderFilterRegex: 'src/.*'
|
HeaderFilterRegex: 'src/.*'
|
||||||
AnalyzeTemporaryDtors: false
|
AnalyzeTemporaryDtors: false
|
||||||
@@ -86,4 +92,3 @@ CheckOptions:
|
|||||||
- key: modernize-use-nullptr.NullMacros
|
- key: modernize-use-nullptr.NullMacros
|
||||||
value: 'NULL'
|
value: 'NULL'
|
||||||
...
|
...
|
||||||
|
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ tmpdir=$(mktemp -d repo-XXXXXXXX)
|
|||||||
trap "rm -rf $tmpdir" EXIT INT
|
trap "rm -rf $tmpdir" EXIT INT
|
||||||
|
|
||||||
modified_files=$(git diff --cached --name-only --diff-filter=AM $against | sed -nE "/.*\.(cpp|cc|cxx|c|h|hpp)$/p")
|
modified_files=$(git diff --cached --name-only --diff-filter=AM $against | sed -nE "/.*\.(cpp|cc|cxx|c|h|hpp)$/p")
|
||||||
|
FAIL=0
|
||||||
for file in $modified_files; do
|
for file in $modified_files; do
|
||||||
echo "Checking $file..."
|
echo "Checking $file..."
|
||||||
|
|
||||||
@@ -23,21 +24,13 @@ for file in $modified_files; do
|
|||||||
|
|
||||||
git checkout-index --prefix="$tmpdir/" -- $file
|
git checkout-index --prefix="$tmpdir/" -- $file
|
||||||
|
|
||||||
echo "Running clang-format..."
|
# Do not break header checker
|
||||||
$project_folder/tools/git-clang-format $tmpdir/$file
|
|
||||||
code=$?
|
|
||||||
|
|
||||||
if [ $code -ne 0 ]; then
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
|
|
||||||
echo "Running header checker..."
|
echo "Running header checker..."
|
||||||
$project_folder/tools/header-checker.py $tmpdir/$file $file --amend-year
|
$project_folder/tools/header-checker.py $tmpdir/$file $file --amend-year
|
||||||
code=$?
|
CODE=$?
|
||||||
|
if [ $CODE -ne 0 ]; then
|
||||||
if [ $code -ne 0 ]; then
|
FAIL=1
|
||||||
break
|
|
||||||
fi
|
fi
|
||||||
done;
|
done;
|
||||||
|
|
||||||
return $code
|
return ${FAIL}
|
||||||
|
|||||||
2
.github/pull_request_template.md
vendored
2
.github/pull_request_template.md
vendored
@@ -3,7 +3,9 @@
|
|||||||
- [ ] Update [changelog](https://docs.memgraph.com/memgraph/changelog)
|
- [ ] Update [changelog](https://docs.memgraph.com/memgraph/changelog)
|
||||||
- [ ] Write E2E tests
|
- [ ] Write E2E tests
|
||||||
- [ ] Compare the [benchmarking results](https://bench-graph.memgraph.com/) between the master branch and the Epic branch
|
- [ ] Compare the [benchmarking results](https://bench-graph.memgraph.com/) between the master branch and the Epic branch
|
||||||
|
- [ ] Provide the full content or a guide for the final git message
|
||||||
|
|
||||||
[master < Task] PR
|
[master < Task] PR
|
||||||
- [ ] Check, and update documentation if necessary
|
- [ ] Check, and update documentation if necessary
|
||||||
- [ ] Update [changelog](https://docs.memgraph.com/memgraph/changelog)
|
- [ ] Update [changelog](https://docs.memgraph.com/memgraph/changelog)
|
||||||
|
- [ ] Provide the full content or a guide for the final git message
|
||||||
|
|||||||
2
.github/workflows/daily_benchmark.yaml
vendored
2
.github/workflows/daily_benchmark.yaml
vendored
@@ -16,7 +16,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
|
|||||||
300
.github/workflows/diff.yaml
vendored
300
.github/workflows/diff.yaml
vendored
@@ -1,4 +1,7 @@
|
|||||||
name: Diff
|
name: Diff
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.head_ref || github.sha }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
@@ -23,7 +26,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -61,20 +64,50 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
fetch-depth: 0
|
fetch-depth: 0
|
||||||
|
|
||||||
|
# This is also needed if we want do to comparison against other branches
|
||||||
|
# See https://github.community/t/checkout-code-fails-when-it-runs-lerna-run-test-since-master/17920
|
||||||
|
- name: Fetch all history for all tags and branches
|
||||||
|
run: git fetch
|
||||||
|
|
||||||
|
- name: Initialize deps
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
# Initialize dependencies.
|
||||||
|
./init
|
||||||
|
|
||||||
|
- name: Set base branch
|
||||||
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
|
run: |
|
||||||
|
echo "BASE_BRANCH=origin/${{ github.base_ref }}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set base branch # if we manually dispatch or push to master
|
||||||
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
run: |
|
||||||
|
echo "BASE_BRANCH=origin/master" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Python code analysis
|
||||||
|
run: |
|
||||||
|
CHANGED_FILES=$(git diff -U0 ${{ env.BASE_BRANCH }}... --name-only)
|
||||||
|
for file in ${CHANGED_FILES}; do
|
||||||
|
echo ${file}
|
||||||
|
if [[ ${file} == *.py ]]; then
|
||||||
|
python3 -m black --check --diff ${file}
|
||||||
|
python3 -m isort --check-only --diff ${file}
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
- name: Build combined ASAN, UBSAN and coverage binaries
|
- name: Build combined ASAN, UBSAN and coverage binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v4/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
|
||||||
./init
|
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
cmake -DTEST_COVERAGE=ON -DASAN=ON -DUBSAN=ON ..
|
cmake -DTEST_COVERAGE=ON -DASAN=ON -DUBSAN=ON ..
|
||||||
make -j$THREADS memgraph__unit
|
make -j$THREADS memgraph__unit
|
||||||
@@ -102,17 +135,27 @@ jobs:
|
|||||||
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
||||||
|
|
||||||
- name: Save code coverage
|
- name: Save code coverage
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/generated/code_coverage.tar.gz
|
path: tools/github/generated/code_coverage.tar.gz
|
||||||
|
|
||||||
|
- name: Set base branch
|
||||||
|
if: ${{ github.event_name == 'pull_request' }}
|
||||||
|
run: |
|
||||||
|
echo "BASE_BRANCH=origin/${{ github.base_ref }}" >> $GITHUB_ENV
|
||||||
|
|
||||||
|
- name: Set base branch # if we manually dispatch or push to master
|
||||||
|
if: ${{ github.event_name != 'pull_request' }}
|
||||||
|
run: |
|
||||||
|
echo "BASE_BRANCH=origin/master" >> $GITHUB_ENV
|
||||||
|
|
||||||
- name: Run clang-tidy
|
- name: Run clang-tidy
|
||||||
run: |
|
run: |
|
||||||
source /opt/toolchain-v4/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Restrict clang-tidy results only to the modified parts
|
# Restrict clang-tidy results only to the modified parts
|
||||||
git diff -U0 master... -- src ':!*.hpp' | ./tools/github/clang-tidy/clang-tidy-diff.py -p 1 -j $THREADS -path build | tee ./build/clang_tidy_output.txt
|
git diff -U0 ${{ env.BASE_BRANCH }}... -- src | ./tools/github/clang-tidy/clang-tidy-diff.py -p 1 -j $THREADS -extra-arg="-DMG_CLANG_TIDY_CHECK" -path build | tee ./build/clang_tidy_output.txt
|
||||||
|
|
||||||
# Fail if any warning is reported
|
# Fail if any warning is reported
|
||||||
! cat ./build/clang_tidy_output.txt | ./tools/github/clang-tidy/grep_error_lines.sh > /dev/null
|
! cat ./build/clang_tidy_output.txt | ./tools/github/clang-tidy/grep_error_lines.sh > /dev/null
|
||||||
@@ -127,7 +170,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -146,52 +189,23 @@ jobs:
|
|||||||
cmake ..
|
cmake ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Run leftover CTest tests
|
- name: Run simulation tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v4/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run leftover CTest tests (all except unit and benchmark tests).
|
# Run simulation tests.
|
||||||
cd build
|
cd build
|
||||||
ctest -E "(memgraph__unit|memgraph__benchmark)" --output-on-failure
|
ctest -R memgraph__simulation --output-on-failure -j$THREADS
|
||||||
|
|
||||||
- name: Run drivers tests
|
- name: Run single benchmark test
|
||||||
run: |
|
|
||||||
./tests/drivers/run.sh
|
|
||||||
|
|
||||||
- name: Run integration tests
|
|
||||||
run: |
|
|
||||||
cd tests/integration
|
|
||||||
for name in *; do
|
|
||||||
if [ ! -d $name ]; then continue; fi
|
|
||||||
pushd $name >/dev/null
|
|
||||||
echo "Running: $name"
|
|
||||||
if [ -x prepare.sh ]; then
|
|
||||||
./prepare.sh
|
|
||||||
fi
|
|
||||||
if [ -x runner.py ]; then
|
|
||||||
./runner.py
|
|
||||||
elif [ -x runner.sh ]; then
|
|
||||||
./runner.sh
|
|
||||||
fi
|
|
||||||
echo
|
|
||||||
popd >/dev/null
|
|
||||||
done
|
|
||||||
|
|
||||||
- name: Run cppcheck and clang-format
|
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v4/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run cppcheck and clang-format.
|
# Run simulation tests.
|
||||||
cd tools/github
|
cd tests/mgbench
|
||||||
./cppcheck_and_clang_format diff
|
./benchmark.py accesscontrol/small --num-workers-for-import 1 --test-system-arg "split-file splitfiles/accesscontrol_small.shard_configuration bolt-num-workers 1"
|
||||||
|
|
||||||
- name: Save cppcheck and clang-format errors
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Code coverage"
|
|
||||||
path: tools/github/cppcheck_and_clang_format.txt
|
|
||||||
|
|
||||||
release_build:
|
release_build:
|
||||||
name: "Release build"
|
name: "Release build"
|
||||||
@@ -203,7 +217,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -222,19 +236,6 @@ jobs:
|
|||||||
cmake -DCMAKE_BUILD_TYPE=release ..
|
cmake -DCMAKE_BUILD_TYPE=release ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Run GQL Behave tests
|
|
||||||
run: |
|
|
||||||
cd tests/gql_behave
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Save quality assurance status
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "GQL Behave Status"
|
|
||||||
path: |
|
|
||||||
tests/gql_behave/gql_behave_status.csv
|
|
||||||
tests/gql_behave/gql_behave_status.html
|
|
||||||
|
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
@@ -244,6 +245,24 @@ jobs:
|
|||||||
cd build
|
cd build
|
||||||
ctest -R memgraph__unit --output-on-failure -j$THREADS
|
ctest -R memgraph__unit --output-on-failure -j$THREADS
|
||||||
|
|
||||||
|
- name: Run simulation tests
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
|
# Run simulation tests.
|
||||||
|
cd build
|
||||||
|
ctest -R memgraph__simulation --output-on-failure -j$THREADS
|
||||||
|
|
||||||
|
- name: Run single benchmark test
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
|
# Run simulation tests.
|
||||||
|
cd tests/mgbench
|
||||||
|
./benchmark.py accesscontrol/small --num-workers-for-import 1 --test-system-arg "split-file splitfiles/accesscontrol_small.shard_configuration bolt-num-workers 1"
|
||||||
|
|
||||||
- name: Run e2e tests
|
- name: Run e2e tests
|
||||||
run: |
|
run: |
|
||||||
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
||||||
@@ -251,167 +270,4 @@ jobs:
|
|||||||
./setup.sh
|
./setup.sh
|
||||||
source ve3/bin/activate
|
source ve3/bin/activate
|
||||||
cd e2e
|
cd e2e
|
||||||
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../libs/mgclient/lib python runner.py --workloads-root-directory .
|
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:../../libs/mgclient/lib python runner.py --workloads-root-directory ./distributed_queries
|
||||||
|
|
||||||
- name: Run stress test (plain)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Run stress test (SSL)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration --use-ssl
|
|
||||||
|
|
||||||
- name: Run durability test
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
source ve3/bin/activate
|
|
||||||
python3 durability --num-steps 5
|
|
||||||
|
|
||||||
- name: Create enterprise DEB package
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v4/activate
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# create mgconsole
|
|
||||||
# we use the -B to force the build
|
|
||||||
make -j$THREADS -B mgconsole
|
|
||||||
|
|
||||||
# Create enterprise DEB package.
|
|
||||||
mkdir output && cd output
|
|
||||||
cpack -G DEB --config ../CPackConfig.cmake
|
|
||||||
|
|
||||||
- name: Save enterprise DEB package
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Enterprise DEB package"
|
|
||||||
path: build/output/memgraph*.deb
|
|
||||||
|
|
||||||
- name: Save test data
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
if: always()
|
|
||||||
with:
|
|
||||||
name: "Test data"
|
|
||||||
path: |
|
|
||||||
# multiple paths could be defined
|
|
||||||
build/logs
|
|
||||||
|
|
||||||
release_jepsen_test:
|
|
||||||
name: "Release Jepsen Test"
|
|
||||||
runs-on: [self-hosted, Linux, X64, Debian10, JepsenControl]
|
|
||||||
#continue-on-error: true
|
|
||||||
env:
|
|
||||||
THREADS: 24
|
|
||||||
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
|
||||||
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set up repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
|
||||||
# branches and tags. (default: 1)
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Build release binaries
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v4/activate
|
|
||||||
|
|
||||||
# Initialize dependencies.
|
|
||||||
./init
|
|
||||||
|
|
||||||
# Build only memgraph release binarie.
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=release ..
|
|
||||||
make -j$THREADS memgraph
|
|
||||||
|
|
||||||
- name: Run Jepsen tests
|
|
||||||
run: |
|
|
||||||
cd tests/jepsen
|
|
||||||
./run.sh test --binary ../../build/memgraph --run-args "test-all --node-configs resources/node-config.edn" --ignore-run-stdout-logs --ignore-run-stderr-logs
|
|
||||||
|
|
||||||
- name: Save Jepsen report
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
if: ${{ always() }}
|
|
||||||
with:
|
|
||||||
name: "Jepsen Report"
|
|
||||||
path: tests/jepsen/Jepsen.tar.gz
|
|
||||||
|
|
||||||
release_benchmarks:
|
|
||||||
name: "Release benchmarks"
|
|
||||||
runs-on: [self-hosted, Linux, X64, Diff, Gen7]
|
|
||||||
env:
|
|
||||||
THREADS: 24
|
|
||||||
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
|
||||||
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
|
||||||
|
|
||||||
steps:
|
|
||||||
- name: Set up repository
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
|
||||||
# branches and tags. (default: 1)
|
|
||||||
fetch-depth: 0
|
|
||||||
|
|
||||||
- name: Build release binaries
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v4/activate
|
|
||||||
|
|
||||||
# Initialize dependencies.
|
|
||||||
./init
|
|
||||||
|
|
||||||
# Build only memgraph release binaries.
|
|
||||||
cd build
|
|
||||||
cmake -DCMAKE_BUILD_TYPE=release ..
|
|
||||||
make -j$THREADS
|
|
||||||
|
|
||||||
- name: Run macro benchmarks
|
|
||||||
run: |
|
|
||||||
cd tests/macro_benchmark
|
|
||||||
./harness QuerySuite MemgraphRunner \
|
|
||||||
--groups aggregation 1000_create unwind_create dense_expand match \
|
|
||||||
--no-strict
|
|
||||||
|
|
||||||
- name: Get branch name (merge)
|
|
||||||
if: github.event_name != 'pull_request'
|
|
||||||
shell: bash
|
|
||||||
run: echo "BRANCH_NAME=$(echo ${GITHUB_REF#refs/heads/} | tr / -)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Get branch name (pull request)
|
|
||||||
if: github.event_name == 'pull_request'
|
|
||||||
shell: bash
|
|
||||||
run: echo "BRANCH_NAME=$(echo ${GITHUB_HEAD_REF} | tr / -)" >> $GITHUB_ENV
|
|
||||||
|
|
||||||
- name: Upload macro benchmark results
|
|
||||||
run: |
|
|
||||||
cd tools/bench-graph-client
|
|
||||||
virtualenv -p python3 ve3
|
|
||||||
source ve3/bin/activate
|
|
||||||
pip install -r requirements.txt
|
|
||||||
./main.py --benchmark-name "macro_benchmark" \
|
|
||||||
--benchmark-results-path "../../tests/macro_benchmark/.harness_summary" \
|
|
||||||
--github-run-id "${{ github.run_id }}" \
|
|
||||||
--github-run-number "${{ github.run_number }}" \
|
|
||||||
--head-branch-name "${{ env.BRANCH_NAME }}"
|
|
||||||
|
|
||||||
- name: Run mgbench
|
|
||||||
run: |
|
|
||||||
cd tests/mgbench
|
|
||||||
./benchmark.py --num-workers-for-benchmark 12 --export-results benchmark_result.json pokec/medium/*/*
|
|
||||||
|
|
||||||
- name: Upload mgbench results
|
|
||||||
run: |
|
|
||||||
cd tools/bench-graph-client
|
|
||||||
virtualenv -p python3 ve3
|
|
||||||
source ve3/bin/activate
|
|
||||||
pip install -r requirements.txt
|
|
||||||
./main.py --benchmark-name "mgbench" \
|
|
||||||
--benchmark-results-path "../../tests/mgbench/benchmark_result.json" \
|
|
||||||
--github-run-id "${{ github.run_id }}" \
|
|
||||||
--github-run-number "${{ github.run_number }}" \
|
|
||||||
--head-branch-name "${{ env.BRANCH_NAME }}"
|
|
||||||
|
|||||||
4
.github/workflows/full_clang_tidy.yaml
vendored
4
.github/workflows/full_clang_tidy.yaml
vendored
@@ -14,7 +14,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -39,7 +39,7 @@ jobs:
|
|||||||
source /opt/toolchain-v4/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# The results are also written to standard output in order to retain them in the logs
|
# The results are also written to standard output in order to retain them in the logs
|
||||||
./tools/github/clang-tidy/run-clang-tidy.py -p build -j $THREADS -clang-tidy-binary=/opt/toolchain-v4/bin/clang-tidy "$PWD/src/*" |
|
./tools/github/clang-tidy/run-clang-tidy.py -p build -j $THREADS -extra-arg="-DMG_CLANG_TIDY_CHECK" -clang-tidy-binary=/opt/toolchain-v4/bin/clang-tidy "$PWD/src/*" |
|
||||||
tee ./build/full_clang_tidy_output.txt
|
tee ./build/full_clang_tidy_output.txt
|
||||||
|
|
||||||
- name: Summarize clang-tidy results
|
- name: Summarize clang-tidy results
|
||||||
|
|||||||
92
.github/workflows/package_all.yaml
vendored
92
.github/workflows/package_all.yaml
vendored
@@ -6,79 +6,79 @@ on: workflow_dispatch
|
|||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
centos-7:
|
centos-7:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package centos-7
|
./release/package/run.sh package centos-7
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: centos-7
|
name: centos-7
|
||||||
path: build/output/centos-7/memgraph*.rpm
|
path: build/output/centos-7/memgraph*.rpm
|
||||||
|
|
||||||
centos-8:
|
centos-9:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package centos-8
|
./release/package/run.sh package centos-9
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: centos-8
|
name: centos-9
|
||||||
path: build/output/centos-8/memgraph*.rpm
|
path: build/output/centos-9/memgraph*.rpm
|
||||||
|
|
||||||
debian-10:
|
debian-10:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package debian-10
|
./release/package/run.sh package debian-10
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: debian-10
|
name: debian-10
|
||||||
path: build/output/debian-10/memgraph*.deb
|
path: build/output/debian-10/memgraph*.deb
|
||||||
|
|
||||||
debian-11:
|
debian-11:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package debian-11
|
./release/package/run.sh package debian-11
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: debian-11
|
name: debian-11
|
||||||
path: build/output/debian-11/memgraph*.deb
|
path: build/output/debian-11/memgraph*.deb
|
||||||
|
|
||||||
docker:
|
docker:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
@@ -87,58 +87,92 @@ jobs:
|
|||||||
./run.sh package debian-11 --for-docker
|
./run.sh package debian-11 --for-docker
|
||||||
./run.sh docker
|
./run.sh docker
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: docker
|
name: docker
|
||||||
path: build/output/docker/memgraph*.tar.gz
|
path: build/output/docker/memgraph*.tar.gz
|
||||||
|
|
||||||
ubuntu-1804:
|
ubuntu-1804:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package ubuntu-18.04
|
./release/package/run.sh package ubuntu-18.04
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ubuntu-1804
|
name: ubuntu-1804
|
||||||
path: build/output/ubuntu-18.04/memgraph*.deb
|
path: build/output/ubuntu-18.04/memgraph*.deb
|
||||||
|
|
||||||
ubuntu-2004:
|
ubuntu-2004:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package ubuntu-20.04
|
./release/package/run.sh package ubuntu-20.04
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: ubuntu-2004
|
name: ubuntu-2004
|
||||||
path: build/output/ubuntu-20.04/memgraph*.deb
|
path: build/output/ubuntu-20.04/memgraph*.deb
|
||||||
|
|
||||||
debian-11-platform:
|
ubuntu-2204:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
timeout-minutes: 60
|
timeout-minutes: 60
|
||||||
steps:
|
steps:
|
||||||
- name: "Set up repository"
|
- name: "Set up repository"
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
|
- name: "Build package"
|
||||||
|
run: |
|
||||||
|
./release/package/run.sh package ubuntu-22.04
|
||||||
|
- name: "Upload package"
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: ubuntu-2204
|
||||||
|
path: build/output/ubuntu-22.04/memgraph*.deb
|
||||||
|
|
||||||
|
debian-11-platform:
|
||||||
|
runs-on: [self-hosted, DockerMgBuild, X64]
|
||||||
|
timeout-minutes: 60
|
||||||
|
steps:
|
||||||
|
- name: "Set up repository"
|
||||||
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
- name: "Build package"
|
- name: "Build package"
|
||||||
run: |
|
run: |
|
||||||
./release/package/run.sh package debian-11 --for-platform
|
./release/package/run.sh package debian-11 --for-platform
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: debian-11-platform
|
name: debian-11-platform
|
||||||
path: build/output/debian-11/memgraph*.deb
|
path: build/output/debian-11/memgraph*.deb
|
||||||
|
|
||||||
|
debian-11-arm:
|
||||||
|
runs-on: [self-hosted, DockerMgBuild, ARM64, strange]
|
||||||
|
timeout-minutes: 60
|
||||||
|
steps:
|
||||||
|
- name: "Set up repository"
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
with:
|
||||||
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
|
- name: "Build package"
|
||||||
|
run: |
|
||||||
|
./release/package/run.sh package debian-11-arm
|
||||||
|
- name: "Upload package"
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: debian-11-arm
|
||||||
|
path: build/output/debian-11-arm/memgraph*.deb
|
||||||
|
|||||||
16
.github/workflows/release_centos8.yaml
vendored
16
.github/workflows/release_centos8.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -55,7 +55,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
||||||
|
|
||||||
- name: Save code coverage
|
- name: Save code coverage
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/generated/code_coverage.tar.gz
|
path: tools/github/generated/code_coverage.tar.gz
|
||||||
@@ -112,7 +112,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -173,7 +173,7 @@ jobs:
|
|||||||
./cppcheck_and_clang_format diff
|
./cppcheck_and_clang_format diff
|
||||||
|
|
||||||
- name: Save cppcheck and clang-format errors
|
- name: Save cppcheck and clang-format errors
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/cppcheck_and_clang_format.txt
|
path: tools/github/cppcheck_and_clang_format.txt
|
||||||
@@ -189,7 +189,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -225,7 +225,7 @@ jobs:
|
|||||||
rpmlint memgraph*.rpm
|
rpmlint memgraph*.rpm
|
||||||
|
|
||||||
- name: Save enterprise RPM package
|
- name: Save enterprise RPM package
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Enterprise RPM package"
|
name: "Enterprise RPM package"
|
||||||
path: build/output/memgraph*.rpm
|
path: build/output/memgraph*.rpm
|
||||||
@@ -262,7 +262,7 @@ jobs:
|
|||||||
./continuous_integration
|
./continuous_integration
|
||||||
|
|
||||||
- name: Save quality assurance status
|
- name: Save quality assurance status
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "GQL Behave Status"
|
name: "GQL Behave Status"
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
20
.github/workflows/release_debian10.yaml
vendored
20
.github/workflows/release_debian10.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -55,7 +55,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
||||||
|
|
||||||
- name: Save code coverage
|
- name: Save code coverage
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/generated/code_coverage.tar.gz
|
path: tools/github/generated/code_coverage.tar.gz
|
||||||
@@ -112,7 +112,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -173,7 +173,7 @@ jobs:
|
|||||||
./cppcheck_and_clang_format diff
|
./cppcheck_and_clang_format diff
|
||||||
|
|
||||||
- name: Save cppcheck and clang-format errors
|
- name: Save cppcheck and clang-format errors
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/cppcheck_and_clang_format.txt
|
path: tools/github/cppcheck_and_clang_format.txt
|
||||||
@@ -189,7 +189,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -224,7 +224,7 @@ jobs:
|
|||||||
cpack -G DEB --config ../CPackConfig.cmake
|
cpack -G DEB --config ../CPackConfig.cmake
|
||||||
|
|
||||||
- name: Save enterprise DEB package
|
- name: Save enterprise DEB package
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Enterprise DEB package"
|
name: "Enterprise DEB package"
|
||||||
path: build/output/memgraph*.deb
|
path: build/output/memgraph*.deb
|
||||||
@@ -261,7 +261,7 @@ jobs:
|
|||||||
./continuous_integration
|
./continuous_integration
|
||||||
|
|
||||||
- name: Save quality assurance status
|
- name: Save quality assurance status
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "GQL Behave Status"
|
name: "GQL Behave Status"
|
||||||
path: |
|
path: |
|
||||||
@@ -324,7 +324,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -349,7 +349,7 @@ jobs:
|
|||||||
./run.sh test --binary ../../build/memgraph --run-args "test-all --node-configs resources/node-config.edn" --ignore-run-stdout-logs --ignore-run-stderr-logs
|
./run.sh test --binary ../../build/memgraph --run-args "test-all --node-configs resources/node-config.edn" --ignore-run-stdout-logs --ignore-run-stderr-logs
|
||||||
|
|
||||||
- name: Save Jepsen report
|
- name: Save Jepsen report
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
if: ${{ always() }}
|
if: ${{ always() }}
|
||||||
with:
|
with:
|
||||||
name: "Jepsen Report"
|
name: "Jepsen Report"
|
||||||
|
|||||||
69
.github/workflows/release_docker.yaml
vendored
Normal file
69
.github/workflows/release_docker.yaml
vendored
Normal file
@@ -0,0 +1,69 @@
|
|||||||
|
name: Publish Docker images
|
||||||
|
|
||||||
|
on:
|
||||||
|
workflow_dispatch:
|
||||||
|
inputs:
|
||||||
|
version:
|
||||||
|
description: "Memgraph binary version to publish on DockerHub."
|
||||||
|
required: true
|
||||||
|
force_release:
|
||||||
|
type: boolean
|
||||||
|
required: false
|
||||||
|
default: false
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
docker_publish:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
env:
|
||||||
|
DOCKER_ORGANIZATION_NAME: memgraph
|
||||||
|
DOCKER_REPOSITORY_NAME: memgraph
|
||||||
|
steps:
|
||||||
|
- name: Checkout
|
||||||
|
uses: actions/checkout@v3
|
||||||
|
|
||||||
|
- name: Set up QEMU
|
||||||
|
uses: docker/setup-qemu-action@v1
|
||||||
|
|
||||||
|
- name: Set up Docker Buildx
|
||||||
|
id: buildx
|
||||||
|
uses: docker/setup-buildx-action@v1
|
||||||
|
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@v1
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Download memgraph binary
|
||||||
|
run: |
|
||||||
|
cd release/docker
|
||||||
|
curl -L https://download.memgraph.com/memgraph/v${{ github.event.inputs.version }}/debian-11/memgraph_${{ github.event.inputs.version }}-1_amd64.deb > memgraph-amd64.deb
|
||||||
|
curl -L https://download.memgraph.com/memgraph/v${{ github.event.inputs.version }}/debian-11-aarch64/memgraph_${{ github.event.inputs.version }}-1_arm64.deb > memgraph-arm64.deb
|
||||||
|
|
||||||
|
- name: Check if specified version is already pushed
|
||||||
|
run: |
|
||||||
|
EXISTS=$(docker manifest inspect $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:${{ github.event.inputs.version }} > /dev/null; echo $?)
|
||||||
|
echo $EXISTS
|
||||||
|
if [[ ${EXISTS} -eq 0 ]]; then
|
||||||
|
echo 'The specified version has been already released to DockerHub.'
|
||||||
|
if [[ ${{ github.event.inputs.force_release }} = true ]]; then
|
||||||
|
echo 'Forcing the release!'
|
||||||
|
else
|
||||||
|
echo 'Stopping the release!'
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
echo 'All good the specified version has not been release to DockerHub.'
|
||||||
|
fi
|
||||||
|
|
||||||
|
- name: Build & push docker images
|
||||||
|
run: |
|
||||||
|
cd release/docker
|
||||||
|
docker buildx build \
|
||||||
|
--build-arg BINARY_NAME="memgraph-" \
|
||||||
|
--build-arg EXTENSION="deb" \
|
||||||
|
--platform linux/amd64,linux/arm64 \
|
||||||
|
--tag $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:${{ github.event.inputs.version }} \
|
||||||
|
--tag $DOCKER_ORGANIZATION_NAME/$DOCKER_REPOSITORY_NAME:latest \
|
||||||
|
--file memgraph_deb.dockerfile \
|
||||||
|
--push .
|
||||||
16
.github/workflows/release_ubuntu2004.yaml
vendored
16
.github/workflows/release_ubuntu2004.yaml
vendored
@@ -17,7 +17,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -55,7 +55,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -97,7 +97,7 @@ jobs:
|
|||||||
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
tar -czf code_coverage.tar.gz coverage.json html report.json summary.rmu
|
||||||
|
|
||||||
- name: Save code coverage
|
- name: Save code coverage
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/generated/code_coverage.tar.gz
|
path: tools/github/generated/code_coverage.tar.gz
|
||||||
@@ -112,7 +112,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -173,7 +173,7 @@ jobs:
|
|||||||
./cppcheck_and_clang_format diff
|
./cppcheck_and_clang_format diff
|
||||||
|
|
||||||
- name: Save cppcheck and clang-format errors
|
- name: Save cppcheck and clang-format errors
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Code coverage"
|
name: "Code coverage"
|
||||||
path: tools/github/cppcheck_and_clang_format.txt
|
path: tools/github/cppcheck_and_clang_format.txt
|
||||||
@@ -189,7 +189,7 @@ jobs:
|
|||||||
|
|
||||||
steps:
|
steps:
|
||||||
- name: Set up repository
|
- name: Set up repository
|
||||||
uses: actions/checkout@v2
|
uses: actions/checkout@v3
|
||||||
with:
|
with:
|
||||||
# Number of commits to fetch. `0` indicates all history for all
|
# Number of commits to fetch. `0` indicates all history for all
|
||||||
# branches and tags. (default: 1)
|
# branches and tags. (default: 1)
|
||||||
@@ -224,7 +224,7 @@ jobs:
|
|||||||
cpack -G DEB --config ../CPackConfig.cmake
|
cpack -G DEB --config ../CPackConfig.cmake
|
||||||
|
|
||||||
- name: Save enterprise DEB package
|
- name: Save enterprise DEB package
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "Enterprise DEB package"
|
name: "Enterprise DEB package"
|
||||||
path: build/output/memgraph*.deb
|
path: build/output/memgraph*.deb
|
||||||
@@ -261,7 +261,7 @@ jobs:
|
|||||||
./continuous_integration
|
./continuous_integration
|
||||||
|
|
||||||
- name: Save quality assurance status
|
- name: Save quality assurance status
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: "GQL Behave Status"
|
name: "GQL Behave Status"
|
||||||
path: |
|
path: |
|
||||||
|
|||||||
12
.gitignore
vendored
12
.gitignore
vendored
@@ -23,6 +23,8 @@ cmake-build-*
|
|||||||
cmake/DownloadProject/
|
cmake/DownloadProject/
|
||||||
dist/
|
dist/
|
||||||
src/query/frontend/opencypher/generated/
|
src/query/frontend/opencypher/generated/
|
||||||
|
src/query/v2/frontend/opencypher/generated/
|
||||||
|
src/parser/opencypher/generated
|
||||||
tags
|
tags
|
||||||
ve/
|
ve/
|
||||||
ve3/
|
ve3/
|
||||||
@@ -50,15 +52,25 @@ src/distributed/pull_produce_rpc_messages.hpp
|
|||||||
src/distributed/storage_gc_rpc_messages.hpp
|
src/distributed/storage_gc_rpc_messages.hpp
|
||||||
src/distributed/token_sharing_rpc_messages.hpp
|
src/distributed/token_sharing_rpc_messages.hpp
|
||||||
src/distributed/updates_rpc_messages.hpp
|
src/distributed/updates_rpc_messages.hpp
|
||||||
|
src/query/v2/frontend/ast/ast.hpp
|
||||||
src/query/frontend/ast/ast.hpp
|
src/query/frontend/ast/ast.hpp
|
||||||
|
src/storage/v3/bindings/ast/ast.hpp
|
||||||
src/query/distributed/frontend/ast/ast_serialization.hpp
|
src/query/distributed/frontend/ast/ast_serialization.hpp
|
||||||
|
src/query/v2/distributed/frontend/ast/ast_serialization.hpp
|
||||||
src/durability/distributed/state_delta.hpp
|
src/durability/distributed/state_delta.hpp
|
||||||
src/durability/single_node/state_delta.hpp
|
src/durability/single_node/state_delta.hpp
|
||||||
src/durability/single_node_ha/state_delta.hpp
|
src/durability/single_node_ha/state_delta.hpp
|
||||||
src/query/frontend/semantic/symbol.hpp
|
src/query/frontend/semantic/symbol.hpp
|
||||||
|
src/query/v2/frontend/semantic/symbol.hpp
|
||||||
|
src/expr/semantic/symbol.hpp
|
||||||
src/query/distributed/frontend/semantic/symbol_serialization.hpp
|
src/query/distributed/frontend/semantic/symbol_serialization.hpp
|
||||||
|
src/query/v2/distributed/frontend/semantic/symbol_serialization.hpp
|
||||||
src/query/distributed/plan/ops.hpp
|
src/query/distributed/plan/ops.hpp
|
||||||
|
src/query/v2/distributed/plan/ops.hpp
|
||||||
src/query/plan/operator.hpp
|
src/query/plan/operator.hpp
|
||||||
|
src/query/v2/plan/operator.hpp
|
||||||
|
src/parser/opencypher/generated
|
||||||
|
src/expr/semantic/symbol.hpp
|
||||||
src/raft/log_entry.hpp
|
src/raft/log_entry.hpp
|
||||||
src/raft/raft_rpc_messages.hpp
|
src/raft/raft_rpc_messages.hpp
|
||||||
src/raft/snapshot_metadata.hpp
|
src/raft/snapshot_metadata.hpp
|
||||||
|
|||||||
20
.pre-commit-config.yaml
Normal file
20
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
repos:
|
||||||
|
- repo: https://github.com/pre-commit/pre-commit-hooks
|
||||||
|
rev: v2.3.0
|
||||||
|
hooks:
|
||||||
|
- id: check-yaml
|
||||||
|
- id: end-of-file-fixer
|
||||||
|
- id: trailing-whitespace
|
||||||
|
- repo: https://github.com/psf/black
|
||||||
|
rev: 22.10.0
|
||||||
|
hooks:
|
||||||
|
- id: black
|
||||||
|
- repo: https://github.com/pycqa/isort
|
||||||
|
rev: 5.10.1
|
||||||
|
hooks:
|
||||||
|
- id: isort
|
||||||
|
name: isort (python)
|
||||||
|
- repo: https://github.com/pre-commit/mirrors-clang-format
|
||||||
|
rev: v13.0.0
|
||||||
|
hooks:
|
||||||
|
- id: clang-format
|
||||||
181
CMakeLists.txt
181
CMakeLists.txt
@@ -4,7 +4,6 @@ cmake_minimum_required(VERSION 3.8)
|
|||||||
|
|
||||||
# !! IMPORTANT !! run ./project_root/init.sh before cmake command
|
# !! IMPORTANT !! run ./project_root/init.sh before cmake command
|
||||||
# to download dependencies
|
# to download dependencies
|
||||||
|
|
||||||
if(NOT UNIX)
|
if(NOT UNIX)
|
||||||
message(FATAL_ERROR "Unsupported operating system.")
|
message(FATAL_ERROR "Unsupported operating system.")
|
||||||
endif()
|
endif()
|
||||||
@@ -19,6 +18,7 @@ set_directory_properties(PROPERTIES CLEAN_NO_CUSTOM TRUE)
|
|||||||
find_program(CCACHE_FOUND ccache)
|
find_program(CCACHE_FOUND ccache)
|
||||||
option(USE_CCACHE "ccache:" ON)
|
option(USE_CCACHE "ccache:" ON)
|
||||||
message(STATUS "CCache: ${USE_CCACHE}")
|
message(STATUS "CCache: ${USE_CCACHE}")
|
||||||
|
|
||||||
if(CCACHE_FOUND AND USE_CCACHE)
|
if(CCACHE_FOUND AND USE_CCACHE)
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_COMPILE ccache)
|
||||||
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
set_property(GLOBAL PROPERTY RULE_LAUNCH_LINK ccache)
|
||||||
@@ -28,7 +28,8 @@ endif(CCACHE_FOUND AND USE_CCACHE)
|
|||||||
# NOTE: must be choosen before use of project() or enable_language()
|
# NOTE: must be choosen before use of project() or enable_language()
|
||||||
find_program(CLANG_FOUND clang)
|
find_program(CLANG_FOUND clang)
|
||||||
find_program(CLANGXX_FOUND clang++)
|
find_program(CLANGXX_FOUND clang++)
|
||||||
if (CLANG_FOUND AND CLANGXX_FOUND)
|
|
||||||
|
if(CLANG_FOUND AND CLANGXX_FOUND)
|
||||||
set(CMAKE_C_COMPILER ${CLANG_FOUND})
|
set(CMAKE_C_COMPILER ${CLANG_FOUND})
|
||||||
set(CMAKE_CXX_COMPILER ${CLANGXX_FOUND})
|
set(CMAKE_CXX_COMPILER ${CLANGXX_FOUND})
|
||||||
else()
|
else()
|
||||||
@@ -36,12 +37,11 @@ else()
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
project(memgraph)
|
project(memgraph)
|
||||||
|
|
||||||
# Install licenses.
|
# Install licenses.
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/licenses/
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/licenses/
|
||||||
DESTINATION share/doc/memgraph)
|
DESTINATION share/doc/memgraph)
|
||||||
|
|
||||||
# For more information about how to release a new version of Memgraph, see
|
# For more information about how to release a new version of Memgraph, see
|
||||||
# `release/README.md`.
|
# `release/README.md`.
|
||||||
@@ -61,61 +61,65 @@ set(MEMGRAPH_OVERRIDE_VERSION "")
|
|||||||
set(MEMGRAPH_OVERRIDE_VERSION_SUFFIX "")
|
set(MEMGRAPH_OVERRIDE_VERSION_SUFFIX "")
|
||||||
|
|
||||||
# Variables used to generate the versions.
|
# Variables used to generate the versions.
|
||||||
if (MG_ENTERPRISE)
|
if(MG_ENTERPRISE)
|
||||||
set(get_version_offering "")
|
set(get_version_offering "")
|
||||||
else()
|
else()
|
||||||
set(get_version_offering "--open-source")
|
set(get_version_offering "--open-source")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(get_version_script "${CMAKE_CURRENT_SOURCE_DIR}/release/get_version.py")
|
set(get_version_script "${CMAKE_CURRENT_SOURCE_DIR}/release/get_version.py")
|
||||||
|
|
||||||
# Get version that should be used in the binary.
|
# Get version that should be used in the binary.
|
||||||
execute_process(
|
execute_process(
|
||||||
OUTPUT_VARIABLE MEMGRAPH_VERSION
|
OUTPUT_VARIABLE MEMGRAPH_VERSION
|
||||||
RESULT_VARIABLE MEMGRAPH_VERSION_RESULT
|
RESULT_VARIABLE MEMGRAPH_VERSION_RESULT
|
||||||
COMMAND "${get_version_script}" ${get_version_offering}
|
COMMAND "${get_version_script}" ${get_version_offering}
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION}"
|
"${MEMGRAPH_OVERRIDE_VERSION}"
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
||||||
"--memgraph-root-dir"
|
"--memgraph-root-dir"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(MEMGRAPH_VERSION_RESULT AND NOT MEMGRAPH_VERSION_RESULT EQUAL 0)
|
if(MEMGRAPH_VERSION_RESULT AND NOT MEMGRAPH_VERSION_RESULT EQUAL 0)
|
||||||
message(FATAL_ERROR "Unable to get Memgraph version.")
|
message(FATAL_ERROR "Unable to get Memgraph version.")
|
||||||
else()
|
else()
|
||||||
MESSAGE(STATUS "Memgraph version: ${MEMGRAPH_VERSION}")
|
MESSAGE(STATUS "Memgraph version: ${MEMGRAPH_VERSION}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Get version that should be used in the DEB package.
|
# Get version that should be used in the DEB package.
|
||||||
execute_process(
|
execute_process(
|
||||||
OUTPUT_VARIABLE MEMGRAPH_VERSION_DEB
|
OUTPUT_VARIABLE MEMGRAPH_VERSION_DEB
|
||||||
RESULT_VARIABLE MEMGRAPH_VERSION_DEB_RESULT
|
RESULT_VARIABLE MEMGRAPH_VERSION_DEB_RESULT
|
||||||
COMMAND "${get_version_script}" ${get_version_offering}
|
COMMAND "${get_version_script}" ${get_version_offering}
|
||||||
--variant deb
|
--variant deb
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION}"
|
"${MEMGRAPH_OVERRIDE_VERSION}"
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
||||||
"--memgraph-root-dir"
|
"--memgraph-root-dir"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(MEMGRAPH_VERSION_DEB_RESULT AND NOT MEMGRAPH_VERSION_DEB_RESULT EQUAL 0)
|
if(MEMGRAPH_VERSION_DEB_RESULT AND NOT MEMGRAPH_VERSION_DEB_RESULT EQUAL 0)
|
||||||
message(FATAL_ERROR "Unable to get Memgraph DEB version.")
|
message(FATAL_ERROR "Unable to get Memgraph DEB version.")
|
||||||
else()
|
else()
|
||||||
MESSAGE(STATUS "Memgraph DEB version: ${MEMGRAPH_VERSION_DEB}")
|
MESSAGE(STATUS "Memgraph DEB version: ${MEMGRAPH_VERSION_DEB}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# Get version that should be used in the RPM package.
|
# Get version that should be used in the RPM package.
|
||||||
execute_process(
|
execute_process(
|
||||||
OUTPUT_VARIABLE MEMGRAPH_VERSION_RPM
|
OUTPUT_VARIABLE MEMGRAPH_VERSION_RPM
|
||||||
RESULT_VARIABLE MEMGRAPH_VERSION_RPM_RESULT
|
RESULT_VARIABLE MEMGRAPH_VERSION_RPM_RESULT
|
||||||
COMMAND "${get_version_script}" ${get_version_offering}
|
COMMAND "${get_version_script}" ${get_version_offering}
|
||||||
--variant rpm
|
--variant rpm
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION}"
|
"${MEMGRAPH_OVERRIDE_VERSION}"
|
||||||
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
"${MEMGRAPH_OVERRIDE_VERSION_SUFFIX}"
|
||||||
"--memgraph-root-dir"
|
"--memgraph-root-dir"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}"
|
"${CMAKE_CURRENT_SOURCE_DIR}"
|
||||||
)
|
)
|
||||||
|
|
||||||
if(MEMGRAPH_VERSION_RPM_RESULT AND NOT MEMGRAPH_VERSION_RPM_RESULT EQUAL 0)
|
if(MEMGRAPH_VERSION_RPM_RESULT AND NOT MEMGRAPH_VERSION_RPM_RESULT EQUAL 0)
|
||||||
message(FATAL_ERROR "Unable to get Memgraph RPM version.")
|
message(FATAL_ERROR "Unable to get Memgraph RPM version.")
|
||||||
else()
|
else()
|
||||||
MESSAGE(STATUS "Memgraph RPM version: ${MEMGRAPH_VERSION_RPM}")
|
MESSAGE(STATUS "Memgraph RPM version: ${MEMGRAPH_VERSION_RPM}")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# We want the above variables to be updated each time something is committed to
|
# We want the above variables to be updated each time something is committed to
|
||||||
@@ -135,22 +139,24 @@ endif()
|
|||||||
# unnecessary recalculations of the release version. The release version only
|
# unnecessary recalculations of the release version. The release version only
|
||||||
# changes on every `git commit` or `git checkout`. That is why we watch the
|
# changes on every `git commit` or `git checkout`. That is why we watch the
|
||||||
# following files for changes:
|
# following files for changes:
|
||||||
# - `.git/HEAD` -> changes each time a `git checkout` is issued
|
# - `.git/HEAD` -> changes each time a `git checkout` is issued
|
||||||
# - `.git/refs/heads/...` -> the value in `.git/HEAD` is a branch name (when
|
# - `.git/refs/heads/...` -> the value in `.git/HEAD` is a branch name (when
|
||||||
# you are on a branch) and you have to monitor the file of the specific
|
# you are on a branch) and you have to monitor the file of the specific
|
||||||
# branch to detect when a `git commit` was issued
|
# branch to detect when a `git commit` was issued
|
||||||
# More details about the contents of the `.git` directory and the specific
|
# More details about the contents of the `.git` directory and the specific
|
||||||
# files used can be seen here:
|
# files used can be seen here:
|
||||||
# https://git-scm.com/book/en/v2/Git-Internals-Git-References
|
# https://git-scm.com/book/en/v2/Git-Internals-Git-References
|
||||||
set(git_directory "${CMAKE_SOURCE_DIR}/.git")
|
set(git_directory "${CMAKE_SOURCE_DIR}/.git")
|
||||||
if (EXISTS "${git_directory}")
|
|
||||||
|
if(EXISTS "${git_directory}")
|
||||||
set_property(DIRECTORY APPEND PROPERTY
|
set_property(DIRECTORY APPEND PROPERTY
|
||||||
CMAKE_CONFIGURE_DEPENDS "${git_directory}/HEAD")
|
CMAKE_CONFIGURE_DEPENDS "${git_directory}/HEAD")
|
||||||
file(STRINGS "${git_directory}/HEAD" git_head_data)
|
file(STRINGS "${git_directory}/HEAD" git_head_data)
|
||||||
if (git_head_data MATCHES "^ref: ")
|
|
||||||
|
if(git_head_data MATCHES "^ref: ")
|
||||||
string(SUBSTRING "${git_head_data}" 5 -1 git_head_ref)
|
string(SUBSTRING "${git_head_data}" 5 -1 git_head_ref)
|
||||||
set_property(DIRECTORY APPEND PROPERTY
|
set_property(DIRECTORY APPEND PROPERTY
|
||||||
CMAKE_CONFIGURE_DEPENDS "${git_directory}/${git_head_ref}")
|
CMAKE_CONFIGURE_DEPENDS "${git_directory}/${git_head_ref}")
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@@ -159,16 +165,19 @@ endif()
|
|||||||
# setup CMake module path, defines path for include() and find_package()
|
# setup CMake module path, defines path for include() and find_package()
|
||||||
# https://cmake.org/cmake/help/latest/variable/CMAKE_MODULE_PATH.html
|
# https://cmake.org/cmake/help/latest/variable/CMAKE_MODULE_PATH.html
|
||||||
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
|
set(CMAKE_MODULE_PATH ${CMAKE_MODULE_PATH} ${PROJECT_SOURCE_DIR}/cmake)
|
||||||
|
|
||||||
# custom function definitions
|
# custom function definitions
|
||||||
include(functions)
|
include(functions)
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
# We want out of source builds, so that cmake generated files don't get mixed
|
# We want out of source builds, so that cmake generated files don't get mixed
|
||||||
# with source files. This allows for easier clean up.
|
# with source files. This allows for easier clean up.
|
||||||
disallow_in_source_build()
|
disallow_in_source_build()
|
||||||
add_custom_target(clean_all
|
add_custom_target(clean_all
|
||||||
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/clean_all.cmake
|
COMMAND ${CMAKE_COMMAND} -P ${PROJECT_SOURCE_DIR}/cmake/clean_all.cmake
|
||||||
COMMENT "Removing all files in ${CMAKE_BINARY_DIR}")
|
COMMENT "Removing all files in ${CMAKE_BINARY_DIR}")
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
# build flags -----------------------------------------------------------------
|
# build flags -----------------------------------------------------------------
|
||||||
@@ -179,16 +188,19 @@ set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
|||||||
|
|
||||||
set(CMAKE_CXX_STANDARD 20)
|
set(CMAKE_CXX_STANDARD 20)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
|
||||||
# c99-designator is disabled because of required mixture of designated and
|
# c99-designator is disabled because of required mixture of designated and
|
||||||
# non-designated initializers in Python Query Module code (`py_module.cpp`).
|
# non-designated initializers in Python Query Module code (`py_module.cpp`).
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall \
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall \
|
||||||
-Werror=switch -Werror=switch-bool -Werror=return-type \
|
-Werror=switch -Werror=switch-bool -Werror=return-type \
|
||||||
-Werror=return-stack-address \
|
-Werror=return-stack-address \
|
||||||
-Wno-c99-designator")
|
-Wno-c99-designator \
|
||||||
|
-DBOOST_STACKTRACE_USE_ADDR2LINE \
|
||||||
|
-DBOOST_ASIO_USE_TS_EXECUTOR_AS_DEFAULT")
|
||||||
|
|
||||||
# Don't omit frame pointer in RelWithDebInfo, for additional callchain debug.
|
# Don't omit frame pointer in RelWithDebInfo, for additional callchain debug.
|
||||||
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
set(CMAKE_CXX_FLAGS_RELWITHDEBINFO
|
||||||
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer")
|
"${CMAKE_CXX_FLAGS_RELWITHDEBINFO} -fno-omit-frame-pointer")
|
||||||
|
|
||||||
# Statically link libgcc and libstdc++, the GCC allows this according to:
|
# Statically link libgcc and libstdc++, the GCC allows this according to:
|
||||||
# https://gcc.gnu.org/onlinedocs/gcc-10.2.0/libstdc++/manual/manual/license.html
|
# https://gcc.gnu.org/onlinedocs/gcc-10.2.0/libstdc++/manual/manual/license.html
|
||||||
@@ -204,40 +216,49 @@ set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fuse-ld=gold")
|
|||||||
# release flags
|
# release flags
|
||||||
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
set(CMAKE_CXX_FLAGS_RELEASE "-O2 -DNDEBUG")
|
||||||
|
|
||||||
#debug flags
|
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -pthread")
|
||||||
|
|
||||||
|
# debug flags
|
||||||
set(PREFERRED_DEBUGGER "gdb" CACHE STRING
|
set(PREFERRED_DEBUGGER "gdb" CACHE STRING
|
||||||
"Tunes the debug output for your preferred debugger (gdb or lldb).")
|
"Tunes the debug output for your preferred debugger (gdb or lldb).")
|
||||||
if ("${PREFERRED_DEBUGGER}" STREQUAL "gdb" AND
|
|
||||||
"${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|GNU")
|
if("${PREFERRED_DEBUGGER}" STREQUAL "gdb" AND
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb")
|
"${CMAKE_CXX_COMPILER_ID}" MATCHES "Clang|GNU")
|
||||||
elseif ("${PREFERRED_DEBUGGER}" STREQUAL "lldb" AND
|
set(CMAKE_CXX_FLAGS_DEBUG "-ggdb")
|
||||||
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
elseif("${PREFERRED_DEBUGGER}" STREQUAL "lldb" AND
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-glldb")
|
"${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
|
||||||
|
set(CMAKE_CXX_FLAGS_DEBUG "-glldb")
|
||||||
else()
|
else()
|
||||||
message(WARNING "Unable to tune for PREFERRED_DEBUGGER: "
|
message(WARNING "Unable to tune for PREFERRED_DEBUGGER: "
|
||||||
"'${PREFERRED_DEBUGGER}' with compiler: '${CMAKE_CXX_COMPILER_ID}'")
|
"'${PREFERRED_DEBUGGER}' with compiler: '${CMAKE_CXX_COMPILER_ID}'")
|
||||||
set(CMAKE_CXX_FLAGS_DEBUG "-g")
|
set(CMAKE_CXX_FLAGS_DEBUG "-g")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
# default build type is debug
|
# default build type is debug
|
||||||
if (NOT CMAKE_BUILD_TYPE)
|
if(NOT CMAKE_BUILD_TYPE)
|
||||||
set(CMAKE_BUILD_TYPE "Debug")
|
set(CMAKE_BUILD_TYPE "Debug")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
message(STATUS "CMake build type: ${CMAKE_BUILD_TYPE}")
|
message(STATUS "CMake build type: ${CMAKE_BUILD_TYPE}")
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
set(MG_ARCH "x86_64" CACHE STRING "Host architecture to build Memgraph on. Supported values are x86_64 (default), ARM64.")
|
||||||
|
|
||||||
# setup external dependencies -------------------------------------------------
|
# setup external dependencies -------------------------------------------------
|
||||||
|
|
||||||
# threading
|
# threading
|
||||||
find_package(Threads REQUIRED)
|
find_package(Threads REQUIRED)
|
||||||
|
|
||||||
# optional readline
|
# optional readline
|
||||||
option(USE_READLINE "Use GNU Readline library if available (default ON). \
|
option(USE_READLINE "Use GNU Readline library if available (default ON). \
|
||||||
Set this to OFF to prevent linking with Readline even if it is available." ON)
|
Set this to OFF to prevent linking with Readline even if it is available." ON)
|
||||||
if (USE_READLINE)
|
|
||||||
|
if(USE_READLINE)
|
||||||
find_package(Readline)
|
find_package(Readline)
|
||||||
if (READLINE_FOUND)
|
|
||||||
|
if(READLINE_FOUND)
|
||||||
add_definitions(-DHAS_READLINE)
|
add_definitions(-DHAS_READLINE)
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
@@ -253,24 +274,27 @@ option(ASAN "Build with Address Sanitizer. To get a reasonable performance optio
|
|||||||
option(TSAN "Build with Thread Sanitizer. To get a reasonable performance option should be used only in Release or RelWithDebInfo build " OFF)
|
option(TSAN "Build with Thread Sanitizer. To get a reasonable performance option should be used only in Release or RelWithDebInfo build " OFF)
|
||||||
option(UBSAN "Build with Undefined Behaviour Sanitizer" OFF)
|
option(UBSAN "Build with Undefined Behaviour Sanitizer" OFF)
|
||||||
|
|
||||||
if (TEST_COVERAGE)
|
if(TEST_COVERAGE)
|
||||||
string(TOLOWER ${CMAKE_BUILD_TYPE} lower_build_type)
|
string(TOLOWER ${CMAKE_BUILD_TYPE} lower_build_type)
|
||||||
if (NOT lower_build_type STREQUAL "debug")
|
|
||||||
|
if(NOT lower_build_type STREQUAL "debug")
|
||||||
message(FATAL_ERROR "Generating test coverage unsupported in non Debug builds. Current build type is '${CMAKE_BUILD_TYPE}'")
|
message(FATAL_ERROR "Generating test coverage unsupported in non Debug builds. Current build type is '${CMAKE_BUILD_TYPE}'")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fprofile-instr-generate -fcoverage-mapping")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (MG_ENTERPRISE)
|
if(MG_ENTERPRISE)
|
||||||
add_definitions(-DMG_ENTERPRISE)
|
add_definitions(-DMG_ENTERPRISE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(ENABLE_JEMALLOC ON)
|
set(ENABLE_JEMALLOC ON)
|
||||||
|
|
||||||
if (ASAN)
|
if(ASAN)
|
||||||
message(WARNING "Disabling jemalloc as it doesn't work well with ASAN")
|
message(WARNING "Disabling jemalloc as it doesn't work well with ASAN")
|
||||||
set(ENABLE_JEMALLOC OFF)
|
set(ENABLE_JEMALLOC OFF)
|
||||||
|
|
||||||
# Enable Addres sanitizer and get nicer stack traces in error messages.
|
# Enable Addres sanitizer and get nicer stack traces in error messages.
|
||||||
# NOTE: AddressSanitizer uses llvm-symbolizer binary from the Clang
|
# NOTE: AddressSanitizer uses llvm-symbolizer binary from the Clang
|
||||||
# distribution to symbolize the stack traces (note that ideally the
|
# distribution to symbolize the stack traces (note that ideally the
|
||||||
@@ -279,19 +303,20 @@ if (ASAN)
|
|||||||
# provide it in separate ASAN_SYMBOLIZER_PATH environment variable.
|
# provide it in separate ASAN_SYMBOLIZER_PATH environment variable.
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=address -fno-omit-frame-pointer")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=address")
|
||||||
|
|
||||||
# To detect Stack-use-after-return bugs set run-time flag:
|
# To detect Stack-use-after-return bugs set run-time flag:
|
||||||
# ASAN_OPTIONS=detect_stack_use_after_return=1
|
# ASAN_OPTIONS=detect_stack_use_after_return=1
|
||||||
# To check initialization order bugs set run-time flag:
|
# To check initialization order bugs set run-time flag:
|
||||||
# ASAN_OPTIONS=check_initialization_order=true
|
# ASAN_OPTIONS=check_initialization_order=true
|
||||||
# This mode reports an error if initializer for a global variable accesses
|
# This mode reports an error if initializer for a global variable accesses
|
||||||
# dynamically initialized global from another translation unit, which is
|
# dynamically initialized global from another translation unit, which is
|
||||||
# not yet initialized
|
# not yet initialized
|
||||||
# ASAN_OPTIONS=strict_init_order=true
|
# ASAN_OPTIONS=strict_init_order=true
|
||||||
# This mode reports an error if initializer for a global variable accesses
|
# This mode reports an error if initializer for a global variable accesses
|
||||||
# any dynamically initialized global from another translation unit.
|
# any dynamically initialized global from another translation unit.
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (TSAN)
|
if(TSAN)
|
||||||
# ThreadSanitizer generally requires all code to be compiled with -fsanitize=thread.
|
# ThreadSanitizer generally requires all code to be compiled with -fsanitize=thread.
|
||||||
# If some code (e.g. dynamic libraries) is not compiled with the flag, it can
|
# If some code (e.g. dynamic libraries) is not compiled with the flag, it can
|
||||||
# lead to false positive race reports, false negative race reports and/or
|
# lead to false positive race reports, false negative race reports and/or
|
||||||
@@ -304,19 +329,21 @@ if (TSAN)
|
|||||||
# (unwinding stack on each memory access is too expensive).
|
# (unwinding stack on each memory access is too expensive).
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=thread")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=thread")
|
||||||
|
|
||||||
# By default ThreadSanitizer uses addr2line utility to symbolize reports.
|
# By default ThreadSanitizer uses addr2line utility to symbolize reports.
|
||||||
# llvm-symbolizer is faster, consumes less memory and produces much better
|
# llvm-symbolizer is faster, consumes less memory and produces much better
|
||||||
# reports. To use it set runtime flag:
|
# reports. To use it set runtime flag:
|
||||||
# TSAN_OPTIONS="extern-symbolizer-path=~/llvm-symbolizer"
|
# TSAN_OPTIONS="extern-symbolizer-path=~/llvm-symbolizer"
|
||||||
# For more runtime flags see: https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags
|
# For more runtime flags see: https://github.com/google/sanitizers/wiki/ThreadSanitizerFlags
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
if (UBSAN)
|
if(UBSAN)
|
||||||
# Compile with UBSAN but disable vptr check. This is disabled because it
|
# Compile with UBSAN but disable vptr check. This is disabled because it
|
||||||
# requires linking with clang++ to make sure C++ specific parts of the
|
# requires linking with clang++ to make sure C++ specific parts of the
|
||||||
# runtime library and c++ standard libraries are present.
|
# runtime library and c++ standard libraries are present.
|
||||||
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-omit-frame-pointer -fno-sanitize=vptr")
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fsanitize=undefined -fno-omit-frame-pointer -fno-sanitize=vptr")
|
||||||
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fno-sanitize=vptr")
|
set(CMAKE_EXE_LINKER_FLAGS "${CMAKE_EXE_LINKER_FLAGS} -fsanitize=undefined -fno-sanitize=vptr")
|
||||||
|
|
||||||
# Run program with environment variable UBSAN_OPTIONS=print_stacktrace=1.
|
# Run program with environment variable UBSAN_OPTIONS=print_stacktrace=1.
|
||||||
# Make sure llvm-symbolizer binary is in path.
|
# Make sure llvm-symbolizer binary is in path.
|
||||||
# To make the program abort on undefined behavior, use UBSAN_OPTIONS=halt_on_error=1.
|
# To make the program abort on undefined behavior, use UBSAN_OPTIONS=halt_on_error=1.
|
||||||
@@ -335,7 +362,7 @@ add_subdirectory(release)
|
|||||||
option(MG_ENABLE_TESTING "Set this to OFF to disable building test binaries" ON)
|
option(MG_ENABLE_TESTING "Set this to OFF to disable building test binaries" ON)
|
||||||
message(STATUS "MG_ENABLE_TESTING: ${MG_ENABLE_TESTING}")
|
message(STATUS "MG_ENABLE_TESTING: ${MG_ENABLE_TESTING}")
|
||||||
|
|
||||||
if (MG_ENABLE_TESTING)
|
if(MG_ENABLE_TESTING)
|
||||||
enable_testing()
|
enable_testing()
|
||||||
add_subdirectory(tests)
|
add_subdirectory(tests)
|
||||||
endif()
|
endif()
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
* @gitbuda @antonio2368 @antaljanosbenjamin @kostasrim @jbajic
|
|
||||||
12
README.md
12
README.md
@@ -54,6 +54,18 @@ Memgraph is implemented in C/C++ and leverages an in-memory first architecture
|
|||||||
to ensure that you’re getting the best possible performance consistently and
|
to ensure that you’re getting the best possible performance consistently and
|
||||||
without surprises. It’s also ACID-compliant and highly available.
|
without surprises. It’s also ACID-compliant and highly available.
|
||||||
|
|
||||||
|
## :video_game: Memgraph Playground
|
||||||
|
|
||||||
|
You don't need to install anything to try out Memgraph. Check out
|
||||||
|
our **[Memgraph Playground](https://playground.memgraph.com/)** sandboxes in
|
||||||
|
your browser.
|
||||||
|
|
||||||
|
<p align="left">
|
||||||
|
<a href="https://playground.memgraph.com/">
|
||||||
|
<img width="450px" alt="Memgraph Playground" src="https://download.memgraph.com/asset/github/memgraph/memgraph-playground.png">
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## :floppy_disk: Download & Install
|
## :floppy_disk: Download & Install
|
||||||
|
|
||||||
### Windows
|
### Windows
|
||||||
|
|||||||
@@ -47,6 +47,14 @@ modifications:
|
|||||||
value: ""
|
value: ""
|
||||||
override: false
|
override: false
|
||||||
|
|
||||||
|
- name: "bolt_cert_file"
|
||||||
|
value: "/etc/memgraph/ssl/cert.pem"
|
||||||
|
override: false
|
||||||
|
|
||||||
|
- name: "bolt_key_file"
|
||||||
|
value: "/etc/memgraph/ssl/key.pem"
|
||||||
|
override: false
|
||||||
|
|
||||||
- name: "storage_properties_on_edges"
|
- name: "storage_properties_on_edges"
|
||||||
value: "true"
|
value: "true"
|
||||||
override: true
|
override: true
|
||||||
@@ -75,13 +83,9 @@ modifications:
|
|||||||
value: "true"
|
value: "true"
|
||||||
override: true
|
override: true
|
||||||
|
|
||||||
- name: "query_modules_directory"
|
# - name: "query_modules_directory"
|
||||||
value: "/usr/lib/memgraph/query_modules"
|
# value: "/usr/lib/memgraph/query_modules"
|
||||||
override: true
|
# override: true
|
||||||
|
|
||||||
- name: "auth_module_executable"
|
|
||||||
value: "/usr/lib/memgraph/auth_module/example.py"
|
|
||||||
override: false
|
|
||||||
|
|
||||||
- name: "memory_limit"
|
- name: "memory_limit"
|
||||||
value: "0"
|
value: "0"
|
||||||
|
|||||||
@@ -5,13 +5,16 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "centos-7"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc gcc-c++ make # generic build tools
|
coreutils gcc gcc-c++ make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
gnupg2 # used for archive signature verification
|
gnupg2 # used for archive signature verification
|
||||||
tar gzip bzip2 xz unzip # used for archive unpacking
|
tar gzip bzip2 xz unzip # used for archive unpacking
|
||||||
zlib-devel # zlib library used for all builds
|
zlib-devel # zlib library used for all builds
|
||||||
expat-devel libipt-devel libbabeltrace-devel xz-devel python3-devel # gdb
|
expat-devel libipt libipt-devel libbabeltrace-devel xz-devel python3-devel # gdb
|
||||||
texinfo # gdb
|
texinfo # gdb
|
||||||
libcurl-devel # cmake
|
libcurl-devel # cmake
|
||||||
curl # snappy
|
curl # snappy
|
||||||
@@ -22,6 +25,7 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
openssl-devel
|
openssl-devel
|
||||||
gmp-devel
|
gmp-devel
|
||||||
gperf
|
gperf
|
||||||
|
patch
|
||||||
)
|
)
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
@@ -105,7 +109,7 @@ install() {
|
|||||||
https://repo.ius.io/ius-release-el7.rpm
|
https://repo.ius.io/ius-release-el7.rpm
|
||||||
yum update -y
|
yum update -y
|
||||||
yum install -y wget python3 python3-pip
|
yum install -y wget python3 python3-pip
|
||||||
yum install -y git224
|
yum install -y git
|
||||||
for pkg in $1; do
|
for pkg in $1; do
|
||||||
if [ "$pkg" == libipt ]; then
|
if [ "$pkg" == libipt ]; then
|
||||||
if ! yum list installed libipt >/dev/null 2>/dev/null; then
|
if ! yum list installed libipt >/dev/null 2>/dev/null; then
|
||||||
|
|||||||
@@ -5,15 +5,16 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "centos-9"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc gcc-c++ make # generic build tools
|
coreutils-common gcc gcc-c++ make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
gnupg2 # used for archive signature verification
|
gnupg2 # used for archive signature verification
|
||||||
tar gzip bzip2 xz unzip # used for archive unpacking
|
tar gzip bzip2 xz unzip # used for archive unpacking
|
||||||
zlib-devel # zlib library used for all builds
|
zlib-devel # zlib library used for all builds
|
||||||
expat-devel libipt-devel libbabeltrace-devel xz-devel python36-devel texinfo # for gdb
|
expat-devel xz-devel python3-devel texinfo libbabeltrace-devel # for gdb
|
||||||
libcurl-devel # for cmake
|
|
||||||
curl # snappy
|
|
||||||
readline-devel # for cmake and llvm
|
readline-devel # for cmake and llvm
|
||||||
libffi-devel libxml2-devel # for llvm
|
libffi-devel libxml2-devel # for llvm
|
||||||
libedit-devel pcre-devel automake bison # for swig
|
libedit-devel pcre-devel automake bison # for swig
|
||||||
@@ -21,28 +22,32 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
openssl-devel
|
openssl-devel
|
||||||
gmp-devel
|
gmp-devel
|
||||||
gperf
|
gperf
|
||||||
|
diffutils
|
||||||
|
libipt libipt-devel # intel
|
||||||
|
patch
|
||||||
)
|
)
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
make # generic build tools
|
make # generic build tools
|
||||||
tar gzip bzip2 xz # used for archive unpacking
|
tar gzip bzip2 xz # used for archive unpacking
|
||||||
zlib # zlib library used for all builds
|
zlib # zlib library used for all builds
|
||||||
expat libipt libbabeltrace xz-libs python36 # for gdb
|
expat xz-libs python3 # for gdb
|
||||||
readline # for cmake and llvm
|
readline # for cmake and llvm
|
||||||
libffi libxml2 # for llvm
|
libffi libxml2 # for llvm
|
||||||
openssl-devel
|
openssl-devel
|
||||||
|
perl # for openssl
|
||||||
)
|
)
|
||||||
|
|
||||||
MEMGRAPH_BUILD_DEPS=(
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
git # source code control
|
git # source code control
|
||||||
make pkgconf-pkg-config # build system
|
make pkgconf-pkg-config # build system
|
||||||
curl wget # for downloading libs
|
wget # for downloading libs
|
||||||
libuuid-devel java-11-openjdk # required by antlr
|
libuuid-devel java-11-openjdk # required by antlr
|
||||||
readline-devel # for memgraph console
|
readline-devel # for memgraph console
|
||||||
python36-devel # for query modules
|
python3-devel # for query modules
|
||||||
openssl-devel
|
openssl-devel
|
||||||
libseccomp-devel
|
libseccomp-devel
|
||||||
python36 python3-virtualenv python3-pip nmap-ncat # for qa, macro_benchmark and stress tests
|
python3 python3-pip python3-virtualenv nmap-ncat # for qa, macro_benchmark and stress tests
|
||||||
#
|
#
|
||||||
# IMPORTANT: python3-yaml does NOT exist on CentOS
|
# IMPORTANT: python3-yaml does NOT exist on CentOS
|
||||||
# Install it manually using `pip3 install PyYAML`
|
# Install it manually using `pip3 install PyYAML`
|
||||||
@@ -51,7 +56,7 @@ MEMGRAPH_BUILD_DEPS=(
|
|||||||
libcurl-devel # mg-requests
|
libcurl-devel # mg-requests
|
||||||
rpm-build rpmlint # for RPM package building
|
rpm-build rpmlint # for RPM package building
|
||||||
doxygen graphviz # source documentation generators
|
doxygen graphviz # source documentation generators
|
||||||
which mono-complete dotnet-sdk-3.1 nodejs golang zip unzip java-11-openjdk-devel # for driver tests
|
which nodejs golang zip unzip java-11-openjdk-devel # for driver tests
|
||||||
sbcl # for custom Lisp C++ preprocessing
|
sbcl # for custom Lisp C++ preprocessing
|
||||||
autoconf # for jemalloc code generation
|
autoconf # for jemalloc code generation
|
||||||
libtool # for protobuf code generation
|
libtool # for protobuf code generation
|
||||||
@@ -70,6 +75,9 @@ check() {
|
|||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
|
if [ "$pkg" == "python3-virtualenv" ]; then
|
||||||
|
continue
|
||||||
|
fi
|
||||||
if ! yum list installed "$pkg" >/dev/null 2>/dev/null; then
|
if ! yum list installed "$pkg" >/dev/null 2>/dev/null; then
|
||||||
missing="$pkg $missing"
|
missing="$pkg $missing"
|
||||||
fi
|
fi
|
||||||
@@ -93,12 +101,13 @@ install() {
|
|||||||
else
|
else
|
||||||
echo "NOTE: export LANG=en_US.utf8"
|
echo "NOTE: export LANG=en_US.utf8"
|
||||||
fi
|
fi
|
||||||
dnf install -y epel-release
|
yum update -y
|
||||||
dnf install -y 'dnf-command(config-manager)'
|
yum install -y wget git python3 python3-pip
|
||||||
dnf config-manager --set-enabled powertools # Required to install texinfo.
|
|
||||||
dnf update -y
|
|
||||||
dnf install -y wget git python36 python3-pip
|
|
||||||
for pkg in $1; do
|
for pkg in $1; do
|
||||||
|
# Since there is no support for libipt-devel for CentOS 9 we install
|
||||||
|
# Fedoras version of same libs, they are the same version but released
|
||||||
|
# for different OS
|
||||||
|
# TODO Update when libipt-devel releases for CentOS 9
|
||||||
if [ "$pkg" == libipt ]; then
|
if [ "$pkg" == libipt ]; then
|
||||||
if ! dnf list installed libipt >/dev/null 2>/dev/null; then
|
if ! dnf list installed libipt >/dev/null 2>/dev/null; then
|
||||||
dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/libipt-1.6.1-8.el8.x86_64.rpm
|
dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/libipt-1.6.1-8.el8.x86_64.rpm
|
||||||
@@ -106,19 +115,14 @@ install() {
|
|||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [ "$pkg" == libipt-devel ]; then
|
if [ "$pkg" == libipt-devel ]; then
|
||||||
if ! yum list installed libipt-devel >/dev/null 2>/dev/null; then
|
if ! dnf list installed libipt-devel >/dev/null 2>/dev/null; then
|
||||||
dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/libipt-devel-1.6.1-8.el8.x86_64.rpm
|
dnf install -y http://repo.okay.com.mx/centos/8/x86_64/release/libipt-devel-1.6.1-8.el8.x86_64.rpm
|
||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
# Install GDB dependencies not present in the standard repos.
|
|
||||||
# https://bugs.centos.org/view.php?id=17068
|
|
||||||
# https://centos.pkgs.org
|
|
||||||
# Since 2020, there is Babeltrace2 (https://babeltrace.org). Not used
|
|
||||||
# within GDB yet (an assumption).
|
|
||||||
if [ "$pkg" == libbabeltrace-devel ]; then
|
if [ "$pkg" == libbabeltrace-devel ]; then
|
||||||
if ! dnf list installed libbabeltrace-devel >/dev/null 2>/dev/null; then
|
if ! dnf list installed libbabeltrace-devel >/dev/null 2>/dev/null; then
|
||||||
dnf install -y http://mirror.centos.org/centos/8/PowerTools/x86_64/os/Packages/libbabeltrace-devel-1.5.4-3.el8.x86_64.rpm
|
dnf install -y http://mirror.stream.centos.org/9-stream/CRB/x86_64/os/Packages/libbabeltrace-devel-1.5.8-10.el9.x86_64.rpm
|
||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
@@ -134,15 +138,6 @@ install() {
|
|||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
if [ "$pkg" == dotnet-sdk-3.1 ]; then
|
|
||||||
if ! dnf list installed dotnet-sdk-3.1 >/dev/null 2>/dev/null; then
|
|
||||||
wget -nv https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm -O packages-microsoft-prod.rpm
|
|
||||||
rpm -Uvh https://packages.microsoft.com/config/centos/8/packages-microsoft-prod.rpm
|
|
||||||
dnf update -y
|
|
||||||
dnf install -y dotnet-sdk-3.1
|
|
||||||
fi
|
|
||||||
continue
|
|
||||||
fi
|
|
||||||
if [ "$pkg" == PyYAML ]; then
|
if [ "$pkg" == PyYAML ]; then
|
||||||
if [ -z ${SUDO_USER+x} ]; then # Running as root (e.g. Docker).
|
if [ -z ${SUDO_USER+x} ]; then # Running as root (e.g. Docker).
|
||||||
pip3 install --user PyYAML
|
pip3 install --user PyYAML
|
||||||
@@ -151,7 +146,17 @@ install() {
|
|||||||
fi
|
fi
|
||||||
continue
|
continue
|
||||||
fi
|
fi
|
||||||
dnf install -y "$pkg"
|
if [ "$pkg" == python3-virtualenv ]; then
|
||||||
|
if [ -z ${SUDO_USER+x} ]; then # Running as root (e.g. Docker).
|
||||||
|
pip3 install virtualenv
|
||||||
|
pip3 install virtualenvwrapper
|
||||||
|
else # Running using sudo.
|
||||||
|
sudo -H -u "$SUDO_USER" bash -c "pip3 install virtualenv"
|
||||||
|
sudo -H -u "$SUDO_USER" bash -c "pip3 install virtualenvwrapper"
|
||||||
|
fi
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
yum install -y "$pkg"
|
||||||
done
|
done
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -5,6 +5,9 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "debian-10"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc g++ build-essential make # generic build tools
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
|
|||||||
98
environment/os/debian-11-arm.sh
Executable file
98
environment/os/debian-11-arm.sh
Executable file
@@ -0,0 +1,98 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "debian-11"
|
||||||
|
check_architecture "arm64"
|
||||||
|
|
||||||
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
|
wget # used for archive download
|
||||||
|
gnupg # used for archive signature verification
|
||||||
|
tar gzip bzip2 xz-utils unzip # used for archive unpacking
|
||||||
|
zlib1g-dev # zlib library used for all builds
|
||||||
|
libexpat1-dev liblzma-dev python3-dev texinfo # for gdb
|
||||||
|
libcurl4-openssl-dev # for cmake
|
||||||
|
libreadline-dev # for cmake and llvm
|
||||||
|
libffi-dev libxml2-dev # for llvm
|
||||||
|
libedit-dev libpcre3-dev automake bison # for swig
|
||||||
|
curl # snappy
|
||||||
|
file # for libunwind
|
||||||
|
libssl-dev # for libevent
|
||||||
|
libgmp-dev
|
||||||
|
gperf # for proxygen
|
||||||
|
git # for fbthrift
|
||||||
|
)
|
||||||
|
|
||||||
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
|
make # generic build tools
|
||||||
|
tar gzip bzip2 xz-utils # used for archive unpacking
|
||||||
|
zlib1g # zlib library used for all builds
|
||||||
|
libexpat1 liblzma5 python3 # for gdb
|
||||||
|
libcurl4 # for cmake
|
||||||
|
file # for CPack
|
||||||
|
libreadline8 # for cmake and llvm
|
||||||
|
libffi7 libxml2 # for llvm
|
||||||
|
libssl-dev # for libevent
|
||||||
|
)
|
||||||
|
|
||||||
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
|
git # source code control
|
||||||
|
make pkg-config # build system
|
||||||
|
curl wget # for downloading libs
|
||||||
|
uuid-dev default-jre-headless # required by antlr
|
||||||
|
libreadline-dev # for memgraph console
|
||||||
|
libpython3-dev python3-dev # for query modules
|
||||||
|
libssl-dev
|
||||||
|
libseccomp-dev
|
||||||
|
netcat # tests are using nc to wait for memgraph
|
||||||
|
python3 virtualenv python3-virtualenv python3-pip # for qa, macro_benchmark and stress tests
|
||||||
|
python3-yaml # for the configuration generator
|
||||||
|
libcurl4-openssl-dev # mg-requests
|
||||||
|
sbcl # for custom Lisp C++ preprocessing
|
||||||
|
doxygen graphviz # source documentation generators
|
||||||
|
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
||||||
|
golang nodejs npm
|
||||||
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
|
)
|
||||||
|
|
||||||
|
list() {
|
||||||
|
echo "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
check_all_dpkg "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
cat >/etc/apt/sources.list <<EOF
|
||||||
|
deb http://deb.debian.org/debian bullseye main
|
||||||
|
deb-src http://deb.debian.org/debian bullseye main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian-security/ bullseye-security main
|
||||||
|
deb-src http://deb.debian.org/debian-security/ bullseye-security main
|
||||||
|
|
||||||
|
deb http://deb.debian.org/debian bullseye-updates main
|
||||||
|
deb-src http://deb.debian.org/debian bullseye-updates main
|
||||||
|
EOF
|
||||||
|
cd "$DIR"
|
||||||
|
apt update
|
||||||
|
# If GitHub Actions runner is installed, append LANG to the environment.
|
||||||
|
# Python related tests doesn't work the LANG export.
|
||||||
|
if [ -d "/home/gh/actions-runner" ]; then
|
||||||
|
echo "LANG=en_US.utf8" >> /home/gh/actions-runner/.env
|
||||||
|
else
|
||||||
|
echo "NOTE: export LANG=en_US.utf8"
|
||||||
|
fi
|
||||||
|
apt install -y wget
|
||||||
|
for pkg in $1; do
|
||||||
|
apt install -y "$pkg"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
deps=$2"[*]"
|
||||||
|
"$1" "${!deps}"
|
||||||
@@ -5,6 +5,9 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "debian-11"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc g++ build-essential make # generic build tools
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
@@ -87,7 +90,7 @@ EOF
|
|||||||
fi
|
fi
|
||||||
apt install -y wget
|
apt install -y wget
|
||||||
for pkg in $1; do
|
for pkg in $1; do
|
||||||
if [ "$pkg" == dotnet-sdk-3.1 ]; then
|
if [ "$pkg" == dotnet-sdk-3.1 ]; then
|
||||||
if ! dpkg -s "$pkg" 2>/dev/null >/dev/null; then
|
if ! dpkg -s "$pkg" 2>/dev/null >/dev/null; then
|
||||||
wget -nv https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
|
wget -nv https://packages.microsoft.com/config/debian/10/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
|
||||||
dpkg -i packages-microsoft-prod.deb
|
dpkg -i packages-microsoft-prod.deb
|
||||||
|
|||||||
@@ -5,6 +5,8 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "todo-os-name"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
pkg
|
pkg
|
||||||
)
|
)
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "ubuntu-18.04"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc g++ build-essential make # generic build tools
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
wget # archive download
|
wget # archive download
|
||||||
|
|||||||
@@ -5,6 +5,9 @@ set -Eeuo pipefail
|
|||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "ubuntu-20.04"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
TOOLCHAIN_BUILD_DEPS=(
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
coreutils gcc g++ build-essential make # generic build tools
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
wget # used for archive download
|
wget # used for archive download
|
||||||
|
|||||||
96
environment/os/ubuntu-22.04.sh
Executable file
96
environment/os/ubuntu-22.04.sh
Executable file
@@ -0,0 +1,96 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
set -Eeuo pipefail
|
||||||
|
|
||||||
|
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
||||||
|
source "$DIR/../util.sh"
|
||||||
|
|
||||||
|
check_operating_system "ubuntu-22.04"
|
||||||
|
check_architecture "x86_64"
|
||||||
|
|
||||||
|
TOOLCHAIN_BUILD_DEPS=(
|
||||||
|
coreutils gcc g++ build-essential make # generic build tools
|
||||||
|
wget # used for archive download
|
||||||
|
gnupg # used for archive signature verification
|
||||||
|
tar gzip bzip2 xz-utils unzip # used for archive unpacking
|
||||||
|
zlib1g-dev # zlib library used for all builds
|
||||||
|
libexpat1-dev libipt-dev libbabeltrace-dev liblzma-dev python3-dev texinfo # for gdb
|
||||||
|
libcurl4-openssl-dev # for cmake
|
||||||
|
libreadline-dev # for cmake and llvm
|
||||||
|
libffi-dev libxml2-dev # for llvm
|
||||||
|
curl # snappy
|
||||||
|
file
|
||||||
|
git # for thrift
|
||||||
|
libgmp-dev # for gdb
|
||||||
|
gperf # for proxygen
|
||||||
|
libssl-dev
|
||||||
|
libedit-dev libpcre3-dev automake bison # for swig
|
||||||
|
)
|
||||||
|
|
||||||
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
|
make # generic build tools
|
||||||
|
tar gzip bzip2 xz-utils # used for archive unpacking
|
||||||
|
zlib1g # zlib library used for all builds
|
||||||
|
libexpat1 libipt2 libbabeltrace1 liblzma5 python3 # for gdb
|
||||||
|
libcurl4 # for cmake
|
||||||
|
libreadline8 # for cmake and llvm
|
||||||
|
libffi7 libxml2 # for llvm
|
||||||
|
libssl-dev # for libevent
|
||||||
|
)
|
||||||
|
|
||||||
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
|
git # source code control
|
||||||
|
make pkg-config # build system
|
||||||
|
curl wget # for downloading libs
|
||||||
|
uuid-dev default-jre-headless # required by antlr
|
||||||
|
libreadline-dev # for memgraph console
|
||||||
|
libpython3-dev python3-dev # for query modules
|
||||||
|
libssl-dev
|
||||||
|
libseccomp-dev
|
||||||
|
netcat # tests are using nc to wait for memgraph
|
||||||
|
python3 python3-virtualenv python3-pip # for qa, macro_benchmark and stress tests
|
||||||
|
python3-yaml # for the configuration generator
|
||||||
|
libcurl4-openssl-dev # mg-requests
|
||||||
|
sbcl # for custom Lisp C++ preprocessing
|
||||||
|
doxygen graphviz # source documentation generators
|
||||||
|
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
||||||
|
dotnet-sdk-6.0 golang nodejs npm
|
||||||
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
|
)
|
||||||
|
|
||||||
|
list() {
|
||||||
|
echo "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
check() {
|
||||||
|
check_all_dpkg "$1"
|
||||||
|
}
|
||||||
|
|
||||||
|
install() {
|
||||||
|
cd "$DIR"
|
||||||
|
apt update
|
||||||
|
# If GitHub Actions runner is installed, append LANG to the environment.
|
||||||
|
# Python related tests doesn't work the LANG export.
|
||||||
|
if [ -d "/home/gh/actions-runner" ]; then
|
||||||
|
echo "LANG=en_US.utf8" >> /home/gh/actions-runner/.env
|
||||||
|
else
|
||||||
|
echo "NOTE: export LANG=en_US.utf8"
|
||||||
|
fi
|
||||||
|
apt install -y wget
|
||||||
|
for pkg in $1; do
|
||||||
|
if [ "$pkg" == dotnet-sdk-6.0 ]; then
|
||||||
|
if ! dpkg -s dotnet-sdk-6.0 2>/dev/null >/dev/null; then
|
||||||
|
wget -nv https://packages.microsoft.com/config/ubuntu/22.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
|
||||||
|
dpkg -i packages-microsoft-prod.deb
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y apt-transport-https dotnet-sdk-6.0
|
||||||
|
fi
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
apt install -y "$pkg"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
deps=$2"[*]"
|
||||||
|
"$1" "${!deps}"
|
||||||
41
environment/toolchain/folly.patch
Normal file
41
environment/toolchain/folly.patch
Normal file
@@ -0,0 +1,41 @@
|
|||||||
|
diff -ur a/folly/CMakeLists.txt b/folly/CMakeLists.txt
|
||||||
|
--- a/folly/CMakeLists.txt 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/CMakeLists.txt 2022-02-03 15:19:41.349693134 +0100
|
||||||
|
@@ -28,7 +28,6 @@
|
||||||
|
)
|
||||||
|
|
||||||
|
add_subdirectory(experimental/exception_tracer)
|
||||||
|
-add_subdirectory(logging/example)
|
||||||
|
|
||||||
|
if (PYTHON_EXTENSIONS)
|
||||||
|
# Create tree of symbolic links in structure required for successful
|
||||||
|
diff -ur a/folly/experimental/exception_tracer/ExceptionTracerLib.cpp b/folly/experimental/exception_tracer/ExceptionTracerLib.cpp
|
||||||
|
--- a/folly/experimental/exception_tracer/ExceptionTracerLib.cpp 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/experimental/exception_tracer/ExceptionTracerLib.cpp 2022-02-03 15:19:11.003368891 +0100
|
||||||
|
@@ -96,6 +96,7 @@
|
||||||
|
#define __builtin_unreachable()
|
||||||
|
#endif
|
||||||
|
|
||||||
|
+#if 0
|
||||||
|
namespace __cxxabiv1 {
|
||||||
|
|
||||||
|
void __cxa_throw(
|
||||||
|
@@ -154,5 +155,5 @@
|
||||||
|
}
|
||||||
|
|
||||||
|
} // namespace std
|
||||||
|
-
|
||||||
|
+#endif
|
||||||
|
#endif // defined(__GLIBCXX__)
|
||||||
|
diff -ur a/folly/Portability.h b/folly/Portability.h
|
||||||
|
--- a/folly/Portability.h 2021-12-12 23:10:42.000000000 +0100
|
||||||
|
+++ b/folly/Portability.h 2022-02-03 15:19:11.003368891 +0100
|
||||||
|
@@ -566,7 +566,7 @@
|
||||||
|
#define FOLLY_HAS_COROUTINES 0
|
||||||
|
#elif (__cpp_coroutines >= 201703L || __cpp_impl_coroutine >= 201902L) && \
|
||||||
|
(__has_include(<coroutine>) || __has_include(<experimental/coroutine>))
|
||||||
|
-#define FOLLY_HAS_COROUTINES 1
|
||||||
|
+#define FOLLY_HAS_COROUTINES 0
|
||||||
|
// This is mainly to workaround bugs triggered by LTO, when stack allocated
|
||||||
|
// variables in await_suspend end up on a coroutine frame.
|
||||||
|
#define FOLLY_CORO_AWAIT_SUSPEND_NONTRIVIAL_ATTRIBUTES FOLLY_NOINLINE
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
24d23
|
|
||||||
< find_dependency(mvfst)
|
|
||||||
11
environment/toolchain/proxygen.patch
Normal file
11
environment/toolchain/proxygen.patch
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
diff -ur a/cmake/proxygen-config.cmake.in b/cmake/proxygen-config.cmake.in
|
||||||
|
--- a/cmake/proxygen-config.cmake.in 2021-12-13 02:37:05.000000000 +0100
|
||||||
|
+++ b/cmake/proxygen-config.cmake.in 2022-01-27 17:14:28.284810621 +0100
|
||||||
|
@@ -21,7 +21,6 @@
|
||||||
|
find_dependency(folly)
|
||||||
|
find_dependency(wangle)
|
||||||
|
find_dependency(Fizz)
|
||||||
|
-find_dependency(mvfst)
|
||||||
|
# For now, anything that depends on Proxygen has to copy its FindZstd.cmake
|
||||||
|
# and issue a `find_package(Zstd)`. Uncommenting this won't work because
|
||||||
|
# this Zstd module exposes a library called `zstd`. The right fix is
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
55,57c55,57
|
|
||||||
< # Disable RTTI.
|
|
||||||
< string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
< set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
|
||||||
---
|
|
||||||
> # # Disable RTTI.
|
|
||||||
> # string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
> # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
|
||||||
80,82c80,82
|
|
||||||
< # Disable RTTI.
|
|
||||||
< string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
< set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
|
||||||
---
|
|
||||||
> # # Disable RTTI.
|
|
||||||
> # string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
|
||||||
> # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
|
||||||
29
environment/toolchain/snappy.patch
Normal file
29
environment/toolchain/snappy.patch
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
diff -ur a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
--- a/CMakeLists.txt 2021-05-05 00:53:34.000000000 +0200
|
||||||
|
+++ b/CMakeLists.txt 2022-01-27 17:18:34.758302398 +0100
|
||||||
|
@@ -52,9 +52,9 @@
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /EHs-c-")
|
||||||
|
add_definitions(-D_HAS_EXCEPTIONS=0)
|
||||||
|
|
||||||
|
- # Disable RTTI.
|
||||||
|
- string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
||||||
|
+ # # Disable RTTI.
|
||||||
|
+ # string(REGEX REPLACE "/GR" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} /GR-")
|
||||||
|
else(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
# Use -Wall for clang and gcc.
|
||||||
|
if(NOT CMAKE_CXX_FLAGS MATCHES "-Wall")
|
||||||
|
@@ -77,9 +77,9 @@
|
||||||
|
string(REGEX REPLACE "-fexceptions" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-exceptions")
|
||||||
|
|
||||||
|
- # Disable RTTI.
|
||||||
|
- string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
|
+ # # Disable RTTI.
|
||||||
|
+ # string(REGEX REPLACE "-frtti" "" CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}")
|
||||||
|
+ # set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -fno-rtti")
|
||||||
|
endif(CMAKE_CXX_COMPILER_ID STREQUAL "MSVC")
|
||||||
|
|
||||||
|
# BUILD_SHARED_LIBS is a standard CMake variable, but we declare it here to make
|
||||||
@@ -10,6 +10,18 @@ cd "$DIR"
|
|||||||
source "$DIR/../util.sh"
|
source "$DIR/../util.sh"
|
||||||
DISTRO="$(operating_system)"
|
DISTRO="$(operating_system)"
|
||||||
|
|
||||||
|
for_arm=false
|
||||||
|
if [[ "$#" -eq 1 ]]; then
|
||||||
|
if [[ "$1" == "--for-arm" ]]; then
|
||||||
|
for_arm=true
|
||||||
|
else
|
||||||
|
echo "Invalid argument received. Use '--for-arm' if you want to build the toolchain for ARM based CPU."
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
os="$1"
|
||||||
|
|
||||||
# toolchain version
|
# toolchain version
|
||||||
TOOLCHAIN_VERSION=4
|
TOOLCHAIN_VERSION=4
|
||||||
|
|
||||||
@@ -21,7 +33,7 @@ case "$DISTRO" in
|
|||||||
GDB_VERSION=8.3
|
GDB_VERSION=8.3
|
||||||
;;
|
;;
|
||||||
*)
|
*)
|
||||||
GDB_VERSION=11.1
|
GDB_VERSION=11.2
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
CMAKE_VERSION=3.22.1
|
CMAKE_VERSION=3.22.1
|
||||||
@@ -169,36 +181,78 @@ if [ ! -f $PREFIX/bin/gcc ]; then
|
|||||||
pushd gcc-$GCC_VERSION
|
pushd gcc-$GCC_VERSION
|
||||||
./contrib/download_prerequisites
|
./contrib/download_prerequisites
|
||||||
mkdir build && pushd build
|
mkdir build && pushd build
|
||||||
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=gcc-8&arch=amd64&ver=8.3.0-6&stamp=1554588545
|
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=gcc-11&arch=arm64&ver=11.2.0-14&stamp=1642052446&raw=0
|
||||||
../configure -v \
|
if [[ "$for_arm" = true ]]; then
|
||||||
--build=x86_64-linux-gnu \
|
../configure -v \
|
||||||
--host=x86_64-linux-gnu \
|
--prefix=$PREFIX \
|
||||||
--target=x86_64-linux-gnu \
|
--disable-multilib \
|
||||||
--prefix=$PREFIX \
|
--with-system-zlib \
|
||||||
--disable-multilib \
|
--enable-languages=c,c++,fortran \
|
||||||
--with-system-zlib \
|
--enable-gold=yes \
|
||||||
--enable-checking=release \
|
--enable-ld=yes \
|
||||||
--enable-languages=c,c++,fortran \
|
--disable-vtable-verify \
|
||||||
--enable-gold=yes \
|
--enable-libmpx \
|
||||||
--enable-ld=yes \
|
--without-cuda-driver \
|
||||||
--enable-lto \
|
--enable-shared \
|
||||||
--enable-bootstrap \
|
--enable-linker-build-id \
|
||||||
--disable-vtable-verify \
|
--without-included-gettext \
|
||||||
--disable-werror \
|
--enable-threads=posix \
|
||||||
--without-included-gettext \
|
--enable-nls \
|
||||||
--enable-threads=posix \
|
--enable-bootstrap \
|
||||||
--enable-nls \
|
--enable-clocale=gnu \
|
||||||
--enable-clocale=gnu \
|
--enable-libstdcxx-debug \
|
||||||
--enable-libstdcxx-debug \
|
--enable-libstdcxx-time=yes \
|
||||||
--enable-libstdcxx-time=yes \
|
--with-default-libstdcxx-abi=new \
|
||||||
--enable-gnu-unique-object \
|
--enable-gnu-unique-object \
|
||||||
--enable-libmpx \
|
--disable-libquadmath \
|
||||||
--enable-plugin \
|
--disable-libquadmath-support \
|
||||||
--enable-default-pie \
|
--enable-plugin \
|
||||||
--with-target-system-zlib \
|
--enable-default-pie \
|
||||||
--with-tune=generic \
|
--with-system-zlib \
|
||||||
--without-cuda-driver
|
--enable-libphobos-checking=release \
|
||||||
#--program-suffix=$( printf "$GCC_VERSION" | cut -d '.' -f 1,2 ) \
|
--with-target-system-zlib=auto \
|
||||||
|
--enable-objc-gc=auto \
|
||||||
|
--enable-multiarch \
|
||||||
|
--enable-fix-cortex-a53-843419 \
|
||||||
|
--disable-werror \
|
||||||
|
--enable-checking=release \
|
||||||
|
--build=aarch64-linux-gnu \
|
||||||
|
--host=aarch64-linux-gnu \
|
||||||
|
--target=aarch64-linux-gnu \
|
||||||
|
--with-build-config=bootstrap-lto-lean \
|
||||||
|
--enable-link-serialization=4
|
||||||
|
else
|
||||||
|
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=gcc-8&arch=amd64&ver=8.3.0-6&stamp=1554588545
|
||||||
|
../configure -v \
|
||||||
|
--build=x86_64-linux-gnu \
|
||||||
|
--host=x86_64-linux-gnu \
|
||||||
|
--target=x86_64-linux-gnu \
|
||||||
|
--prefix=$PREFIX \
|
||||||
|
--disable-multilib \
|
||||||
|
--with-system-zlib \
|
||||||
|
--enable-checking=release \
|
||||||
|
--enable-languages=c,c++,fortran \
|
||||||
|
--enable-gold=yes \
|
||||||
|
--enable-ld=yes \
|
||||||
|
--enable-lto \
|
||||||
|
--enable-bootstrap \
|
||||||
|
--disable-vtable-verify \
|
||||||
|
--disable-werror \
|
||||||
|
--without-included-gettext \
|
||||||
|
--enable-threads=posix \
|
||||||
|
--enable-nls \
|
||||||
|
--enable-clocale=gnu \
|
||||||
|
--enable-libstdcxx-debug \
|
||||||
|
--enable-libstdcxx-time=yes \
|
||||||
|
--enable-gnu-unique-object \
|
||||||
|
--enable-libmpx \
|
||||||
|
--enable-plugin \
|
||||||
|
--enable-default-pie \
|
||||||
|
--with-target-system-zlib \
|
||||||
|
--with-tune=generic \
|
||||||
|
--without-cuda-driver
|
||||||
|
#--program-suffix=$( printf "$GCC_VERSION" | cut -d '.' -f 1,2 ) \
|
||||||
|
fi
|
||||||
make -j$CPUS
|
make -j$CPUS
|
||||||
# make -k check # run test suite
|
# make -k check # run test suite
|
||||||
make install
|
make install
|
||||||
@@ -217,28 +271,56 @@ if [ ! -f $PREFIX/bin/ld.gold ]; then
|
|||||||
tar -xvf ../archives/binutils-$BINUTILS_VERSION.tar.gz
|
tar -xvf ../archives/binutils-$BINUTILS_VERSION.tar.gz
|
||||||
pushd binutils-$BINUTILS_VERSION
|
pushd binutils-$BINUTILS_VERSION
|
||||||
mkdir build && pushd build
|
mkdir build && pushd build
|
||||||
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=binutils&arch=amd64&ver=2.32-7&stamp=1553247092
|
if [[ "$for_arm" = true ]]; then
|
||||||
env \
|
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=binutils&arch=arm64&ver=2.37.90.20220130-2&stamp=1643576183&raw=0
|
||||||
CC=gcc \
|
env \
|
||||||
CXX=g++ \
|
CC=gcc \
|
||||||
CFLAGS="-g -O2" \
|
CXX=g++ \
|
||||||
CXXFLAGS="-g -O2" \
|
CFLAGS="-g -O2" \
|
||||||
LDFLAGS="" \
|
CXXFLAGS="-g -O2" \
|
||||||
../configure \
|
LDFLAGS="" \
|
||||||
--build=x86_64-linux-gnu \
|
../configure \
|
||||||
--host=x86_64-linux-gnu \
|
--build=aarch64-linux-gnu \
|
||||||
--prefix=$PREFIX \
|
--host=aarch64-linux-gnu \
|
||||||
--enable-ld=default \
|
--prefix=$PREFIX \
|
||||||
--enable-gold \
|
--enable-ld=default \
|
||||||
--enable-lto \
|
--enable-gold \
|
||||||
--enable-plugins \
|
--enable-lto \
|
||||||
--enable-shared \
|
--enable-pgo-build=lto \
|
||||||
--enable-threads \
|
--enable-plugins \
|
||||||
--with-system-zlib \
|
--enable-shared \
|
||||||
--enable-deterministic-archives \
|
--enable-threads \
|
||||||
--disable-compressed-debug-sections \
|
--with-system-zlib \
|
||||||
--enable-new-dtags \
|
--enable-deterministic-archives \
|
||||||
--disable-werror
|
--disable-compressed-debug-sections \
|
||||||
|
--disable-x86-used-note \
|
||||||
|
--enable-obsolete \
|
||||||
|
--enable-new-dtags \
|
||||||
|
--disable-werror
|
||||||
|
else
|
||||||
|
# influenced by: https://buildd.debian.org/status/fetch.php?pkg=binutils&arch=amd64&ver=2.32-7&stamp=1553247092
|
||||||
|
env \
|
||||||
|
CC=gcc \
|
||||||
|
CXX=g++ \
|
||||||
|
CFLAGS="-g -O2" \
|
||||||
|
CXXFLAGS="-g -O2" \
|
||||||
|
LDFLAGS="" \
|
||||||
|
../configure \
|
||||||
|
--build=x86_64-linux-gnu \
|
||||||
|
--host=x86_64-linux-gnu \
|
||||||
|
--prefix=$PREFIX \
|
||||||
|
--enable-ld=default \
|
||||||
|
--enable-gold \
|
||||||
|
--enable-lto \
|
||||||
|
--enable-plugins \
|
||||||
|
--enable-shared \
|
||||||
|
--enable-threads \
|
||||||
|
--with-system-zlib \
|
||||||
|
--enable-deterministic-archives \
|
||||||
|
--disable-compressed-debug-sections \
|
||||||
|
--enable-new-dtags \
|
||||||
|
--disable-werror
|
||||||
|
fi
|
||||||
make -j$CPUS
|
make -j$CPUS
|
||||||
# make -k check # run test suite
|
# make -k check # run test suite
|
||||||
make install
|
make install
|
||||||
@@ -253,34 +335,64 @@ if [ ! -f $PREFIX/bin/gdb ]; then
|
|||||||
tar -xvf ../archives/gdb-$GDB_VERSION.tar.gz
|
tar -xvf ../archives/gdb-$GDB_VERSION.tar.gz
|
||||||
pushd gdb-$GDB_VERSION
|
pushd gdb-$GDB_VERSION
|
||||||
mkdir build && pushd build
|
mkdir build && pushd build
|
||||||
# https://buildd.debian.org/status/fetch.php?pkg=gdb&arch=amd64&ver=8.2.1-2&stamp=1550831554&raw=0
|
if [[ "$for_arm" = true ]]; then
|
||||||
env \
|
# https://buildd.debian.org/status/fetch.php?pkg=gdb&arch=arm64&ver=10.1-2&stamp=1614889767&raw=0
|
||||||
CC=gcc \
|
env \
|
||||||
CXX=g++ \
|
CC=gcc \
|
||||||
CFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
CXX=g++ \
|
||||||
CXXFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
CFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
||||||
CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -fPIC" \
|
CXXFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
||||||
LDFLAGS="-Wl,-z,relro" \
|
CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -fPIC" \
|
||||||
PYTHON="" \
|
LDFLAGS="-Wl,-z,relro" \
|
||||||
../configure \
|
PYTHON="" \
|
||||||
--build=x86_64-linux-gnu \
|
../configure \
|
||||||
--host=x86_64-linux-gnu \
|
--build=aarch64-linux-gnu \
|
||||||
--prefix=$PREFIX \
|
--host=aarch64-linux-gnu \
|
||||||
--disable-maintainer-mode \
|
--prefix=$PREFIX \
|
||||||
--disable-dependency-tracking \
|
--disable-maintainer-mode \
|
||||||
--disable-silent-rules \
|
--disable-dependency-tracking \
|
||||||
--disable-gdbtk \
|
--disable-silent-rules \
|
||||||
--disable-shared \
|
--disable-gdbtk \
|
||||||
--without-guile \
|
--disable-shared \
|
||||||
--with-system-gdbinit=$PREFIX/etc/gdb/gdbinit \
|
--without-guile \
|
||||||
--with-system-readline \
|
--with-system-gdbinit=$PREFIX/etc/gdb/gdbinit \
|
||||||
--with-expat \
|
--with-system-readline \
|
||||||
--with-system-zlib \
|
--with-expat \
|
||||||
--with-lzma \
|
--with-system-zlib \
|
||||||
--with-babeltrace \
|
--with-lzma \
|
||||||
--with-intel-pt \
|
--without-babeltrace \
|
||||||
--enable-tui \
|
--enable-tui \
|
||||||
--with-python=python3
|
--with-python=python3
|
||||||
|
else
|
||||||
|
# https://buildd.debian.org/status/fetch.php?pkg=gdb&arch=amd64&ver=8.2.1-2&stamp=1550831554&raw=0
|
||||||
|
env \
|
||||||
|
CC=gcc \
|
||||||
|
CXX=g++ \
|
||||||
|
CFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
||||||
|
CXXFLAGS="-g -O2 -fstack-protector-strong -Wformat -Werror=format-security" \
|
||||||
|
CPPFLAGS="-Wdate-time -D_FORTIFY_SOURCE=2 -fPIC" \
|
||||||
|
LDFLAGS="-Wl,-z,relro" \
|
||||||
|
PYTHON="" \
|
||||||
|
../configure \
|
||||||
|
--build=x86_64-linux-gnu \
|
||||||
|
--host=x86_64-linux-gnu \
|
||||||
|
--prefix=$PREFIX \
|
||||||
|
--disable-maintainer-mode \
|
||||||
|
--disable-dependency-tracking \
|
||||||
|
--disable-silent-rules \
|
||||||
|
--disable-gdbtk \
|
||||||
|
--disable-shared \
|
||||||
|
--without-guile \
|
||||||
|
--with-system-gdbinit=$PREFIX/etc/gdb/gdbinit \
|
||||||
|
--with-system-readline \
|
||||||
|
--with-expat \
|
||||||
|
--with-system-zlib \
|
||||||
|
--with-lzma \
|
||||||
|
--with-babeltrace \
|
||||||
|
--with-intel-pt \
|
||||||
|
--enable-tui \
|
||||||
|
--with-python=python3
|
||||||
|
fi
|
||||||
make -j$CPUS
|
make -j$CPUS
|
||||||
make install
|
make install
|
||||||
popd && popd
|
popd && popd
|
||||||
@@ -424,8 +536,11 @@ if [ ! -f $PREFIX/bin/clang ]; then
|
|||||||
-DLLVM_BINUTILS_INCDIR=$PREFIX/include/ \
|
-DLLVM_BINUTILS_INCDIR=$PREFIX/include/ \
|
||||||
-DLLVM_USE_PERF=yes
|
-DLLVM_USE_PERF=yes
|
||||||
make -j$CPUS
|
make -j$CPUS
|
||||||
make -j$CPUS check-clang # run clang test suite
|
if [[ "$for_arm" = false ]]; then
|
||||||
make -j$CPUS check-lld # run lld test suite
|
make -j$CPUS check-clang # run clang test suite
|
||||||
|
# ldd is not used
|
||||||
|
# make -j$CPUS check-lld # run lld test suite
|
||||||
|
fi
|
||||||
make install
|
make install
|
||||||
popd && popd
|
popd && popd
|
||||||
fi
|
fi
|
||||||
@@ -540,12 +655,12 @@ BZIP2_SHA256=a2848f34fcd5d6cf47def00461fcb528a0484d8edef8208d6d2e2909dc61d9cd
|
|||||||
BZIP2_VERSION=1.0.6
|
BZIP2_VERSION=1.0.6
|
||||||
DOUBLE_CONVERSION_SHA256=8a79e87d02ce1333c9d6c5e47f452596442a343d8c3e9b234e8a62fce1b1d49c
|
DOUBLE_CONVERSION_SHA256=8a79e87d02ce1333c9d6c5e47f452596442a343d8c3e9b234e8a62fce1b1d49c
|
||||||
DOUBLE_CONVERSION_VERSION=3.1.6
|
DOUBLE_CONVERSION_VERSION=3.1.6
|
||||||
FBLIBS_VERSION=2021.12.13.00
|
FBLIBS_VERSION=2022.01.31.00
|
||||||
FIZZ_SHA256=1f14665ea7434b7d0770985a2f64d688c5ddbeeaa85441ae3b38ccc7741d781c
|
FIZZ_SHA256=32a60e78d41ea2682ce7e5d741b964f0ea83642656e42d4fea90c0936d6d0c7d
|
||||||
FLEX_VERSION=2.6.4
|
FLEX_VERSION=2.6.4
|
||||||
FMT_SHA256=b06ca3130158c625848f3fb7418f235155a4d389b2abc3a6245fb01cb0eb1e01
|
FMT_SHA256=b06ca3130158c625848f3fb7418f235155a4d389b2abc3a6245fb01cb0eb1e01
|
||||||
FMT_VERSION=8.0.1
|
FMT_VERSION=8.0.1
|
||||||
FOLLY_SHA256=87f87f5c6bf101ef15322c7351039747fb73640504d3d6de1fb719428fb0a5bc
|
FOLLY_SHA256=7b8d5dd2eb51757858247af0ad27af2e3e93823f84033a628722b01e06cd68a9
|
||||||
GFLAGS_COMMIT_HASH=b37ceb03a0e56c9f15ce80409438a555f8a67b7c
|
GFLAGS_COMMIT_HASH=b37ceb03a0e56c9f15ce80409438a555f8a67b7c
|
||||||
GLOG_SHA256=eede71f28371bf39aa69b45de23b329d37214016e2055269b3b5e7cfd40b59f5
|
GLOG_SHA256=eede71f28371bf39aa69b45de23b329d37214016e2055269b3b5e7cfd40b59f5
|
||||||
GLOG_VERSION=0.5.0
|
GLOG_VERSION=0.5.0
|
||||||
@@ -556,13 +671,13 @@ LIBSODIUM_VERSION=1.0.18
|
|||||||
LIBUNWIND_VERSION=1.6.2
|
LIBUNWIND_VERSION=1.6.2
|
||||||
LZ4_SHA256=33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43
|
LZ4_SHA256=33af5936ac06536805f9745e0b6d61da606a1f8b4cc5c04dd3cbaca3b9b4fc43
|
||||||
LZ4_VERSION=1.8.3
|
LZ4_VERSION=1.8.3
|
||||||
PROXYGEN_SHA256=301627955e23de21d466358ae736ba1302871a6dad6c7e1f8b99a04b5b728da3
|
PROXYGEN_SHA256=5360a8ccdfb2f5a6c7b3eed331ec7ab0e2c792d579c6fff499c85c516c11fe14
|
||||||
SNAPPY_SHA256=75c1fbb3d618dd3a0483bff0e26d0a92b495bbe5059c8b4f1c962b478b6e06e7
|
SNAPPY_SHA256=75c1fbb3d618dd3a0483bff0e26d0a92b495bbe5059c8b4f1c962b478b6e06e7
|
||||||
SNAPPY_VERSION=1.1.9
|
SNAPPY_VERSION=1.1.9
|
||||||
XZ_VERSION=5.2.5 # for LZMA
|
XZ_VERSION=5.2.5 # for LZMA
|
||||||
ZLIB_VERSION=1.2.11
|
ZLIB_VERSION=1.2.12
|
||||||
ZSTD_VERSION=1.5.0
|
ZSTD_VERSION=1.5.0
|
||||||
WANGLE_SHA256=a8019f4efc4446b8e4769df757df34b14ad6e4937d3242fc3f853a9cc4e45e9c
|
WANGLE_SHA256=1002e9c32b6f4837f6a760016e3b3e22f3509880ef3eaad191c80dc92655f23f
|
||||||
|
|
||||||
pushd archives
|
pushd archives
|
||||||
|
|
||||||
@@ -915,7 +1030,7 @@ if [ ! -f $PREFIX/include/snappy.h ]; then
|
|||||||
fi
|
fi
|
||||||
tar -xzf ../archives/snappy-$SNAPPY_VERSION.tar.gz
|
tar -xzf ../archives/snappy-$SNAPPY_VERSION.tar.gz
|
||||||
pushd snappy-$SNAPPY_VERSION
|
pushd snappy-$SNAPPY_VERSION
|
||||||
patch CMakeLists.txt ../../snappy.diff
|
patch -p1 < ../../snappy.patch
|
||||||
mkdir build
|
mkdir build
|
||||||
pushd build
|
pushd build
|
||||||
cmake .. $COMMON_CMAKE_FLAGS \
|
cmake .. $COMMON_CMAKE_FLAGS \
|
||||||
@@ -957,6 +1072,7 @@ if [ ! -d $PREFIX/include/folly ]; then
|
|||||||
mkdir folly-$FBLIBS_VERSION
|
mkdir folly-$FBLIBS_VERSION
|
||||||
tar -xzf ../archives/folly-$FBLIBS_VERSION.tar.gz -C folly-$FBLIBS_VERSION
|
tar -xzf ../archives/folly-$FBLIBS_VERSION.tar.gz -C folly-$FBLIBS_VERSION
|
||||||
pushd folly-$FBLIBS_VERSION
|
pushd folly-$FBLIBS_VERSION
|
||||||
|
patch -p1 < ../../folly.patch
|
||||||
# build is used by facebook builder
|
# build is used by facebook builder
|
||||||
mkdir _build
|
mkdir _build
|
||||||
pushd _build
|
pushd _build
|
||||||
@@ -1015,7 +1131,7 @@ if [ ! -d $PREFIX/include/proxygen ]; then
|
|||||||
mkdir proxygen-$FBLIBS_VERSION
|
mkdir proxygen-$FBLIBS_VERSION
|
||||||
tar -xzf ../archives/proxygen-$FBLIBS_VERSION.tar.gz -C proxygen-$FBLIBS_VERSION
|
tar -xzf ../archives/proxygen-$FBLIBS_VERSION.tar.gz -C proxygen-$FBLIBS_VERSION
|
||||||
pushd proxygen-$FBLIBS_VERSION
|
pushd proxygen-$FBLIBS_VERSION
|
||||||
patch cmake/proxygen-config.cmake.in ../../proxygen.diff
|
patch -p1 < ../../proxygen.patch
|
||||||
# build is used by facebook builder
|
# build is used by facebook builder
|
||||||
mkdir _build
|
mkdir _build
|
||||||
pushd _build
|
pushd _build
|
||||||
@@ -1062,7 +1178,22 @@ popd
|
|||||||
|
|
||||||
# create toolchain archive
|
# create toolchain archive
|
||||||
if [ ! -f $NAME-binaries-$DISTRO.tar.gz ]; then
|
if [ ! -f $NAME-binaries-$DISTRO.tar.gz ]; then
|
||||||
tar --owner=root --group=root -cpvzf $NAME-binaries-$DISTRO.tar.gz -C /opt $NAME
|
DISTRO_FULL_NAME=${DISTRO}
|
||||||
|
if [[ "${DISTRO}" == centos* ]]; then
|
||||||
|
if [[ "$for_arm" = "true" ]]; then
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-aarch64"
|
||||||
|
else
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-x86_64"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
if [[ "$for_arm" = "true" ]]; then
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-arm64"
|
||||||
|
else
|
||||||
|
DISTRO_FULL_NAME="$DISTRO_FULL_NAME-amd64"
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
tar --owner=root --group=root -cpvzf $NAME-binaries-$DISTRO_FULL_NAME.tar.gz -C /opt $NAME
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# output final instructions
|
# output final instructions
|
||||||
|
|||||||
@@ -5,6 +5,28 @@ operating_system() {
|
|||||||
sort | cut -d '=' -f 2- | sed 's/"//g' | paste -s -d '-'
|
sort | cut -d '=' -f 2- | sed 's/"//g' | paste -s -d '-'
|
||||||
}
|
}
|
||||||
|
|
||||||
|
check_operating_system() {
|
||||||
|
if [ "$(operating_system)" != "$1" ]; then
|
||||||
|
echo "Not the right operating system!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "The right operating system."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
|
architecture() {
|
||||||
|
uname -m
|
||||||
|
}
|
||||||
|
|
||||||
|
check_architecture() {
|
||||||
|
if [ "$(architecture)" != "$1" ]; then
|
||||||
|
echo "Not the right architecture!"
|
||||||
|
exit 1
|
||||||
|
else
|
||||||
|
echo "The right architecture."
|
||||||
|
fi
|
||||||
|
}
|
||||||
|
|
||||||
check_all_yum() {
|
check_all_yum() {
|
||||||
local missing=""
|
local missing=""
|
||||||
for pkg in $1; do
|
for pkg in $1; do
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
998
include/mgp.py
998
include/mgp.py
File diff suppressed because it is too large
Load Diff
85
init
85
init
@@ -10,6 +10,8 @@ function print_help () {
|
|||||||
echo -e "Check for missing packages and setup the project.\n"
|
echo -e "Check for missing packages and setup the project.\n"
|
||||||
echo "Optional arguments:"
|
echo "Optional arguments:"
|
||||||
echo -e " -h\tdisplay this help and exit"
|
echo -e " -h\tdisplay this help and exit"
|
||||||
|
echo -e " --without-libs-setup\tskip the step for setting up libs"
|
||||||
|
echo -e " --wsl-quicklisp-proxy \"host:port\"\tquicklist HTTP proxy (this flag + HTTP proxy are required on WSL)"
|
||||||
}
|
}
|
||||||
|
|
||||||
function setup_virtualenv () {
|
function setup_virtualenv () {
|
||||||
@@ -22,7 +24,7 @@ function setup_virtualenv () {
|
|||||||
fi
|
fi
|
||||||
|
|
||||||
# create new virtualenv
|
# create new virtualenv
|
||||||
virtualenv -p python3 ve3 || exit 1
|
python3 -m virtualenv -p python3 ve3 || exit 1
|
||||||
source ve3/bin/activate
|
source ve3/bin/activate
|
||||||
pip --timeout 1000 install -r requirements.txt || exit 1
|
pip --timeout 1000 install -r requirements.txt || exit 1
|
||||||
deactivate
|
deactivate
|
||||||
@@ -30,26 +32,47 @@ function setup_virtualenv () {
|
|||||||
popd > /dev/null
|
popd > /dev/null
|
||||||
}
|
}
|
||||||
|
|
||||||
if [[ $# -gt 1 ]]; then
|
wsl_quicklisp_proxy=""
|
||||||
|
setup_libs=true
|
||||||
|
if [[ $# -eq 1 && "$1" == "-h" ]]; then
|
||||||
print_help
|
print_help
|
||||||
exit 1
|
exit 0
|
||||||
elif [[ $# -eq 1 ]]; then
|
else
|
||||||
case "$1" in
|
while(($#)); do
|
||||||
-h)
|
case "$1" in
|
||||||
print_help
|
--wsl-quicklisp-proxy)
|
||||||
exit 0
|
shift
|
||||||
;;
|
if [[ $# -eq 0 ]]; then
|
||||||
*)
|
echo "Missing proxy URL"
|
||||||
# unknown option
|
print_help
|
||||||
print_help
|
exit 1
|
||||||
exit 1
|
fi
|
||||||
;;
|
wsl_quicklisp_proxy=":proxy \"http://$1/\""
|
||||||
esac
|
shift
|
||||||
|
;;
|
||||||
|
--without-libs-setup)
|
||||||
|
shift
|
||||||
|
setup_libs=false
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
# unknown option
|
||||||
|
echo "Invalid argument provided: $1"
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
DISTRO=$(operating_system)
|
DISTRO=$(operating_system)
|
||||||
echo "ALL BUILD PACKAGES: $($DIR/environment/os/$DISTRO.sh list MEMGRAPH_BUILD_DEPS)"
|
ARCHITECTURE=$(architecture)
|
||||||
$DIR/environment/os/$DISTRO.sh check MEMGRAPH_BUILD_DEPS
|
if [ "${ARCHITECTURE}" = "arm64" ] || [ "${ARCHITECTURE}" = "aarch64" ]; then
|
||||||
|
OS_SCRIPT=$DIR/environment/os/$DISTRO-arm.sh
|
||||||
|
else
|
||||||
|
OS_SCRIPT=$DIR/environment/os/$DISTRO.sh
|
||||||
|
fi
|
||||||
|
echo "ALL BUILD PACKAGES: $($OS_SCRIPT list MEMGRAPH_BUILD_DEPS)"
|
||||||
|
$OS_SCRIPT check MEMGRAPH_BUILD_DEPS
|
||||||
echo "All packages are in-place..."
|
echo "All packages are in-place..."
|
||||||
|
|
||||||
# create a default build directory
|
# create a default build directory
|
||||||
@@ -66,7 +89,7 @@ if [[ ! -f "${quicklisp_install_dir}/setup.lisp" ]]; then
|
|||||||
echo \
|
echo \
|
||||||
"
|
"
|
||||||
(load \"${DIR}/quicklisp.lisp\")
|
(load \"${DIR}/quicklisp.lisp\")
|
||||||
(quicklisp-quickstart:install :path \"${quicklisp_install_dir}\")
|
(quicklisp-quickstart:install $wsl_quicklisp_proxy :path \"${quicklisp_install_dir}\")
|
||||||
" | sbcl --script || exit 1
|
" | sbcl --script || exit 1
|
||||||
rm -rf quicklisp.lisp || exit 1
|
rm -rf quicklisp.lisp || exit 1
|
||||||
fi
|
fi
|
||||||
@@ -80,11 +103,13 @@ echo \
|
|||||||
(ql:quickload '(:lcp :lcp/test) :silent t)
|
(ql:quickload '(:lcp :lcp/test) :silent t)
|
||||||
" | sbcl --script
|
" | sbcl --script
|
||||||
|
|
||||||
# Setup libs (download).
|
if [[ "$setup_libs" == "true" ]]; then
|
||||||
cd libs
|
# Setup libs (download).
|
||||||
./cleanup.sh
|
cd libs
|
||||||
./setup.sh
|
./cleanup.sh
|
||||||
cd ..
|
./setup.sh
|
||||||
|
cd ..
|
||||||
|
fi
|
||||||
|
|
||||||
# setup gql_behave dependencies
|
# setup gql_behave dependencies
|
||||||
setup_virtualenv tests/gql_behave
|
setup_virtualenv tests/gql_behave
|
||||||
@@ -110,3 +135,17 @@ for hook in $(find $DIR/.githooks -type f -printf "%f\n"); do
|
|||||||
ln -s -f "$DIR/.githooks/$hook" "$DIR/.git/hooks/$hook"
|
ln -s -f "$DIR/.githooks/$hook" "$DIR/.git/hooks/$hook"
|
||||||
echo "Added $hook hook"
|
echo "Added $hook hook"
|
||||||
done;
|
done;
|
||||||
|
|
||||||
|
# Install precommit hook
|
||||||
|
python3 -m pip install pre-commit
|
||||||
|
python3 -m pre_commit install
|
||||||
|
|
||||||
|
# Install py format tools
|
||||||
|
echo "Install black formatter"
|
||||||
|
python3 -m pip install black==22.10.*
|
||||||
|
echo "Install isort"
|
||||||
|
python3 -m pip install isort==5.10.*
|
||||||
|
|
||||||
|
|
||||||
|
# Link `include/mgp.py` with `release/mgp/mgp.py`
|
||||||
|
ln -v -f include/mgp.py release/mgp/mgp.py
|
||||||
|
|||||||
2
libs/.gitignore
vendored
2
libs/.gitignore
vendored
@@ -4,5 +4,5 @@
|
|||||||
!cleanup.sh
|
!cleanup.sh
|
||||||
!CMakeLists.txt
|
!CMakeLists.txt
|
||||||
!__main.cpp
|
!__main.cpp
|
||||||
!jemalloc.cmake
|
|
||||||
!pulsar.patch
|
!pulsar.patch
|
||||||
|
!antlr4.10.1.patch
|
||||||
|
|||||||
@@ -106,6 +106,7 @@ import_external_library(antlr4 STATIC
|
|||||||
-DWITH_LIBCXX=OFF # because of debian bug
|
-DWITH_LIBCXX=OFF # because of debian bug
|
||||||
-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=true
|
-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=true
|
||||||
-DCMAKE_CXX_STANDARD=20
|
-DCMAKE_CXX_STANDARD=20
|
||||||
|
-DANTLR_BUILD_CPP_TESTS=OFF
|
||||||
BUILD_COMMAND $(MAKE) antlr4_static
|
BUILD_COMMAND $(MAKE) antlr4_static
|
||||||
INSTALL_COMMAND $(MAKE) install)
|
INSTALL_COMMAND $(MAKE) install)
|
||||||
|
|
||||||
@@ -245,3 +246,13 @@ import_external_library(pulsar STATIC
|
|||||||
-DUSE_LOG4CXX=OFF
|
-DUSE_LOG4CXX=OFF
|
||||||
BUILD_COMMAND $(MAKE) pulsarStaticWithDeps)
|
BUILD_COMMAND $(MAKE) pulsarStaticWithDeps)
|
||||||
add_dependencies(pulsar-proj protobuf)
|
add_dependencies(pulsar-proj protobuf)
|
||||||
|
|
||||||
|
if (${MG_ARCH} STREQUAL "ARM64")
|
||||||
|
set(MG_LIBRDTSC_CMAKE_ARGS -DLIBRDTSC_ARCH_x86=OFF -DLIBRDTSC_ARCH_ARM64=ON)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
import_external_library(librdtsc STATIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/librdtsc/lib/librdtsc.a
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/librdtsc/include
|
||||||
|
CMAKE_ARGS ${MG_LIBRDTSC_CMAKE_ARGS}
|
||||||
|
BUILD_COMMAND $(MAKE) rdtsc)
|
||||||
|
|||||||
13
libs/antlr4.10.1.patch
Normal file
13
libs/antlr4.10.1.patch
Normal file
@@ -0,0 +1,13 @@
|
|||||||
|
diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt
|
||||||
|
index baf46cac9..2e7756de8 100644
|
||||||
|
--- a/runtime/Cpp/runtime/CMakeLists.txt
|
||||||
|
+++ b/runtime/Cpp/runtime/CMakeLists.txt
|
||||||
|
@@ -134,7 +134,7 @@ set_target_properties(antlr4_static
|
||||||
|
ARCHIVE_OUTPUT_DIRECTORY ${LIB_OUTPUT_DIR}
|
||||||
|
COMPILE_FLAGS "${disabled_compile_warnings} ${extra_static_compile_flags}")
|
||||||
|
|
||||||
|
-install(TARGETS antlr4_shared
|
||||||
|
+install(TARGETS antlr4_shared OPTIONAL
|
||||||
|
EXPORT antlr4-targets
|
||||||
|
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
|
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR}
|
||||||
@@ -1,43 +0,0 @@
|
|||||||
diff --git a/runtime/Cpp/runtime/CMakeLists.txt b/runtime/Cpp/runtime/CMakeLists.txt
|
|
||||||
index a8503bb..11362cf 100644
|
|
||||||
--- a/runtime/Cpp/runtime/CMakeLists.txt
|
|
||||||
+++ b/runtime/Cpp/runtime/CMakeLists.txt
|
|
||||||
@@ -5,8 +5,8 @@ set(THIRDPARTY_DIR ${CMAKE_BINARY_DIR}/runtime/thirdparty)
|
|
||||||
set(UTFCPP_DIR ${THIRDPARTY_DIR}/utfcpp)
|
|
||||||
ExternalProject_Add(
|
|
||||||
utfcpp
|
|
||||||
- GIT_REPOSITORY "git://github.com/nemtrif/utfcpp"
|
|
||||||
- GIT_TAG "v3.1.1"
|
|
||||||
+ GIT_REPOSITORY "https://github.com/nemtrif/utfcpp"
|
|
||||||
+ GIT_TAG "v3.2.1"
|
|
||||||
SOURCE_DIR ${UTFCPP_DIR}
|
|
||||||
UPDATE_DISCONNECTED 1
|
|
||||||
CMAKE_ARGS -DCMAKE_INSTALL_PREFIX=${UTFCPP_DIR}/install -Dgtest_force_shared_crt=ON
|
|
||||||
@@ -118,7 +118,7 @@ set_target_properties(antlr4_static
|
|
||||||
ARCHIVE_OUTPUT_DIRECTORY ${LIB_OUTPUT_DIR}
|
|
||||||
COMPILE_FLAGS "${disabled_compile_warnings} ${extra_static_compile_flags}")
|
|
||||||
|
|
||||||
-install(TARGETS antlr4_shared
|
|
||||||
+install(TARGETS antlr4_shared OPTIONAL
|
|
||||||
DESTINATION lib
|
|
||||||
EXPORT antlr4-targets)
|
|
||||||
install(TARGETS antlr4_static
|
|
||||||
diff --git a/runtime/Cpp/runtime/src/support/Any.h b/runtime/Cpp/runtime/src/support/Any.h
|
|
||||||
index 468db98..65a473b 100644
|
|
||||||
--- a/runtime/Cpp/runtime/src/support/Any.h
|
|
||||||
+++ b/runtime/Cpp/runtime/src/support/Any.h
|
|
||||||
@@ -122,12 +122,12 @@ private:
|
|
||||||
}
|
|
||||||
|
|
||||||
private:
|
|
||||||
- template<int N = 0, typename std::enable_if<N == N && std::is_nothrow_copy_constructible<T>::value, int>::type = 0>
|
|
||||||
+ template<int N = 0, typename std::enable_if<N == N && std::is_copy_constructible<T>::value, int>::type = 0>
|
|
||||||
Base* clone() const {
|
|
||||||
return new Derived<T>(value);
|
|
||||||
}
|
|
||||||
|
|
||||||
- template<int N = 0, typename std::enable_if<N == N && !std::is_nothrow_copy_constructible<T>::value, int>::type = 0>
|
|
||||||
+ template<int N = 0, typename std::enable_if<N == N && !std::is_copy_constructible<T>::value, int>::type = 0>
|
|
||||||
Base* clone() const {
|
|
||||||
return nullptr;
|
|
||||||
}
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
set(JEMALLOC_DIR "${LIB_DIR}/jemalloc")
|
|
||||||
|
|
||||||
set(JEMALLOC_SRCS
|
|
||||||
${JEMALLOC_DIR}/src/arena.c
|
|
||||||
${JEMALLOC_DIR}/src/background_thread.c
|
|
||||||
${JEMALLOC_DIR}/src/base.c
|
|
||||||
${JEMALLOC_DIR}/src/bin.c
|
|
||||||
${JEMALLOC_DIR}/src/bitmap.c
|
|
||||||
${JEMALLOC_DIR}/src/ckh.c
|
|
||||||
${JEMALLOC_DIR}/src/ctl.c
|
|
||||||
${JEMALLOC_DIR}/src/div.c
|
|
||||||
${JEMALLOC_DIR}/src/extent.c
|
|
||||||
${JEMALLOC_DIR}/src/extent_dss.c
|
|
||||||
${JEMALLOC_DIR}/src/extent_mmap.c
|
|
||||||
${JEMALLOC_DIR}/src/hash.c
|
|
||||||
${JEMALLOC_DIR}/src/hook.c
|
|
||||||
${JEMALLOC_DIR}/src/jemalloc.c
|
|
||||||
${JEMALLOC_DIR}/src/large.c
|
|
||||||
${JEMALLOC_DIR}/src/log.c
|
|
||||||
${JEMALLOC_DIR}/src/malloc_io.c
|
|
||||||
${JEMALLOC_DIR}/src/mutex.c
|
|
||||||
${JEMALLOC_DIR}/src/mutex_pool.c
|
|
||||||
${JEMALLOC_DIR}/src/nstime.c
|
|
||||||
${JEMALLOC_DIR}/src/pages.c
|
|
||||||
${JEMALLOC_DIR}/src/prng.c
|
|
||||||
${JEMALLOC_DIR}/src/prof.c
|
|
||||||
${JEMALLOC_DIR}/src/rtree.c
|
|
||||||
${JEMALLOC_DIR}/src/sc.c
|
|
||||||
${JEMALLOC_DIR}/src/stats.c
|
|
||||||
${JEMALLOC_DIR}/src/sz.c
|
|
||||||
${JEMALLOC_DIR}/src/tcache.c
|
|
||||||
${JEMALLOC_DIR}/src/test_hooks.c
|
|
||||||
${JEMALLOC_DIR}/src/ticker.c
|
|
||||||
${JEMALLOC_DIR}/src/tsd.c
|
|
||||||
${JEMALLOC_DIR}/src/witness.c
|
|
||||||
${JEMALLOC_DIR}/src/safety_check.c
|
|
||||||
)
|
|
||||||
|
|
||||||
add_library(jemalloc ${JEMALLOC_SRCS})
|
|
||||||
target_include_directories(jemalloc PUBLIC "${JEMALLOC_DIR}/include")
|
|
||||||
|
|
||||||
find_package(Threads REQUIRED)
|
|
||||||
target_link_libraries(jemalloc PUBLIC Threads::Threads)
|
|
||||||
|
|
||||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_NO_PRIVATE_NAMESPACE)
|
|
||||||
|
|
||||||
if (CMAKE_BUILD_TYPE STREQUAL "DEBUG")
|
|
||||||
target_compile_definitions(jemalloc PRIVATE -DJEMALLOC_DEBUG=1 -DJEMALLOC_PROF=1)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
target_compile_options(jemalloc PRIVATE -Wno-redundant-decls)
|
|
||||||
# for RTLD_NEXT
|
|
||||||
target_compile_definitions(jemalloc PRIVATE _GNU_SOURCE)
|
|
||||||
|
|
||||||
set_property(TARGET jemalloc APPEND PROPERTY INTERFACE_COMPILE_DEFINITIONS USE_JEMALLOC=1)
|
|
||||||
29
libs/librdtsc.patch
Normal file
29
libs/librdtsc.patch
Normal file
@@ -0,0 +1,29 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index ee9b58c..31359a9 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -48,7 +48,7 @@ option(LIBRDTSC_USE_PMU "Enables PMU usage on ARM platforms" OFF)
|
||||||
|
# | Library Build and Install Properties |
|
||||||
|
# +--------------------------------------------------------+
|
||||||
|
|
||||||
|
-add_library(rdtsc SHARED
|
||||||
|
+add_library(rdtsc
|
||||||
|
src/cycles.c
|
||||||
|
src/common_timer.c
|
||||||
|
src/timer.c
|
||||||
|
@@ -72,15 +72,6 @@ target_include_directories(rdtsc
|
||||||
|
PUBLIC ${CMAKE_CURRENT_SOURCE_DIR}/include
|
||||||
|
)
|
||||||
|
|
||||||
|
-# Install directory changes depending on build mode
|
||||||
|
-if (CMAKE_BUILD_TYPE MATCHES "^[Dd]ebug")
|
||||||
|
- # During debug, the library will be installed into a local directory
|
||||||
|
- set(CMAKE_INSTALL_PREFIX ${CMAKE_CURRENT_BINARY_DIR}/_install CACHE PATH "" FORCE)
|
||||||
|
-else ()
|
||||||
|
- # This will install in /usr/lib and /usr/include
|
||||||
|
- set(CMAKE_INSTALL_PREFIX /usr CACHE PATH "" FORCE)
|
||||||
|
-endif ()
|
||||||
|
-
|
||||||
|
# Specifying what to export when installing (GNUInstallDirs required)
|
||||||
|
install(TARGETS rdtsc
|
||||||
|
EXPORT librstsc-config
|
||||||
@@ -105,28 +105,23 @@ repo_clone_try_double () {
|
|||||||
# Download from primary_urls might fail because the cache is not installed.
|
# Download from primary_urls might fail because the cache is not installed.
|
||||||
declare -A primary_urls=(
|
declare -A primary_urls=(
|
||||||
["antlr4-code"]="http://$local_cache_host/git/antlr4.git"
|
["antlr4-code"]="http://$local_cache_host/git/antlr4.git"
|
||||||
["antlr4-generator"]="http://$local_cache_host/file/antlr-4.9.2-complete.jar"
|
["antlr4-generator"]="http://$local_cache_host/file/antlr-4.10.1-complete.jar"
|
||||||
["cppitertools"]="http://$local_cache_host/git/cppitertools.git"
|
["cppitertools"]="http://$local_cache_host/git/cppitertools.git"
|
||||||
["fmt"]="http://$local_cache_host/git/fmt.git"
|
|
||||||
["rapidcheck"]="http://$local_cache_host/git/rapidcheck.git"
|
["rapidcheck"]="http://$local_cache_host/git/rapidcheck.git"
|
||||||
["gbenchmark"]="http://$local_cache_host/git/benchmark.git"
|
["gbenchmark"]="http://$local_cache_host/git/benchmark.git"
|
||||||
["gtest"]="http://$local_cache_host/git/googletest.git"
|
["gtest"]="http://$local_cache_host/git/googletest.git"
|
||||||
["gflags"]="http://$local_cache_host/git/gflags.git"
|
|
||||||
["libbcrypt"]="http://$local_cache_host/git/libbcrypt.git"
|
["libbcrypt"]="http://$local_cache_host/git/libbcrypt.git"
|
||||||
["bzip2"]="http://$local_cache_host/git/bzip2.git"
|
|
||||||
["zlib"]="http://$local_cache_host/git/zlib.git"
|
|
||||||
["rocksdb"]="http://$local_cache_host/git/rocksdb.git"
|
["rocksdb"]="http://$local_cache_host/git/rocksdb.git"
|
||||||
["mgclient"]="http://$local_cache_host/git/mgclient.git"
|
["mgclient"]="http://$local_cache_host/git/mgclient.git"
|
||||||
["pymgclient"]="http://$local_cache_host/git/pymgclient.git"
|
["pymgclient"]="http://$local_cache_host/git/pymgclient.git"
|
||||||
["mgconsole"]="http://$local_cache_host/git/mgconsole.git"
|
["mgconsole"]="http://$local_cache_host/git/mgconsole.git"
|
||||||
["spdlog"]="http://$local_cache_host/git/spdlog"
|
["spdlog"]="http://$local_cache_host/git/spdlog"
|
||||||
["jemalloc"]="http://$local_cache_host/git/jemalloc.git"
|
["nlohmann"]="http://$local_cache_host/file/nlohmann/json/9d69186291aca4f0137b69c1dee313b391ff564c/single_include/nlohmann/json.hpp"
|
||||||
["nlohmann"]="http://$local_cache_host/file/nlohmann/json/4f8fba14066156b73f1189a2b8bd568bde5284c5/single_include/nlohmann/json.hpp"
|
|
||||||
["neo4j"]="http://$local_cache_host/file/neo4j-community-3.2.3-unix.tar.gz"
|
["neo4j"]="http://$local_cache_host/file/neo4j-community-3.2.3-unix.tar.gz"
|
||||||
["librdkafka"]="http://$local_cache_host/git/librdkafka.git"
|
["librdkafka"]="http://$local_cache_host/git/librdkafka.git"
|
||||||
["protobuf"]="http://$local_cache_host/git/protobuf.git"
|
["protobuf"]="http://$local_cache_host/git/protobuf.git"
|
||||||
["boost"]="http://$local_cache_host/file/boost_1_77_0.tar.gz"
|
|
||||||
["pulsar"]="http://$local_cache_host/git/pulsar.git"
|
["pulsar"]="http://$local_cache_host/git/pulsar.git"
|
||||||
|
["librdtsc"]="http://$local_cache_host/git/librdtsc.git"
|
||||||
)
|
)
|
||||||
|
|
||||||
# The goal of secondary urls is to have links to the "source of truth" of
|
# The goal of secondary urls is to have links to the "source of truth" of
|
||||||
@@ -135,37 +130,32 @@ declare -A primary_urls=(
|
|||||||
# should fail.
|
# should fail.
|
||||||
declare -A secondary_urls=(
|
declare -A secondary_urls=(
|
||||||
["antlr4-code"]="https://github.com/antlr/antlr4.git"
|
["antlr4-code"]="https://github.com/antlr/antlr4.git"
|
||||||
["antlr4-generator"]="http://www.antlr.org/download/antlr-4.9.2-complete.jar"
|
["antlr4-generator"]="https://www.antlr.org/download/antlr-4.10.1-complete.jar"
|
||||||
["cppitertools"]="https://github.com/ryanhaining/cppitertools.git"
|
["cppitertools"]="https://github.com/ryanhaining/cppitertools.git"
|
||||||
["fmt"]="https://github.com/fmtlib/fmt.git"
|
|
||||||
["rapidcheck"]="https://github.com/emil-e/rapidcheck.git"
|
["rapidcheck"]="https://github.com/emil-e/rapidcheck.git"
|
||||||
["gbenchmark"]="https://github.com/google/benchmark.git"
|
["gbenchmark"]="https://github.com/google/benchmark.git"
|
||||||
["gtest"]="https://github.com/google/googletest.git"
|
["gtest"]="https://github.com/google/googletest.git"
|
||||||
["gflags"]="https://github.com/memgraph/gflags.git"
|
|
||||||
["libbcrypt"]="https://github.com/rg3/libbcrypt"
|
["libbcrypt"]="https://github.com/rg3/libbcrypt"
|
||||||
["bzip2"]="https://github.com/VFR-maniac/bzip2"
|
|
||||||
["zlib"]="https://github.com/madler/zlib.git"
|
|
||||||
["rocksdb"]="https://github.com/facebook/rocksdb.git"
|
["rocksdb"]="https://github.com/facebook/rocksdb.git"
|
||||||
["mgclient"]="https://github.com/memgraph/mgclient.git"
|
["mgclient"]="https://github.com/memgraph/mgclient.git"
|
||||||
["pymgclient"]="https://github.com/memgraph/pymgclient.git"
|
["pymgclient"]="https://github.com/memgraph/pymgclient.git"
|
||||||
["mgconsole"]="http://github.com/memgraph/mgconsole.git"
|
["mgconsole"]="http://github.com/memgraph/mgconsole.git"
|
||||||
["spdlog"]="https://github.com/gabime/spdlog"
|
["spdlog"]="https://github.com/gabime/spdlog"
|
||||||
["jemalloc"]="https://github.com/jemalloc/jemalloc.git"
|
["nlohmann"]="https://raw.githubusercontent.com/nlohmann/json/9d69186291aca4f0137b69c1dee313b391ff564c/single_include/nlohmann/json.hpp"
|
||||||
["nlohmann"]="https://raw.githubusercontent.com/nlohmann/json/4f8fba14066156b73f1189a2b8bd568bde5284c5/single_include/nlohmann/json.hpp"
|
|
||||||
["neo4j"]="https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/neo4j-community-3.2.3-unix.tar.gz"
|
["neo4j"]="https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/neo4j-community-3.2.3-unix.tar.gz"
|
||||||
["librdkafka"]="https://github.com/edenhill/librdkafka.git"
|
["librdkafka"]="https://github.com/edenhill/librdkafka.git"
|
||||||
["protobuf"]="https://github.com/protocolbuffers/protobuf.git"
|
["protobuf"]="https://github.com/protocolbuffers/protobuf.git"
|
||||||
["boost"]="https://boostorg.jfrog.io/artifactory/main/release/1.77.0/source/boost_1_77_0.tar.gz"
|
|
||||||
["pulsar"]="https://github.com/apache/pulsar.git"
|
["pulsar"]="https://github.com/apache/pulsar.git"
|
||||||
|
["librdtsc"]="https://github.com/gabrieleara/librdtsc.git"
|
||||||
)
|
)
|
||||||
|
|
||||||
# antlr
|
# antlr
|
||||||
file_get_try_double "${primary_urls[antlr4-generator]}" "${secondary_urls[antlr4-generator]}"
|
file_get_try_double "${primary_urls[antlr4-generator]}" "${secondary_urls[antlr4-generator]}"
|
||||||
|
|
||||||
antlr4_tag="4.9.2" # v4.9.2
|
antlr4_tag="4.10.1" # v4.10.1
|
||||||
repo_clone_try_double "${primary_urls[antlr4-code]}" "${secondary_urls[antlr4-code]}" "antlr4" "$antlr4_tag" true
|
repo_clone_try_double "${primary_urls[antlr4-code]}" "${secondary_urls[antlr4-code]}" "antlr4" "$antlr4_tag" true
|
||||||
pushd antlr4
|
pushd antlr4
|
||||||
git apply ../antlr4.patch
|
git apply ../antlr4.10.1.patch
|
||||||
popd
|
popd
|
||||||
|
|
||||||
# cppitertools v2.0 2019-12-23
|
# cppitertools v2.0 2019-12-23
|
||||||
@@ -209,8 +199,8 @@ git apply ../rocksdb.patch
|
|||||||
popd
|
popd
|
||||||
|
|
||||||
# mgclient
|
# mgclient
|
||||||
mgclient_tag="v1.3.0" # (2021-09-23)
|
mgclient_tag="v1.4.0" # (2022-06-14)
|
||||||
repo_clone_try_double "${primary_urls[mgclient]}" "${secondary_urls[mgclient]}" "mgclient" "$mgclient_tag" true
|
repo_clone_try_double "${primary_urls[mgclient]}" "${secondary_urls[mgclient]}" "mgclient" "$mgclient_tag"
|
||||||
sed -i 's/\${CMAKE_INSTALL_LIBDIR}/lib/' mgclient/src/CMakeLists.txt
|
sed -i 's/\${CMAKE_INSTALL_LIBDIR}/lib/' mgclient/src/CMakeLists.txt
|
||||||
|
|
||||||
# pymgclient
|
# pymgclient
|
||||||
@@ -241,3 +231,10 @@ repo_clone_try_double "${primary_urls[pulsar]}" "${secondary_urls[pulsar]}" "pul
|
|||||||
pushd pulsar
|
pushd pulsar
|
||||||
git apply ../pulsar.patch
|
git apply ../pulsar.patch
|
||||||
popd
|
popd
|
||||||
|
|
||||||
|
#librdtsc
|
||||||
|
librdtsc_tag="v0.3"
|
||||||
|
repo_clone_try_double "${primary_urls[librdtsc]}" "${secondary_urls[librdtsc]}" "librdtsc" "$librdtsc_tag" true
|
||||||
|
pushd librdtsc
|
||||||
|
git apply ../librdtsc.patch
|
||||||
|
popd
|
||||||
|
|||||||
@@ -36,7 +36,7 @@ ADDITIONAL USE GRANT: You may use the Licensed Work in accordance with the
|
|||||||
3. using the Licensed Work to create a work or solution
|
3. using the Licensed Work to create a work or solution
|
||||||
which competes (or might reasonably be expected to
|
which competes (or might reasonably be expected to
|
||||||
compete) with the Licensed Work.
|
compete) with the Licensed Work.
|
||||||
CHANGE DATE: 2025-12-08
|
CHANGE DATE: 2026-27-04
|
||||||
CHANGE LICENSE: Apache License, Version 2.0
|
CHANGE LICENSE: Apache License, Version 2.0
|
||||||
|
|
||||||
For information about alternative licensing arrangements, please visit: https://memgraph.com/legal.
|
For information about alternative licensing arrangements, please visit: https://memgraph.com/legal.
|
||||||
|
|||||||
12
pyproject.toml
Normal file
12
pyproject.toml
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
[tool.black]
|
||||||
|
line-length = 120
|
||||||
|
include = '\.pyi?$'
|
||||||
|
extend-exclude = '''
|
||||||
|
/(
|
||||||
|
| .git
|
||||||
|
| .__pycache__
|
||||||
|
| build
|
||||||
|
| libs
|
||||||
|
| .cache
|
||||||
|
)/
|
||||||
|
'''
|
||||||
@@ -10,6 +10,14 @@ set(CPACK_PACKAGE_VENDOR "Memgraph Ltd.")
|
|||||||
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
set(CPACK_PACKAGE_DESCRIPTION_SUMMARY
|
||||||
"High performance, in-memory, transactional graph database")
|
"High performance, in-memory, transactional graph database")
|
||||||
|
|
||||||
|
# Setting arhitecture extension for deb packages
|
||||||
|
set(MG_ARCH_EXTENSION_DEB "all")
|
||||||
|
if (${MG_ARCH} STREQUAL "x86_64")
|
||||||
|
set(MG_ARCH_EXTENSION_DEB "amd64")
|
||||||
|
elseif (${MG_ARCH} STREQUAL "ARM64")
|
||||||
|
set(MG_ARCH_EXTENSION_DEB "arm64")
|
||||||
|
endif()
|
||||||
|
|
||||||
# DEB specific
|
# DEB specific
|
||||||
# Instead of using "name <email>" format, we use "email (name)" to prevent
|
# Instead of using "name <email>" format, we use "email (name)" to prevent
|
||||||
# errors due to full stop, '.' at the end of "Ltd". (See: RFC 822)
|
# errors due to full stop, '.' at the end of "Ltd". (See: RFC 822)
|
||||||
@@ -17,7 +25,7 @@ set(CPACK_DEBIAN_PACKAGE_MAINTAINER "tech@memgraph.com (Memgraph Ltd.)")
|
|||||||
set(CPACK_DEBIAN_PACKAGE_SECTION non-free/database)
|
set(CPACK_DEBIAN_PACKAGE_SECTION non-free/database)
|
||||||
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE https://memgraph.com)
|
set(CPACK_DEBIAN_PACKAGE_HOMEPAGE https://memgraph.com)
|
||||||
set(CPACK_DEBIAN_PACKAGE_VERSION "${MEMGRAPH_VERSION_DEB}")
|
set(CPACK_DEBIAN_PACKAGE_VERSION "${MEMGRAPH_VERSION_DEB}")
|
||||||
set(CPACK_DEBIAN_FILE_NAME "memgraph_${MEMGRAPH_VERSION_DEB}_amd64.deb")
|
set(CPACK_DEBIAN_FILE_NAME "memgraph_${MEMGRAPH_VERSION_DEB}_${MG_ARCH_EXTENSION_DEB}.deb")
|
||||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/conffiles;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/conffiles;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/copyright;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/copyright;"
|
||||||
@@ -33,12 +41,20 @@ set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
|
|||||||
applications driver by real-time connected data.")
|
applications driver by real-time connected data.")
|
||||||
# Add `openssl` package to dependencies list. Used to generate SSL certificates.
|
# Add `openssl` package to dependencies list. Used to generate SSL certificates.
|
||||||
# We also depend on `python3` because we embed it in Memgraph.
|
# We also depend on `python3` because we embed it in Memgraph.
|
||||||
set(CPACK_DEBIAN_PACKAGE_DEPENDS "openssl (>= 1.1.0), python3 (>= 3.5.0)")
|
set(CPACK_DEBIAN_PACKAGE_DEPENDS "openssl (>= 1.1.0), python3 (>= 3.5.0), libstdc++6")
|
||||||
|
|
||||||
|
# Setting arhitecture extension for rpm packages
|
||||||
|
set(MG_ARCH_EXTENSION_RPM "noarch")
|
||||||
|
if (${MG_ARCH} STREQUAL "x86_64")
|
||||||
|
set(MG_ARCH_EXTENSION_RPM "x86_64")
|
||||||
|
elseif (${MG_ARCH} STREQUAL "ARM64")
|
||||||
|
set(MG_ARCH_EXTENSION_RPM "aarch64")
|
||||||
|
endif()
|
||||||
|
|
||||||
# RPM specific
|
# RPM specific
|
||||||
set(CPACK_RPM_PACKAGE_URL https://memgraph.com)
|
set(CPACK_RPM_PACKAGE_URL https://memgraph.com)
|
||||||
set(CPACK_RPM_PACKAGE_VERSION "${MEMGRAPH_VERSION_RPM}")
|
set(CPACK_RPM_PACKAGE_VERSION "${MEMGRAPH_VERSION_RPM}")
|
||||||
set(CPACK_RPM_FILE_NAME "memgraph-${MEMGRAPH_VERSION_RPM}-1.x86_64.rpm")
|
set(CPACK_RPM_FILE_NAME "memgraph-${MEMGRAPH_VERSION_RPM}-1.${MG_ARCH_EXTENSION_RPM}.rpm")
|
||||||
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
set(CPACK_RPM_EXCLUDE_FROM_AUTO_FILELIST_ADDITION
|
||||||
/var /var/lib /var/log /etc/logrotate.d
|
/var /var/lib /var/log /etc/logrotate.d
|
||||||
/lib /lib/systemd /lib/systemd/system /lib/systemd/system/memgraph.service)
|
/lib /lib/systemd /lib/systemd/system /lib/systemd/system/memgraph.service)
|
||||||
@@ -51,7 +67,7 @@ It aims to deliver developers the speed, simplicity and scale required to build
|
|||||||
the next generation of applications driver by real-time connected data.")
|
the next generation of applications driver by real-time connected data.")
|
||||||
# Add `openssl` package to dependencies list. Used to generate SSL certificates.
|
# Add `openssl` package to dependencies list. Used to generate SSL certificates.
|
||||||
# We also depend on `python3` because we embed it in Memgraph.
|
# We also depend on `python3` because we embed it in Memgraph.
|
||||||
set(CPACK_RPM_PACKAGE_REQUIRES "openssl >= 1.0.0, curl >= 7.29.0, python3 >= 3.5.0")
|
set(CPACK_RPM_PACKAGE_REQUIRES "openssl >= 1.0.0, curl >= 7.29.0, python3 >= 3.5.0, libstdc >= 6, logrotate")
|
||||||
|
|
||||||
# All variables must be set before including.
|
# All variables must be set before including.
|
||||||
include(CPack)
|
include(CPack)
|
||||||
|
|||||||
19
release/arm64/build_env.dockerfile
Normal file
19
release/arm64/build_env.dockerfile
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
FROM dokken/centos-stream-9
|
||||||
|
|
||||||
|
ARG env_folder
|
||||||
|
ARG toolchain_version
|
||||||
|
|
||||||
|
COPY ${env_folder} /env_folder
|
||||||
|
|
||||||
|
RUN yum update && yum install -y curl git
|
||||||
|
|
||||||
|
RUN /${env_folder}/os/centos-9.sh install MEMGRAPH_BUILD_DEPS
|
||||||
|
RUN /${env_folder}/os/centos-9.sh install TOOLCHAIN_RUN_DEPS
|
||||||
|
|
||||||
|
RUN rm -rf /env_folder
|
||||||
|
|
||||||
|
RUN yum clean all
|
||||||
|
|
||||||
|
RUN curl https://s3.eu-west-1.amazonaws.com/deps.memgraph.io/${toolchain_version}/${toolchain_version}-binaries-centos-9-arm64.tar.gz -o /tmp/toolchain.tar.gz \
|
||||||
|
&& tar xvzf /tmp/toolchain.tar.gz -C /opt \
|
||||||
|
&& rm /tmp/toolchain.tar.gz
|
||||||
5
release/arm64/build_env.sh
Executable file
5
release/arm64/build_env.sh
Executable file
@@ -0,0 +1,5 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
cp -r ../../environment env_folder
|
||||||
|
docker build -f build_env.dockerfile --build-arg env_folder=env_folder --build-arg toolchain_version=toolchain-v4 -t mg_build_env .
|
||||||
|
rm -rf env_folder
|
||||||
@@ -1,19 +1,21 @@
|
|||||||
FROM debian:bullseye
|
FROM debian:bullseye
|
||||||
# NOTE: If you change the base distro update release/package as well.
|
# NOTE: If you change the base distro update release/package as well.
|
||||||
|
|
||||||
ARG deb_release
|
ARG BINARY_NAME
|
||||||
|
ARG EXTENSION
|
||||||
|
ARG TARGETARCH
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
RUN apt-get update && apt-get install -y \
|
||||||
openssl libcurl4 libssl1.1 libseccomp2 python3 libpython3.9 python3-pip \
|
openssl libcurl4 libssl1.1 libseccomp2 python3 libpython3.9 python3-pip \
|
||||||
--no-install-recommends \
|
--no-install-recommends \
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
||||||
|
|
||||||
RUN pip3 install networkx==2.4 numpy==1.21.4 scipy==1.7.3
|
RUN pip3 install networkx==2.4 numpy==1.21.4 scipy==1.7.3
|
||||||
|
|
||||||
COPY ${deb_release} /
|
COPY "${BINARY_NAME}${TARGETARCH}.${EXTENSION}" /
|
||||||
|
|
||||||
# Install memgraph package
|
# Install memgraph package
|
||||||
RUN dpkg -i ${deb_release}
|
RUN dpkg -i "${BINARY_NAME}${TARGETARCH}.deb"
|
||||||
|
|
||||||
# Memgraph listens for Bolt Protocol on this port by default.
|
# Memgraph listens for Bolt Protocol on this port by default.
|
||||||
EXPOSE 7687
|
EXPOSE 7687
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
#!/bin/bash -e
|
|
||||||
|
|
||||||
# Build and package Docker image of Memgraph.
|
|
||||||
|
|
||||||
function print_help () {
|
|
||||||
echo "Usage: $0 [--latest] MEMGRAPH_PACKAGE.deb"
|
|
||||||
echo "Optional arguments:"
|
|
||||||
echo -e "\t-h|--help\t\tPrint help."
|
|
||||||
echo -e "\t--latest\t\tTag image as latest version."
|
|
||||||
}
|
|
||||||
|
|
||||||
working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
|
||||||
|
|
||||||
latest_image=""
|
|
||||||
tag_latest=""
|
|
||||||
if [[ $# -eq 2 && "$1" == "--latest" ]]; then
|
|
||||||
latest_image="memgraph:latest"
|
|
||||||
tag_latest="-t memgraph:latest"
|
|
||||||
shift
|
|
||||||
elif [[ $# -ne 1 || "$1" == "-h" || "$1" == "--help" ]]; then
|
|
||||||
print_help
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
deb_path="$1"
|
|
||||||
if [[ ! -f "$deb_path" ]]; then
|
|
||||||
echo "File '$deb_path' does not exist!"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Copy the .deb to working directory.
|
|
||||||
cp "$deb_path" "${working_dir}/"
|
|
||||||
cd ${working_dir}
|
|
||||||
|
|
||||||
# Extract version and offering from deb name.
|
|
||||||
deb_name=`echo $(basename "$deb_path") | sed 's/.deb$//'`
|
|
||||||
version=`echo ${deb_name} | cut -d '_' -f 2 | rev | cut -d '-' -f 2- | rev | tr '+~' '__'`
|
|
||||||
dockerfile_path="${working_dir}/memgraph.dockerfile"
|
|
||||||
image_name="memgraph:${version}"
|
|
||||||
package_name="memgraph-${version}-docker.tar.gz"
|
|
||||||
|
|
||||||
# Build docker image.
|
|
||||||
docker build -t ${image_name} ${tag_latest} -f ${dockerfile_path} --build-arg deb_release=${deb_name}.deb .
|
|
||||||
docker save ${image_name} ${latest_image} > ${package_name}
|
|
||||||
rm "${deb_name}.deb"
|
|
||||||
echo "Built Docker image at '${working_dir}/${package_name}'"
|
|
||||||
64
release/docker/package_docker
Executable file
64
release/docker/package_docker
Executable file
@@ -0,0 +1,64 @@
|
|||||||
|
#!/bin/bash -e
|
||||||
|
|
||||||
|
# Build and package Docker image of Memgraph.
|
||||||
|
|
||||||
|
function print_help () {
|
||||||
|
echo "Usage: $0 [--latest] MEMGRAPH_PACKAGE.(deb|rpm)"
|
||||||
|
echo "Optional arguments:"
|
||||||
|
echo -e "\t-h|--help\t\tPrint help."
|
||||||
|
echo -e "\t--latest\t\tTag image as latest version."
|
||||||
|
}
|
||||||
|
|
||||||
|
working_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
|
|
||||||
|
latest_image=""
|
||||||
|
tag_latest=""
|
||||||
|
if [[ $# -eq 2 && "$1" == "--latest" ]]; then
|
||||||
|
latest_image="memgraph:latest"
|
||||||
|
tag_latest="-t memgraph:latest"
|
||||||
|
shift
|
||||||
|
elif [[ $# -ne 1 || "$1" == "-h" || "$1" == "--help" ]]; then
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
package_path="$1"
|
||||||
|
if [[ ! -f "$package_path" ]]; then
|
||||||
|
echo "File '$package_path' does not exist!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Copy the .deb to working directory.
|
||||||
|
cp "$package_path" "${working_dir}/"
|
||||||
|
cd ${working_dir}
|
||||||
|
|
||||||
|
extension="${package_path##*.}"
|
||||||
|
|
||||||
|
if [[ "$extension" == "deb" ]]; then
|
||||||
|
# Extract version and offering from deb name.
|
||||||
|
package_name=`echo $(basename "$package_path") | sed 's/.deb$//'`
|
||||||
|
version=`echo ${package_name} | cut -d '_' -f 2 | rev | cut -d '-' -f 2- | rev | tr '+~' '__'`
|
||||||
|
dockerfile_path="${working_dir}/memgraph_deb.dockerfile"
|
||||||
|
elif [[ "$extension" == "rpm" ]]; then
|
||||||
|
# Extract version and offering from deb name.
|
||||||
|
package_name=`echo $(basename "$package_path") | sed 's/.rpm$//'`
|
||||||
|
version=`echo ${package_name} | cut -d '-' -f 2 | rev | cut -d '-' -f 2- | rev`
|
||||||
|
version=${version%_1}
|
||||||
|
dockerfile_path="${working_dir}/memgraph_rpm.dockerfile"
|
||||||
|
else
|
||||||
|
echo "Invalid file sent as the package"
|
||||||
|
print_help
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
image_name="memgraph:${version}"
|
||||||
|
image_package_name="memgraph-${version}-docker.tar.gz"
|
||||||
|
|
||||||
|
# Build docker image.
|
||||||
|
docker build -t ${image_name} ${tag_latest} -f ${dockerfile_path} \
|
||||||
|
--build-arg BINARY_NAME=${package_name} \
|
||||||
|
--build-arg EXTENSION=${extension} \
|
||||||
|
--build-arg TARGETARCH="" .
|
||||||
|
docker save ${image_name} ${latest_image} | gzip > ${image_package_name}
|
||||||
|
rm "${package_name}.${extension}"
|
||||||
|
echo "Built Docker image at '${working_dir}/${image_package_name}'"
|
||||||
3
release/mgp/.gitignore
vendored
Normal file
3
release/mgp/.gitignore
vendored
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
.venv
|
||||||
|
dist
|
||||||
|
mgp.py
|
||||||
201
release/mgp/LICENSE
Normal file
201
release/mgp/LICENSE
Normal file
@@ -0,0 +1,201 @@
|
|||||||
|
Apache License
|
||||||
|
Version 2.0, January 2004
|
||||||
|
http://www.apache.org/licenses/
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||||
|
|
||||||
|
1. Definitions.
|
||||||
|
|
||||||
|
"License" shall mean the terms and conditions for use, reproduction,
|
||||||
|
and distribution as defined by Sections 1 through 9 of this document.
|
||||||
|
|
||||||
|
"Licensor" shall mean the copyright owner or entity authorized by
|
||||||
|
the copyright owner that is granting the License.
|
||||||
|
|
||||||
|
"Legal Entity" shall mean the union of the acting entity and all
|
||||||
|
other entities that control, are controlled by, or are under common
|
||||||
|
control with that entity. For the purposes of this definition,
|
||||||
|
"control" means (i) the power, direct or indirect, to cause the
|
||||||
|
direction or management of such entity, whether by contract or
|
||||||
|
otherwise, or (ii) ownership of fifty percent (50%) or more of the
|
||||||
|
outstanding shares, or (iii) beneficial ownership of such entity.
|
||||||
|
|
||||||
|
"You" (or "Your") shall mean an individual or Legal Entity
|
||||||
|
exercising permissions granted by this License.
|
||||||
|
|
||||||
|
"Source" form shall mean the preferred form for making modifications,
|
||||||
|
including but not limited to software source code, documentation
|
||||||
|
source, and configuration files.
|
||||||
|
|
||||||
|
"Object" form shall mean any form resulting from mechanical
|
||||||
|
transformation or translation of a Source form, including but
|
||||||
|
not limited to compiled object code, generated documentation,
|
||||||
|
and conversions to other media types.
|
||||||
|
|
||||||
|
"Work" shall mean the work of authorship, whether in Source or
|
||||||
|
Object form, made available under the License, as indicated by a
|
||||||
|
copyright notice that is included in or attached to the work
|
||||||
|
(an example is provided in the Appendix below).
|
||||||
|
|
||||||
|
"Derivative Works" shall mean any work, whether in Source or Object
|
||||||
|
form, that is based on (or derived from) the Work and for which the
|
||||||
|
editorial revisions, annotations, elaborations, or other modifications
|
||||||
|
represent, as a whole, an original work of authorship. For the purposes
|
||||||
|
of this License, Derivative Works shall not include works that remain
|
||||||
|
separable from, or merely link (or bind by name) to the interfaces of,
|
||||||
|
the Work and Derivative Works thereof.
|
||||||
|
|
||||||
|
"Contribution" shall mean any work of authorship, including
|
||||||
|
the original version of the Work and any modifications or additions
|
||||||
|
to that Work or Derivative Works thereof, that is intentionally
|
||||||
|
submitted to Licensor for inclusion in the Work by the copyright owner
|
||||||
|
or by an individual or Legal Entity authorized to submit on behalf of
|
||||||
|
the copyright owner. For the purposes of this definition, "submitted"
|
||||||
|
means any form of electronic, verbal, or written communication sent
|
||||||
|
to the Licensor or its representatives, including but not limited to
|
||||||
|
communication on electronic mailing lists, source code control systems,
|
||||||
|
and issue tracking systems that are managed by, or on behalf of, the
|
||||||
|
Licensor for the purpose of discussing and improving the Work, but
|
||||||
|
excluding communication that is conspicuously marked or otherwise
|
||||||
|
designated in writing by the copyright owner as "Not a Contribution."
|
||||||
|
|
||||||
|
"Contributor" shall mean Licensor and any individual or Legal Entity
|
||||||
|
on behalf of whom a Contribution has been received by Licensor and
|
||||||
|
subsequently incorporated within the Work.
|
||||||
|
|
||||||
|
2. Grant of Copyright License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
copyright license to reproduce, prepare Derivative Works of,
|
||||||
|
publicly display, publicly perform, sublicense, and distribute the
|
||||||
|
Work and such Derivative Works in Source or Object form.
|
||||||
|
|
||||||
|
3. Grant of Patent License. Subject to the terms and conditions of
|
||||||
|
this License, each Contributor hereby grants to You a perpetual,
|
||||||
|
worldwide, non-exclusive, no-charge, royalty-free, irrevocable
|
||||||
|
(except as stated in this section) patent license to make, have made,
|
||||||
|
use, offer to sell, sell, import, and otherwise transfer the Work,
|
||||||
|
where such license applies only to those patent claims licensable
|
||||||
|
by such Contributor that are necessarily infringed by their
|
||||||
|
Contribution(s) alone or by combination of their Contribution(s)
|
||||||
|
with the Work to which such Contribution(s) was submitted. If You
|
||||||
|
institute patent litigation against any entity (including a
|
||||||
|
cross-claim or counterclaim in a lawsuit) alleging that the Work
|
||||||
|
or a Contribution incorporated within the Work constitutes direct
|
||||||
|
or contributory patent infringement, then any patent licenses
|
||||||
|
granted to You under this License for that Work shall terminate
|
||||||
|
as of the date such litigation is filed.
|
||||||
|
|
||||||
|
4. Redistribution. You may reproduce and distribute copies of the
|
||||||
|
Work or Derivative Works thereof in any medium, with or without
|
||||||
|
modifications, and in Source or Object form, provided that You
|
||||||
|
meet the following conditions:
|
||||||
|
|
||||||
|
(a) You must give any other recipients of the Work or
|
||||||
|
Derivative Works a copy of this License; and
|
||||||
|
|
||||||
|
(b) You must cause any modified files to carry prominent notices
|
||||||
|
stating that You changed the files; and
|
||||||
|
|
||||||
|
(c) You must retain, in the Source form of any Derivative Works
|
||||||
|
that You distribute, all copyright, patent, trademark, and
|
||||||
|
attribution notices from the Source form of the Work,
|
||||||
|
excluding those notices that do not pertain to any part of
|
||||||
|
the Derivative Works; and
|
||||||
|
|
||||||
|
(d) If the Work includes a "NOTICE" text file as part of its
|
||||||
|
distribution, then any Derivative Works that You distribute must
|
||||||
|
include a readable copy of the attribution notices contained
|
||||||
|
within such NOTICE file, excluding those notices that do not
|
||||||
|
pertain to any part of the Derivative Works, in at least one
|
||||||
|
of the following places: within a NOTICE text file distributed
|
||||||
|
as part of the Derivative Works; within the Source form or
|
||||||
|
documentation, if provided along with the Derivative Works; or,
|
||||||
|
within a display generated by the Derivative Works, if and
|
||||||
|
wherever such third-party notices normally appear. The contents
|
||||||
|
of the NOTICE file are for informational purposes only and
|
||||||
|
do not modify the License. You may add Your own attribution
|
||||||
|
notices within Derivative Works that You distribute, alongside
|
||||||
|
or as an addendum to the NOTICE text from the Work, provided
|
||||||
|
that such additional attribution notices cannot be construed
|
||||||
|
as modifying the License.
|
||||||
|
|
||||||
|
You may add Your own copyright statement to Your modifications and
|
||||||
|
may provide additional or different license terms and conditions
|
||||||
|
for use, reproduction, or distribution of Your modifications, or
|
||||||
|
for any such Derivative Works as a whole, provided Your use,
|
||||||
|
reproduction, and distribution of the Work otherwise complies with
|
||||||
|
the conditions stated in this License.
|
||||||
|
|
||||||
|
5. Submission of Contributions. Unless You explicitly state otherwise,
|
||||||
|
any Contribution intentionally submitted for inclusion in the Work
|
||||||
|
by You to the Licensor shall be under the terms and conditions of
|
||||||
|
this License, without any additional terms or conditions.
|
||||||
|
Notwithstanding the above, nothing herein shall supersede or modify
|
||||||
|
the terms of any separate license agreement you may have executed
|
||||||
|
with Licensor regarding such Contributions.
|
||||||
|
|
||||||
|
6. Trademarks. This License does not grant permission to use the trade
|
||||||
|
names, trademarks, service marks, or product names of the Licensor,
|
||||||
|
except as required for reasonable and customary use in describing the
|
||||||
|
origin of the Work and reproducing the content of the NOTICE file.
|
||||||
|
|
||||||
|
7. Disclaimer of Warranty. Unless required by applicable law or
|
||||||
|
agreed to in writing, Licensor provides the Work (and each
|
||||||
|
Contributor provides its Contributions) on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||||
|
implied, including, without limitation, any warranties or conditions
|
||||||
|
of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
|
||||||
|
PARTICULAR PURPOSE. You are solely responsible for determining the
|
||||||
|
appropriateness of using or redistributing the Work and assume any
|
||||||
|
risks associated with Your exercise of permissions under this License.
|
||||||
|
|
||||||
|
8. Limitation of Liability. In no event and under no legal theory,
|
||||||
|
whether in tort (including negligence), contract, or otherwise,
|
||||||
|
unless required by applicable law (such as deliberate and grossly
|
||||||
|
negligent acts) or agreed to in writing, shall any Contributor be
|
||||||
|
liable to You for damages, including any direct, indirect, special,
|
||||||
|
incidental, or consequential damages of any character arising as a
|
||||||
|
result of this License or out of the use or inability to use the
|
||||||
|
Work (including but not limited to damages for loss of goodwill,
|
||||||
|
work stoppage, computer failure or malfunction, or any and all
|
||||||
|
other commercial damages or losses), even if such Contributor
|
||||||
|
has been advised of the possibility of such damages.
|
||||||
|
|
||||||
|
9. Accepting Warranty or Additional Liability. While redistributing
|
||||||
|
the Work or Derivative Works thereof, You may choose to offer,
|
||||||
|
and charge a fee for, acceptance of support, warranty, indemnity,
|
||||||
|
or other liability obligations and/or rights consistent with this
|
||||||
|
License. However, in accepting such obligations, You may act only
|
||||||
|
on Your own behalf and on Your sole responsibility, not on behalf
|
||||||
|
of any other Contributor, and only if You agree to indemnify,
|
||||||
|
defend, and hold each Contributor harmless for any liability
|
||||||
|
incurred by, or claims asserted against, such Contributor by reason
|
||||||
|
of your accepting any such warranty or additional liability.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
APPENDIX: How to apply the Apache License to your work.
|
||||||
|
|
||||||
|
To apply the Apache License to your work, attach the following
|
||||||
|
boilerplate notice, with the fields enclosed by brackets "[]"
|
||||||
|
replaced with your own identifying information. (Don't include
|
||||||
|
the brackets!) The text should be enclosed in the appropriate
|
||||||
|
comment syntax for the file format. We also recommend that a
|
||||||
|
file or class name and description of purpose be included on the
|
||||||
|
same "printed page" as the copyright notice for easier
|
||||||
|
identification within third-party archives.
|
||||||
|
|
||||||
|
Copyright [yyyy] [name of copyright owner]
|
||||||
|
|
||||||
|
Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
you may not use this file except in compliance with the License.
|
||||||
|
You may obtain a copy of the License at
|
||||||
|
|
||||||
|
http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
|
||||||
|
Unless required by applicable law or agreed to in writing, software
|
||||||
|
distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
See the License for the specific language governing permissions and
|
||||||
|
limitations under the License.
|
||||||
4
release/mgp/README.md
Normal file
4
release/mgp/README.md
Normal file
@@ -0,0 +1,4 @@
|
|||||||
|
# mgp
|
||||||
|
|
||||||
|
PyPi package used for type hinting when creating MAGE modules. The get started
|
||||||
|
using MAGE repository checkout the repository here: https://github.com/memgraph/mage.
|
||||||
255
release/mgp/_mgp.py
Normal file
255
release/mgp/_mgp.py
Normal file
@@ -0,0 +1,255 @@
|
|||||||
|
from typing import Any
|
||||||
|
|
||||||
|
|
||||||
|
class MgpIterable:
|
||||||
|
def get() -> Any:
|
||||||
|
pass
|
||||||
|
|
||||||
|
def next() -> Any:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Vertex:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def underlying_graph_is_mutable() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def iter_properties() -> MgpIterable: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_property(self, property_name: str) -> "Property": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def set_property(self, property_name: str, value: Any) -> "Property": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_id() -> "VertexId": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def label_at(self, index: int) -> "Label": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def labels_count() -> int: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def add_label(self, label: Any):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def remove_label(self, label: Any):
|
||||||
|
pass
|
||||||
|
|
||||||
|
def iter_in_edges() -> MgpIterable: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def iter_out_edges() -> MgpIterable: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Edge:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def underlying_graph_is_mutable() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def iter_properties() -> MgpIterable: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_property(self, property_name: str) -> "Property": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def set_property(self, property_name: str, valuse: Any) -> "Property": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_type_name() -> str: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def get_id() -> "EdgeId": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def from_vertex() -> Vertex: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def to_vertex() -> Vertex: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Path:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def make_with_start(vertex: Vertex) -> "Path": # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Graph:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class CypherType:
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Message:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def source_type() -> str: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def topic_name() -> str: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def key() -> bytes: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def timestamp() -> int: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def offset() -> int: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def payload() -> bytes: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class Messages:
|
||||||
|
def is_valid() -> bool: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def message_at(self, id: int) -> Message: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
def total_messages() -> int: # type: ignore
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class UnknownError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class UnableToAllocateError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class InsufficientBufferError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class OutOfRangeError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class LogicErrorError(Exception):
|
||||||
|
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class DeletedObjectError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class InvalidArgumentError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class KeyAlreadyExistsError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ImmutableObjectError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ValueConversionError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class SerializationError(Exception):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_nullable(elem: Any):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_list(elem: Any):
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_bool():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_string():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_int():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_float():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_number():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_map():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_node():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_relationship():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_path():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_date():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_local_time():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_local_date_time():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_duration():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
def type_any():
|
||||||
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class _MODULE:
|
||||||
|
@staticmethod
|
||||||
|
def add_read_procedure(wrapper):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_write_procedure(wrapper):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_transformation(wrapper):
|
||||||
|
pass
|
||||||
|
|
||||||
|
@staticmethod
|
||||||
|
def add_function(wrapper):
|
||||||
|
pass
|
||||||
22
release/mgp/instructions.md
Normal file
22
release/mgp/instructions.md
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
# How to publish new versions
|
||||||
|
## Prerequisites
|
||||||
|
1. Installed poetry
|
||||||
|
```
|
||||||
|
pip install poetry
|
||||||
|
```
|
||||||
|
2. Set up [API tokens](https://pypi.org/help/#apitoken)
|
||||||
|
3. Be a collaborator on [pypi](https://pypi.org/project/mgp/)
|
||||||
|
|
||||||
|
## Making changes
|
||||||
|
1. Make changes to the package
|
||||||
|
2. Bump version in `pyproject.tml`
|
||||||
|
3. `poetry build`
|
||||||
|
4. `poetry publish`
|
||||||
|
|
||||||
|
## Why is this not automatized?
|
||||||
|
|
||||||
|
Because someone always has to manually bump up the version in `pyproject.toml`
|
||||||
|
|
||||||
|
## Why does `_mgp.py` exists?
|
||||||
|
Because we are mocking here all the types that are created by Memgraph
|
||||||
|
in order to fix typing errors in `mgp.py`.
|
||||||
23
release/mgp/pyproject.toml
Normal file
23
release/mgp/pyproject.toml
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
[tool.poetry]
|
||||||
|
name = "mgp"
|
||||||
|
version = "1.0.0"
|
||||||
|
description = "Memgraph's module for developing MAGE modules. Used only for type hinting!"
|
||||||
|
authors = [
|
||||||
|
"MasterMedo <mislav.vuletic@gmail.com>",
|
||||||
|
"jbajic <jure.bajic@memgraph.io>",
|
||||||
|
"katarinasupe <katarina.supe@memgraph.io>",
|
||||||
|
"antejavor <ante.javor@memgraph.io>",
|
||||||
|
"antaljanosbenjamin <benjamin.antal@memgraph.io>",
|
||||||
|
]
|
||||||
|
license = "Apache-2.0"
|
||||||
|
readme = "README.md"
|
||||||
|
include = ["mgp.py", "_mgp.py"]
|
||||||
|
|
||||||
|
[tool.poetry.dependencies]
|
||||||
|
python = "^3.7"
|
||||||
|
|
||||||
|
[tool.poetry.dev-dependencies]
|
||||||
|
|
||||||
|
[build-system]
|
||||||
|
requires = ["poetry-core>=1.0.0"]
|
||||||
|
build-backend = "poetry.core.masonry.api"
|
||||||
@@ -7,8 +7,8 @@ RUN yum -y update \
|
|||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
# stateful context.
|
# stateful context.
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-centos-7.tar.gz \
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-centos-7-x86_64.tar.gz \
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-centos-7.tar.gz \
|
-O ${TOOLCHAIN_VERSION}-binaries-centos-7-x86_64.tar.gz \
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-centos-7.tar.gz -C /opt
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-centos-7-x86_64.tar.gz -C /opt
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
|
|||||||
@@ -1,14 +0,0 @@
|
|||||||
FROM centos:8
|
|
||||||
|
|
||||||
ARG TOOLCHAIN_VERSION
|
|
||||||
|
|
||||||
RUN dnf -y update \
|
|
||||||
&& dnf install -y wget git
|
|
||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
|
||||||
# stateful context.
|
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-centos-8.tar.gz \
|
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-centos-8.tar.gz \
|
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-centos-8.tar.gz -C /opt
|
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
|
||||||
14
release/package/centos-9/Dockerfile
Normal file
14
release/package/centos-9/Dockerfile
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
FROM quay.io/centos/centos:stream9
|
||||||
|
|
||||||
|
ARG TOOLCHAIN_VERSION
|
||||||
|
|
||||||
|
RUN yum -y update \
|
||||||
|
&& yum install -y wget git
|
||||||
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
|
# stateful context.
|
||||||
|
|
||||||
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-centos-9-x86_64.tar.gz \
|
||||||
|
-O ${TOOLCHAIN_VERSION}-binaries-centos-9-x86_64.tar.gz \
|
||||||
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-centos-9-x86_64.tar.gz -C /opt
|
||||||
|
|
||||||
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
@@ -10,8 +10,8 @@ RUN apt update && apt install -y \
|
|||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
# stateful context.
|
# stateful context.
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-debian-10.tar.gz \
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-debian-10-amd64.tar.gz \
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-debian-10.tar.gz \
|
-O ${TOOLCHAIN_VERSION}-binaries-debian-10-amd64.tar.gz \
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-debian-10.tar.gz -C /opt
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-debian-10-amd64.tar.gz -C /opt
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
|
|||||||
17
release/package/debian-11-arm/Dockerfile
Normal file
17
release/package/debian-11-arm/Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
FROM debian:11
|
||||||
|
|
||||||
|
ARG TOOLCHAIN_VERSION
|
||||||
|
|
||||||
|
# Stops tzdata interactive configuration.
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt update && apt install -y \
|
||||||
|
ca-certificates wget git
|
||||||
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
|
# stateful context.
|
||||||
|
|
||||||
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-debian-11-arm64.tar.gz \
|
||||||
|
-O ${TOOLCHAIN_VERSION}-binaries-debian-11-arm64.tar.gz \
|
||||||
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-debian-11-arm64.tar.gz -C /opt
|
||||||
|
|
||||||
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
@@ -10,8 +10,8 @@ RUN apt update && apt install -y \
|
|||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
# stateful context.
|
# stateful context.
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-debian-11.tar.gz \
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-debian-11-amd64.tar.gz \
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-debian-11.tar.gz \
|
-O ${TOOLCHAIN_VERSION}-binaries-debian-11-amd64.tar.gz \
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-debian-11.tar.gz -C /opt
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-debian-11-amd64.tar.gz -C /opt
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
|
|||||||
@@ -4,10 +4,10 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: centos-7
|
context: centos-7
|
||||||
container_name: "mgbuild_centos-7"
|
container_name: "mgbuild_centos-7"
|
||||||
mgbuild_centos-8:
|
mgbuild_centos-9:
|
||||||
build:
|
build:
|
||||||
context: centos-8
|
context: centos-9
|
||||||
container_name: "mgbuild_centos-8"
|
container_name: "mgbuild_centos-9"
|
||||||
mgbuild_debian-10:
|
mgbuild_debian-10:
|
||||||
build:
|
build:
|
||||||
context: debian-10
|
context: debian-10
|
||||||
@@ -24,3 +24,7 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: ubuntu-20.04
|
context: ubuntu-20.04
|
||||||
container_name: "mgbuild_ubuntu-20.04"
|
container_name: "mgbuild_ubuntu-20.04"
|
||||||
|
mgbuild_ubuntu-22.04:
|
||||||
|
build:
|
||||||
|
context: ubuntu-22.04
|
||||||
|
container_name: "mgbuild_ubuntu-22.04"
|
||||||
|
|||||||
@@ -3,7 +3,7 @@
|
|||||||
set -Eeuo pipefail
|
set -Eeuo pipefail
|
||||||
|
|
||||||
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
SCRIPT_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )"
|
||||||
SUPPORTED_OS=(centos-7 centos-8 debian-10 debian-11 ubuntu-18.04 ubuntu-20.04)
|
SUPPORTED_OS=(centos-7 centos-9 debian-10 debian-11 ubuntu-18.04 ubuntu-20.04 ubuntu-22.04 debian-11-arm)
|
||||||
PROJECT_ROOT="$SCRIPT_DIR/../.."
|
PROJECT_ROOT="$SCRIPT_DIR/../.."
|
||||||
TOOLCHAIN_VERSION="toolchain-v4"
|
TOOLCHAIN_VERSION="toolchain-v4"
|
||||||
ACTIVATE_TOOLCHAIN="source /opt/${TOOLCHAIN_VERSION}/activate"
|
ACTIVATE_TOOLCHAIN="source /opt/${TOOLCHAIN_VERSION}/activate"
|
||||||
@@ -67,14 +67,18 @@ make_package () {
|
|||||||
# environment/os/{os}.sh does not come within the toolchain package. When
|
# environment/os/{os}.sh does not come within the toolchain package. When
|
||||||
# migrating to the next version of toolchain do that, and remove the
|
# migrating to the next version of toolchain do that, and remove the
|
||||||
# TOOLCHAIN_RUN_DEPS installation from here.
|
# TOOLCHAIN_RUN_DEPS installation from here.
|
||||||
echo "Installing dependencies..."
|
echo "Installing dependencies using '/memgraph/environment/os/$os.sh' script..."
|
||||||
docker exec "$build_container" bash -c "/memgraph/environment/os/$os.sh install TOOLCHAIN_RUN_DEPS"
|
docker exec "$build_container" bash -c "/memgraph/environment/os/$os.sh install TOOLCHAIN_RUN_DEPS"
|
||||||
docker exec "$build_container" bash -c "/memgraph/environment/os/$os.sh install MEMGRAPH_BUILD_DEPS"
|
docker exec "$build_container" bash -c "/memgraph/environment/os/$os.sh install MEMGRAPH_BUILD_DEPS"
|
||||||
|
|
||||||
echo "Building targeted package..."
|
echo "Building targeted package..."
|
||||||
docker exec "$build_container" bash -c "cd /memgraph && $ACTIVATE_TOOLCHAIN && ./init"
|
docker exec "$build_container" bash -c "cd /memgraph && $ACTIVATE_TOOLCHAIN && ./init"
|
||||||
docker exec "$build_container" bash -c "cd $container_build_dir && rm -rf ./*"
|
docker exec "$build_container" bash -c "cd $container_build_dir && rm -rf ./*"
|
||||||
docker exec "$build_container" bash -c "cd $container_build_dir && $ACTIVATE_TOOLCHAIN && cmake -DCMAKE_BUILD_TYPE=release $telemetry_id_override_flag .."
|
if [[ "$os" == "debian-11-arm" ]]; then
|
||||||
|
docker exec "$build_container" bash -c "cd $container_build_dir && $ACTIVATE_TOOLCHAIN && cmake -DCMAKE_BUILD_TYPE=release -DMG_ARCH="ARM64" $telemetry_id_override_flag .."
|
||||||
|
else
|
||||||
|
docker exec "$build_container" bash -c "cd $container_build_dir && $ACTIVATE_TOOLCHAIN && cmake -DCMAKE_BUILD_TYPE=release $telemetry_id_override_flag .."
|
||||||
|
fi
|
||||||
# ' is used instead of " because we need to run make within the allowed
|
# ' is used instead of " because we need to run make within the allowed
|
||||||
# container resources.
|
# container resources.
|
||||||
# shellcheck disable=SC2016
|
# shellcheck disable=SC2016
|
||||||
@@ -106,7 +110,7 @@ case "$1" in
|
|||||||
last_package_name=$(cd "$HOST_OUTPUT_DIR/$based_on_os" && ls -t memgraph* | head -1)
|
last_package_name=$(cd "$HOST_OUTPUT_DIR/$based_on_os" && ls -t memgraph* | head -1)
|
||||||
docker_build_folder="$PROJECT_ROOT/release/docker"
|
docker_build_folder="$PROJECT_ROOT/release/docker"
|
||||||
cd "$docker_build_folder"
|
cd "$docker_build_folder"
|
||||||
./package_deb_docker --latest "$HOST_OUTPUT_DIR/$based_on_os/$last_package_name"
|
./package_docker --latest "$HOST_OUTPUT_DIR/$based_on_os/$last_package_name"
|
||||||
# shellcheck disable=SC2012
|
# shellcheck disable=SC2012
|
||||||
docker_image_name=$(cd "$docker_build_folder" && ls -t memgraph* | head -1)
|
docker_image_name=$(cd "$docker_build_folder" && ls -t memgraph* | head -1)
|
||||||
docker_host_folder="$HOST_OUTPUT_DIR/docker"
|
docker_host_folder="$HOST_OUTPUT_DIR/docker"
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ RUN apt update && apt install -y \
|
|||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
# stateful context.
|
# stateful context.
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04.tar.gz \
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04-amd64.tar.gz \
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04.tar.gz \
|
-O ${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04-amd64.tar.gz \
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04.tar.gz -C /opt
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-ubuntu-18.04-amd64.tar.gz -C /opt
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
|
|||||||
@@ -10,8 +10,8 @@ RUN apt update && apt install -y \
|
|||||||
# Do NOT be smart here and clean the cache because the container is used in the
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
# stateful context.
|
# stateful context.
|
||||||
|
|
||||||
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04.tar.gz \
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04-amd64.tar.gz \
|
||||||
-O ${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04.tar.gz \
|
-O ${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04-amd64.tar.gz \
|
||||||
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04.tar.gz -C /opt
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-ubuntu-20.04-amd64.tar.gz -C /opt
|
||||||
|
|
||||||
ENTRYPOINT ["sleep", "infinity"]
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
|
|||||||
17
release/package/ubuntu-22.04/Dockerfile
Normal file
17
release/package/ubuntu-22.04/Dockerfile
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
FROM ubuntu:22.04
|
||||||
|
|
||||||
|
ARG TOOLCHAIN_VERSION
|
||||||
|
|
||||||
|
# Stops tzdata interactive configuration.
|
||||||
|
ENV DEBIAN_FRONTEND=noninteractive
|
||||||
|
|
||||||
|
RUN apt update && apt install -y \
|
||||||
|
ca-certificates wget git
|
||||||
|
# Do NOT be smart here and clean the cache because the container is used in the
|
||||||
|
# stateful context.
|
||||||
|
|
||||||
|
RUN wget -q https://s3-eu-west-1.amazonaws.com/deps.memgraph.io/${TOOLCHAIN_VERSION}/${TOOLCHAIN_VERSION}-binaries-ubuntu-22.04-amd64.tar.gz \
|
||||||
|
-O ${TOOLCHAIN_VERSION}-binaries-ubuntu-22.04-amd64.tar.gz \
|
||||||
|
&& tar xzvf ${TOOLCHAIN_VERSION}-binaries-ubuntu-22.04-amd64.tar.gz -C /opt
|
||||||
|
|
||||||
|
ENTRYPOINT ["sleep", "infinity"]
|
||||||
@@ -5,16 +5,22 @@ add_subdirectory(lisp)
|
|||||||
add_subdirectory(utils)
|
add_subdirectory(utils)
|
||||||
add_subdirectory(requests)
|
add_subdirectory(requests)
|
||||||
add_subdirectory(io)
|
add_subdirectory(io)
|
||||||
|
add_subdirectory(io/simulator)
|
||||||
add_subdirectory(kvstore)
|
add_subdirectory(kvstore)
|
||||||
add_subdirectory(telemetry)
|
add_subdirectory(telemetry)
|
||||||
add_subdirectory(communication)
|
add_subdirectory(communication)
|
||||||
add_subdirectory(memory)
|
add_subdirectory(memory)
|
||||||
add_subdirectory(storage/v2)
|
add_subdirectory(storage/v2)
|
||||||
|
add_subdirectory(storage/v3)
|
||||||
add_subdirectory(integrations)
|
add_subdirectory(integrations)
|
||||||
add_subdirectory(query)
|
add_subdirectory(query)
|
||||||
|
add_subdirectory(query/v2)
|
||||||
add_subdirectory(slk)
|
add_subdirectory(slk)
|
||||||
add_subdirectory(rpc)
|
add_subdirectory(rpc)
|
||||||
add_subdirectory(auth)
|
add_subdirectory(auth)
|
||||||
|
add_subdirectory(parser)
|
||||||
|
add_subdirectory(expr)
|
||||||
|
add_subdirectory(coordinator)
|
||||||
|
|
||||||
if (MG_ENTERPRISE)
|
if (MG_ENTERPRISE)
|
||||||
add_subdirectory(audit)
|
add_subdirectory(audit)
|
||||||
@@ -31,13 +37,13 @@ include_directories(${CMAKE_CURRENT_BINARY_DIR})
|
|||||||
# Memgraph Single Node v2 Executable
|
# Memgraph Single Node v2 Executable
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
set(mg_single_node_v2_sources
|
set(mg_single_node_v2_sources
|
||||||
glue/communication.cpp
|
glue/v2/communication.cpp
|
||||||
memgraph.cpp
|
memgraph.cpp
|
||||||
glue/auth.cpp
|
glue/v2/auth.cpp
|
||||||
)
|
)
|
||||||
|
|
||||||
set(mg_single_node_v2_libs stdc++fs Threads::Threads
|
set(mg_single_node_v2_libs stdc++fs Threads::Threads
|
||||||
telemetry_lib mg-query mg-communication mg-memory mg-utils mg-auth mg-license mg-settings)
|
telemetry_lib mg-query-v2 mg-communication mg-memory mg-utils mg-auth mg-license mg-settings mg-io mg-coordinator)
|
||||||
if (MG_ENTERPRISE)
|
if (MG_ENTERPRISE)
|
||||||
# These are enterprise subsystems
|
# These are enterprise subsystems
|
||||||
set(mg_single_node_v2_libs ${mg_single_node_v2_libs} mg-audit)
|
set(mg_single_node_v2_libs ${mg_single_node_v2_libs} mg-audit)
|
||||||
@@ -120,19 +126,3 @@ install(CODE "file(MAKE_DIRECTORY \$ENV{DESTDIR}/var/log/memgraph
|
|||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
# Memgraph CSV Import Tool Executable
|
# Memgraph CSV Import Tool Executable
|
||||||
# ----------------------------------------------------------------------------
|
# ----------------------------------------------------------------------------
|
||||||
|
|
||||||
add_executable(mg_import_csv mg_import_csv.cpp)
|
|
||||||
target_link_libraries(mg_import_csv mg-storage-v2)
|
|
||||||
|
|
||||||
# Strip the executable in release build.
|
|
||||||
if (lower_build_type STREQUAL "release")
|
|
||||||
add_custom_command(TARGET mg_import_csv POST_BUILD
|
|
||||||
COMMAND strip -s mg_import_csv
|
|
||||||
COMMENT "Stripping symbols and sections from mg_import_csv")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(TARGETS mg_import_csv RUNTIME DESTINATION bin)
|
|
||||||
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
# Memgraph CSV Import Tool Executable
|
|
||||||
# ----------------------------------------------------------------------------
|
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
#include "utils/string.hpp"
|
#include "utils/string.hpp"
|
||||||
|
|
||||||
namespace audit {
|
namespace memgraph::audit {
|
||||||
|
|
||||||
// Helper function that converts a `storage::PropertyValue` to `nlohmann::json`.
|
// Helper function that converts a `storage::PropertyValue` to `nlohmann::json`.
|
||||||
inline nlohmann::json PropertyValueToJson(const storage::PropertyValue &pv) {
|
inline nlohmann::json PropertyValueToJson(const storage::PropertyValue &pv) {
|
||||||
@@ -143,4 +143,4 @@ void Log::Flush() {
|
|||||||
log_.Sync();
|
log_.Sync();
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace audit
|
} // namespace memgraph::audit
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
#include "utils/file.hpp"
|
#include "utils/file.hpp"
|
||||||
#include "utils/scheduler.hpp"
|
#include "utils/scheduler.hpp"
|
||||||
|
|
||||||
namespace audit {
|
namespace memgraph::audit {
|
||||||
|
|
||||||
const uint64_t kBufferSizeDefault = 100000;
|
const uint64_t kBufferSizeDefault = 100000;
|
||||||
const uint64_t kBufferFlushIntervalMillisDefault = 200;
|
const uint64_t kBufferFlushIntervalMillisDefault = 200;
|
||||||
@@ -71,4 +71,4 @@ class Log {
|
|||||||
std::mutex lock_;
|
std::mutex lock_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace audit
|
} // namespace memgraph::audit
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ find_package(gflags REQUIRED)
|
|||||||
|
|
||||||
add_library(mg-auth STATIC ${auth_src_files})
|
add_library(mg-auth STATIC ${auth_src_files})
|
||||||
target_link_libraries(mg-auth json libbcrypt gflags fmt::fmt)
|
target_link_libraries(mg-auth json libbcrypt gflags fmt::fmt)
|
||||||
target_link_libraries(mg-auth mg-utils mg-kvstore)
|
target_link_libraries(mg-auth mg-utils mg-kvstore mg-license )
|
||||||
|
|
||||||
target_link_libraries(mg-auth ${Seccomp_LIBRARIES})
|
target_link_libraries(mg-auth ${Seccomp_LIBRARIES})
|
||||||
target_include_directories(mg-auth SYSTEM PRIVATE ${Seccomp_INCLUDE_DIRS})
|
target_include_directories(mg-auth SYSTEM PRIVATE ${Seccomp_INCLUDE_DIRS})
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -42,8 +42,7 @@ DEFINE_VALIDATED_int32(auth_module_timeout_ms, 10000,
|
|||||||
"response from the auth module.",
|
"response from the auth module.",
|
||||||
FLAG_IN_RANGE(100, 1800000));
|
FLAG_IN_RANGE(100, 1800000));
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
const std::string kUserPrefix = "user:";
|
const std::string kUserPrefix = "user:";
|
||||||
const std::string kRolePrefix = "role:";
|
const std::string kRolePrefix = "role:";
|
||||||
const std::string kLinkPrefix = "link:";
|
const std::string kLinkPrefix = "link:";
|
||||||
@@ -316,4 +315,4 @@ std::vector<auth::User> Auth::AllUsersForRole(const std::string &rolename_orig)
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -18,8 +18,7 @@
|
|||||||
#include "kvstore/kvstore.hpp"
|
#include "kvstore/kvstore.hpp"
|
||||||
#include "utils/settings.hpp"
|
#include "utils/settings.hpp"
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class serves as the main Authentication/Authorization storage.
|
* This class serves as the main Authentication/Authorization storage.
|
||||||
* It provides functions for managing Users, Roles and Permissions.
|
* It provides functions for managing Users, Roles and Permissions.
|
||||||
@@ -163,4 +162,4 @@ class Auth final {
|
|||||||
kvstore::KVStore storage_;
|
kvstore::KVStore storage_;
|
||||||
auth::Module module_;
|
auth::Module module_;
|
||||||
};
|
};
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -12,8 +12,7 @@
|
|||||||
|
|
||||||
#include "auth/exceptions.hpp"
|
#include "auth/exceptions.hpp"
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
const std::string EncryptPassword(const std::string &password) {
|
const std::string EncryptPassword(const std::string &password) {
|
||||||
char salt[BCRYPT_HASHSIZE];
|
char salt[BCRYPT_HASHSIZE];
|
||||||
char hash[BCRYPT_HASHSIZE];
|
char hash[BCRYPT_HASHSIZE];
|
||||||
@@ -40,4 +39,4 @@ bool VerifyPassword(const std::string &password, const std::string &hash) {
|
|||||||
return ret == 0;
|
return ret == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -10,12 +10,11 @@
|
|||||||
|
|
||||||
#include <string>
|
#include <string>
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
/// @throw AuthException if unable to encrypt the password.
|
/// @throw AuthException if unable to encrypt the password.
|
||||||
const std::string EncryptPassword(const std::string &password);
|
const std::string EncryptPassword(const std::string &password);
|
||||||
|
|
||||||
/// @throw AuthException if unable to verify the password.
|
/// @throw AuthException if unable to verify the password.
|
||||||
bool VerifyPassword(const std::string &password, const std::string &hash);
|
bool VerifyPassword(const std::string &password, const std::string &hash);
|
||||||
|
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -13,8 +13,7 @@
|
|||||||
|
|
||||||
#include "utils/exceptions.hpp"
|
#include "utils/exceptions.hpp"
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This exception class is thrown for all exceptions that can occur when dealing
|
* This exception class is thrown for all exceptions that can occur when dealing
|
||||||
* with the Auth library.
|
* with the Auth library.
|
||||||
@@ -23,4 +22,4 @@ class AuthException : public utils::BasicException {
|
|||||||
public:
|
public:
|
||||||
using utils::BasicException::BasicException;
|
using utils::BasicException::BasicException;
|
||||||
};
|
};
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -22,13 +22,23 @@
|
|||||||
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
|
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
DEFINE_bool(auth_password_permit_null, true, "Set to false to disable null passwords.");
|
DEFINE_bool(auth_password_permit_null, true, "Set to false to disable null passwords.");
|
||||||
|
|
||||||
constexpr std::string_view default_password_regex = ".+";
|
inline constexpr std::string_view default_password_regex = ".+";
|
||||||
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
|
// NOLINTNEXTLINE(cppcoreguidelines-avoid-non-const-global-variables)
|
||||||
DEFINE_string(auth_password_strength_regex, default_password_regex.data(),
|
DEFINE_string(auth_password_strength_regex, default_password_regex.data(),
|
||||||
"The regular expression that should be used to match the entire "
|
"The regular expression that should be used to match the entire "
|
||||||
"entered password to ensure its strength.");
|
"entered password to ensure its strength.");
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
namespace {
|
||||||
|
// Constant list of all available permissions.
|
||||||
|
const std::vector<Permission> kPermissionsAll = {
|
||||||
|
Permission::MATCH, Permission::CREATE, Permission::MERGE, Permission::DELETE,
|
||||||
|
Permission::SET, Permission::REMOVE, Permission::INDEX, Permission::STATS,
|
||||||
|
Permission::CONSTRAINT, Permission::DUMP, Permission::AUTH, Permission::REPLICATION,
|
||||||
|
Permission::DURABILITY, Permission::READ_FILE, Permission::FREE_MEMORY, Permission::TRIGGER,
|
||||||
|
Permission::CONFIG, Permission::STREAM, Permission::MODULE_READ, Permission::MODULE_WRITE,
|
||||||
|
Permission::WEBSOCKET, Permission::SCHEMA};
|
||||||
|
} // namespace
|
||||||
|
|
||||||
std::string PermissionToString(Permission permission) {
|
std::string PermissionToString(Permission permission) {
|
||||||
switch (permission) {
|
switch (permission) {
|
||||||
@@ -68,6 +78,14 @@ std::string PermissionToString(Permission permission) {
|
|||||||
return "AUTH";
|
return "AUTH";
|
||||||
case Permission::STREAM:
|
case Permission::STREAM:
|
||||||
return "STREAM";
|
return "STREAM";
|
||||||
|
case Permission::MODULE_READ:
|
||||||
|
return "MODULE_READ";
|
||||||
|
case Permission::MODULE_WRITE:
|
||||||
|
return "MODULE_WRITE";
|
||||||
|
case Permission::WEBSOCKET:
|
||||||
|
return "WEBSOCKET";
|
||||||
|
case Permission::SCHEMA:
|
||||||
|
return "SCHEMA";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -286,4 +304,4 @@ bool operator==(const User &first, const User &second) {
|
|||||||
return first.username_ == second.username_ && first.password_hash_ == second.password_hash_ &&
|
return first.username_ == second.username_ && first.password_hash_ == second.password_hash_ &&
|
||||||
first.permissions_ == second.permissions_ && first.role_ == second.role_;
|
first.permissions_ == second.permissions_ && first.role_ == second.role_;
|
||||||
}
|
}
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -13,41 +13,36 @@
|
|||||||
|
|
||||||
#include <json/json.hpp>
|
#include <json/json.hpp>
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
// These permissions must have values that are applicable for usage in a
|
// These permissions must have values that are applicable for usage in a
|
||||||
// bitmask.
|
// bitmask.
|
||||||
// clang-format off
|
// clang-format off
|
||||||
enum class Permission : uint64_t {
|
enum class Permission : uint64_t {
|
||||||
MATCH = 1,
|
MATCH = 1,
|
||||||
CREATE = 1U << 1U,
|
CREATE = 1U << 1U,
|
||||||
MERGE = 1U << 2U,
|
MERGE = 1U << 2U,
|
||||||
DELETE = 1U << 3U,
|
DELETE = 1U << 3U,
|
||||||
SET = 1U << 4U,
|
SET = 1U << 4U,
|
||||||
REMOVE = 1U << 5U,
|
REMOVE = 1U << 5U,
|
||||||
INDEX = 1U << 6U,
|
INDEX = 1U << 6U,
|
||||||
STATS = 1U << 7U,
|
STATS = 1U << 7U,
|
||||||
CONSTRAINT = 1U << 8U,
|
CONSTRAINT = 1U << 8U,
|
||||||
DUMP = 1U << 9U,
|
DUMP = 1U << 9U,
|
||||||
REPLICATION = 1U << 10U,
|
REPLICATION = 1U << 10U,
|
||||||
DURABILITY = 1U << 11U,
|
DURABILITY = 1U << 11U,
|
||||||
READ_FILE = 1U << 12U,
|
READ_FILE = 1U << 12U,
|
||||||
FREE_MEMORY = 1U << 13U,
|
FREE_MEMORY = 1U << 13U,
|
||||||
TRIGGER = 1U << 14U,
|
TRIGGER = 1U << 14U,
|
||||||
CONFIG = 1U << 15U,
|
CONFIG = 1U << 15U,
|
||||||
AUTH = 1U << 16U,
|
AUTH = 1U << 16U,
|
||||||
STREAM = 1U << 17U
|
STREAM = 1U << 17U,
|
||||||
|
MODULE_READ = 1U << 18U,
|
||||||
|
MODULE_WRITE = 1U << 19U,
|
||||||
|
WEBSOCKET = 1U << 20U,
|
||||||
|
SCHEMA = 1U << 21U
|
||||||
};
|
};
|
||||||
// clang-format on
|
// clang-format on
|
||||||
|
|
||||||
// Constant list of all available permissions.
|
|
||||||
const std::vector<Permission> kPermissionsAll = {Permission::MATCH, Permission::CREATE, Permission::MERGE,
|
|
||||||
Permission::DELETE, Permission::SET, Permission::REMOVE,
|
|
||||||
Permission::INDEX, Permission::STATS, Permission::CONSTRAINT,
|
|
||||||
Permission::DUMP, Permission::AUTH, Permission::REPLICATION,
|
|
||||||
Permission::DURABILITY, Permission::READ_FILE, Permission::FREE_MEMORY,
|
|
||||||
Permission::TRIGGER, Permission::CONFIG, Permission::STREAM};
|
|
||||||
|
|
||||||
// Function that converts a permission to its string representation.
|
// Function that converts a permission to its string representation.
|
||||||
std::string PermissionToString(Permission permission);
|
std::string PermissionToString(Permission permission);
|
||||||
|
|
||||||
@@ -159,4 +154,4 @@ class User final {
|
|||||||
};
|
};
|
||||||
|
|
||||||
bool operator==(const User &first, const User &second);
|
bool operator==(const User &first, const User &second);
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -153,7 +153,7 @@ int Target(void *arg) {
|
|||||||
// process and something really bad could happen.
|
// process and something really bad could happen.
|
||||||
|
|
||||||
// Get a pointer to the passed arguments.
|
// Get a pointer to the passed arguments.
|
||||||
auto *ta = reinterpret_cast<auth::TargetArguments *>(arg);
|
auto *ta = reinterpret_cast<memgraph::auth::TargetArguments *>(arg);
|
||||||
|
|
||||||
// Redirect `stdin` to `/dev/null`.
|
// Redirect `stdin` to `/dev/null`.
|
||||||
int fd = open("/dev/null", O_RDONLY | O_CLOEXEC);
|
int fd = open("/dev/null", O_RDONLY | O_CLOEXEC);
|
||||||
@@ -312,8 +312,7 @@ nlohmann::json GetData(int fd, int timeout_millisec) {
|
|||||||
|
|
||||||
} // namespace
|
} // namespace
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
Module::Module(const std::filesystem::path &module_executable_path) {
|
Module::Module(const std::filesystem::path &module_executable_path) {
|
||||||
if (!module_executable_path.empty()) {
|
if (!module_executable_path.empty()) {
|
||||||
module_executable_path_ = std::filesystem::absolute(module_executable_path);
|
module_executable_path_ = std::filesystem::absolute(module_executable_path);
|
||||||
@@ -447,4 +446,4 @@ void Module::Shutdown() {
|
|||||||
|
|
||||||
Module::~Module() { Shutdown(); }
|
Module::~Module() { Shutdown(); }
|
||||||
|
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
// Licensed as a Memgraph Enterprise file under the Memgraph Enterprise
|
||||||
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
// License (the "License"); by using this file, you agree to be bound by the terms of the License, and you may not use
|
||||||
@@ -16,8 +16,7 @@
|
|||||||
|
|
||||||
#include <json/json.hpp>
|
#include <json/json.hpp>
|
||||||
|
|
||||||
namespace auth {
|
namespace memgraph::auth {
|
||||||
|
|
||||||
struct TargetArguments {
|
struct TargetArguments {
|
||||||
std::filesystem::path module_executable_path;
|
std::filesystem::path module_executable_path;
|
||||||
int pipe_to_module{-1};
|
int pipe_to_module{-1};
|
||||||
@@ -70,4 +69,4 @@ class Module final {
|
|||||||
int pipe_from_module_[2] = {-1, -1};
|
int pipe_from_module_[2] = {-1, -1};
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace auth
|
} // namespace memgraph::auth
|
||||||
|
|||||||
19
src/common/types.hpp
Normal file
19
src/common/types.hpp
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
// Copyright 2022 Memgraph Ltd.
|
||||||
|
//
|
||||||
|
// Use of this software is governed by the Business Source License
|
||||||
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
|
// License, and you may not use this file except in compliance with the Business Source License.
|
||||||
|
//
|
||||||
|
// As of the Change Date specified in that file, in accordance with
|
||||||
|
// the Business Source License, use of this software will be governed
|
||||||
|
// by the Apache License, Version 2.0, included in the file
|
||||||
|
// licenses/APL.txt.
|
||||||
|
|
||||||
|
#pragma once
|
||||||
|
|
||||||
|
#include <cstdint>
|
||||||
|
|
||||||
|
namespace memgraph::common {
|
||||||
|
enum class SchemaType : uint8_t { BOOL, INT, STRING, DATE, LOCALTIME, LOCALDATETIME, DURATION };
|
||||||
|
|
||||||
|
} // namespace memgraph::common
|
||||||
@@ -2,6 +2,10 @@ find_package(fmt REQUIRED)
|
|||||||
find_package(gflags REQUIRED)
|
find_package(gflags REQUIRED)
|
||||||
|
|
||||||
set(communication_src_files
|
set(communication_src_files
|
||||||
|
websocket/auth.cpp
|
||||||
|
websocket/server.cpp
|
||||||
|
websocket/listener.cpp
|
||||||
|
websocket/session.cpp
|
||||||
bolt/v1/value.cpp
|
bolt/v1/value.cpp
|
||||||
buffer.cpp
|
buffer.cpp
|
||||||
client.cpp
|
client.cpp
|
||||||
@@ -9,8 +13,10 @@ set(communication_src_files
|
|||||||
helpers.cpp
|
helpers.cpp
|
||||||
init.cpp)
|
init.cpp)
|
||||||
|
|
||||||
|
find_package(Boost REQUIRED)
|
||||||
|
|
||||||
add_library(mg-communication STATIC ${communication_src_files})
|
add_library(mg-communication STATIC ${communication_src_files})
|
||||||
target_link_libraries(mg-communication Threads::Threads mg-utils mg-io fmt::fmt gflags)
|
target_link_libraries(mg-communication Boost::headers Threads::Threads mg-utils mg-io mg-auth fmt::fmt gflags)
|
||||||
|
|
||||||
find_package(OpenSSL REQUIRED)
|
find_package(OpenSSL REQUIRED)
|
||||||
target_link_libraries(mg-communication ${OPENSSL_LIBRARIES})
|
target_link_libraries(mg-communication ${OPENSSL_LIBRARIES})
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
#include "utils/exceptions.hpp"
|
#include "utils/exceptions.hpp"
|
||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/// This exception is thrown whenever an error occurs during query execution
|
/// This exception is thrown whenever an error occurs during query execution
|
||||||
/// that isn't fatal (eg. mistyped query or some transient error occurred).
|
/// that isn't fatal (eg. mistyped query or some transient error occurred).
|
||||||
@@ -315,4 +315,4 @@ class Client final {
|
|||||||
ChunkedEncoderBuffer<communication::ClientOutputStream> encoder_buffer_{output_stream_};
|
ChunkedEncoderBuffer<communication::ClientOutputStream> encoder_buffer_{output_stream_};
|
||||||
ClientEncoder<ChunkedEncoderBuffer<communication::ClientOutputStream>> encoder_{encoder_buffer_};
|
ClientEncoder<ChunkedEncoderBuffer<communication::ClientOutputStream>> encoder_{encoder_buffer_};
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -13,10 +13,10 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
static constexpr uint8_t kPreamble[4] = {0x60, 0x60, 0xB0, 0x17};
|
inline constexpr uint8_t kPreamble[4] = {0x60, 0x60, 0xB0, 0x17};
|
||||||
static constexpr uint8_t kProtocol[4] = {0x00, 0x00, 0x00, 0x01};
|
inline constexpr uint8_t kProtocol[4] = {0x00, 0x00, 0x00, 0x01};
|
||||||
|
|
||||||
enum class Signature : uint8_t {
|
enum class Signature : uint8_t {
|
||||||
Noop = 0x00,
|
Noop = 0x00,
|
||||||
@@ -95,9 +95,9 @@ enum class Marker : uint8_t {
|
|||||||
Struct16 = 0xDD,
|
Struct16 = 0xDD,
|
||||||
};
|
};
|
||||||
|
|
||||||
static constexpr uint8_t MarkerString = 0, MarkerList = 1, MarkerMap = 2;
|
inline constexpr uint8_t MarkerString = 0, MarkerList = 1, MarkerMap = 2;
|
||||||
static constexpr Marker MarkerTiny[3] = {Marker::TinyString, Marker::TinyList, Marker::TinyMap};
|
inline constexpr Marker MarkerTiny[3] = {Marker::TinyString, Marker::TinyList, Marker::TinyMap};
|
||||||
static constexpr Marker Marker8[3] = {Marker::String8, Marker::List8, Marker::Map8};
|
inline constexpr Marker Marker8[3] = {Marker::String8, Marker::List8, Marker::Map8};
|
||||||
static constexpr Marker Marker16[3] = {Marker::String16, Marker::List16, Marker::Map16};
|
inline constexpr Marker Marker16[3] = {Marker::String16, Marker::List16, Marker::Map16};
|
||||||
static constexpr Marker Marker32[3] = {Marker::String32, Marker::List32, Marker::Map32};
|
inline constexpr Marker Marker32[3] = {Marker::String32, Marker::List32, Marker::Map32};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -14,22 +14,22 @@
|
|||||||
#include <cstddef>
|
#include <cstddef>
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Sizes related to the chunk defined in Bolt protocol.
|
* Sizes related to the chunk defined in Bolt protocol.
|
||||||
*/
|
*/
|
||||||
static constexpr size_t kChunkHeaderSize = 2;
|
inline constexpr size_t kChunkHeaderSize = 2;
|
||||||
static constexpr size_t kChunkMaxDataSize = 65535;
|
inline constexpr size_t kChunkMaxDataSize = 65535;
|
||||||
static constexpr size_t kChunkWholeSize = kChunkHeaderSize + kChunkMaxDataSize;
|
inline constexpr size_t kChunkWholeSize = kChunkHeaderSize + kChunkMaxDataSize;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Handshake size defined in the Bolt protocol.
|
* Handshake size defined in the Bolt protocol.
|
||||||
*/
|
*/
|
||||||
static constexpr size_t kHandshakeSize = 20;
|
inline constexpr size_t kHandshakeSize = 20;
|
||||||
|
|
||||||
static constexpr uint16_t kSupportedVersions[] = {0x0100, 0x0400, 0x0401, 0x0403};
|
inline constexpr uint16_t kSupportedVersions[] = {0x0100, 0x0400, 0x0401, 0x0403};
|
||||||
|
|
||||||
static constexpr int kPullAll = -1;
|
inline constexpr int kPullAll = -1;
|
||||||
static constexpr int kPullLast = -1;
|
inline constexpr int kPullLast = -1;
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
|
|
||||||
#include "communication/bolt/v1/constants.hpp"
|
#include "communication/bolt/v1/constants.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class is used as the return value of the GetChunk function of the
|
* This class is used as the return value of the GetChunk function of the
|
||||||
@@ -136,4 +136,4 @@ class ChunkedDecoderBuffer {
|
|||||||
std::vector<uint8_t> data_;
|
std::vector<uint8_t> data_;
|
||||||
size_t pos_{0};
|
size_t pos_{0};
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
#include "utils/temporal.hpp"
|
#include "utils/temporal.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bolt Decoder.
|
* Bolt Decoder.
|
||||||
@@ -591,4 +591,4 @@ class Decoder {
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -22,7 +22,7 @@ static_assert(std::is_same_v<std::uint8_t, char> || std::is_same_v<std::uint8_t,
|
|||||||
"communication::bolt::Encoder requires uint8_t to be "
|
"communication::bolt::Encoder requires uint8_t to be "
|
||||||
"implemented as char or unsigned char.");
|
"implemented as char or unsigned char.");
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bolt BaseEncoder. Has public interfaces for writing Bolt encoded data.
|
* Bolt BaseEncoder. Has public interfaces for writing Bolt encoded data.
|
||||||
@@ -273,4 +273,4 @@ class BaseEncoder {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
|
|
||||||
#include "communication/bolt/v1/constants.hpp"
|
#include "communication/bolt/v1/constants.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief ChunkedEncoderBuffer
|
* @brief ChunkedEncoderBuffer
|
||||||
@@ -123,4 +123,4 @@ class ChunkedEncoderBuffer {
|
|||||||
// Amount of data in chunk array.
|
// Amount of data in chunk array.
|
||||||
size_t have_{0};
|
size_t have_{0};
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "communication/bolt/v1/codes.hpp"
|
#include "communication/bolt/v1/codes.hpp"
|
||||||
#include "communication/bolt/v1/encoder/base_encoder.hpp"
|
#include "communication/bolt/v1/encoder/base_encoder.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bolt Client Encoder.
|
* Bolt Client Encoder.
|
||||||
@@ -169,4 +169,4 @@ class ClientEncoder : private BaseEncoder<Buffer> {
|
|||||||
return buffer_.Flush();
|
return buffer_.Flush();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -14,7 +14,7 @@
|
|||||||
#include "communication/bolt/v1/codes.hpp"
|
#include "communication/bolt/v1/codes.hpp"
|
||||||
#include "communication/bolt/v1/encoder/base_encoder.hpp"
|
#include "communication/bolt/v1/encoder/base_encoder.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bolt Encoder.
|
* Bolt Encoder.
|
||||||
@@ -158,4 +158,4 @@ class Encoder : private BaseEncoder<Buffer> {
|
|||||||
return buffer_.Flush();
|
return buffer_.Flush();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
#include "utils/exceptions.hpp"
|
#include "utils/exceptions.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Used to indicate something is wrong with the client but the transaction is
|
* Used to indicate something is wrong with the client but the transaction is
|
||||||
@@ -83,4 +83,4 @@ class VerboseError : public utils::BasicException {
|
|||||||
std::string code_;
|
std::string code_;
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -27,7 +27,7 @@
|
|||||||
#include "utils/exceptions.hpp"
|
#include "utils/exceptions.hpp"
|
||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Bolt Session Exception
|
* Bolt Session Exception
|
||||||
@@ -195,4 +195,4 @@ class Session {
|
|||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
|
|
||||||
#include <cstdint>
|
#include <cstdint>
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This class represents states in execution of the Bolt protocol.
|
* This class represents states in execution of the Bolt protocol.
|
||||||
@@ -55,4 +55,4 @@ enum class State : uint8_t {
|
|||||||
*/
|
*/
|
||||||
Close
|
Close
|
||||||
};
|
};
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -20,7 +20,7 @@
|
|||||||
#include "utils/likely.hpp"
|
#include "utils/likely.hpp"
|
||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Error state run function
|
* Error state run function
|
||||||
@@ -95,4 +95,4 @@ State StateErrorRun(TSession &session, State state) {
|
|||||||
return state;
|
return state;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -26,7 +26,7 @@
|
|||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
#include "utils/message.hpp"
|
#include "utils/message.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
template <typename TSession>
|
template <typename TSession>
|
||||||
State RunHandlerV1(Signature signature, TSession &session, State state, Marker marker) {
|
State RunHandlerV1(Signature signature, TSession &session, State state, Marker marker) {
|
||||||
@@ -118,4 +118,4 @@ State StateExecutingRun(TSession &session, State state) {
|
|||||||
return State::Close;
|
return State::Close;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -24,7 +24,7 @@
|
|||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
#include "utils/message.hpp"
|
#include "utils/message.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
// TODO: Revise these error messages
|
// TODO: Revise these error messages
|
||||||
inline std::pair<std::string, std::string> ExceptionToErrorMessage(const std::exception &e) {
|
inline std::pair<std::string, std::string> ExceptionToErrorMessage(const std::exception &e) {
|
||||||
if (const auto *verbose = dynamic_cast<const VerboseError *>(&e)) {
|
if (const auto *verbose = dynamic_cast<const VerboseError *>(&e)) {
|
||||||
@@ -415,4 +415,4 @@ State HandleRoute(TSession &session) {
|
|||||||
}
|
}
|
||||||
return State::Error;
|
return State::Error;
|
||||||
}
|
}
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -22,7 +22,7 @@
|
|||||||
#include "utils/likely.hpp"
|
#include "utils/likely.hpp"
|
||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
inline bool CopyProtocolInformationIfSupported(uint16_t version, uint8_t *protocol) {
|
inline bool CopyProtocolInformationIfSupported(uint16_t version, uint8_t *protocol) {
|
||||||
const auto *supported_version = std::find(std::begin(kSupportedVersions), std::end(kSupportedVersions), version);
|
const auto *supported_version = std::find(std::begin(kSupportedVersions), std::end(kSupportedVersions), version);
|
||||||
@@ -110,4 +110,4 @@ State StateHandshakeRun(TSession &session) {
|
|||||||
|
|
||||||
return State::Init;
|
return State::Init;
|
||||||
}
|
}
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
// Copyright 2021 Memgraph Ltd.
|
// Copyright 2022 Memgraph Ltd.
|
||||||
//
|
//
|
||||||
// Use of this software is governed by the Business Source License
|
// Use of this software is governed by the Business Source License
|
||||||
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
// included in the file licenses/BSL.txt; by using this file, you agree to be bound by the terms of the Business Source
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
#include "utils/likely.hpp"
|
#include "utils/likely.hpp"
|
||||||
#include "utils/logging.hpp"
|
#include "utils/logging.hpp"
|
||||||
|
|
||||||
namespace communication::bolt {
|
namespace memgraph::communication::bolt {
|
||||||
|
|
||||||
namespace details {
|
namespace details {
|
||||||
template <typename TSession>
|
template <typename TSession>
|
||||||
@@ -212,4 +212,4 @@ State StateInitRun(TSession &session) {
|
|||||||
spdlog::trace("Unsupported bolt version:{}.{})!", session.version_.major, session.version_.minor);
|
spdlog::trace("Unsupported bolt version:{}.{})!", session.version_.major, session.version_.minor);
|
||||||
return State::Close;
|
return State::Close;
|
||||||
}
|
}
|
||||||
} // namespace communication::bolt
|
} // namespace memgraph::communication::bolt
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user