Compare commits
951 Commits
T1813-CL-r
...
add-gnuplo
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
2f81d4d092 | ||
|
|
27d99b620d | ||
|
|
a2ce9c4396 | ||
|
|
3b0d531343 | ||
|
|
a17010ed16 | ||
|
|
74f53369c0 | ||
|
|
2b3141879b | ||
|
|
53f95ed1a7 | ||
|
|
b678e6a63b | ||
|
|
563035645c | ||
|
|
12bc78ca2d | ||
|
|
a9a388ce44 | ||
|
|
6bc2e6d8b6 | ||
|
|
a02abc8f79 | ||
|
|
096d1ce5f4 | ||
|
|
657279949a | ||
|
|
25226cca92 | ||
|
|
292a55f4ff | ||
|
|
37f19867b0 | ||
|
|
b26c7d09ef | ||
|
|
4bad8c0d1e | ||
|
|
2b01f2280c | ||
|
|
ac59e7f7e0 | ||
|
|
7e99f32adb | ||
|
|
a1a612899c | ||
|
|
2219dee6f6 | ||
|
|
7bf8550c86 | ||
|
|
8b392ecc97 | ||
|
|
8e315875f2 | ||
|
|
41183b328b | ||
|
|
c9a0c15c16 | ||
|
|
50327254e0 | ||
|
|
24ae6069f0 | ||
|
|
7be66f0c54 | ||
|
|
b136cd71d2 | ||
|
|
a38401130e | ||
|
|
bf93b53e7d | ||
|
|
4be4a86d0a | ||
|
|
9a805bff8b | ||
|
|
7d63236f87 | ||
|
|
4f8c241934 | ||
|
|
60b71cc2c1 | ||
|
|
da28a29c7f | ||
|
|
303362d41c | ||
|
|
272e710510 | ||
|
|
0e3229756f | ||
|
|
e96eed81b1 | ||
|
|
7fa7586940 | ||
|
|
436e41f71f | ||
|
|
fd047e7303 | ||
|
|
9214c715e2 | ||
|
|
44fc2d01c7 | ||
|
|
d36c0cc424 | ||
|
|
2ecf580ae7 | ||
|
|
c12a5a9019 | ||
|
|
883922dba5 | ||
|
|
c7591887a8 | ||
|
|
33454c7d8e | ||
|
|
f67422f8b9 | ||
|
|
23297c2afb | ||
|
|
3d35a10783 | ||
|
|
999015a250 | ||
|
|
7d3d52c067 | ||
|
|
6d4401dc92 | ||
|
|
0d00ae74dd | ||
|
|
16b78e4eb3 | ||
|
|
d44910bc9a | ||
|
|
54c1efab7f | ||
|
|
7a0c9beba5 | ||
|
|
e13faf41e9 | ||
|
|
e24a6a86e4 | ||
|
|
3bc9c571a0 | ||
|
|
7972b3af43 | ||
|
|
e2a1029120 | ||
|
|
7cb07672ff | ||
|
|
36fccc32c2 | ||
|
|
4908af5a18 | ||
|
|
fa8eee2043 | ||
|
|
b4ae8aea95 | ||
|
|
27ff18733c | ||
|
|
0aa7daf002 | ||
|
|
b341a8d7dd | ||
|
|
b7dbc7267b | ||
|
|
1951d781d0 | ||
|
|
e65f585fc6 | ||
|
|
fa86d4c989 | ||
|
|
fcbacdc80d | ||
|
|
69fa4e8c8d | ||
|
|
ea646e1803 | ||
|
|
89d26c36c9 | ||
|
|
cf76e0e19b | ||
|
|
900ece8109 | ||
|
|
544c75c212 | ||
|
|
0285b56915 | ||
|
|
515a52130e | ||
|
|
55b5d76092 | ||
|
|
0eee3ad7b7 | ||
|
|
c9299a6c72 | ||
|
|
de99025c39 | ||
|
|
be39fac72e | ||
|
|
5eea3ceee4 | ||
|
|
cc643aac69 | ||
|
|
e7f10ec8f4 | ||
|
|
6fe244b209 | ||
|
|
ede6281e00 | ||
|
|
70c8ed9180 | ||
|
|
59b39e03cb | ||
|
|
96ea113a69 | ||
|
|
a31c7cce08 | ||
|
|
8f6fac3cde | ||
|
|
a0ada914ab | ||
|
|
ca62fa5123 | ||
|
|
d1548c9253 | ||
|
|
52baaf8030 | ||
|
|
a0274bbdd9 | ||
|
|
c5c6fd9b86 | ||
|
|
586999475b | ||
|
|
e888464de2 | ||
|
|
94a536a2b9 | ||
|
|
e42c60d555 | ||
|
|
00d6b42c37 | ||
|
|
f39a937323 | ||
|
|
575361827e | ||
|
|
901da4c9b3 | ||
|
|
81675106fd | ||
|
|
7fb828bca3 | ||
|
|
c04cfc5596 | ||
|
|
a3b1676c42 | ||
|
|
b38a9b9c90 | ||
|
|
57690c5390 | ||
|
|
d11d5c3fa9 | ||
|
|
36891c119b | ||
|
|
b91b16de96 | ||
|
|
cfdc728d64 | ||
|
|
40835b8c9c | ||
|
|
d1fe73c987 | ||
|
|
3257d46d18 | ||
|
|
9be5ee1ae9 | ||
|
|
fdd89e0e81 | ||
|
|
82203fa1ca | ||
|
|
775e950dba | ||
|
|
920ad277a5 | ||
|
|
392f6e2b73 | ||
|
|
e40f7f507b | ||
|
|
c139856b2a | ||
|
|
b30137ab7a | ||
|
|
b2b9b1d5cb | ||
|
|
ace1eb401f | ||
|
|
668f7857b1 | ||
|
|
d22c962af4 | ||
|
|
4c25a4dfbd | ||
|
|
61d84bd622 | ||
|
|
3b06db5a02 | ||
|
|
afde0c6926 | ||
|
|
41bb988fe9 | ||
|
|
d7bd2cc754 | ||
|
|
599b133a55 | ||
|
|
c38a80ccd7 | ||
|
|
dee33b2072 | ||
|
|
c283c6e6ea | ||
|
|
65113bc55b | ||
|
|
32ea124d4b | ||
|
|
68175bc97c | ||
|
|
9589dd97b6 | ||
|
|
41f5c00f5f | ||
|
|
e82955895a | ||
|
|
751c27f792 | ||
|
|
7e217e94b3 | ||
|
|
1ebde8be74 | ||
|
|
32231fe49a | ||
|
|
fa39c6740b | ||
|
|
1aa40e5e3f | ||
|
|
ae57fa3199 | ||
|
|
a0e0791aa1 | ||
|
|
311994a36d | ||
|
|
54ce79baa0 | ||
|
|
83306d21de | ||
|
|
ac16348fff | ||
|
|
af812d1311 | ||
|
|
f36b96744c | ||
|
|
14000d727f | ||
|
|
a9eca651df | ||
|
|
3604046f68 | ||
|
|
817433d342 | ||
|
|
76dcf3ad0f | ||
|
|
04450dada7 | ||
|
|
8c2b2f4be2 | ||
|
|
70200919cd | ||
|
|
f04ed3c137 | ||
|
|
2e4e975102 | ||
|
|
c24c699c78 | ||
|
|
070225df28 | ||
|
|
1170e6762f | ||
|
|
d6f1505582 | ||
|
|
edb122cb33 | ||
|
|
b0c4544287 | ||
|
|
0d856bee45 | ||
|
|
c3e19498da | ||
|
|
03d994318e | ||
|
|
4888605972 | ||
|
|
a90a2d86c9 | ||
|
|
0cf440519e | ||
|
|
9c41e702e6 | ||
|
|
50f76b926b | ||
|
|
0353262cc2 | ||
|
|
4ed20f0247 | ||
|
|
50fb8fe3c7 | ||
|
|
32322d39b8 | ||
|
|
89f42ef73e | ||
|
|
0d19d347f8 | ||
|
|
a5520f5eae | ||
|
|
eb154d1310 | ||
|
|
59c94c90e6 | ||
|
|
a7f5212c6e | ||
|
|
b4d6ca2233 | ||
|
|
5d3d67cbd0 | ||
|
|
675c2fe24a | ||
|
|
b288f06cb7 | ||
|
|
5beb7c0966 | ||
|
|
e0b7d7abeb | ||
|
|
9bab26fb10 | ||
|
|
c39f264684 | ||
|
|
2488895362 | ||
|
|
a20edf2b74 | ||
|
|
25713405df | ||
|
|
2a81ce5640 | ||
|
|
747b8a21cd | ||
|
|
65e9ceb779 | ||
|
|
6338690b00 | ||
|
|
ca3f748325 | ||
|
|
1b458ebc41 | ||
|
|
6efe074313 | ||
|
|
3c72af0c10 | ||
|
|
6d3f9ab695 | ||
|
|
e8240df29e | ||
|
|
ec73ee666c | ||
|
|
1d7f61dd0b | ||
|
|
7f9eceadb3 | ||
|
|
f4428af210 | ||
|
|
9f5af97044 | ||
|
|
c7c0234889 | ||
|
|
68ae729b07 | ||
|
|
2e33f8275b | ||
|
|
9a62503803 | ||
|
|
75b598d014 | ||
|
|
98ae30d861 | ||
|
|
6b8a5fd41d | ||
|
|
4a3f950cf9 | ||
|
|
146ed5756c | ||
|
|
438b519703 | ||
|
|
0ad702175f | ||
|
|
be3797e0a1 | ||
|
|
cdde7ca670 | ||
|
|
d0e1d86df3 | ||
|
|
366a4e2b9a | ||
|
|
439eae3a72 | ||
|
|
c15e75b48c | ||
|
|
2120645d6a | ||
|
|
616b79ce6c | ||
|
|
13cabcaab5 | ||
|
|
f1ea76a3d7 | ||
|
|
18b3c1e8b1 | ||
|
|
db45845619 | ||
|
|
4bbf3c95ca | ||
|
|
e11856acf8 | ||
|
|
5cd0d5137e | ||
|
|
8eec8399a3 | ||
|
|
d18d4f198e | ||
|
|
29347c83e7 | ||
|
|
452722f4f8 | ||
|
|
730bac6b74 | ||
|
|
6c441b80ec | ||
|
|
ee9ba1a7f8 | ||
|
|
d0c960e900 | ||
|
|
00fd69c170 | ||
|
|
54907d2a1a | ||
|
|
23bfd7f4fc | ||
|
|
f8cbaaf362 | ||
|
|
4e7d8c3ba2 | ||
|
|
e5d892683c | ||
|
|
d4bdedd9e8 | ||
|
|
9f9a81455f | ||
|
|
b0b8c0a5c9 | ||
|
|
8af635c8d7 | ||
|
|
5e64b19745 | ||
|
|
38f3a4cacb | ||
|
|
3f3d6c52a3 | ||
|
|
94ef57c459 | ||
|
|
56556f7c2d | ||
|
|
a2027fc6ac | ||
|
|
deb31e4b77 | ||
|
|
072bc58b1e | ||
|
|
31f907cb53 | ||
|
|
9af20c295c | ||
|
|
969b8f0da7 | ||
|
|
55008a2927 | ||
|
|
494f6ac25f | ||
|
|
02ca6734c1 | ||
|
|
976e6ff0a6 | ||
|
|
9621532d3d | ||
|
|
7e8b4921b4 | ||
|
|
a10c254caa | ||
|
|
9c0c0a2d1c | ||
|
|
0450163c5e | ||
|
|
62ee6f0e05 | ||
|
|
00a4127e4e | ||
|
|
53040c6758 | ||
|
|
04124a1e9b | ||
|
|
f107ef8aea | ||
|
|
b3605c9ab1 | ||
|
|
7df3a743b9 | ||
|
|
f8215306e8 | ||
|
|
8f08d986cb | ||
|
|
cc3bcf1dc2 | ||
|
|
9144d2dccd | ||
|
|
9faa206f95 | ||
|
|
1b97bb0856 | ||
|
|
f54701cc96 | ||
|
|
1f98d33fa6 | ||
|
|
86f7b82bdc | ||
|
|
8c5edaaeb9 | ||
|
|
632db4175a | ||
|
|
3c0e38aacb | ||
|
|
aace5db8cc | ||
|
|
bc32a3d305 | ||
|
|
cead1bcb21 | ||
|
|
ec529da8d2 | ||
|
|
ce5f1c2f17 | ||
|
|
1b77e029ca | ||
|
|
16c30d61aa | ||
|
|
b8de2c9c7a | ||
|
|
cd0aaeb5e9 | ||
|
|
cf388d80fc | ||
|
|
a308ee501a | ||
|
|
884831ece5 | ||
|
|
aa7d362296 | ||
|
|
e946eb50d2 | ||
|
|
8f19ce88d9 | ||
|
|
7c37ed2313 | ||
|
|
11119e5406 | ||
|
|
7d52eedb21 | ||
|
|
4f18fa7431 | ||
|
|
9f10c3ea06 | ||
|
|
18b3550dbe | ||
|
|
b244c4d6ee | ||
|
|
4dc639a05a | ||
|
|
50df0d4d53 | ||
|
|
5f5d839f0c | ||
|
|
22e3164e60 | ||
|
|
8fd7327fbd | ||
|
|
500691318a | ||
|
|
9fc7f9dced | ||
|
|
82db1d4ad8 | ||
|
|
ed0b67dfdb | ||
|
|
0f34c49e21 | ||
|
|
f4d0c7769e | ||
|
|
6d3c04bd61 | ||
|
|
a8dc6fd41e | ||
|
|
de84d4d6ea | ||
|
|
36a7abb170 | ||
|
|
41b06a0a37 | ||
|
|
cceab46a7c | ||
|
|
243fa5e4b2 | ||
|
|
0220e9b4f7 | ||
|
|
6f4996de0e | ||
|
|
01d5953bb6 | ||
|
|
6b64fd5ce5 | ||
|
|
c5138c8d58 | ||
|
|
8fe1b8d7fc | ||
|
|
7a3caa320c | ||
|
|
07a8ac0db8 | ||
|
|
3b798ab313 | ||
|
|
d44c1836c7 | ||
|
|
c4327cfb00 | ||
|
|
a65ea4fe01 | ||
|
|
d820d0a9e5 | ||
|
|
7aa68164f0 | ||
|
|
d6b444c38b | ||
|
|
c647134916 | ||
|
|
b3eec92525 | ||
|
|
1b73ca4860 | ||
|
|
ab5fc05fd7 | ||
|
|
814c5eb397 | ||
|
|
e77843f2ec | ||
|
|
40e145e7d0 | ||
|
|
2ff81ebf04 | ||
|
|
c3c68cc2ce | ||
|
|
6d86801be0 | ||
|
|
407418e8f5 | ||
|
|
6d544e4fc0 | ||
|
|
56e2ad4546 | ||
|
|
9b19dd57d3 | ||
|
|
5045323b1d | ||
|
|
aa146d28f8 | ||
|
|
1cd10ab409 | ||
|
|
36390608aa | ||
|
|
e565fc6e3a | ||
|
|
ce0f1a09f7 | ||
|
|
accf015dcf | ||
|
|
84800cff76 | ||
|
|
9fade5ebac | ||
|
|
75606dfeb0 | ||
|
|
9c36d8928a | ||
|
|
d926c4c4a4 | ||
|
|
9ec72bd969 | ||
|
|
85034ddcbe | ||
|
|
ea533f43fc | ||
|
|
e0086e5666 | ||
|
|
c0a103e851 | ||
|
|
3a171376d7 | ||
|
|
cd7b33f23f | ||
|
|
d82cfb349e | ||
|
|
6801d6ff09 | ||
|
|
f1e360469a | ||
|
|
307cce9e21 | ||
|
|
662fa2e6d2 | ||
|
|
c0cb53e156 | ||
|
|
742017548f | ||
|
|
bbbd722eeb | ||
|
|
f463d9f59f | ||
|
|
a6f3937692 | ||
|
|
5717dfb165 | ||
|
|
1101c2444c | ||
|
|
2a6dc7bb93 | ||
|
|
d080e260e6 | ||
|
|
37f5fb29ea | ||
|
|
c8c72de6ac | ||
|
|
0b19b62b12 | ||
|
|
bffef1a653 | ||
|
|
66f39f2681 | ||
|
|
081c3e5bed | ||
|
|
ce8bc522d0 | ||
|
|
0f66ae31dd | ||
|
|
e9e42a0614 | ||
|
|
1a67dec302 | ||
|
|
4eb673c7b9 | ||
|
|
71dcba331e | ||
|
|
e43f4e2181 | ||
|
|
b2050d55ce | ||
|
|
2fc1aeb087 | ||
|
|
86e5b44c1c | ||
|
|
1b0db5289d | ||
|
|
45badbe21f | ||
|
|
04420a84c7 | ||
|
|
ce45a548c7 | ||
|
|
3ad8489735 | ||
|
|
7115a7e75b | ||
|
|
0f32407bdc | ||
|
|
a37e7e4aff | ||
|
|
6b9a617df0 | ||
|
|
923325b8fa | ||
|
|
f6017697d6 | ||
|
|
9c3d683942 | ||
|
|
cf73ed529d | ||
|
|
262df5c6a2 | ||
|
|
098084314e | ||
|
|
12880fc71a | ||
|
|
80d6776210 | ||
|
|
3840c14846 | ||
|
|
fe03f5b206 | ||
|
|
5f88e75571 | ||
|
|
27495ef43a | ||
|
|
a499bf6dfd | ||
|
|
49652d0a61 | ||
|
|
6e44c2295d | ||
|
|
d482f7da90 | ||
|
|
77ab07d991 | ||
|
|
38b0b308ce | ||
|
|
2f55491271 | ||
|
|
68e51e73ba | ||
|
|
a17a6aea5a | ||
|
|
ec4804b72a | ||
|
|
e98ef634de | ||
|
|
c4e22ffde3 | ||
|
|
b3ef0ccd71 | ||
|
|
15fc3c0834 | ||
|
|
9261fabe60 | ||
|
|
7bdcd8f9f4 | ||
|
|
bd11225d23 | ||
|
|
1f159b5a80 | ||
|
|
14ddd7254d | ||
|
|
8629ee5ebc | ||
|
|
1c94c59a24 | ||
|
|
631d18465b | ||
|
|
3f97a13493 | ||
|
|
5656a24c96 | ||
|
|
9c05910e68 | ||
|
|
3d66bbd988 | ||
|
|
07032887a4 | ||
|
|
9e81fe791c | ||
|
|
cca4e97bcf | ||
|
|
213583f916 | ||
|
|
94bc671551 | ||
|
|
02ef954e51 | ||
|
|
131d7f2a74 | ||
|
|
618237cc96 | ||
|
|
ef755e466c | ||
|
|
a9c5d40721 | ||
|
|
b4c24f4506 | ||
|
|
0462b8fc8f | ||
|
|
6eabceca4a | ||
|
|
2045f54577 | ||
|
|
18009c06b6 | ||
|
|
db7b2aa59a | ||
|
|
5c0e41ed44 | ||
|
|
12e9c1a739 | ||
|
|
a030419565 | ||
|
|
6df2db0d19 | ||
|
|
968584a8fc | ||
|
|
8636788ab2 | ||
|
|
691f6af36d | ||
|
|
23f1536eac | ||
|
|
33add3ecd0 | ||
|
|
91b5092c71 | ||
|
|
c0f576c187 | ||
|
|
a2735c8953 | ||
|
|
51fb4a6e7a | ||
|
|
cba183898a | ||
|
|
5f5fe7eb29 | ||
|
|
2087877df2 | ||
|
|
efa4378fb4 | ||
|
|
cad0e80d00 | ||
|
|
3c07a5dc04 | ||
|
|
e442963466 | ||
|
|
32fe4d94d9 | ||
|
|
94b66a4e81 | ||
|
|
b2f3fab693 | ||
|
|
d7ce7cea13 | ||
|
|
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 | ||
|
|
0ff389ffc4 | ||
|
|
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 | ||
|
|
b2e9717ec3 | ||
|
|
e0f6c951c1 | ||
|
|
7e35c71c58 | ||
|
|
b6814b7a49 | ||
|
|
903e29a081 | ||
|
|
1c17692a26 | ||
|
|
34fbaa0aee | ||
|
|
476e2670d5 | ||
|
|
be7aa55686 | ||
|
|
46388ad35c | ||
|
|
0d5ee49e19 | ||
|
|
74181114c2 | ||
|
|
009c1b4074 | ||
|
|
d0b8b27c29 | ||
|
|
79c2ae206f | ||
|
|
6b0168cb3d | ||
|
|
03cf264b76 | ||
|
|
9448e23dc9 | ||
|
|
fa6129dc2b | ||
|
|
eafccaea84 | ||
|
|
0c4f591b3c | ||
|
|
aeed7c32f9 | ||
|
|
534e365271 | ||
|
|
281ae158ec | ||
|
|
39c9c215b1 | ||
|
|
f6e78ce6da | ||
|
|
8e7118efde | ||
|
|
3cf79f5bbf | ||
|
|
6a31c49432 | ||
|
|
fea92f4829 | ||
|
|
1703cd039d | ||
|
|
ca2351124b | ||
|
|
5784c0d473 | ||
|
|
8ebc704819 | ||
|
|
5939fb2b0c | ||
|
|
ee64684b0b | ||
|
|
1e4c02f8a5 | ||
|
|
8353228ba7 | ||
|
|
cdab8828e4 | ||
|
|
c1d0fddaac | ||
|
|
18423ce34d | ||
|
|
b4f68e7a60 | ||
|
|
e901c1fdb7 | ||
|
|
016b3ee0d2 | ||
|
|
332afadf21 | ||
|
|
acc655f4fd | ||
|
|
862af55266 | ||
|
|
33c9ccee66 | ||
|
|
8b9e7e2c65 | ||
|
|
51e6802aa7 | ||
|
|
386a0c5686 | ||
|
|
994aab8774 | ||
|
|
8112957a35 | ||
|
|
b82e8748ad | ||
|
|
cb00b43ca7 | ||
|
|
55e0dbca80 | ||
|
|
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 | ||
|
|
ced84e17b6 | ||
|
|
834ce5f51a | ||
|
|
bb1308acc7 | ||
|
|
e1f31d3d02 | ||
|
|
339cd9b84e | ||
|
|
7deac4ac8b | ||
|
|
fec887a67c | ||
|
|
f3a3a4ed87 | ||
|
|
ec65187442 | ||
|
|
079c0495c3 | ||
|
|
90cfed2ada | ||
|
|
8716b8e992 | ||
|
|
a277541354 | ||
|
|
b01564f179 | ||
|
|
d9bb4e2e46 | ||
|
|
05d0aee494 | ||
|
|
aabec99a8e | ||
|
|
d277dd49a3 | ||
|
|
18f9d19b18 | ||
|
|
530eed5c6d | ||
|
|
12f4e0068a | ||
|
|
e8976e0f1c | ||
|
|
6eb52581eb | ||
|
|
8606e69fd6 | ||
|
|
c7b045bffc | ||
|
|
b66cc66503 | ||
|
|
0e4719018a | ||
|
|
0ebd52aac3 | ||
|
|
6c971b856e | ||
|
|
6cb293688d | ||
|
|
16709dff6c | ||
|
|
95dd3481c0 | ||
|
|
47c0c629c7 | ||
|
|
636c551047 | ||
|
|
72384b2b71 | ||
|
|
a9b1ff9bea | ||
|
|
e40bc32624 | ||
|
|
bd21bc82b7 | ||
|
|
9c1680e82c | ||
|
|
1a78c3695d | ||
|
|
10196f3d7d | ||
|
|
2c86fefbb5 | ||
|
|
df689dccd5 | ||
|
|
6033fbe9bd | ||
|
|
519a204424 | ||
|
|
3fc5e57fef | ||
|
|
906933d2b3 | ||
|
|
e9a937ad6d | ||
|
|
6dc2cdfae4 | ||
|
|
69ea410406 | ||
|
|
24a576c8e9 | ||
|
|
d417ffee6e | ||
|
|
f868b51483 | ||
|
|
26dc73c809 | ||
|
|
9119c89eba | ||
|
|
4e7ea34ae9 | ||
|
|
d7d291217b | ||
|
|
42facfacbc | ||
|
|
bd1e848363 | ||
|
|
0ffb58b764 | ||
|
|
9551b6973a | ||
|
|
f7ef5f50a4 | ||
|
|
046cd80054 | ||
|
|
9e678f8cbe | ||
|
|
69e4f1784b | ||
|
|
d04e23805d | ||
|
|
7e82cc6550 | ||
|
|
18b801a722 | ||
|
|
7e81a95b81 | ||
|
|
0a23eb11ae | ||
|
|
8ea281649a | ||
|
|
da68f86fc9 | ||
|
|
738b5fb8d8 | ||
|
|
b45ae403e6 | ||
|
|
d744711e5e | ||
|
|
8d87e38c64 | ||
|
|
086fc47769 | ||
|
|
5abcb5081d | ||
|
|
9534dfb6ed | ||
|
|
e2112faff0 | ||
|
|
6913feacc7 | ||
|
|
4e604de9d7 | ||
|
|
e628b5ba6e | ||
|
|
5da32c1bff | ||
|
|
ccca46370d | ||
|
|
e33fa5f9c0 | ||
|
|
721eefe263 | ||
|
|
be9ed7e879 | ||
|
|
482798295e | ||
|
|
d58a1cbb58 | ||
|
|
8dc3153fde | ||
|
|
b94e50bf1c | ||
|
|
9f855676cb |
11
.clang-tidy
11
.clang-tidy
@@ -1,8 +1,12 @@
|
|||||||
---
|
---
|
||||||
Checks: '*,
|
Checks: '*,
|
||||||
|
-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,
|
||||||
@@ -46,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,
|
||||||
@@ -57,7 +62,10 @@ Checks: '*,
|
|||||||
-readability-implicit-bool-conversion,
|
-readability-implicit-bool-conversion,
|
||||||
-readability-magic-numbers,
|
-readability-magic-numbers,
|
||||||
-readability-named-parameter,
|
-readability-named-parameter,
|
||||||
-misc-no-recursion'
|
-misc-no-recursion,
|
||||||
|
-concurrency-mt-unsafe,
|
||||||
|
-bugprone-easily-swappable-parameters'
|
||||||
|
|
||||||
WarningsAsErrors: ''
|
WarningsAsErrors: ''
|
||||||
HeaderFilterRegex: 'src/.*'
|
HeaderFilterRegex: 'src/.*'
|
||||||
AnalyzeTemporaryDtors: false
|
AnalyzeTemporaryDtors: false
|
||||||
@@ -84,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,13 +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
|
echo "Running header checker..."
|
||||||
code=$?
|
$project_folder/tools/header-checker.py $tmpdir/$file $file --amend-year
|
||||||
|
CODE=$?
|
||||||
if [ $code -ne 0 ]; then
|
if [ $CODE -ne 0 ]; then
|
||||||
break
|
FAIL=1
|
||||||
fi
|
fi
|
||||||
done;
|
done;
|
||||||
|
|
||||||
return $code
|
return ${FAIL}
|
||||||
|
|||||||
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
34
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
---
|
||||||
|
name: Bug report
|
||||||
|
about: Create a report to help us improve
|
||||||
|
title: "[BUG] "
|
||||||
|
labels: bug
|
||||||
|
assignees: gitbuda, antonio2368
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
||||||
|
**Memgraph version**
|
||||||
|
Which version did you use?
|
||||||
|
|
||||||
|
**Environment**
|
||||||
|
Some information about the environment you are using Memgraph on: operating
|
||||||
|
system, how do you connect, with or without docker, which driver etc.
|
||||||
|
|
||||||
|
**Describe the bug**
|
||||||
|
A clear and concise description of what the bug is.
|
||||||
|
|
||||||
|
**To Reproduce**
|
||||||
|
Steps to reproduce the behavior:
|
||||||
|
1. Run the following query '...'
|
||||||
|
2. Click on '....'
|
||||||
|
|
||||||
|
**Expected behavior**
|
||||||
|
A clear and concise description of what you expected to happen.
|
||||||
|
|
||||||
|
**Logs**
|
||||||
|
If applicable, add logs of Memgraph, CLI output or screenshots to help explain
|
||||||
|
your problem.
|
||||||
|
|
||||||
|
**Additional context**
|
||||||
|
Add any other context about the problem here.
|
||||||
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
|
||||||
|
|||||||
@@ -11,10 +11,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Diff, Gen7]
|
runs-on: [self-hosted, Linux, X64, Diff, Gen7]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -23,7 +25,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -40,6 +42,16 @@ jobs:
|
|||||||
--groups aggregation 1000_create unwind_create dense_expand match \
|
--groups aggregation 1000_create unwind_create dense_expand match \
|
||||||
--no-strict
|
--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
|
- name: Upload macro benchmark results
|
||||||
run: |
|
run: |
|
||||||
cd tools/bench-graph-client
|
cd tools/bench-graph-client
|
||||||
@@ -49,7 +61,8 @@ jobs:
|
|||||||
./main.py --benchmark-name "macro_benchmark" \
|
./main.py --benchmark-name "macro_benchmark" \
|
||||||
--benchmark-results-path "../../tests/macro_benchmark/.harness_summary" \
|
--benchmark-results-path "../../tests/macro_benchmark/.harness_summary" \
|
||||||
--github-run-id "${{ github.run_id }}" \
|
--github-run-id "${{ github.run_id }}" \
|
||||||
--github-run-number "${{ github.run_number }}"
|
--github-run-number "${{ github.run_number }}" \
|
||||||
|
--head-branch-name "${{ env.BRANCH_NAME }}"
|
||||||
|
|
||||||
- name: Run mgbench
|
- name: Run mgbench
|
||||||
run: |
|
run: |
|
||||||
@@ -65,4 +78,5 @@ jobs:
|
|||||||
./main.py --benchmark-name "mgbench" \
|
./main.py --benchmark-name "mgbench" \
|
||||||
--benchmark-results-path "../../tests/mgbench/benchmark_result.json" \
|
--benchmark-results-path "../../tests/mgbench/benchmark_result.json" \
|
||||||
--github-run-id "${{ github.run_id }}" \
|
--github-run-id "${{ github.run_id }}" \
|
||||||
--github-run-number "${{ github.run_number }}"
|
--github-run-number "${{ github.run_number }}" \
|
||||||
|
--head-branch-name "${{ env.BRANCH_NAME }}"
|
||||||
353
.github/workflows/diff.yaml
vendored
353
.github/workflows/diff.yaml
vendored
@@ -1,12 +1,19 @@
|
|||||||
name: Diff
|
name: Diff
|
||||||
|
concurrency:
|
||||||
|
group: ${{ github.head_ref || github.sha }}
|
||||||
|
cancel-in-progress: true
|
||||||
|
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
|
branches:
|
||||||
|
- master
|
||||||
|
workflow_dispatch:
|
||||||
|
pull_request:
|
||||||
paths-ignore:
|
paths-ignore:
|
||||||
- 'docs/**'
|
- "docs/**"
|
||||||
- '**/*.md'
|
- "**/*.md"
|
||||||
- '.clang-format'
|
- ".clang-format"
|
||||||
- 'CODEOWNERS'
|
- "CODEOWNERS"
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
community_build:
|
community_build:
|
||||||
@@ -14,10 +21,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Diff]
|
runs-on: [self-hosted, Linux, X64, Diff]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -26,7 +35,7 @@ jobs:
|
|||||||
- name: Build community binaries
|
- name: Build community binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -39,59 +48,65 @@ jobs:
|
|||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
ctest -R memgraph__unit --output-on-failure -j$THREADS
|
ctest -R memgraph__unit --output-on-failure -j$THREADS
|
||||||
|
|
||||||
- name: Run stress test
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Create community DEB package
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v3/activate
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# create mgconsole
|
|
||||||
# we use the -B to force the build
|
|
||||||
make -j$THREADS -B mgconsole
|
|
||||||
|
|
||||||
# Create community DEB package.
|
|
||||||
mkdir output && cd output
|
|
||||||
cpack -G DEB --config ../CPackConfig.cmake
|
|
||||||
|
|
||||||
- name: Save community DEB package
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Community DEB package"
|
|
||||||
path: build/output/memgraph*.deb
|
|
||||||
|
|
||||||
code_analysis:
|
code_analysis:
|
||||||
name: "Code analysis"
|
name: "Code analysis"
|
||||||
runs-on: [self-hosted, Linux, X64, Diff]
|
runs-on: [self-hosted, Linux, X64, Diff]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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 --profile "black" --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-v3/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 ..
|
||||||
@@ -100,7 +115,7 @@ jobs:
|
|||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests. It is restricted to 2 threads intentionally, because higher concurrency makes the timing related tests unstable.
|
# Run unit tests. It is restricted to 2 threads intentionally, because higher concurrency makes the timing related tests unstable.
|
||||||
cd build
|
cd build
|
||||||
@@ -109,7 +124,7 @@ jobs:
|
|||||||
- name: Compute code coverage
|
- name: Compute code coverage
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Compute code coverage.
|
# Compute code coverage.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
@@ -120,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-v3/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
|
||||||
@@ -140,10 +165,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Diff]
|
runs-on: [self-hosted, Linux, X64, Diff]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -152,7 +179,7 @@ jobs:
|
|||||||
- name: Build debug binaries
|
- name: Build debug binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -162,62 +189,35 @@ 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-v3/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-v3/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"
|
||||||
runs-on: [self-hosted, Linux, X64, Diff]
|
runs-on: [self-hosted, Linux, X64, Diff]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -226,7 +226,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -236,18 +236,32 @@ jobs:
|
|||||||
cmake -DCMAKE_BUILD_TYPE=release ..
|
cmake -DCMAKE_BUILD_TYPE=release ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Run GQL Behave tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
cd tests/gql_behave
|
# Activate toolchain.
|
||||||
./continuous_integration
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
- name: Save quality assurance status
|
# Run unit tests.
|
||||||
uses: actions/upload-artifact@v2
|
cd build
|
||||||
with:
|
ctest -R memgraph__unit --output-on-failure -j$THREADS
|
||||||
name: "GQL Behave Status"
|
|
||||||
path: |
|
- name: Run simulation tests
|
||||||
tests/gql_behave/gql_behave_status.csv
|
run: |
|
||||||
tests/gql_behave/gql_behave_status.html
|
# 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: |
|
||||||
@@ -256,151 +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-v3/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
|
|
||||||
|
|
||||||
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-v3/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
|
|
||||||
|
|
||||||
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-v3/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: 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 }}"
|
|
||||||
|
|
||||||
- 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 }}"
|
|
||||||
|
|||||||
10
.github/workflows/full_clang_tidy.yaml
vendored
10
.github/workflows/full_clang_tidy.yaml
vendored
@@ -9,10 +9,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -21,7 +23,7 @@ jobs:
|
|||||||
- name: Build debug binaries
|
- name: Build debug binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -34,10 +36,10 @@ jobs:
|
|||||||
|
|
||||||
- name: Run clang-tidy
|
- name: Run clang-tidy
|
||||||
run: |
|
run: |
|
||||||
source /opt/toolchain-v3/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-v3/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
|
||||||
|
|||||||
220
.github/workflows/package_all.yaml
vendored
220
.github/workflows/package_all.yaml
vendored
@@ -5,244 +5,174 @@ name: Package All
|
|||||||
on: workflow_dispatch
|
on: workflow_dispatch
|
||||||
|
|
||||||
jobs:
|
jobs:
|
||||||
centos-7_community:
|
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 community 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_community
|
name: centos-7
|
||||||
path: build/output/centos-7/memgraph*.rpm
|
path: build/output/centos-7/memgraph*.rpm
|
||||||
|
|
||||||
centos-8_community:
|
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 community 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_community
|
name: centos-9
|
||||||
path: build/output/centos-8/memgraph*.rpm
|
path: build/output/centos-9/memgraph*.rpm
|
||||||
|
|
||||||
debian-9_community:
|
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 community debian-9
|
./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-9_community
|
name: debian-10
|
||||||
path: build/output/debian-9/memgraph*.deb
|
|
||||||
|
|
||||||
debian-10_community:
|
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- name: "Set up repository"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
|
||||||
- name: "Build package"
|
|
||||||
run: |
|
|
||||||
./release/package/run.sh package community debian-10
|
|
||||||
- name: "Upload package"
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: debian-10_community
|
|
||||||
path: build/output/debian-10/memgraph*.deb
|
path: build/output/debian-10/memgraph*.deb
|
||||||
|
|
||||||
docker_community:
|
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:
|
||||||
|
fetch-depth: 0 # Required because of release/get_version.py
|
||||||
|
- name: "Build package"
|
||||||
|
run: |
|
||||||
|
./release/package/run.sh package debian-11
|
||||||
|
- name: "Upload package"
|
||||||
|
uses: actions/upload-artifact@v3
|
||||||
|
with:
|
||||||
|
name: debian-11
|
||||||
|
path: build/output/debian-11/memgraph*.deb
|
||||||
|
|
||||||
|
docker:
|
||||||
|
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: |
|
||||||
cd release/package
|
cd release/package
|
||||||
./run.sh package community debian-10 --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_community
|
name: docker
|
||||||
path: build/output/docker/memgraph*.tar.gz
|
path: build/output/docker/memgraph*.tar.gz
|
||||||
|
|
||||||
ubuntu-1804_community:
|
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 community 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_community
|
name: ubuntu-1804
|
||||||
path: build/output/ubuntu-18.04/memgraph*.deb
|
path: build/output/ubuntu-18.04/memgraph*.deb
|
||||||
|
|
||||||
ubuntu-2004_community:
|
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 community 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_community
|
name: ubuntu-2004
|
||||||
path: build/output/ubuntu-20.04/memgraph*.deb
|
path: build/output/ubuntu-20.04/memgraph*.deb
|
||||||
|
|
||||||
centos-7_enterprise:
|
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:
|
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 enterprise centos-7
|
./release/package/run.sh package ubuntu-22.04
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: centos-7_enterprise
|
name: ubuntu-2204
|
||||||
path: build/output/centos-7/memgraph*.rpm
|
path: build/output/ubuntu-22.04/memgraph*.deb
|
||||||
|
|
||||||
centos-8_enterprise:
|
debian-11-platform:
|
||||||
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 enterprise centos-8
|
./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: centos-8_enterprise
|
name: debian-11-platform
|
||||||
path: build/output/centos-8/memgraph*.rpm
|
path: build/output/debian-11/memgraph*.deb
|
||||||
|
|
||||||
debian-9_enterprise:
|
debian-11-arm:
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
runs-on: [self-hosted, DockerMgBuild, ARM64, strange]
|
||||||
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 enterprise debian-9
|
./release/package/run.sh package debian-11-arm
|
||||||
- name: "Upload package"
|
- name: "Upload package"
|
||||||
uses: actions/upload-artifact@v2
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
name: debian-9_enterprise
|
name: debian-11-arm
|
||||||
path: build/output/debian-9/memgraph*.deb
|
path: build/output/debian-11-arm/memgraph*.deb
|
||||||
|
|
||||||
debian-10_enterprise:
|
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- name: "Set up repository"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
|
||||||
- name: "Build package"
|
|
||||||
run: |
|
|
||||||
./release/package/run.sh package enterprise debian-10
|
|
||||||
- name: "Upload package"
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: debian-10_enterprise
|
|
||||||
path: build/output/debian-10/memgraph*.deb
|
|
||||||
|
|
||||||
docker_enterprise:
|
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- name: "Set up repository"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
|
||||||
- name: "Build package"
|
|
||||||
run: |
|
|
||||||
cd release/package
|
|
||||||
./run.sh package enterprise debian-10 --for-docker
|
|
||||||
./run.sh docker
|
|
||||||
- name: "Upload package"
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: docker_enterprise
|
|
||||||
path: build/output/docker/memgraph*.tar.gz
|
|
||||||
|
|
||||||
ubuntu-1804_enterprise:
|
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- name: "Set up repository"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
|
||||||
- name: "Build package"
|
|
||||||
run: |
|
|
||||||
./release/package/run.sh package enterprise ubuntu-18.04
|
|
||||||
- name: "Upload package"
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: ubuntu-1804_enterprise
|
|
||||||
path: build/output/ubuntu-18.04/memgraph*.deb
|
|
||||||
|
|
||||||
ubuntu-2004_enterprise:
|
|
||||||
runs-on: [self-hosted, DockerMgBuild]
|
|
||||||
timeout-minutes: 60
|
|
||||||
steps:
|
|
||||||
- name: "Set up repository"
|
|
||||||
uses: actions/checkout@v2
|
|
||||||
with:
|
|
||||||
fetch-depth: 0 # Required because of release/get_version.py
|
|
||||||
- name: "Build package"
|
|
||||||
run: |
|
|
||||||
./release/package/run.sh package enterprise ubuntu-20.04
|
|
||||||
- name: "Upload package"
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: ubuntu-2004_enterprise
|
|
||||||
path: build/output/ubuntu-20.04/memgraph*.deb
|
|
||||||
|
|||||||
87
.github/workflows/release_centos8.yaml
vendored
87
.github/workflows/release_centos8.yaml
vendored
@@ -11,11 +11,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, CentOS8]
|
runs-on: [self-hosted, Linux, X64, CentOS8]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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)
|
||||||
@@ -24,7 +26,7 @@ jobs:
|
|||||||
- name: Build community binaries
|
- name: Build community binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -34,56 +36,26 @@ jobs:
|
|||||||
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Create community RPM package
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v3/activate
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# create mgconsole
|
|
||||||
# we use the -B to force the build
|
|
||||||
make -j$THREADS -B mgconsole
|
|
||||||
|
|
||||||
# Create community RPM package.
|
|
||||||
mkdir output && cd output
|
|
||||||
cpack -G RPM --config ../CPackConfig.cmake
|
|
||||||
rpmlint memgraph*.rpm
|
|
||||||
|
|
||||||
- name: Save community RPM package
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Community RPM package"
|
|
||||||
path: build/output/memgraph*.rpm
|
|
||||||
|
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
ctest -R memgraph__unit --output-on-failure
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run stress test (plain)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Run stress test (large)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration --large-dataset
|
|
||||||
|
|
||||||
coverage_build:
|
coverage_build:
|
||||||
name: "Coverage build"
|
name: "Coverage build"
|
||||||
runs-on: [self-hosted, Linux, X64, CentOS8]
|
runs-on: [self-hosted, Linux, X64, CentOS8]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -92,7 +64,7 @@ jobs:
|
|||||||
- name: Build coverage binaries
|
- name: Build coverage binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -105,7 +77,7 @@ jobs:
|
|||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -114,7 +86,7 @@ jobs:
|
|||||||
- name: Compute code coverage
|
- name: Compute code coverage
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Compute code coverage.
|
# Compute code coverage.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
@@ -125,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
|
||||||
@@ -135,10 +107,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, CentOS8]
|
runs-on: [self-hosted, Linux, X64, CentOS8]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -147,7 +121,7 @@ jobs:
|
|||||||
- name: Build debug binaries
|
- name: Build debug binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -160,7 +134,7 @@ jobs:
|
|||||||
- name: Run leftover CTest tests
|
- name: Run leftover CTest tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run leftover CTest tests (all except unit and benchmark tests).
|
# Run leftover CTest tests (all except unit and benchmark tests).
|
||||||
cd build
|
cd build
|
||||||
@@ -192,14 +166,14 @@ jobs:
|
|||||||
- name: Run cppcheck and clang-format
|
- name: Run cppcheck and clang-format
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run cppcheck and clang-format.
|
# Run cppcheck and clang-format.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
./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
|
||||||
@@ -209,11 +183,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, CentOS8]
|
runs-on: [self-hosted, Linux, X64, CentOS8]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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,7 +198,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -235,7 +211,7 @@ jobs:
|
|||||||
- name: Create enterprise RPM package
|
- name: Create enterprise RPM package
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
@@ -249,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
|
||||||
@@ -257,7 +233,7 @@ jobs:
|
|||||||
- name: Run micro benchmark tests
|
- name: Run micro benchmark tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run micro benchmark tests.
|
# Run micro benchmark tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -286,13 +262,22 @@ 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: |
|
||||||
tests/gql_behave/gql_behave_status.csv
|
tests/gql_behave/gql_behave_status.csv
|
||||||
tests/gql_behave/gql_behave_status.html
|
tests/gql_behave/gql_behave_status.html
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
|
# Run unit tests.
|
||||||
|
cd build
|
||||||
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run e2e tests
|
- name: Run e2e tests
|
||||||
run: |
|
run: |
|
||||||
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
||||||
|
|||||||
94
.github/workflows/release_debian10.yaml
vendored
94
.github/workflows/release_debian10.yaml
vendored
@@ -11,11 +11,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Debian10]
|
runs-on: [self-hosted, Linux, X64, Debian10]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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)
|
||||||
@@ -24,7 +26,7 @@ jobs:
|
|||||||
- name: Build community binaries
|
- name: Build community binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -34,55 +36,26 @@ jobs:
|
|||||||
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Create community DEB package
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v3/activate
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# create mgconsole
|
|
||||||
# we use the -B to force the build
|
|
||||||
make -j$THREADS -B mgconsole
|
|
||||||
|
|
||||||
# Create community DEB package.
|
|
||||||
mkdir output && cd output
|
|
||||||
cpack -G DEB --config ../CPackConfig.cmake
|
|
||||||
|
|
||||||
- name: Save community DEB package
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Community DEB package"
|
|
||||||
path: build/output/memgraph*.deb
|
|
||||||
|
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
ctest -R memgraph__unit --output-on-failure
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run stress test (plain)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Run stress test (large)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration --large-dataset
|
|
||||||
|
|
||||||
coverage_build:
|
coverage_build:
|
||||||
name: "Coverage build"
|
name: "Coverage build"
|
||||||
runs-on: [self-hosted, Linux, X64, Debian10]
|
runs-on: [self-hosted, Linux, X64, Debian10]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -91,7 +64,7 @@ jobs:
|
|||||||
- name: Build coverage binaries
|
- name: Build coverage binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -104,7 +77,7 @@ jobs:
|
|||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -113,7 +86,7 @@ jobs:
|
|||||||
- name: Compute code coverage
|
- name: Compute code coverage
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Compute code coverage.
|
# Compute code coverage.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
@@ -124,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
|
||||||
@@ -134,10 +107,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Debian10]
|
runs-on: [self-hosted, Linux, X64, Debian10]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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,7 +121,7 @@ jobs:
|
|||||||
- name: Build debug binaries
|
- name: Build debug binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -159,7 +134,7 @@ jobs:
|
|||||||
- name: Run leftover CTest tests
|
- name: Run leftover CTest tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run leftover CTest tests (all except unit and benchmark tests).
|
# Run leftover CTest tests (all except unit and benchmark tests).
|
||||||
cd build
|
cd build
|
||||||
@@ -191,14 +166,14 @@ jobs:
|
|||||||
- name: Run cppcheck and clang-format
|
- name: Run cppcheck and clang-format
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run cppcheck and clang-format.
|
# Run cppcheck and clang-format.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
./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
|
||||||
@@ -208,11 +183,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Debian10]
|
runs-on: [self-hosted, Linux, X64, Debian10]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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)
|
||||||
@@ -221,7 +198,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -234,7 +211,7 @@ jobs:
|
|||||||
- name: Create enterprise DEB package
|
- name: Create enterprise DEB package
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
@@ -247,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
|
||||||
@@ -255,7 +232,7 @@ jobs:
|
|||||||
- name: Run micro benchmark tests
|
- name: Run micro benchmark tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run micro benchmark tests.
|
# Run micro benchmark tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -284,13 +261,22 @@ 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: |
|
||||||
tests/gql_behave/gql_behave_status.csv
|
tests/gql_behave/gql_behave_status.csv
|
||||||
tests/gql_behave/gql_behave_status.html
|
tests/gql_behave/gql_behave_status.html
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
|
# Run unit tests.
|
||||||
|
cd build
|
||||||
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run e2e tests
|
- name: Run e2e tests
|
||||||
run: |
|
run: |
|
||||||
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
||||||
@@ -332,11 +318,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Debian10, JepsenControl]
|
runs-on: [self-hosted, Linux, X64, Debian10, JepsenControl]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
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:
|
||||||
# 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)
|
||||||
@@ -345,7 +333,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -361,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 .
|
||||||
86
.github/workflows/release_ubuntu2004.yaml
vendored
86
.github/workflows/release_ubuntu2004.yaml
vendored
@@ -11,11 +11,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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)
|
||||||
@@ -24,7 +26,7 @@ jobs:
|
|||||||
- name: Build community binaries
|
- name: Build community binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -34,55 +36,26 @@ jobs:
|
|||||||
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
cmake -DCMAKE_BUILD_TYPE=release -DMG_ENTERPRISE=OFF ..
|
||||||
make -j$THREADS
|
make -j$THREADS
|
||||||
|
|
||||||
- name: Create community DEB package
|
|
||||||
run: |
|
|
||||||
# Activate toolchain.
|
|
||||||
source /opt/toolchain-v3/activate
|
|
||||||
|
|
||||||
cd build
|
|
||||||
|
|
||||||
# create mgconsole
|
|
||||||
# we use the -B to force the build
|
|
||||||
make -j$THREADS -B mgconsole
|
|
||||||
|
|
||||||
# Create community DEB package.
|
|
||||||
mkdir output && cd output
|
|
||||||
cpack -G DEB --config ../CPackConfig.cmake
|
|
||||||
|
|
||||||
- name: Save community DEB package
|
|
||||||
uses: actions/upload-artifact@v2
|
|
||||||
with:
|
|
||||||
name: "Community DEB package"
|
|
||||||
path: build/output/memgraph*.deb
|
|
||||||
|
|
||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
ctest -R memgraph__unit --output-on-failure
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run stress test (plain)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration
|
|
||||||
|
|
||||||
- name: Run stress test (large)
|
|
||||||
run: |
|
|
||||||
cd tests/stress
|
|
||||||
./continuous_integration --large-dataset
|
|
||||||
|
|
||||||
coverage_build:
|
coverage_build:
|
||||||
name: "Coverage build"
|
name: "Coverage build"
|
||||||
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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)
|
||||||
@@ -91,7 +64,7 @@ jobs:
|
|||||||
- name: Build coverage binaries
|
- name: Build coverage binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -104,7 +77,7 @@ jobs:
|
|||||||
- name: Run unit tests
|
- name: Run unit tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run unit tests.
|
# Run unit tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -113,7 +86,7 @@ jobs:
|
|||||||
- name: Compute code coverage
|
- name: Compute code coverage
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Compute code coverage.
|
# Compute code coverage.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
@@ -124,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
|
||||||
@@ -134,10 +107,12 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
|
|
||||||
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,7 +121,7 @@ jobs:
|
|||||||
- name: Build debug binaries
|
- name: Build debug binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -159,7 +134,7 @@ jobs:
|
|||||||
- name: Run leftover CTest tests
|
- name: Run leftover CTest tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run leftover CTest tests (all except unit and benchmark tests).
|
# Run leftover CTest tests (all except unit and benchmark tests).
|
||||||
cd build
|
cd build
|
||||||
@@ -191,14 +166,14 @@ jobs:
|
|||||||
- name: Run cppcheck and clang-format
|
- name: Run cppcheck and clang-format
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run cppcheck and clang-format.
|
# Run cppcheck and clang-format.
|
||||||
cd tools/github
|
cd tools/github
|
||||||
./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
|
||||||
@@ -208,11 +183,13 @@ jobs:
|
|||||||
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
runs-on: [self-hosted, Linux, X64, Ubuntu20.04]
|
||||||
env:
|
env:
|
||||||
THREADS: 24
|
THREADS: 24
|
||||||
|
MEMGRAPH_ENTERPRISE_LICENSE: ${{ secrets.MEMGRAPH_ENTERPRISE_LICENSE }}
|
||||||
|
MEMGRAPH_ORGANIZATION_NAME: ${{ secrets.MEMGRAPH_ORGANIZATION_NAME }}
|
||||||
timeout-minutes: 960
|
timeout-minutes: 960
|
||||||
|
|
||||||
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)
|
||||||
@@ -221,7 +198,7 @@ jobs:
|
|||||||
- name: Build release binaries
|
- name: Build release binaries
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Initialize dependencies.
|
# Initialize dependencies.
|
||||||
./init
|
./init
|
||||||
@@ -234,7 +211,7 @@ jobs:
|
|||||||
- name: Create enterprise DEB package
|
- name: Create enterprise DEB package
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
cd build
|
cd build
|
||||||
|
|
||||||
@@ -247,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
|
||||||
@@ -255,7 +232,7 @@ jobs:
|
|||||||
- name: Run micro benchmark tests
|
- name: Run micro benchmark tests
|
||||||
run: |
|
run: |
|
||||||
# Activate toolchain.
|
# Activate toolchain.
|
||||||
source /opt/toolchain-v3/activate
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
# Run micro benchmark tests.
|
# Run micro benchmark tests.
|
||||||
cd build
|
cd build
|
||||||
@@ -284,13 +261,22 @@ 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: |
|
||||||
tests/gql_behave/gql_behave_status.csv
|
tests/gql_behave/gql_behave_status.csv
|
||||||
tests/gql_behave/gql_behave_status.html
|
tests/gql_behave/gql_behave_status.html
|
||||||
|
|
||||||
|
- name: Run unit tests
|
||||||
|
run: |
|
||||||
|
# Activate toolchain.
|
||||||
|
source /opt/toolchain-v4/activate
|
||||||
|
|
||||||
|
# Run unit tests.
|
||||||
|
cd build
|
||||||
|
ctest -R memgraph__unit --output-on-failure
|
||||||
|
|
||||||
- name: Run e2e tests
|
- name: Run e2e tests
|
||||||
run: |
|
run: |
|
||||||
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
# TODO(gitbuda): Setup mgclient and pymgclient properly.
|
||||||
|
|||||||
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
|
||||||
|
|||||||
21
.pre-commit-config.yaml
Normal file
21
.pre-commit-config.yaml
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
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)
|
||||||
|
args: ["--profile", "black"]
|
||||||
|
- repo: https://github.com/pre-commit/mirrors-clang-format
|
||||||
|
rev: v13.0.0
|
||||||
|
hooks:
|
||||||
|
- id: clang-format
|
||||||
@@ -35,13 +35,14 @@ else()
|
|||||||
message(FATAL_ERROR "Couldn't find clang and/or clang++!")
|
message(FATAL_ERROR "Couldn't find clang and/or clang++!")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
option(BUILD_FOR_DOCKER "Build Memgraph binary for docker." OFF)
|
|
||||||
message(STATUS "BUILD_FOR_DOCKER: ${BUILD_FOR_DOCKER}")
|
|
||||||
|
|
||||||
# -----------------------------------------------------------------------------
|
# -----------------------------------------------------------------------------
|
||||||
|
|
||||||
project(memgraph)
|
project(memgraph)
|
||||||
|
|
||||||
|
# Install licenses.
|
||||||
|
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/licenses/
|
||||||
|
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,21 +62,21 @@ 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_enterprise "--enterprise")
|
set(get_version_offering "")
|
||||||
else()
|
else()
|
||||||
set(get_version_enterprise "")
|
set(get_version_offering "--open-source")
|
||||||
endif()
|
endif()
|
||||||
set(get_version_script "${CMAKE_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_enterprise}
|
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_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.")
|
||||||
@@ -87,12 +88,12 @@ endif()
|
|||||||
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_enterprise}
|
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_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.")
|
||||||
@@ -104,12 +105,12 @@ endif()
|
|||||||
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_enterprise}
|
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_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.")
|
||||||
@@ -181,9 +182,11 @@ 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=implicit-fallthrough \
|
||||||
|
-Werror=return-type \
|
||||||
-Werror=return-stack-address \
|
-Werror=return-stack-address \
|
||||||
-Wno-c99-designator")
|
-Wno-c99-designator \
|
||||||
|
-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
|
||||||
@@ -203,6 +206,8 @@ 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")
|
||||||
|
|
||||||
|
SET(CMAKE_CXX_LINK_FLAGS "${CMAKE_CXX_LINK_FLAGS} -pthread")
|
||||||
|
|
||||||
#debug flags
|
#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).")
|
||||||
@@ -227,6 +232,8 @@ 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
|
||||||
@@ -265,7 +272,11 @@ if (MG_ENTERPRISE)
|
|||||||
add_definitions(-DMG_ENTERPRISE)
|
add_definitions(-DMG_ENTERPRISE)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
set(ENABLE_JEMALLOC ON)
|
||||||
|
|
||||||
if (ASAN)
|
if (ASAN)
|
||||||
|
message(WARNING "Disabling jemalloc as it doesn't work well with ASAN")
|
||||||
|
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
|
||||||
@@ -317,7 +328,8 @@ if (UBSAN)
|
|||||||
# 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.
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
set(MG_PYTHON_VERSION "" CACHE STRING "Specify the exact python version used by the query modules")
|
set(MG_PYTHON_VERSION "" CACHE STRING "Specify the exact Python version used by the query modules")
|
||||||
|
set(MG_PYTHON_PATH "" CACHE STRING "Specify the exact Python path used by the query modules")
|
||||||
|
|
||||||
# Add subprojects
|
# Add subprojects
|
||||||
include_directories(src)
|
include_directories(src)
|
||||||
@@ -326,8 +338,13 @@ add_subdirectory(src)
|
|||||||
# Release configuration
|
# Release configuration
|
||||||
add_subdirectory(release)
|
add_subdirectory(release)
|
||||||
|
|
||||||
enable_testing()
|
option(MG_ENABLE_TESTING "Set this to OFF to disable building test binaries" ON)
|
||||||
add_subdirectory(tests)
|
message(STATUS "MG_ENABLE_TESTING: ${MG_ENABLE_TESTING}")
|
||||||
|
|
||||||
|
if (MG_ENABLE_TESTING)
|
||||||
|
enable_testing()
|
||||||
|
add_subdirectory(tests)
|
||||||
|
endif()
|
||||||
|
|
||||||
if(TOOLS)
|
if(TOOLS)
|
||||||
add_subdirectory(tools)
|
add_subdirectory(tools)
|
||||||
|
|||||||
@@ -1 +0,0 @@
|
|||||||
* @gitbuda @antonio2368 @antaljanosbenjamin @kostasrim @jbajic
|
|
||||||
127
CODE_OF_CONDUCT.md
Normal file
127
CODE_OF_CONDUCT.md
Normal file
@@ -0,0 +1,127 @@
|
|||||||
|
# Contributor Covenant Code of Conduct
|
||||||
|
|
||||||
|
## Our Pledge
|
||||||
|
|
||||||
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
|
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||||
|
identity and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
|
## Our Standards
|
||||||
|
|
||||||
|
Examples of behavior that contributes to a positive environment for our
|
||||||
|
community include:
|
||||||
|
|
||||||
|
- Demonstrating empathy and kindness toward other people
|
||||||
|
- Being respectful of differing opinions, viewpoints, and experiences
|
||||||
|
- Giving and gracefully accepting constructive feedback
|
||||||
|
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
|
and learning from the experience
|
||||||
|
- Focusing on what is best not just for us as individuals, but for the overall
|
||||||
|
community
|
||||||
|
|
||||||
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
|
- The use of sexualized language or imagery, and sexual attention or advances of
|
||||||
|
any kind
|
||||||
|
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
|
- Public or private harassment
|
||||||
|
- Publishing other's private information, such as a physical or email address,
|
||||||
|
without their explicit permission
|
||||||
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
|
professional setting
|
||||||
|
|
||||||
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
|
decisions when appropriate.
|
||||||
|
|
||||||
|
## Scope
|
||||||
|
|
||||||
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
|
an individual is officially representing the community in public spaces.
|
||||||
|
Examples of representing our community include using an official e-mail address,
|
||||||
|
posting via an official social media account, or acting as an appointed
|
||||||
|
representative at an online or offline event.
|
||||||
|
|
||||||
|
## Enforcement
|
||||||
|
|
||||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
|
reported to the community leaders responsible for enforcement at
|
||||||
|
[contact@memgraph.com](contact@memgraph.com). All complaints will be reviewed
|
||||||
|
and investigated promptly and fairly.
|
||||||
|
|
||||||
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
|
reporter of any incident.
|
||||||
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series of
|
||||||
|
actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or permanent
|
||||||
|
ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||||
|
community.
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Code of Conduct is adapted from the Contributor Covenant, version 2.1,
|
||||||
|
available at
|
||||||
|
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html](https://www.contributor-covenant.org/version/2/1/code_of_conduct.html).
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by [Mozilla's code of conduct
|
||||||
|
enforcement ladder][mozilla coc].
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
[https://www.contributor-covenant.org/faq](https://www.contributor-covenant.org/faq).
|
||||||
|
Translations are available at
|
||||||
|
[https://www.contributor-covenant.org/translations](https://www.contributor-covenant.org/translations).
|
||||||
121
CONTRIBUTING.md
Normal file
121
CONTRIBUTING.md
Normal file
@@ -0,0 +1,121 @@
|
|||||||
|
# How to contribute?
|
||||||
|
|
||||||
|
This is a general purpose guide for contributing to Memgraph. We're still
|
||||||
|
working out the kinks to make contributing to this project as easy and
|
||||||
|
transparent as possible, but we're not quite there yet. Hopefully, this document
|
||||||
|
makes the process for contributing clear and answers some questions that you may
|
||||||
|
have.
|
||||||
|
|
||||||
|
- [How to contribute?](#how-to-contribute)
|
||||||
|
- [Open development](#open-development)
|
||||||
|
- [Branch organization](#branch-organization)
|
||||||
|
- [Bugs & changes](#bugs--changes)
|
||||||
|
- [Where to find known issues?](#where-to-find-known-issues)
|
||||||
|
- [Proposing a change](#proposing-a-change)
|
||||||
|
- [Your first pull request](#your-first-pull-request)
|
||||||
|
- [Sending a pull request](#sending-a-pull-request)
|
||||||
|
- [Style guide](#style-guide)
|
||||||
|
- [How to get in touch?](#how-to-get-in-touch)
|
||||||
|
- [Code of Conduct](#code-of-conduct)
|
||||||
|
- [License](#license)
|
||||||
|
- [Attribution](#attribution)
|
||||||
|
|
||||||
|
## Open development
|
||||||
|
|
||||||
|
All work on Memgraph is done via [GitHub](https://github.com/memgraph/memgraph).
|
||||||
|
Both core team members and external contributors send pull requests which go
|
||||||
|
through the same review process.
|
||||||
|
|
||||||
|
## Branch organization
|
||||||
|
|
||||||
|
Most pull requests should target the [`master
|
||||||
|
branch`](https://github.com/memgraph/memgraph/tree/master). We only use separate
|
||||||
|
branches for developing new features and fixing bugs before they are merged with
|
||||||
|
`master`. We do our best to keep `master` in good shape, with all tests passing.
|
||||||
|
|
||||||
|
Code that lands in `master` must be compatible with the latest stable release.
|
||||||
|
It may contain additional features but no breaking changes if it's not
|
||||||
|
absolutely necessary. We should be able to release a new minor version from the
|
||||||
|
tip of `master` at any time.
|
||||||
|
|
||||||
|
## Bugs & changes
|
||||||
|
|
||||||
|
### Where to find known issues?
|
||||||
|
|
||||||
|
We are using [GitHub Issues](https://github.com/memgraph/memgraph/issues) for
|
||||||
|
our public bugs. We keep a close eye on this and try to make it clear when we
|
||||||
|
have an internal fix in progress. Before filing a new task, try to make sure
|
||||||
|
your problem doesn't already exist.
|
||||||
|
|
||||||
|
### Proposing a change
|
||||||
|
|
||||||
|
If you intend to change the public API, or make any non-trivial changes to the
|
||||||
|
implementation, we recommend [filing an
|
||||||
|
issue](https://github.com/memgraph/memgraph/issues/new). This lets us reach an
|
||||||
|
agreement on your proposal before you put significant effort into it.
|
||||||
|
|
||||||
|
If you're only fixing a bug, it's fine to submit a pull request right away but
|
||||||
|
we still recommend to file an issue detailing what you're fixing. This is
|
||||||
|
helpful in case we don't accept that specific fix but want to keep track of the
|
||||||
|
issue.
|
||||||
|
|
||||||
|
### Your first pull request
|
||||||
|
|
||||||
|
Working on your first Pull Request? You can learn how from this free video
|
||||||
|
series:
|
||||||
|
|
||||||
|
**[How to Contribute to an Open Source Project on
|
||||||
|
GitHub](https://app.egghead.io/courses/how-to-contribute-to-an-open-source-project-on-github)**
|
||||||
|
|
||||||
|
If you decide to fix an issue, please be sure to check the comment thread in
|
||||||
|
case somebody is already working on a fix. If nobody is working on it at the
|
||||||
|
moment, please leave a comment stating that you intend to work on it so other
|
||||||
|
people don't accidentally duplicate your effort.
|
||||||
|
|
||||||
|
If somebody claims an issue but doesn't follow up for more than two weeks, it's
|
||||||
|
fine to take it over but you should still leave a comment.
|
||||||
|
|
||||||
|
### Sending a pull request
|
||||||
|
|
||||||
|
The core team is monitoring for pull requests. We will review your pull request
|
||||||
|
and either merge it, request changes to it, or close it with an explanation.
|
||||||
|
**Before submitting a pull request,** please make sure the following is done:
|
||||||
|
|
||||||
|
1. Fork [the repository](https://github.com/memgraph/memgraph) and create your
|
||||||
|
branch from `master`.
|
||||||
|
2. If you've fixed a bug or added code that should be tested, add tests!
|
||||||
|
3. Use the formatter `clang-format` for C/C++ code and `flake8` for Python code.
|
||||||
|
`clang-format` will automatically detect the `.clang-format` file in the root
|
||||||
|
directory while `flake8` can be used with the default configuration.
|
||||||
|
|
||||||
|
### Style guide
|
||||||
|
|
||||||
|
Memgraph uses the [Google Style
|
||||||
|
Guide](https://google.github.io/styleguide/cppguide.html) for C++ in most of its
|
||||||
|
code. You should follow them whenever writing new code.
|
||||||
|
|
||||||
|
## How to get in touch?
|
||||||
|
|
||||||
|
Aside from communicating directly via Pull Requests and Issues, the Memgraph
|
||||||
|
Community [Discord Server](https://discord.gg/memgraph) is the best place for
|
||||||
|
conversing with project maintainers and other community members.
|
||||||
|
|
||||||
|
## [Code of Conduct](https://github.com/memgraph/memgraph/blob/master/CODE_OF_CONDUCT.md)
|
||||||
|
|
||||||
|
Memgraph has adopted the [Contributor
|
||||||
|
Covenant](https://www.contributor-covenant.org/) as its Code of Conduct, and we
|
||||||
|
expect project participants to adhere to it. Please read [the full
|
||||||
|
text](https://github.com/memgraph/memgraph/blob/master/CODE_OF_CONDUCT.md) so
|
||||||
|
that you can understand what actions will and will not be tolerated.
|
||||||
|
|
||||||
|
## License
|
||||||
|
|
||||||
|
By contributing to Memgraph, you agree that your contributions will be licensed
|
||||||
|
under the [Memgraph licensing
|
||||||
|
scheme](https://github.com/memgraph/memgraph/blob/master/LICENSE).
|
||||||
|
|
||||||
|
## Attribution
|
||||||
|
|
||||||
|
This Contributing guide is adapted from the **React.js Contributing guide**
|
||||||
|
available at
|
||||||
|
[https://reactjs.org/docs/how-to-contribute.html](https://reactjs.org/docs/how-to-contribute.html).
|
||||||
5
LICENSE
Normal file
5
LICENSE
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
Source code in this repository is variously licensed under the Business Source
|
||||||
|
License 1.1 (BSL), the Memgraph Enterprise License (MEL). A copy of each licence
|
||||||
|
can be found in the licences directory. Source code in a given file is licensed
|
||||||
|
under the BSL and the copyright belongs to The Memgraph Authors unless
|
||||||
|
otherwise noted at th beginning of the file.
|
||||||
155
README.md
155
README.md
@@ -1,21 +1,148 @@
|
|||||||
# Memgraph
|
<p align="center">
|
||||||
|
<img width="400px" src="https://uploads-ssl.webflow.com/5e7ceb09657a69bdab054b3a/5e7ceb09657a6937ab054bba_Black_Original%20_Logo.png">
|
||||||
|
</p>
|
||||||
|
|
||||||
Memgraph is an ACID compliant high performance transactional distributed
|
---
|
||||||
in-memory graph database featuring runtime native query compiling, lock free
|
|
||||||
data structures, multi-version concurrency control and asynchronous IO.
|
|
||||||
|
|
||||||
## Development Documentation
|
<p align="center">
|
||||||
|
Build modern, graph-based applications on top of your streaming data in minutes.
|
||||||
|
</p>
|
||||||
|
|
||||||
Please continue in
|
<p align="center">
|
||||||
[Notion](https://www.notion.so/memgraph/memgraph-0428591638604c8385550e214ea9f3e6).
|
<a href="https://github.com/memgraph/memgraph/blob/master/licenses/APL.txt">
|
||||||
|
<img src="https://img.shields.io/badge/license-APL-green" alt="license" title="license"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/memgraph/memgraph/blob/master/licenses/BSL.txt">
|
||||||
|
<img src="https://img.shields.io/badge/license-BSL-yellowgreen" alt="license" title="license"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://github.com/memgraph/memgraph/blob/master/licenses/MEL.txt" alt="Documentation">
|
||||||
|
<img src="https://img.shields.io/badge/license-MEL-yellow" alt="license" title="license"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## User Documentation
|
<p align="center">
|
||||||
|
<a href="https://github.com/memgraph/memgraph">
|
||||||
|
<img src="https://img.shields.io/github/workflow/status/memgraph/memgraph/Release%20Ubuntu%2020.04/master" alt="build" title="build"/>
|
||||||
|
</a>
|
||||||
|
<a href="https://memgraph.com/docs/" alt="Documentation">
|
||||||
|
<img src="https://img.shields.io/badge/documentation-Memgraph-orange" />
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
Memgraph user documentation is maintained within
|
<p align="center">
|
||||||
[docs](https://github.com/memgraph/docs) repository. The documentation is also
|
<a href="https://memgr.ph/join-discord">
|
||||||
available on [GitBook](https://docs.memgraph.com).
|
<img src="https://img.shields.io/badge/Discord-7289DA?style=for-the-badge&logo=discord&logoColor=white" alt="Discord"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|
||||||
## Licences
|
## :clipboard: Description
|
||||||
|
|
||||||
* [Community](release/LICENSE_COMMUNITY.md)
|
Memgraph is a streaming graph application platform that helps you wrangle your
|
||||||
* [Enterprise](release/LICENSE_ENTERPRISE.md)
|
streaming data, build sophisticated models that you can query in real-time, and
|
||||||
|
develop graph applications.
|
||||||
|
|
||||||
|
Memgraph directly connects to your streaming infrastructure. You can ingest data
|
||||||
|
from sources like Kafka, SQL, or plain CSV files. Memgraph provides a standard
|
||||||
|
interface to query your data with Cypher, a widely-used and declarative query
|
||||||
|
language that is easy to write, understand and optimize for performance. This is
|
||||||
|
achieved by using the property graph data model, which stores data in terms of
|
||||||
|
objects, their attributes, and the relationships that connect them. This is a
|
||||||
|
natural and effective way to model many real-world problems without relying on
|
||||||
|
complex SQL schemas.
|
||||||
|
|
||||||
|
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
|
||||||
|
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
|
||||||
|
|
||||||
|
### Windows
|
||||||
|
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-windows-docker)
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-windows-wsl)
|
||||||
|
|
||||||
|
### macOS
|
||||||
|
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-macos-docker)
|
||||||
|
|
||||||
|
### Linux
|
||||||
|
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-linux-docker)
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-debian)
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-on-ubuntu)
|
||||||
|
[](https://memgraph.com/docs/memgraph/install-memgraph-from-rpm)
|
||||||
|
|
||||||
|
You can find the binaries and Docker images on the [Download
|
||||||
|
Hub](https://memgraph.com/download) and the installation instructions in the
|
||||||
|
[official documentation](https://memgraph.com/docs/memgraph/installation).
|
||||||
|
|
||||||
|
## :zap: Features
|
||||||
|
|
||||||
|
- Run Python, Rust, and C/C++ code natively, check out the
|
||||||
|
[MAGE](https://github.com/memgraph/mage) graph algorithm library
|
||||||
|
- Native support for machine learning
|
||||||
|
- Streaming support
|
||||||
|
- Replication
|
||||||
|
- Authentication and authorization
|
||||||
|
- ACID compliance
|
||||||
|
|
||||||
|
## :bookmark_tabs: Documentation
|
||||||
|
|
||||||
|
The Memgraph documentation is available at
|
||||||
|
[memgraph.com/docs](https://memgraph.com/docs).
|
||||||
|
|
||||||
|
## :question: Configuration
|
||||||
|
|
||||||
|
Command line options that Memgraph accepts are available in the [reference
|
||||||
|
guide](https://memgraph.com/docs/memgraph/reference-guide/configuration).
|
||||||
|
|
||||||
|
## :trophy: Contributing
|
||||||
|
|
||||||
|
The main purpose of this repository is to continue evolving Memgraph, making it
|
||||||
|
faster and easier to use. Development of Memgraph happens in the open on GitHub,
|
||||||
|
and we are grateful to the community for contributing bug fixes and
|
||||||
|
improvements. Read below to learn how you can take part in improving Memgraph.
|
||||||
|
|
||||||
|
### Code of Conduct
|
||||||
|
|
||||||
|
Memgraph has adopted a Code of Conduct that we expect project participants to
|
||||||
|
adhere to. Please read [the full text](CODE_OF_CONDUCT.md) so that you can
|
||||||
|
understand what actions will and will not be tolerated.
|
||||||
|
|
||||||
|
### Contributing Guide
|
||||||
|
|
||||||
|
Read our [contributing guide](CONTRIBUTING.md) to learn about our development
|
||||||
|
process and how to propose bug fixes and improvements.
|
||||||
|
|
||||||
|
### Internals
|
||||||
|
|
||||||
|
Read our
|
||||||
|
[internal](https://memgraph.notion.site/Memgraph-Internals-12b69132d67a417898972927d6870bd2)
|
||||||
|
docs to learn more about Memgraph's architecture, how to build the project from
|
||||||
|
source and how to start contributing. All information related to the database,
|
||||||
|
can be found in the aforementioned docs.
|
||||||
|
|
||||||
|
### :scroll: License
|
||||||
|
|
||||||
|
Memgraph Community is available under the [BSL
|
||||||
|
license](./licenses/BSL.txt).</br> Memgraph Enterprise is available under the
|
||||||
|
[MEL license](./licenses/MEL.txt).
|
||||||
|
|
||||||
|
<p align="center">
|
||||||
|
<a href="#">
|
||||||
|
<img src="https://img.shields.io/badge/⬆️back_to_top_⬆️-white" alt="Back to top" title="Back to top"/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
|
|||||||
55
cmake/FindJemalloc.cmake
Normal file
55
cmake/FindJemalloc.cmake
Normal file
@@ -0,0 +1,55 @@
|
|||||||
|
# Try to find jemalloc library
|
||||||
|
#
|
||||||
|
# Use this module as:
|
||||||
|
# find_package(Jemalloc)
|
||||||
|
#
|
||||||
|
# or:
|
||||||
|
# find_package(Jemalloc REQUIRED)
|
||||||
|
#
|
||||||
|
# This will define the following variables:
|
||||||
|
#
|
||||||
|
# Jemalloc_FOUND True if the system has the jemalloc library.
|
||||||
|
# Jemalloc_INCLUDE_DIRS Include directories needed to use jemalloc.
|
||||||
|
# Jemalloc_LIBRARIES Libraries needed to link to jemalloc.
|
||||||
|
#
|
||||||
|
# The following cache variables may also be set:
|
||||||
|
#
|
||||||
|
# Jemalloc_INCLUDE_DIR The directory containing jemalloc/jemalloc.h.
|
||||||
|
# Jemalloc_LIBRARY The path to the jemalloc static library.
|
||||||
|
|
||||||
|
find_path(Jemalloc_INCLUDE_DIR NAMES jemalloc/jemalloc.h PATH_SUFFIXES include)
|
||||||
|
|
||||||
|
find_library(Jemalloc_LIBRARY NAMES libjemalloc.a PATH_SUFFIXES lib)
|
||||||
|
|
||||||
|
include(FindPackageHandleStandardArgs)
|
||||||
|
find_package_handle_standard_args(Jemalloc
|
||||||
|
FOUND_VAR Jemalloc_FOUND
|
||||||
|
REQUIRED_VARS
|
||||||
|
Jemalloc_LIBRARY
|
||||||
|
Jemalloc_INCLUDE_DIR
|
||||||
|
)
|
||||||
|
|
||||||
|
if(Jemalloc_FOUND)
|
||||||
|
set(Jemalloc_LIBRARIES ${Jemalloc_LIBRARY})
|
||||||
|
set(Jemalloc_INCLUDE_DIRS ${Jemalloc_INCLUDE_DIR})
|
||||||
|
else()
|
||||||
|
if(Jemalloc_FIND_REQUIRED)
|
||||||
|
message(FATAL_ERROR "Cannot find jemalloc!")
|
||||||
|
else()
|
||||||
|
message(WARNING "jemalloc is not found!")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
|
if(Jemalloc_FOUND AND NOT TARGET Jemalloc::Jemalloc)
|
||||||
|
add_library(Jemalloc::Jemalloc UNKNOWN IMPORTED)
|
||||||
|
set_target_properties(Jemalloc::Jemalloc
|
||||||
|
PROPERTIES
|
||||||
|
IMPORTED_LOCATION "${Jemalloc_LIBRARY}"
|
||||||
|
INTERFACE_INCLUDE_DIRECTORIES "${Jemalloc_INCLUDE_DIR}"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
mark_as_advanced(
|
||||||
|
Jemalloc_INCLUDE_DIR
|
||||||
|
Jemalloc_LIBRARY
|
||||||
|
)
|
||||||
@@ -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"
|
||||||
@@ -101,3 +105,5 @@ undocumented:
|
|||||||
- "help"
|
- "help"
|
||||||
- "help_xml"
|
- "help_xml"
|
||||||
- "version"
|
- "version"
|
||||||
|
- "organization_name"
|
||||||
|
- "license_key"
|
||||||
|
|||||||
@@ -1,4 +0,0 @@
|
|||||||
# Memgraph Build and Run Environments
|
|
||||||
|
|
||||||
Please continue in
|
|
||||||
[Notion](https://www.notion.so/memgraph/Tools-05e0baafb78a49b386e0063b4833d23d).
|
|
||||||
@@ -5,18 +5,27 @@ 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
|
||||||
readline-devel # cmake and llvm
|
readline-devel # cmake and llvm
|
||||||
libffi-devel libxml2-devel perl-Digest-MD5 # llvm
|
libffi-devel libxml2-devel perl-Digest-MD5 # llvm
|
||||||
libedit-devel pcre-devel automake bison # swig
|
libedit-devel pcre-devel automake bison # swig
|
||||||
|
file
|
||||||
|
openssl-devel
|
||||||
|
gmp-devel
|
||||||
|
gperf
|
||||||
|
patch
|
||||||
)
|
)
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
TOOLCHAIN_RUN_DEPS=(
|
||||||
@@ -26,10 +35,10 @@ TOOLCHAIN_RUN_DEPS=(
|
|||||||
expat libipt libbabeltrace xz-libs python3 # for gdb
|
expat libipt libbabeltrace 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
|
||||||
)
|
)
|
||||||
|
|
||||||
MEMGRAPH_BUILD_DEPS=(
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
git # source code control
|
|
||||||
make pkgconfig # build system
|
make pkgconfig # build system
|
||||||
curl wget # for downloading libs
|
curl wget # for downloading libs
|
||||||
libuuid-devel java-11-openjdk # required by antlr
|
libuuid-devel java-11-openjdk # required by antlr
|
||||||
@@ -49,6 +58,7 @@ MEMGRAPH_BUILD_DEPS=(
|
|||||||
doxygen graphviz # source documentation generators
|
doxygen graphviz # source documentation generators
|
||||||
which mono-complete dotnet-sdk-3.1 golang nodejs zip unzip java-11-openjdk-devel # for driver tests
|
which mono-complete dotnet-sdk-3.1 golang nodejs zip unzip java-11-openjdk-devel # for driver tests
|
||||||
autoconf # for jemalloc code generation
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
)
|
)
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
@@ -94,8 +104,12 @@ install() {
|
|||||||
echo "NOTE: export LANG=en_US.utf8"
|
echo "NOTE: export LANG=en_US.utf8"
|
||||||
fi
|
fi
|
||||||
yum install -y epel-release
|
yum install -y epel-release
|
||||||
|
yum remove -y ius-release
|
||||||
|
yum install -y \
|
||||||
|
https://repo.ius.io/ius-release-el7.rpm
|
||||||
yum update -y
|
yum update -y
|
||||||
yum install -y wget git python3 python3-pip
|
yum install -y wget python3 python3-pip
|
||||||
|
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,38 +5,49 @@ 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
|
|
||||||
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
|
||||||
|
file
|
||||||
|
openssl-devel
|
||||||
|
gmp-devel
|
||||||
|
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
|
||||||
|
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`
|
||||||
@@ -45,9 +56,10 @@ 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
|
||||||
)
|
)
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
@@ -63,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
|
||||||
@@ -86,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
|
||||||
@@ -99,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
|
||||||
@@ -127,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
|
||||||
@@ -144,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
|
||||||
@@ -15,6 +18,12 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
libcurl4-openssl-dev # for cmake
|
libcurl4-openssl-dev # for cmake
|
||||||
libreadline-dev # for cmake and llvm
|
libreadline-dev # for cmake and llvm
|
||||||
libffi-dev libxml2-dev # for llvm
|
libffi-dev libxml2-dev # for llvm
|
||||||
|
curl # snappy
|
||||||
|
file # for libunwind
|
||||||
|
libssl-dev # for libevent
|
||||||
|
libgmp-dev # for gdb
|
||||||
|
gperf # for proxygen
|
||||||
|
git # for fbthrift
|
||||||
libedit-dev libpcre3-dev automake bison # for swig
|
libedit-dev libpcre3-dev automake bison # for swig
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,6 +35,7 @@ TOOLCHAIN_RUN_DEPS=(
|
|||||||
libcurl4 # for cmake
|
libcurl4 # for cmake
|
||||||
libreadline7 # for cmake and llvm
|
libreadline7 # for cmake and llvm
|
||||||
libffi6 libxml2 # for llvm
|
libffi6 libxml2 # for llvm
|
||||||
|
libssl-dev # for libevent
|
||||||
)
|
)
|
||||||
|
|
||||||
MEMGRAPH_BUILD_DEPS=(
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
@@ -46,6 +56,7 @@ MEMGRAPH_BUILD_DEPS=(
|
|||||||
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
||||||
dotnet-sdk-3.1 golang nodejs npm
|
dotnet-sdk-3.1 golang nodejs npm
|
||||||
autoconf # for jemalloc code generation
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
)
|
)
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
@@ -66,7 +77,7 @@ deb http://security.debian.org/debian-security buster/updates main contrib non-f
|
|||||||
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
|
deb-src http://security.debian.org/debian-security buster/updates main contrib non-free
|
||||||
EOF
|
EOF
|
||||||
cd "$DIR"
|
cd "$DIR"
|
||||||
apt update
|
apt --allow-releaseinfo-change update
|
||||||
# If GitHub Actions runner is installed, append LANG to the environment.
|
# If GitHub Actions runner is installed, append LANG to the environment.
|
||||||
# Python related tests doesn't work the LANG export.
|
# Python related tests doesn't work the LANG export.
|
||||||
if [ -d "/home/gh/actions-runner" ]; then
|
if [ -d "/home/gh/actions-runner" ]; then
|
||||||
|
|||||||
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}"
|
||||||
107
environment/os/debian-11.sh
Executable file
107
environment/os/debian-11.sh
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/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 "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
|
||||||
|
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 libipt2 libbabeltrace1 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
|
||||||
|
dotnet-sdk-3.1 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
|
||||||
|
if [ "$pkg" == dotnet-sdk-3.1 ]; 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
|
||||||
|
dpkg -i packages-microsoft-prod.deb
|
||||||
|
apt-get update
|
||||||
|
apt-get install -y apt-transport-https dotnet-sdk-3.1
|
||||||
|
fi
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
apt install -y "$pkg"
|
||||||
|
done
|
||||||
|
}
|
||||||
|
|
||||||
|
deps=$2"[*]"
|
||||||
|
"$1" "${!deps}"
|
||||||
@@ -1,62 +0,0 @@
|
|||||||
#!/bin/bash
|
|
||||||
|
|
||||||
set -Eeuo pipefail
|
|
||||||
|
|
||||||
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
|
|
||||||
source "$DIR/../util.sh"
|
|
||||||
|
|
||||||
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 libbabeltrace-ctf-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
|
|
||||||
)
|
|
||||||
|
|
||||||
TOOLCHAIN_RUN_DEPS=(
|
|
||||||
make # generic build tools
|
|
||||||
tar gzip bzip2 xz-utils # used for archive unpacking
|
|
||||||
zlib1g # zlib library used for all builds
|
|
||||||
libexpat1 libipt1 libbabeltrace1 libbabeltrace-ctf1 liblzma5 python3 # for gdb
|
|
||||||
libcurl3 # for cmake
|
|
||||||
libreadline7 # for cmake and llvm
|
|
||||||
libffi6 libxml2 # for llvm
|
|
||||||
)
|
|
||||||
|
|
||||||
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
|
|
||||||
python3 python-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 nodejs zip unzip default-jdk-headless # for driver tests
|
|
||||||
autoconf # for jemalloc code generation
|
|
||||||
)
|
|
||||||
|
|
||||||
list() {
|
|
||||||
echo "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
check() {
|
|
||||||
check_all_dpkg "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
install() {
|
|
||||||
install_all_apt "$1"
|
|
||||||
}
|
|
||||||
|
|
||||||
deps=$2"[*]"
|
|
||||||
"$1" "${!deps}"
|
|
||||||
@@ -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
|
||||||
@@ -16,6 +19,12 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
libcurl4-openssl-dev # cmake
|
libcurl4-openssl-dev # cmake
|
||||||
libreadline-dev # cmake and llvm
|
libreadline-dev # cmake and llvm
|
||||||
libffi-dev libxml2-dev # llvm
|
libffi-dev libxml2-dev # llvm
|
||||||
|
curl # snappy
|
||||||
|
file
|
||||||
|
git # for thrift
|
||||||
|
libgmp-dev # for gdb
|
||||||
|
gperf # for proxygen
|
||||||
|
libssl-dev
|
||||||
libedit-dev libpcre3-dev automake bison # swig
|
libedit-dev libpcre3-dev automake bison # swig
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -27,6 +36,7 @@ TOOLCHAIN_RUN_DEPS=(
|
|||||||
libcurl4 # for cmake
|
libcurl4 # for cmake
|
||||||
libreadline7 # for cmake and llvm
|
libreadline7 # for cmake and llvm
|
||||||
libffi6 libxml2 # for llvm
|
libffi6 libxml2 # for llvm
|
||||||
|
libssl-dev # for libevent
|
||||||
)
|
)
|
||||||
|
|
||||||
MEMGRAPH_BUILD_DEPS=(
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
@@ -45,6 +55,7 @@ MEMGRAPH_BUILD_DEPS=(
|
|||||||
doxygen graphviz # source documentation generators
|
doxygen graphviz # source documentation generators
|
||||||
mono-runtime mono-mcs nodejs zip unzip default-jdk-headless # driver tests
|
mono-runtime mono-mcs nodejs zip unzip default-jdk-headless # driver tests
|
||||||
autoconf # for jemalloc code generation
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
)
|
)
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
|
|||||||
@@ -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
|
||||||
@@ -15,6 +18,12 @@ TOOLCHAIN_BUILD_DEPS=(
|
|||||||
libcurl4-openssl-dev # for cmake
|
libcurl4-openssl-dev # for cmake
|
||||||
libreadline-dev # for cmake and llvm
|
libreadline-dev # for cmake and llvm
|
||||||
libffi-dev libxml2-dev # for 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
|
libedit-dev libpcre3-dev automake bison # for swig
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -26,6 +35,7 @@ TOOLCHAIN_RUN_DEPS=(
|
|||||||
libcurl4 # for cmake
|
libcurl4 # for cmake
|
||||||
libreadline8 # for cmake and llvm
|
libreadline8 # for cmake and llvm
|
||||||
libffi7 libxml2 # for llvm
|
libffi7 libxml2 # for llvm
|
||||||
|
libssl-dev # for libevent
|
||||||
)
|
)
|
||||||
|
|
||||||
MEMGRAPH_BUILD_DEPS=(
|
MEMGRAPH_BUILD_DEPS=(
|
||||||
@@ -46,6 +56,7 @@ MEMGRAPH_BUILD_DEPS=(
|
|||||||
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
mono-runtime mono-mcs zip unzip default-jdk-headless # for driver tests
|
||||||
dotnet-sdk-3.1 golang nodejs npm
|
dotnet-sdk-3.1 golang nodejs npm
|
||||||
autoconf # for jemalloc code generation
|
autoconf # for jemalloc code generation
|
||||||
|
libtool # for protobuf code generation
|
||||||
)
|
)
|
||||||
|
|
||||||
list() {
|
list() {
|
||||||
|
|||||||
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
|
||||||
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
|
||||||
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
|
||||||
1220
environment/toolchain/v4.sh
Executable file
1220
environment/toolchain/v4.sh
Executable file
File diff suppressed because it is too large
Load Diff
75
environment/toolchain/xz_pgp.txt
Normal file
75
environment/toolchain/xz_pgp.txt
Normal file
@@ -0,0 +1,75 @@
|
|||||||
|
-----BEGIN PGP PUBLIC KEY BLOCK-----
|
||||||
|
|
||||||
|
mQINBEzEOZIBEACxg/IuXERlDB48JBWmF4NxNUuuup1IhJAJyFGFSKh3OGAO2Ard
|
||||||
|
sNuRLjANsFXA7m7P5eTFcG+BoHHuAVYmKnI3PPZtHVLnUt4pGItPczQZ2BE1WpcI
|
||||||
|
ayjGTBJeKItX3Npqg9D/odO9WWS1i3FQPVdrLn0YH37/BA66jeMQCRo7g7GLpaNf
|
||||||
|
IrvYGsqTbxCwsmA37rpE7oyU4Yrf74HT091WBsRIoq/MelhbxTDMR8eu/dUGZQVc
|
||||||
|
Kj3lN55RepwWwUUKyqarY0zMt4HkFJ7v7yRL+Cvzy92Ouv4Wf2FlhNtEs5LE4Tax
|
||||||
|
W0PO5AEmUoKjX87SezQK0f652018b4u6Ex52cY7p+n5TII/UyoowH6+tY8UHo9yb
|
||||||
|
fStrqgNE/mY2bhA6+AwCaOUGsFzVVPTbjtxL3HacUP/jlA1h78V8VTvTs5d55iG7
|
||||||
|
jSqR9o05wje8rwNiXXK0xtiJahyNzL97Kn/DgPSqPIi45G+8nxWSPFM5eunBKRl9
|
||||||
|
vAnsvwrdPRsR6YR3uMHTuVhQX9/CY891MHkaZJ6wydWtKt3yQwJLYqwo5d4DwnUX
|
||||||
|
CduUwSKv+6RmtWI5ZmTQYOcBRcZyGKml9X9Q8iSbm6cnpFXmLrNQwCJN+D3SiYGc
|
||||||
|
MtbltZo0ysPMa6Xj5xFaYqWk/BI4iLb2Gs+ByGo/+a0Eq4XYBMOpitNniQARAQAB
|
||||||
|
tCdMYXNzZSBDb2xsaW4gPGxhc3NlLmNvbGxpbkB0dWthYW5pLm9yZz6JAlEEEwEK
|
||||||
|
ADsCGwMCHgECF4AECwkIBwMVCggFFgIDAQAWIQQ2kMJAzlG0Zw0wrRw47nV9aRhG
|
||||||
|
IAUCYEt9dQUJFxeR4wAKCRA47nV9aRhGIBNDEACxD6vJ+enZwe3IgkJh5JtLsC9b
|
||||||
|
MWCQRlPW1EVMsg96Cb5Rtron1eN1pp1TlzENJu1/C7C/VEsr9WwOPg26Men7fNf/
|
||||||
|
O21QM9IBWd/uB0Pu333WqKh92ESS5x9ST9DrG39nVGSPkQQBMuia72VrA+crPnwT
|
||||||
|
/h/u1IN6/sff5VDIU24rUiqW2Npy733dANruj7Ny0scRXVPltnVdhqwPHt6qNjC1
|
||||||
|
t+/cCnwHgW1BR1RYXBPpB42z/m29dL9rPrG0YPGWs2Bc+EATUICfEE6eIvwfciue
|
||||||
|
IJTjKT9Y9DrogJC2AYFhjC7N04OKdCB2hFs4BjexJwr4X0GJO7LhFl03c951AsIE
|
||||||
|
GHwrucRPB5bo2vmvQ8IvZn7CmtdUJzXv9JlyU6p+MIK1pz7TK6GgSOSffQIXZn6e
|
||||||
|
nUPtm9mEwuncOfmW8/ODYPs1gCWYgyiFJx8h7eEu+M4MxHSFBs7MwXf/Ae2fSp+M
|
||||||
|
P/p198qB8fC5oVBnF95qb0Qi0uc1D+Gb+gpBF+ymMb+s/VBOR3QWiym7AzBrJ62g
|
||||||
|
UnbC9jMLGnSRI+7p7raUfMTgXr5/oQoBw7ExJVltSSRrim2YH/t4CV47mO6dR9J3
|
||||||
|
1RtsTFIRNhz+07XPsETcuCV/dgqeC8fOFLt9MY17Sufhb1DcGy4urZBOIhXcpTV7
|
||||||
|
vHVj5IYH5nYOT49NRYkCOAQTAQIAIgUCTMQ5kgIbAwYLCQgHAwIGFQgCCQoLBBYC
|
||||||
|
AwECHgECF4AACgkQOO51fWkYRiAg4A/7BXKwoRaXrMbMPOW7vuVF7c2IKB2Yqzn1
|
||||||
|
vLBCwuEHkqY237lDcXY4/5LR+1gcZ3Duw1n/BRSm0FBdvyX/JTWiWNSDUkKAO/0l
|
||||||
|
T2Tg44YLrDT3bzwu8dbU9xQt6kH+SCOHvv5Oe4k79l5mro6fF3H1M0bN63x/YoFY
|
||||||
|
ojy09D7/JptY82oR4f/VdKnfZLJcCViCb0wp8SD2NkDAudKg+K+7PD8HlTWklQQg
|
||||||
|
TZdRXxVZKIJeU42aJDqnRbAhJd64YHyClhqut9F5LUmiP5qfLfNhkKDhNOwk2Blr
|
||||||
|
BGBJkSd7wPyzcX4Mun/L6YspHjbeVMt9TD7HQlo+OOd2OjAHCx6pqwkXnzeLPEaE
|
||||||
|
cPdQ1SHgrBViAxX3DNPubLP0Knw8XwFu96EuhHZgexE1W7bB4LFsJyXAc5k1PqPD
|
||||||
|
CLsAauxmvI2OfI7opG/8wyxDvNgoPjG8fZNAgY0REqPC0JnTXChH31IxUmhNotH8
|
||||||
|
tD3DDTZOHw05n5MwwUrEE9xiETVDfFQcMLfxZ9KLz+BC2g1t5LYublRgnCMNJzFg
|
||||||
|
sNUMM02CphABzl/LCLnumr0eyQQ/weV4twEhLwSDmqLYHL0EdYW0Y3CnnU9vmYxQ
|
||||||
|
cXKbstS71sEJJYBBmSBbf9GxkOY8BRNtwVwY0kPgxv1WqdVBiAFvfB+pyAsrax9B
|
||||||
|
3UeB7ZSwRD6JAhwEEAEKAAYFAlS25GwACgkQlbYYGy0z6ew92Q//ZA9/6piQtoW4
|
||||||
|
PwP/1DtWGyKU8hwR+9FG669iPk/dAG+yoEJtFMOUpg/FUFmCX8Bc4oEHsCVyLxKt
|
||||||
|
DcCVUIRcYNSFi5hTZaBEbwsOlDT37gtlfIIu34hhHRccKaLnN/N9gNMNw8wGh9xg
|
||||||
|
Q/KtxZwcbk/bZIlDkKTJkFBRAekdEGAFDWb/AZOy+LQxS8ZAh1eWkfV0i8opmK9k
|
||||||
|
gPXtLE0WSsqtYyGs58z+BFE9NH3tEUwK6jSvtuLwQl4UrICNbKthcpb8WwH6UXzb
|
||||||
|
q3QNSYVOpf/cqRdBJA6bvb/ku/xyKVL08lGmxD9v1b137R7mafDAFPTsvH2Mt/0V
|
||||||
|
YuhtWav3r1Bl9QksDxt2DTS8wiWDUBetGqOVdcw7vBrXPEWDNBmxeJXsiJ7zJlR+
|
||||||
|
9wrJOm6RV2+l1IPxu96EaPS+kTNBijKrhxb67bww8BTEWTd0wcdJmgWRkM8SIstp
|
||||||
|
IKqd0L2TFYph2/NtrBhRg+DIEPJPpSTGsUMcCEXCZPQ+cIdlQKsWpk0tZ62DlvEl
|
||||||
|
r7E+wgUSQolRfx5KrpZifiS2zQlhzdXv28CJhsVbLyw5fUAWUKIH/dCo5NKsNLk2
|
||||||
|
Lc5DH9VWnFgxAAtW290FqeK/4ulMq7Vs1dQSwyHM2Ni3QqqeaiOrh8gbSY5CMLFN
|
||||||
|
Y3HYRwuTYPa3AobsozCzBj0Zdf/6AFe5Ag0ETMQ5kgEQAL/FwKdjxgPxtSpgq1SM
|
||||||
|
zgZtTTyLqhgGD3NZfadHWHYRIL38NDV3JeTA79Y2zj2dj7KQPDT+0aqeizTV2E3j
|
||||||
|
P3iCQ53VOT4consBaQAgKexpptnS+T1DobtICFJ0GGzf0HRj6KO2zSOuOitWPWlU
|
||||||
|
wbvX7M0LLI2+hqlx0jTPqbJFZ/Za6KTtbS6xdCPVUpUqYZQpokEZcwQmUp8Q+lGo
|
||||||
|
JD2sNYCZyap63X/aAOgCGr2RXYddOH5e8vGzGW+mwtCv+WQ9Ay35mGqI5MqkbZd1
|
||||||
|
Qbuv2b1647E/QEEucfRHVbJVKGGPpFMUJtcItyyIt5jo+r9CCL4Cs47dF/9/RNwu
|
||||||
|
NvpvHXUyqMBQdWNZRMx4k/NGD/WviPi9m6mIMui6rOQsSOaqYdcUX4Nq2Orr3Oaz
|
||||||
|
2JPQdUfeI23iot1vK8hxvUCQTV3HfJghizN6spVl0yQOKBiE8miJRgrjHilH3hTb
|
||||||
|
xoo42xDkNAq+CQo3QAm1ibDxKCDq0RcWPjcCRAN/Q5MmpcodpdKkzV0yGIS4g7s5
|
||||||
|
frVrgV/kox2r4/Yxsr8K909+4H82AjTKGX/BmsQFCTAqBk6p7I0zxjIqJ/w33TZB
|
||||||
|
Q0Pn4r3WIlUPafzY6a9/LAvN1fHRxf9SpCByJsszD03Qu5f5TB8gthsdnVmTo7jj
|
||||||
|
iordEKMtw2aEMLzdWWTQ/TNVABEBAAGJAjwEGAEKACYCGwwWIQQ2kMJAzlG0Zw0w
|
||||||
|
rRw47nV9aRhGIAUCYEt9YAUJFxeRzgAKCRA47nV9aRhGIMLtD/9HuKM4pngImcuz
|
||||||
|
YwzQmdv4j26YYyh4jVsKEmVWTiRcehEgUIlrWkCu3qzd5NK+RetS7kJ8MPnzEUfj
|
||||||
|
YbpdC6yrF6n1mSrZZ4VJMkV2ev37bIgXM+Wp1mCAGbjNxQnjn9RabT/gjIqmGuRn
|
||||||
|
AP7RsSeOSuO/gO9h2Pteciz23ussTilB+8cTooQEQQZe6Kv/zukvL+ccSehLHsZ7
|
||||||
|
qVfRUAmtt8nFkXXE+s8jfLfhqstaI2/RJu5witaPcXM8Mnz2E95aASAbZy0eQot9
|
||||||
|
0Pvf07n9yuC3tueTvzvlXx3h5U3yT44tIOmzANIQjay1TGdm+RBJ2ZYyhyLawlZ2
|
||||||
|
NVUXXSp4QZZXPA0UWbF+pb7Q9cdKDNFVuvGBljuea0Yd0T2o+ibDq43HziX9ll+l
|
||||||
|
SXk9mqvW1UcDOaxWrSsm1Gc1O9g3wqH5xHAhtY8GPh/7VgAawskPkmnlkMW6pYPy
|
||||||
|
zibbeISJL1gd1jIT63y6aoVrtNoo+wYJm280ROflh4+5QOo6QJ+jm70fkXSG/qJ5
|
||||||
|
a8/qCPTHkJc/rpkL6/TDQAJURi9RhDAC0gb40HtusbN1LZEA+i0cWTmYXap+DB4Y
|
||||||
|
R4pApilpaG87M+VUokR4xpnx7vTb2MPa7Mdenvi9FEGnKXadmT8038vlfzz5GGUT
|
||||||
|
MlVin9BQPTpdA+PpRiJvKJgVDeAFOg==
|
||||||
|
=asTC
|
||||||
|
-----END PGP PUBLIC KEY BLOCK-----
|
||||||
@@ -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
1482
include/mgp.py
1482
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
|
||||||
|
|||||||
3
libs/.gitignore
vendored
3
libs/.gitignore
vendored
@@ -4,4 +4,5 @@
|
|||||||
!cleanup.sh
|
!cleanup.sh
|
||||||
!CMakeLists.txt
|
!CMakeLists.txt
|
||||||
!__main.cpp
|
!__main.cpp
|
||||||
!jemalloc.cmake
|
!pulsar.patch
|
||||||
|
!antlr4.10.1.patch
|
||||||
|
|||||||
@@ -8,6 +8,15 @@ if (NPROC EQUAL 0)
|
|||||||
set(NPROC 1)
|
set(NPROC 1)
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
find_package(Boost 1.78 REQUIRED)
|
||||||
|
find_package(BZip2 1.0.6 REQUIRED)
|
||||||
|
find_package(Threads REQUIRED)
|
||||||
|
set(GFLAGS_NOTHREADS OFF)
|
||||||
|
find_package(gflags REQUIRED)
|
||||||
|
find_package(fmt 8.0.1)
|
||||||
|
find_package(Jemalloc REQUIRED)
|
||||||
|
find_package(ZLIB 1.2.11 REQUIRED)
|
||||||
|
|
||||||
set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
set(LIB_DIR ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
# convenience functions
|
# convenience functions
|
||||||
@@ -48,7 +57,7 @@ endfunction(import_library)
|
|||||||
# INSTALL_COMMAND arguments.
|
# INSTALL_COMMAND arguments.
|
||||||
function(add_external_project name)
|
function(add_external_project name)
|
||||||
set(options NO_C_COMPILER)
|
set(options NO_C_COMPILER)
|
||||||
set(one_value_kwargs SOURCE_DIR)
|
set(one_value_kwargs SOURCE_DIR BUILD_IN_SOURCE)
|
||||||
set(multi_value_kwargs CMAKE_ARGS DEPENDS INSTALL_COMMAND BUILD_COMMAND
|
set(multi_value_kwargs CMAKE_ARGS DEPENDS INSTALL_COMMAND BUILD_COMMAND
|
||||||
CONFIGURE_COMMAND)
|
CONFIGURE_COMMAND)
|
||||||
cmake_parse_arguments(KW "${options}" "${one_value_kwargs}" "${multi_value_kwargs}" ${ARGN})
|
cmake_parse_arguments(KW "${options}" "${one_value_kwargs}" "${multi_value_kwargs}" ${ARGN})
|
||||||
@@ -56,11 +65,16 @@ function(add_external_project name)
|
|||||||
if (KW_SOURCE_DIR)
|
if (KW_SOURCE_DIR)
|
||||||
set(source_dir ${KW_SOURCE_DIR})
|
set(source_dir ${KW_SOURCE_DIR})
|
||||||
endif()
|
endif()
|
||||||
|
set(build_in_source 0)
|
||||||
|
if (KW_BUILD_IN_SOURCE)
|
||||||
|
set(build_in_source ${KW_BUILD_IN_SOURCE})
|
||||||
|
endif()
|
||||||
if (NOT KW_NO_C_COMPILER)
|
if (NOT KW_NO_C_COMPILER)
|
||||||
set(KW_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} ${KW_CMAKE_ARGS})
|
set(KW_CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER} ${KW_CMAKE_ARGS})
|
||||||
endif()
|
endif()
|
||||||
ExternalProject_Add(${name}-proj DEPENDS ${KW_DEPENDS}
|
ExternalProject_Add(${name}-proj DEPENDS ${KW_DEPENDS}
|
||||||
PREFIX ${source_dir} SOURCE_DIR ${source_dir}
|
PREFIX ${source_dir} SOURCE_DIR ${source_dir}
|
||||||
|
BUILD_IN_SOURCE ${build_in_source}
|
||||||
CONFIGURE_COMMAND ${KW_CONFIGURE_COMMAND}
|
CONFIGURE_COMMAND ${KW_CONFIGURE_COMMAND}
|
||||||
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
|
CMAKE_ARGS -DCMAKE_BUILD_TYPE=Release
|
||||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||||
@@ -92,22 +106,18 @@ 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)
|
||||||
|
|
||||||
# Setup google benchmark.
|
# Setup google benchmark.
|
||||||
import_external_library(benchmark STATIC
|
import_external_library(benchmark STATIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/benchmark/lib/libbenchmark.a
|
${CMAKE_CURRENT_SOURCE_DIR}/benchmark/${CMAKE_INSTALL_LIBDIR}/libbenchmark.a
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/benchmark/include
|
${CMAKE_CURRENT_SOURCE_DIR}/benchmark/include
|
||||||
# Skip testing. The tests don't compile with Clang 8.
|
# Skip testing. The tests don't compile with Clang 8.
|
||||||
CMAKE_ARGS -DBENCHMARK_ENABLE_TESTING=OFF)
|
CMAKE_ARGS -DBENCHMARK_ENABLE_TESTING=OFF)
|
||||||
|
|
||||||
# setup fmt format
|
include(FetchContent)
|
||||||
import_external_library(fmt STATIC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/fmt/${CMAKE_INSTALL_LIBDIR}/libfmt.a
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/fmt/include
|
|
||||||
# Skip testing.
|
|
||||||
CMAKE_ARGS -DFMT_TEST=OFF)
|
|
||||||
|
|
||||||
# setup rapidcheck (it cannot be external, since it doesn't have install
|
# setup rapidcheck (it cannot be external, since it doesn't have install
|
||||||
# target)
|
# target)
|
||||||
@@ -134,55 +144,19 @@ import_library(gtest_main STATIC ${GTEST_MAIN_LIBRARY} ${GTEST_INCLUDE_DIR} gtes
|
|||||||
import_library(gmock STATIC ${GMOCK_LIBRARY} ${GTEST_INCLUDE_DIR} gtest-proj)
|
import_library(gmock STATIC ${GMOCK_LIBRARY} ${GTEST_INCLUDE_DIR} gtest-proj)
|
||||||
import_library(gmock_main STATIC ${GMOCK_MAIN_LIBRARY} ${GTEST_INCLUDE_DIR} gtest-proj)
|
import_library(gmock_main STATIC ${GMOCK_MAIN_LIBRARY} ${GTEST_INCLUDE_DIR} gtest-proj)
|
||||||
|
|
||||||
# setup google flags
|
|
||||||
set(GFLAGS_NO_FILENAMES "0")
|
|
||||||
if ("${CMAKE_BUILD_TYPE}" MATCHES "^(R|r)(E|e)(L|l).+")
|
|
||||||
set(GFLAGS_NO_FILENAMES "1")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
# setup google flags
|
|
||||||
import_external_library(gflags STATIC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/gflags/lib/libgflags.a
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/gflags/include
|
|
||||||
# Not needed, since gflags is C++ only.
|
|
||||||
NO_C_COMPILER
|
|
||||||
# Don't register installation in ~/.cmake
|
|
||||||
CMAKE_ARGS -DREGISTER_INSTALL_PREFIX=OFF
|
|
||||||
-DBUILD_gflags_nothreads_LIB=OFF
|
|
||||||
-DGFLAGS_NO_FILENAMES=${GFLAGS_NO_FILENAMES})
|
|
||||||
|
|
||||||
# Setup cppitertools
|
# Setup cppitertools
|
||||||
import_header_library(cppitertools ${CMAKE_CURRENT_SOURCE_DIR})
|
import_header_library(cppitertools ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
# Setup json
|
# Setup json
|
||||||
import_header_library(json ${CMAKE_CURRENT_SOURCE_DIR})
|
import_header_library(json ${CMAKE_CURRENT_SOURCE_DIR})
|
||||||
|
|
||||||
# Setup bzip2
|
|
||||||
import_external_library(bzip2 STATIC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/bzip2/libbz2.a
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/bzip2
|
|
||||||
# bzip2's Makefile has -g CFLAG which is redundant
|
|
||||||
CONFIGURE_COMMAND sed -i "s/-Wall -Winline -O2 -g/-Wall -Winline -O2/g" ${CMAKE_CURRENT_SOURCE_DIR}/bzip2/Makefile
|
|
||||||
BUILD_COMMAND make -C ${CMAKE_CURRENT_SOURCE_DIR}/bzip2
|
|
||||||
CC=${CMAKE_C_COMPILER}
|
|
||||||
CXX=${CMAKE_CXX_COMPILER}
|
|
||||||
INSTALL_COMMAND true)
|
|
||||||
|
|
||||||
# Setup zlib
|
|
||||||
import_external_library(zlib STATIC
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/zlib/lib/libz.a
|
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/zlib
|
|
||||||
CMAKE_ARGS -DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=true
|
|
||||||
BUILD_COMMAND $(MAKE) zlibstatic)
|
|
||||||
|
|
||||||
# Setup RocksDB
|
# Setup RocksDB
|
||||||
import_external_library(rocksdb STATIC
|
import_external_library(rocksdb STATIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/lib/librocksdb.a
|
${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/lib/librocksdb.a
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/include
|
${CMAKE_CURRENT_SOURCE_DIR}/rocksdb/include
|
||||||
DEPENDS gflags-proj
|
CMAKE_ARGS -DUSE_RTTI=ON
|
||||||
CMAKE_ARGS -Dgflags_DIR=${CMAKE_CURRENT_SOURCE_DIR}/gflags/lib/cmake/gflags
|
|
||||||
-DUSE_RTTI=ON
|
|
||||||
-DWITH_TESTS=OFF
|
-DWITH_TESTS=OFF
|
||||||
|
-DGFLAGS_NOTHREADS=OFF
|
||||||
-DCMAKE_INSTALL_LIBDIR=lib
|
-DCMAKE_INSTALL_LIBDIR=lib
|
||||||
-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=true
|
-DCMAKE_SKIP_INSTALL_ALL_DEPENDENCY=true
|
||||||
BUILD_COMMAND $(MAKE) rocksdb)
|
BUILD_COMMAND $(MAKE) rocksdb)
|
||||||
@@ -203,7 +177,8 @@ import_external_library(mgclient STATIC
|
|||||||
${CMAKE_CURRENT_SOURCE_DIR}/mgclient/include
|
${CMAKE_CURRENT_SOURCE_DIR}/mgclient/include
|
||||||
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
CMAKE_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||||
-DBUILD_TESTING=OFF)
|
-DBUILD_TESTING=OFF
|
||||||
|
-DBUILD_CPP_BINDINGS=ON)
|
||||||
find_package(OpenSSL REQUIRED)
|
find_package(OpenSSL REQUIRED)
|
||||||
target_link_libraries(mgclient INTERFACE ${OPENSSL_LIBRARIES})
|
target_link_libraries(mgclient INTERFACE ${OPENSSL_LIBRARIES})
|
||||||
|
|
||||||
@@ -216,12 +191,11 @@ add_external_project(mgconsole
|
|||||||
add_custom_target(mgconsole DEPENDS mgconsole-proj)
|
add_custom_target(mgconsole DEPENDS mgconsole-proj)
|
||||||
|
|
||||||
# Setup spdlog
|
# Setup spdlog
|
||||||
import_external_library(spdlog STATIC
|
set(SPDLOG_FMT_EXTERNAL ON)
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/spdlog/${CMAKE_INSTALL_LIBDIR}/libspdlog.a
|
FetchContent_Declare(spdlog
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/spdlog/include
|
SOURCE_DIR ${CMAKE_CURRENT_SOURCE_DIR}/spdlog)
|
||||||
BUILD_COMMAND $(MAKE) spdlog)
|
|
||||||
|
|
||||||
include(jemalloc.cmake)
|
FetchContent_MakeAvailable(spdlog)
|
||||||
|
|
||||||
# Setup librdkafka.
|
# Setup librdkafka.
|
||||||
import_external_library(librdkafka STATIC
|
import_external_library(librdkafka STATIC
|
||||||
@@ -230,14 +204,55 @@ import_external_library(librdkafka STATIC
|
|||||||
CMAKE_ARGS -DRDKAFKA_BUILD_STATIC=ON
|
CMAKE_ARGS -DRDKAFKA_BUILD_STATIC=ON
|
||||||
-DRDKAFKA_BUILD_EXAMPLES=OFF
|
-DRDKAFKA_BUILD_EXAMPLES=OFF
|
||||||
-DRDKAFKA_BUILD_TESTS=OFF
|
-DRDKAFKA_BUILD_TESTS=OFF
|
||||||
|
-DWITH_ZSTD=OFF
|
||||||
|
-DENABLE_LZ4_EXT=OFF
|
||||||
-DCMAKE_INSTALL_LIBDIR=lib
|
-DCMAKE_INSTALL_LIBDIR=lib
|
||||||
-DWITH_SSL=ON
|
-DWITH_SSL=ON
|
||||||
# If we want SASL, we need to install it on build machines
|
# If we want SASL, we need to install it on build machines
|
||||||
-DWITH_SASL=OFF)
|
-DWITH_SASL=OFF)
|
||||||
target_link_libraries(librdkafka INTERFACE ${OPENSSL_LIBRARIES} zlib)
|
target_link_libraries(librdkafka INTERFACE ${OPENSSL_LIBRARIES} ZLIB::ZLIB)
|
||||||
|
|
||||||
import_library(librdkafka++ STATIC
|
import_library(librdkafka++ STATIC
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/librdkafka/lib/librdkafka++.a
|
${CMAKE_CURRENT_SOURCE_DIR}/librdkafka/lib/librdkafka++.a
|
||||||
${CMAKE_CURRENT_SOURCE_DIR}/librdkafka/include
|
${CMAKE_CURRENT_SOURCE_DIR}/librdkafka/include
|
||||||
)
|
)
|
||||||
target_link_libraries(librdkafka++ INTERFACE librdkafka)
|
target_link_libraries(librdkafka++ INTERFACE librdkafka)
|
||||||
|
|
||||||
|
set(PROTOBUF_ROOT ${CMAKE_CURRENT_SOURCE_DIR}/protobuf/lib)
|
||||||
|
import_external_library(protobuf STATIC
|
||||||
|
${PROTOBUF_ROOT}/lib/libprotobuf.a
|
||||||
|
${PROTOBUF_ROOT}/include
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
CONFIGURE_COMMAND true)
|
||||||
|
|
||||||
|
import_external_library(pulsar STATIC
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/pulsar/pulsar-client-cpp/lib/libpulsarwithdeps.a
|
||||||
|
${CMAKE_CURRENT_SOURCE_DIR}/pulsar/install/include
|
||||||
|
BUILD_IN_SOURCE 1
|
||||||
|
CONFIGURE_COMMAND cmake pulsar-client-cpp
|
||||||
|
-DCMAKE_INSTALL_PREFIX=${CMAKE_CURRENT_SOURCE_DIR}/pulsar/install
|
||||||
|
-DCMAKE_CXX_COMPILER=${CMAKE_CXX_COMPILER}
|
||||||
|
-DCMAKE_C_COMPILER=${CMAKE_C_COMPILER}
|
||||||
|
-DBUILD_DYNAMIC_LIB=OFF
|
||||||
|
-DBUILD_STATIC_LIB=ON
|
||||||
|
-DBUILD_TESTS=OFF
|
||||||
|
-DLINK_STATIC=ON
|
||||||
|
-DPROTOC_PATH=${PROTOBUF_ROOT}/bin/protoc
|
||||||
|
-DBOOST_ROOT=${BOOST_ROOT}
|
||||||
|
-DCMAKE_PREFIX_PATH=${PROTOBUF_ROOT}
|
||||||
|
-DProtobuf_INCLUDE_DIRS=${PROTOBUF_ROOT}/include
|
||||||
|
-DBUILD_PYTHON_WRAPPER=OFF
|
||||||
|
-DBUILD_PERF_TOOLS=OFF
|
||||||
|
-DUSE_LOG4CXX=OFF
|
||||||
|
BUILD_COMMAND $(MAKE) pulsarStaticWithDeps)
|
||||||
|
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,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
|
||||||
1520
libs/pulsar.patch
Normal file
1520
libs/pulsar.patch
Normal file
File diff suppressed because it is too large
Load Diff
21
libs/rocksdb.patch
Normal file
21
libs/rocksdb.patch
Normal file
@@ -0,0 +1,21 @@
|
|||||||
|
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||||
|
index 6761929..6a369af 100644
|
||||||
|
--- a/CMakeLists.txt
|
||||||
|
+++ b/CMakeLists.txt
|
||||||
|
@@ -220,6 +220,7 @@ else()
|
||||||
|
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -momit-leaf-frame-pointer")
|
||||||
|
endif()
|
||||||
|
endif()
|
||||||
|
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-deprecated-copy -Wno-unused-but-set-variable")
|
||||||
|
endif()
|
||||||
|
|
||||||
|
include(CheckCCompilerFlag)
|
||||||
|
@@ -997,7 +998,7 @@ if(NOT WIN32 OR ROCKSDB_INSTALL_ON_WINDOWS)
|
||||||
|
|
||||||
|
if(ROCKSDB_BUILD_SHARED)
|
||||||
|
install(
|
||||||
|
- TARGETS ${ROCKSDB_SHARED_LIB}
|
||||||
|
+ TARGETS ${ROCKSDB_SHARED_LIB} OPTIONAL
|
||||||
|
EXPORT RocksDBTargets
|
||||||
|
COMPONENT runtime
|
||||||
|
ARCHIVE DESTINATION "${CMAKE_INSTALL_LIBDIR}"
|
||||||
177
libs/setup.sh
177
libs/setup.sh
@@ -14,39 +14,49 @@ clone () {
|
|||||||
local git_repo=$1
|
local git_repo=$1
|
||||||
local dir_name=$2
|
local dir_name=$2
|
||||||
local checkout_id=$3
|
local checkout_id=$3
|
||||||
shift 3
|
local shallow=$4
|
||||||
|
shift 4
|
||||||
# Clone if there's no repo.
|
# Clone if there's no repo.
|
||||||
if [[ ! -d "$dir_name" ]]; then
|
if [[ ! -d "$dir_name" ]]; then
|
||||||
echo "Cloning from $git_repo"
|
echo "Cloning from $git_repo"
|
||||||
# If the clone fails, it doesn't make sense to continue with the function
|
# If the clone fails, it doesn't make sense to continue with the function
|
||||||
# execution but the whole script should continue executing because we might
|
# execution but the whole script should continue executing because we might
|
||||||
# clone the same repo from a different source.
|
# clone the same repo from a different source.
|
||||||
git clone "$git_repo" "$dir_name" || return 1
|
|
||||||
|
if [ "$shallow" = true ]; then
|
||||||
|
git clone --depth 1 --branch "$checkout_id" "$git_repo" "$dir_name" || return 1
|
||||||
|
else
|
||||||
|
git clone "$git_repo" "$dir_name" || return 1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
pushd "$dir_name"
|
pushd "$dir_name"
|
||||||
# Just fetch new commits from remote repository. Don't merge/pull them in, so
|
|
||||||
# that we don't clobber local modifications.
|
|
||||||
git fetch
|
|
||||||
# Check whether we have any local changes which need to be preserved.
|
# Check whether we have any local changes which need to be preserved.
|
||||||
local local_changes=true
|
local local_changes=true
|
||||||
if git diff --no-ext-diff --quiet && git diff --no-ext-diff --cached --quiet; then
|
if git diff --no-ext-diff --quiet && git diff --no-ext-diff --cached --quiet; then
|
||||||
local_changes=false
|
local_changes=false
|
||||||
fi
|
fi
|
||||||
# Stash regardless of local_changes, so that a user gets a message on stdout.
|
|
||||||
git stash
|
if [ "$shallow" = false ]; then
|
||||||
# Checkout the primary commit (there's no need to pull/merge).
|
# Stash regardless of local_changes, so that a user gets a message on stdout.
|
||||||
# The checkout fail should exit this script immediately because the target
|
git stash
|
||||||
# commit is not there and that will most likely create build-time errors.
|
# Just fetch new commits from remote repository. Don't merge/pull them in, so
|
||||||
git checkout "$checkout_id" || exit 1
|
# that we don't clobber local modifications.
|
||||||
# Apply any optional cherry pick fixes.
|
git fetch
|
||||||
while [[ $# -ne 0 ]]; do
|
# Checkout the primary commit (there's no need to pull/merge).
|
||||||
local cherry_pick_id=$1
|
# The checkout fail should exit this script immediately because the target
|
||||||
shift
|
# commit is not there and that will most likely create build-time errors.
|
||||||
# The cherry-pick fail should exit this script immediately because the
|
git checkout "$checkout_id" || exit 1
|
||||||
# target commit is not there and that will most likely create build-time
|
# Apply any optional cherry pick fixes.
|
||||||
# errors.
|
while [[ $# -ne 0 ]]; do
|
||||||
git cherry-pick -n "$cherry_pick_id" || exit 1
|
local cherry_pick_id=$1
|
||||||
done
|
shift
|
||||||
|
# The cherry-pick fail should exit this script immediately because the
|
||||||
|
# target commit is not there and that will most likely create build-time
|
||||||
|
# errors.
|
||||||
|
git cherry-pick -n "$cherry_pick_id" || exit 1
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
# Reapply any local changes.
|
# Reapply any local changes.
|
||||||
if [[ $local_changes == true ]]; then
|
if [[ $local_changes == true ]]; then
|
||||||
git stash pop
|
git stash pop
|
||||||
@@ -70,12 +80,13 @@ repo_clone_try_double () {
|
|||||||
secondary_url="$2"
|
secondary_url="$2"
|
||||||
folder_name="$3"
|
folder_name="$3"
|
||||||
ref="$4"
|
ref="$4"
|
||||||
|
shallow="${5:-false}"
|
||||||
echo "Cloning primary from $primary_url secondary from $secondary_url"
|
echo "Cloning primary from $primary_url secondary from $secondary_url"
|
||||||
if [ -z "$primary_url" ]; then echo "Primary should not be empty." && exit 1; fi
|
if [ -z "$primary_url" ]; then echo "Primary should not be empty." && exit 1; fi
|
||||||
if [ -z "$secondary_url" ]; then echo "Secondary should not be empty." && exit 1; fi
|
if [ -z "$secondary_url" ]; then echo "Secondary should not be empty." && exit 1; fi
|
||||||
if [ -z "$folder_name" ]; then echo "Clone folder should not be empty." && exit 1; fi
|
if [ -z "$folder_name" ]; then echo "Clone folder should not be empty." && exit 1; fi
|
||||||
if [ -z "$ref" ]; then echo "Git clone ref should not be empty." && exit 1; fi
|
if [ -z "$ref" ]; then echo "Git clone ref should not be empty." && exit 1; fi
|
||||||
clone "$primary_url" "$folder_name" "$ref" || clone "$secondary_url" "$folder_name" "$ref" || exit 1
|
clone "$primary_url" "$folder_name" "$ref" "$shallow" || clone "$secondary_url" "$folder_name" "$ref" "$shallow" || exit 1
|
||||||
echo ""
|
echo ""
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -94,25 +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/b3e5cb7f20dcc5c806e418df34324eca60d17d4e/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"
|
||||||
|
["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
|
||||||
@@ -121,64 +130,49 @@ 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/b3e5cb7f20dcc5c806e418df34324eca60d17d4e/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"
|
||||||
|
["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="5e5b6d35b4183fd330102c40947b95c4b5c6abb5" # 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"
|
repo_clone_try_double "${primary_urls[antlr4-code]}" "${secondary_urls[antlr4-code]}" "antlr4" "$antlr4_tag" true
|
||||||
# remove shared library from install dependencies
|
pushd antlr4
|
||||||
sed -i 's/install(TARGETS antlr4_shared/install(TARGETS antlr4_shared OPTIONAL/' antlr4/runtime/Cpp/runtime/CMakeLists.txt
|
git apply ../antlr4.10.1.patch
|
||||||
# fix issue https://github.com/antlr/antlr4/issues/3194 - should update Antlr commit once the PR related to the issue gets merged
|
popd
|
||||||
sed -i 's/std::is_nothrow_copy_constructible/std::is_copy_constructible/' antlr4/runtime/Cpp/runtime/src/support/Any.h
|
|
||||||
# replace the utf8cpp version which is used because the older one uses gtest that doesn't
|
|
||||||
# compile with the newer compilers because of uninitialized variable
|
|
||||||
# the newer utf8cpp switched to ftest
|
|
||||||
sed -i 's/v3.1.1/v3.2.1/' antlr4/runtime/Cpp/runtime/CMakeLists.txt
|
|
||||||
|
|
||||||
# cppitertools v2.0 2019-12-23
|
# cppitertools v2.0 2019-12-23
|
||||||
cppitertools_ref="cb3635456bdb531121b82b4d2e3afc7ae1f56d47"
|
cppitertools_ref="cb3635456bdb531121b82b4d2e3afc7ae1f56d47"
|
||||||
repo_clone_try_double "${primary_urls[cppitertools]}" "${secondary_urls[cppitertools]}" "cppitertools" "$cppitertools_ref"
|
repo_clone_try_double "${primary_urls[cppitertools]}" "${secondary_urls[cppitertools]}" "cppitertools" "$cppitertools_ref"
|
||||||
|
|
||||||
# fmt
|
|
||||||
fmt_tag="7bdf0628b1276379886c7f6dda2cef2b3b374f0b" # (2020-11-25)
|
|
||||||
repo_clone_try_double "${primary_urls[fmt]}" "${secondary_urls[fmt]}" "fmt" "$fmt_tag"
|
|
||||||
|
|
||||||
# rapidcheck
|
# rapidcheck
|
||||||
rapidcheck_tag="7bc7d302191a4f3d0bf005692677126136e02f60" # (2020-05-04)
|
rapidcheck_tag="7bc7d302191a4f3d0bf005692677126136e02f60" # (2020-05-04)
|
||||||
repo_clone_try_double "${primary_urls[rapidcheck]}" "${secondary_urls[rapidcheck]}" "rapidcheck" "$rapidcheck_tag"
|
repo_clone_try_double "${primary_urls[rapidcheck]}" "${secondary_urls[rapidcheck]}" "rapidcheck" "$rapidcheck_tag"
|
||||||
|
|
||||||
# google benchmark
|
# google benchmark
|
||||||
benchmark_tag="4f8bfeae470950ef005327973f15b0044eceaceb" # v1.1.0
|
benchmark_tag="v1.6.0"
|
||||||
repo_clone_try_double "${primary_urls[gbenchmark]}" "${secondary_urls[gbenchmark]}" "benchmark" "$benchmark_tag"
|
repo_clone_try_double "${primary_urls[gbenchmark]}" "${secondary_urls[gbenchmark]}" "benchmark" "$benchmark_tag" true
|
||||||
|
|
||||||
# google test
|
# google test
|
||||||
googletest_tag="ec44c6c1675c25b9827aacd08c02433cccde7780" # v1.8.0
|
googletest_tag="release-1.12.1"
|
||||||
repo_clone_try_double "${primary_urls[gtest]}" "${secondary_urls[gtest]}" "googletest" "$googletest_tag"
|
repo_clone_try_double "${primary_urls[gtest]}" "${secondary_urls[gtest]}" "googletest" "$googletest_tag" true
|
||||||
|
|
||||||
# google flags
|
|
||||||
gflags_tag="b37ceb03a0e56c9f15ce80409438a555f8a67b7c" # custom version (May 6, 2017)
|
|
||||||
repo_clone_try_double "${primary_urls[gflags]}" "${secondary_urls[gflags]}" "gflags" "$gflags_tag"
|
|
||||||
|
|
||||||
# libbcrypt
|
# libbcrypt
|
||||||
libbcrypt_tag="8aa32ad94ebe06b76853b0767c910c9fbf7ccef4" # custom version (Dec 16, 2016)
|
libbcrypt_tag="8aa32ad94ebe06b76853b0767c910c9fbf7ccef4" # custom version (Dec 16, 2016)
|
||||||
@@ -198,21 +192,14 @@ cd json
|
|||||||
file_get_try_double "${primary_urls[nlohmann]}" "${secondary_urls[nlohmann]}"
|
file_get_try_double "${primary_urls[nlohmann]}" "${secondary_urls[nlohmann]}"
|
||||||
cd ..
|
cd ..
|
||||||
|
|
||||||
bzip2_tag="0405487e2b1de738e7f1c8afb50d19cf44e8d580" # v1.0.6 (May 26, 2011)
|
rocksdb_tag="v6.14.6" # (2020-10-14)
|
||||||
repo_clone_try_double "${primary_urls[bzip2]}" "${secondary_urls[bzip2]}" "bzip2" "$bzip2_tag"
|
repo_clone_try_double "${primary_urls[rocksdb]}" "${secondary_urls[rocksdb]}" "rocksdb" "$rocksdb_tag" true
|
||||||
|
pushd rocksdb
|
||||||
zlib_tag="cacf7f1d4e3d44d871b605da3b647f07d718623f" # v1.2.11.
|
git apply ../rocksdb.patch
|
||||||
repo_clone_try_double "${primary_urls[zlib]}" "${secondary_urls[zlib]}" "zlib" "$zlib_tag"
|
popd
|
||||||
# remove shared library from install dependencies
|
|
||||||
sed -i 's/install(TARGETS zlib zlibstatic/install(TARGETS zlibstatic/g' zlib/CMakeLists.txt
|
|
||||||
|
|
||||||
rocksdb_tag="f3e33549c151f30ac4eb7c22356c6d0331f37652" # (2020-10-14)
|
|
||||||
repo_clone_try_double "${primary_urls[rocksdb]}" "${secondary_urls[rocksdb]}" "rocksdb" "$rocksdb_tag"
|
|
||||||
# remove shared library from install dependencies
|
|
||||||
sed -i 's/TARGETS ${ROCKSDB_SHARED_LIB}/TARGETS ${ROCKSDB_SHARED_LIB} OPTIONAL/' rocksdb/CMakeLists.txt
|
|
||||||
|
|
||||||
# mgclient
|
# mgclient
|
||||||
mgclient_tag="v1.2.0" # (2021-01-14)
|
mgclient_tag="v1.4.0" # (2022-06-14)
|
||||||
repo_clone_try_double "${primary_urls[mgclient]}" "${secondary_urls[mgclient]}" "mgclient" "$mgclient_tag"
|
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
|
||||||
|
|
||||||
@@ -221,31 +208,33 @@ pymgclient_tag="4f85c179e56302d46a1e3e2cf43509db65f062b3" # (2021-01-15)
|
|||||||
repo_clone_try_double "${primary_urls[pymgclient]}" "${secondary_urls[pymgclient]}" "pymgclient" "$pymgclient_tag"
|
repo_clone_try_double "${primary_urls[pymgclient]}" "${secondary_urls[pymgclient]}" "pymgclient" "$pymgclient_tag"
|
||||||
|
|
||||||
# mgconsole
|
# mgconsole
|
||||||
mgconsole_tag="01ae99bfce772e540e75c076ba03cf06c0c2ac7d" # (2021-05-26)
|
mgconsole_tag="v1.1.0" # (2021-10-07)
|
||||||
repo_clone_try_double "${primary_urls[mgconsole]}" "${secondary_urls[mgconsole]}" "mgconsole" "$mgconsole_tag"
|
repo_clone_try_double "${primary_urls[mgconsole]}" "${secondary_urls[mgconsole]}" "mgconsole" "$mgconsole_tag" true
|
||||||
|
|
||||||
spdlog_tag="46d418164dd4cd9822cf8ca62a116a3f71569241" # (2020-12-01)
|
spdlog_tag="v1.9.2" # (2021-08-12)
|
||||||
repo_clone_try_double "${primary_urls[spdlog]}" "${secondary_urls[spdlog]}" "spdlog" "$spdlog_tag"
|
repo_clone_try_double "${primary_urls[spdlog]}" "${secondary_urls[spdlog]}" "spdlog" "$spdlog_tag" true
|
||||||
|
|
||||||
jemalloc_tag="ea6b3e973b477b8061e0076bb257dbd7f3faa756" # (2021-02-11)
|
|
||||||
repo_clone_try_double "${primary_urls[jemalloc]}" "${secondary_urls[jemalloc]}" "jemalloc" "$jemalloc_tag"
|
|
||||||
pushd jemalloc
|
|
||||||
# ThreadPool select job randomly, and there can be some threads that had been
|
|
||||||
# performed some memory heavy task before and will be inactive for some time,
|
|
||||||
# but until it will became active again, the memory will not be freed since by
|
|
||||||
# default each thread has it's own arena, but there should be not more then
|
|
||||||
# 4*CPU arenas (see opt.nareans description).
|
|
||||||
#
|
|
||||||
# By enabling percpu_arena number of arenas limited to number of CPUs and hence
|
|
||||||
# this problem should go away.
|
|
||||||
#
|
|
||||||
# muzzy_decay_ms -- use MADV_FREE when available on newer Linuxes, to
|
|
||||||
# avoid spurious latencies and additional work associated with
|
|
||||||
# MADV_DONTNEED. See
|
|
||||||
# https://github.com/ClickHouse/ClickHouse/issues/11121 for motivation.
|
|
||||||
./autogen.sh --with-malloc-conf="percpu_arena:percpu,oversize_threshold:0,muzzy_decay_ms:5000,dirty_decay_ms:5000"
|
|
||||||
popd
|
|
||||||
|
|
||||||
# librdkafka
|
# librdkafka
|
||||||
librdkafka_tag="v1.7.0" # (2021-05-06)
|
librdkafka_tag="v1.7.0" # (2021-05-06)
|
||||||
repo_clone_try_double "${primary_urls[librdkafka]}" "${secondary_urls[librdkafka]}" "librdkafka" "$librdkafka_tag"
|
repo_clone_try_double "${primary_urls[librdkafka]}" "${secondary_urls[librdkafka]}" "librdkafka" "$librdkafka_tag" true
|
||||||
|
|
||||||
|
# protobuf
|
||||||
|
protobuf_tag="v3.12.4"
|
||||||
|
repo_clone_try_double "${primary_urls[protobuf]}" "${secondary_urls[protobuf]}" "protobuf" "$protobuf_tag" true
|
||||||
|
pushd protobuf
|
||||||
|
./autogen.sh && ./configure CC=clang CXX=clang++ --prefix=$(pwd)/lib
|
||||||
|
popd
|
||||||
|
|
||||||
|
#pulsar
|
||||||
|
pulsar_tag="v2.8.1"
|
||||||
|
repo_clone_try_double "${primary_urls[pulsar]}" "${secondary_urls[pulsar]}" "pulsar" "$pulsar_tag" true
|
||||||
|
pushd pulsar
|
||||||
|
git apply ../pulsar.patch
|
||||||
|
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
|
||||||
|
|||||||
201
licenses/APL.txt
Normal file
201
licenses/APL.txt
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 {}
|
||||||
|
|
||||||
|
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.
|
||||||
84
licenses/BSL.txt
Normal file
84
licenses/BSL.txt
Normal file
@@ -0,0 +1,84 @@
|
|||||||
|
MEMGRAPH
|
||||||
|
BUSINESS SOURCE LICENSE (BSL) 1.1
|
||||||
|
|
||||||
|
PARAMETERS
|
||||||
|
|
||||||
|
LICENSOR: MEMGRAPH LTD
|
||||||
|
LICENSED WORK: MEMGRAPH COMMUNITY EDITION (MCE) version 2.0
|
||||||
|
ADDITIONAL USE GRANT: You may use the Licensed Work in accordance with the
|
||||||
|
terms of this License solely for any Authorised Purpose,
|
||||||
|
provided that you may not use the Licensed Work for any
|
||||||
|
Excluded Purpose.
|
||||||
|
|
||||||
|
“Authorised Purpose” means any of the following,
|
||||||
|
provided always that (a) you do not embed or otherwise
|
||||||
|
distribute the Licensed Work to third parties; and (b)
|
||||||
|
you do not provide third parties direct access to
|
||||||
|
operate or control the Licensed Work as a standalone
|
||||||
|
solution or service:
|
||||||
|
1. for your internal business purposes;
|
||||||
|
2. to integrate the Licensed Work with your own
|
||||||
|
proprietary software, provided that your proprietary
|
||||||
|
software adds a primary and significant functionality
|
||||||
|
to the Licensed Work (the “Integrated Solution”);
|
||||||
|
and/or
|
||||||
|
3. to host the Integrated Solution and make it available
|
||||||
|
to third parties on a ‘software-as-a-service’ or an
|
||||||
|
equivalent distributed model.
|
||||||
|
“Excluded Purpose” means any of the following:
|
||||||
|
1. making the Licensed Work accessible to any third
|
||||||
|
party outside of your organization as a standalone
|
||||||
|
solution or service;
|
||||||
|
2. hosting and making the Licensed Work available to
|
||||||
|
third parties on a ‘database-as-a-service’ or any
|
||||||
|
equivalent distributed model as a standalone solution or
|
||||||
|
service; and/or
|
||||||
|
3. using the Licensed Work to create a work or solution
|
||||||
|
which competes (or might reasonably be expected to
|
||||||
|
compete) with the Licensed Work.
|
||||||
|
CHANGE DATE: 2026-27-04
|
||||||
|
CHANGE LICENSE: Apache License, Version 2.0
|
||||||
|
|
||||||
|
For information about alternative licensing arrangements, please visit: https://memgraph.com/legal.
|
||||||
|
The Business Source License (this document, or the “License”) is not an
|
||||||
|
‘open source’ license. However, the Licensed Work will eventually be made
|
||||||
|
available under an ‘open source’ license, as stated in this License.
|
||||||
|
|
||||||
|
TERMS
|
||||||
|
The Licensor hereby grants you the right to copy, modify, create derivative works, redistribute, and make non-production
|
||||||
|
use of the Licensed Work. The Licensor may make an Additional Use Grant, above, permitting limited production use.
|
||||||
|
Effective on the Change Date, or the fourth anniversary of the first publicly available distribution of a specific
|
||||||
|
version of the Licensed Work under this License, whichever comes first, the Licensor hereby grants you rights under the
|
||||||
|
terms of the Change License, and the rights granted in the paragraph above terminate. If your use of the Licensed Work
|
||||||
|
does not comply with the requirements currently in effect as described in thisLicense, you must purchase a commercial
|
||||||
|
license from the Licensor, its affiliated entities, or authorized resellers, or you must refrain from using the Licensed
|
||||||
|
Work. All copies of the original and modified Licensed Work, and derivative works of the Licensed Work, are subject to
|
||||||
|
this License. This License applies separately for each version of the Licensed Work and the Change Date may vary for
|
||||||
|
each version of the Licensed Work released by Licensor. You must conspicuously display this License on each original or
|
||||||
|
modified copy of the Licensed Work. If you receive the Licensed Work in original or modified form from a third party,
|
||||||
|
the terms and conditions set forth in this License apply to your use of that work.Any use of the Licensed Work in
|
||||||
|
violation of this License will automatically terminate your rights under this License for the current and all other
|
||||||
|
versions of the Licensed Work. This License does not grant you any right in any trademark or logo of Licensor or its
|
||||||
|
affiliates (provided that you may use a trademark or logo of Licensor as expressly required by this License).
|
||||||
|
TO THE EXTENT PERMITTED BY APPLICABLE LAW, THE LICENSED WORK IS PROVIDED ON AN “AS IS” BASIS. LICENSOR HEREBY DISCLAIMS
|
||||||
|
ALL WARRANTIES AND CONDITIONS, EXPRESS OR IMPLIED, INCLUDING (WITHOUT LIMITATION) WARRANTIES OF MERCHANTABILITY, FITNESS
|
||||||
|
FOR A PARTICULAR PURPOSE, NON-INFRINGEMENT, AND TITLE.
|
||||||
|
MariaDB hereby grants you permission to use this License’s text to license your works, and to refer to it using the
|
||||||
|
trademark ‘Business Source License’, as long as you comply with the Covenants of Licensor below.
|
||||||
|
Covenants of Licensor
|
||||||
|
In consideration of the right to use this License’s text and the ‘Business Source License’ name and trademark, Licensor
|
||||||
|
covenants to MariaDB, and to all other recipients of the Licensed Work to be provided by Licensor:
|
||||||
|
1. To specify as the Change License the GPL Version 2.0 or any later version, or a license that is compatible with GPL
|
||||||
|
Version 2.0 or a later version, where “compatible” means that software provided under the Change License can be
|
||||||
|
included in a program with software provided under GPL Version 2.0 or a later version. Licensor may specify
|
||||||
|
additional Change Licenses without limitation.
|
||||||
|
|
||||||
|
2. To either: (a) specify an additional grant of rights to use that does not impose any additional restriction on the
|
||||||
|
right granted in this License, as the Additional Use Grant; or (b) insert the text “None”.
|
||||||
|
|
||||||
|
3. To specify a Change Date.
|
||||||
|
|
||||||
|
4. Not to modify this License in any other way.
|
||||||
|
|
||||||
|
NOTICE
|
||||||
|
License text copyright (c) 2017 MariaDB Corporation Ab, All Rights Reserved. ‘Business Source License’ is a trademark of MariaDB Corporation Ab.
|
||||||
464
licenses/MEL.txt
Normal file
464
licenses/MEL.txt
Normal file
@@ -0,0 +1,464 @@
|
|||||||
|
MEMGRAPH
|
||||||
|
ENTERPRISE LICENCE AGREEMENT
|
||||||
|
|
||||||
|
|
||||||
|
Memgraph Limited is registered in England under registration 10195084 and has its registered office at Suite 4,
|
||||||
|
Ironstone House, Ironstone Way, Brixworth, Northampton, NN6 9UD (“Memgraph”).
|
||||||
|
|
||||||
|
|
||||||
|
Memgraph agrees to license and/or grant you (the “Customer”) access to the Software ( as defined below) and provide
|
||||||
|
support and services to you only if you accept and agree to be bound by the terms and conditions in this Memgraph
|
||||||
|
Enterprise Licence Agreement (the “Agreement”). By signing an Order Document (as defined below), which is subject to and
|
||||||
|
part of this Agreement, installing and using the Software or by downloading a trial version of the Software, you agree
|
||||||
|
to be bound by the terms of this Agreement.
|
||||||
|
|
||||||
|
|
||||||
|
Memgraph Enterprise Trial Users: If you receive free of charge trial access to the Software, you are deemed a
|
||||||
|
“Customer” for purposes of this Agreement, except that you are subject to the additional restrictions and limitations
|
||||||
|
set forth in Section 3.2 below in respect of your use of such Software.
|
||||||
|
|
||||||
|
|
||||||
|
1. DEFINITIONS.
|
||||||
|
1.1. “Applicable Laws” means (i) all applicable laws, statutes and regulations, and (ii) regulatory policies,
|
||||||
|
guidelines and industry codes (in each case having the force of law), which apply to the provisions of the
|
||||||
|
Software and Services and this Agreement.
|
||||||
|
1.2. “Confidential Information” means all information disclosed by a party (“Disclosing Party”) to the other party
|
||||||
|
(“Receiving Party”), whether orally or in writing, that is designated as confidential or that reasonably should
|
||||||
|
be understood to be confidential given the nature of the information and the circumstances of disclosure.
|
||||||
|
Customer’s Confidential Information includes Customer Data; Memgraph Confidential Information includes the
|
||||||
|
Software and Services; and Confidential Information of each party includes the terms and conditions of this
|
||||||
|
Agreement and all Orders (including pricing), as well as business and marketing plans, technology and technical
|
||||||
|
information, product plans and designs, and business processes disclosed by such party. However, Confidential
|
||||||
|
Information does not include any information that (i) is or becomes generally known to the public without
|
||||||
|
breach of any obligation owed to the Disclosing Party, (ii) was known to the Receiving Party prior to its
|
||||||
|
disclosure by the Disclosing Party without breach of any obligation owed to the Disclosing Party, (iii) is
|
||||||
|
received from a third party without breach of any obligation owed to the Disclosing Party, or (iv) was
|
||||||
|
independently developed by the Receiving Party.
|
||||||
|
1.3. “Customer Data” means business information or other data loaded by or for Customer and/or processed by the
|
||||||
|
Software.
|
||||||
|
1.4. “Data Protection Legislation” means all applicable data protection and privacy legislation in force from time
|
||||||
|
to time in the UK including the General Data Protection Regulation ((EU) 2016/679) as it forms part of UK law
|
||||||
|
by virtue of section 3 of the European Union (Withdrawal) Act 2018; the Data
|
||||||
|
Protection Act 2018; the Privacy and Electronic Communications Directive 2002/58/EC (as updated by Directive
|
||||||
|
2009/136/EC); and the Privacy and Electronic Communications Regulations 2003 (SI 2003/2426), in each case as
|
||||||
|
amended.
|
||||||
|
1.5. “Derivate Work” means any modification or enhancement made by Customer to the Software, whether in source code,
|
||||||
|
binary executable, intermediate or other form.
|
||||||
|
1.6. “Effective Date” means the date on which you execute this Agreement.
|
||||||
|
1.7. “Order Document” or “Order” means, as applicable: (i) in the case of a Trial Licence, the Memgraph trial
|
||||||
|
registration form available on Memgraph’s website; or (ii) in any other case, an order form that is submitted
|
||||||
|
by or on behalf of Customer and executed by or on behalf of the parties referencing
|
||||||
|
this Agreement and that specifies the Software and/or Services ordered by Customer, as well as the specific
|
||||||
|
terms and conditions, for that particular transaction.
|
||||||
|
1.8. “Services” means those services, including Support Services, which may be provided to Customer by Memgraph
|
||||||
|
pursuant to the terms of this Agreement and are expressly limited to those services directly related to
|
||||||
|
Customer’s use of the Software, and expressly exclude any other services.
|
||||||
|
1.9. “Software” means Memgraph’s proprietary downloadable graph database enterprise software known as Memgraph
|
||||||
|
Enterprise Edition (MEE) (“Enterprise Software”) and the associated technical documentation located at
|
||||||
|
https://docs.memgraph.com/ (“Documentation”), as well as software updates, upgrades, bug fixes, or modified
|
||||||
|
versions thereof that Memgraph licenses or provides to Customer directly or indirectly throughout the Subscription
|
||||||
|
Term. For the avoidance of doubt, for the purpose of this Agreement, the term Software excludes Memgraph’s
|
||||||
|
free-to-use software known as Memgraph Community Edition (MCE) which is licensed pursuant to separate terms
|
||||||
|
(including the Business Source Licence (BSL) or Apache 2.0) as indicated here: https://memgraph.com/legal.
|
||||||
|
1.10. “Subscription Term” means the fixed term, of not less than one (1) year, designated in an Order Document
|
||||||
|
beginning on the Effective Date and ending at the end of the period stated therein. If no expiration date is
|
||||||
|
specified in an Order Document, the Subscription Term shall be a one (1) year period (“Minimum Subscription
|
||||||
|
Term”). A “Subscription” is the binding, non-cancellable contract for the use of the Software for the
|
||||||
|
Subscription Term as set forth in an Order Document.
|
||||||
|
1.11. “Support” means the support and maintenance services, including any updates, upgrades, patches, enhancements
|
||||||
|
and bug fixes for the Software that may be provided to Customer by Memgraph pursuant to the terms of this
|
||||||
|
Agreement.
|
||||||
|
1.12. “Users” means employees and Contractors of Customer that Customer has permitted or authorized to access and use
|
||||||
|
of the Software on Customer’s behalf pursuant to the terms of this Agreement.
|
||||||
|
|
||||||
|
2. ORDERS, DELIVERY; SUPPORT.
|
||||||
|
2.1. Delivery. Customer shall access the Software from Memgraph’s website or online repository (as instructed by
|
||||||
|
Memgraph) after the Effective Date. Memgraph shall deliver to Customer the licence key necessary to unlock the
|
||||||
|
Software after Customer accepts an Order. Unless otherwise stated in an Order, Customer is solely responsible
|
||||||
|
for installing Software on Customer’s own computer equipment. In some instances, Customer’s purchasing
|
||||||
|
relationship exists solely between Customer and an authorised reseller of Memgraph’s Software and Services
|
||||||
|
(a “Reseller”), in which case Sections 5.1-5.3 (Fees and Payment) will be inapplicable to such Order(s), and
|
||||||
|
the Reseller shall be responsible for submitting Orders and the appropriate payment method therewith to
|
||||||
|
Memgraph. An Order is not binding until Memgraph accepts and countersigns the Order.
|
||||||
|
2.2. Support. Memgraph will use commercially reasonable efforts to provide Support to Customer in accordance with
|
||||||
|
Memgraph’s then-current terms and conditions set forth at
|
||||||
|
https://download.memgraph.com/legal/memgraph-support-terms-and-conditions.pdf at the support tier stated in the
|
||||||
|
applicable Order. The Support terms and conditions are subject to change at Memgraph’s discretion; however,
|
||||||
|
Memgraph will not materially reduce the level of Support during a Subscription Term for which Fees have been
|
||||||
|
paid.
|
||||||
|
|
||||||
|
3. LICENCE GRANTS; RESTRICTIONS AND PROPRIETARY RIGHTS.
|
||||||
|
Customer’s licence and access rights and benefits, and Memgraph’s obligations to Customer, will vary depending on the
|
||||||
|
product and the type of licence Memgraph is granting. If you purchased a licence to Memgraph Software, your licence will
|
||||||
|
be subject to certain use and/or capacity restrictions, as identified on the applicable Order Document.
|
||||||
|
3.1. Enterprise Software Licence. In consideration of the Fees paid hereunder and subject to the terms of this
|
||||||
|
Agreement and the applicable Order, Memgraph grants Customer a world-wide, non-exclusive, non-transferable,
|
||||||
|
non-sublicensable, and limited licence during the applicable Subscription Term, to download, access, install
|
||||||
|
and use the Enterprise Software up to the maximum capacity (“Licensed Capacity”), and subject to the usage
|
||||||
|
rules, specified in the applicable Order Document, and to use Documentation solely for Customer’s internal
|
||||||
|
business purposes in connection with the operation of the Enterprise Software.
|
||||||
|
3.2. Enterprise Trial Licence. If the Customer downloads, accesses, installs or uses the Software under a trial
|
||||||
|
licence (“Trial Licence”), then Customer may use one (1) copy of the Software in accordance with the terms and
|
||||||
|
conditions of this Agreement for a thirty (30) day period, or such longer trial period represented by the
|
||||||
|
applicable licence key issued by or expressly authorised by Memgraph (the “Trial Period”). Trial Licences are
|
||||||
|
permitted solely for Customer’s evaluation use to determine whether to purchase a Subscription to the Software.
|
||||||
|
Customer may not use a Trial Licence for any other purpose. At the end of the Trial Period, the Trial Licence
|
||||||
|
will expire and this Agreement will terminate as to such Trial Licence and continue to apply to any subsequent
|
||||||
|
Subscription or use of the Software. If Customer decides not to obtain a Subscription upon expiration of the
|
||||||
|
Trial Period, it will promptly cease using and will delete the Software from its computer systems. Memgraph has
|
||||||
|
the right to terminate a Trial Licence at any time for any reason.
|
||||||
|
3.3. Limited right to modify the Software. In consideration of the Fees paid hereunder and subject to the terms of
|
||||||
|
this Agreement and the applicable Order, Memgraph grants Customer a licence to: (i) create, compile and test
|
||||||
|
Derivative Works; (ii) use Derivative Works solely for Customer’s internal business purposes; and (iii)
|
||||||
|
distribute Derivative Works back to Memgraph for potential incorporation into Memgraph’s maintained code base
|
||||||
|
at its sole discretion.
|
||||||
|
3.4. NO OBLIGATIONS. NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS AGREEMENT OR IN ANY ORDER DOCUMENT, MEMGRAPH
|
||||||
|
WILL HAVE NO WARRANTY, INDEMNITY, SUPPORT, OR SERVICE LEVEL, OBLIGATIONS WITH RESPECT TO ANY ENTERPRISE TRIAL,
|
||||||
|
OR OTHER NO-CHARGE SOFTWARE (INCLUDING TOOLS AND UTILITIES) LICENCES.
|
||||||
|
3.5. General Restrictions. Customer acknowledges that the Software, and its structure, organization, and source code,
|
||||||
|
constitute Memgraph’s and its suppliers’ valuable trade secrets, and that usage of the Software is subject to
|
||||||
|
the following restrictions:
|
||||||
|
3.5.1. Restrictions. Customer agrees not to, and not to authorize any third party to: (i) allow access or use
|
||||||
|
of the Software by anyone other than its Users; (ii) distribute, embed, sell, rent, transfer, lease,
|
||||||
|
lend, sublicense, loan, assign, pledge, grant a security interest in, or otherwise make the Software
|
||||||
|
accessible or available to any third party; except to the limited extent expressly provided in Section
|
||||||
|
3.5.2, use the Software in any service-bureau, timesharing, outsourcing or similar arrangement; (iii)
|
||||||
|
subject only to the limited rights set out in Section 3.3, modify, adapt, transform, derive, disassemble,
|
||||||
|
decompile, reverse engineer or otherwise attempt to derive the structure, sequence or organization of,
|
||||||
|
the Software or any portion thereof; (iv) remove or alter product identification, copyright, trademark or
|
||||||
|
other proprietary markings contained in or on the Software; (v) conduct any competitive analysis, publish
|
||||||
|
or share with any third party any results of any technical evaluation or tests performed on the Software,
|
||||||
|
or disclose Software features, errors or bugs to a third party without Memgraph’s prior written consent;
|
||||||
|
or (vi) engage in any act designed to circumvent any restriction set forth in this Agreement, in the
|
||||||
|
Software, or in an Order, including but not limited to restrictions related to Licensed Capacity.
|
||||||
|
3.5.2. Internal Use Licences; Users. The Software is licensed for Customer’s internal business use and not for
|
||||||
|
distribution or use by third parties. For clarity, however, Customer may make available to third parties
|
||||||
|
any Customer-hosted services or other Customer applications or services that make use of or incorporate
|
||||||
|
the Software, provided and solely to the extent that (i) Customer’s application or hosted service adds
|
||||||
|
primary and significant functionality to the Software, (ii) Customer does not embed or otherwise
|
||||||
|
distribute the Software to third parties (iii) Customer does not provide third parties direct access to
|
||||||
|
operate or control the Software itself; and (iv) Customer at all times remains in compliance with the
|
||||||
|
terms of the applicable licence grants under this Agreement. Subject to the terms and conditions of this
|
||||||
|
Agreement, in addition to Customer’s employees, Customer may permit its independent contractors and
|
||||||
|
consultants (“Contractors”) to serve as Users. Customer will remain responsible for compliance by each of
|
||||||
|
its Users (including but not limited to any Contractor Users) with all of the terms and conditions of
|
||||||
|
this Agreement, and any use of the Software by any Contractors must be for the sole benefit of Customer.
|
||||||
|
3.6. Ownership; Reservation of Rights. This is an agreement for use of Memgraph Software and not an agreement for
|
||||||
|
sale. Customer acknowledges that it is obtaining only a limited right to use the Software on a licensed basis,
|
||||||
|
and that irrespective of any use of the words “purchase”, “sale” or like terms hereunder no ownership rights
|
||||||
|
are being conveyed to Customer. Customer agrees that Memgraph or its suppliers retain all right, title and
|
||||||
|
interest (including all patent, copyright, trade secret and other intellectual property rights) in and to the
|
||||||
|
Memgraph Software. Nothing in this Section shall be deemed as granting Memgraph ownership of Customer Data or
|
||||||
|
in any way impacting Customer’s ownership of Customer Data.
|
||||||
|
3.7. Third Party Code. The Software may contain or be provided with components which are licensed from third
|
||||||
|
parties, including components subject to the terms and conditions of “open source” software licences
|
||||||
|
(“Open Source Software”). Open Source Software may be identified in the Software, Documentation, or in a list
|
||||||
|
of the Open Source Software provided to you upon your written request. To the extent required by the licence
|
||||||
|
that accompanies the Open Source Software, the terms of such licence will apply in lieu of the terms of this
|
||||||
|
Agreement with respect to such Open Source Software, including, without limitation, any provisions governing
|
||||||
|
access to source code, modification, or reverse engineering.
|
||||||
|
3.8. IP Ownership. The Parties agree that, save as otherwise provided in this Agreement, neither party shall gain, by
|
||||||
|
virtue of this Agreement, any rights of ownership or any other interest, right or title of copyrights, patents,
|
||||||
|
trade secrets, trademarks, or any other intellectual property rights owned by the other Party. Any and all new
|
||||||
|
works developed in the course of performing obligations pursuant to this Agreement and all new inventions,
|
||||||
|
innovations or ideas developed by a Party in the course of performance of its activities under this Agreement,
|
||||||
|
will belong to that Party who develops the same. Notwithstanding anything to the contrary in this Section, the
|
||||||
|
Parties understand and agree that any and all proprietary materials developed by a Party prior to this
|
||||||
|
Agreement and any modifications, enhancements, improvements or inventions made to such proprietary materials
|
||||||
|
shall be owned by that Party, regardless of which Party prepared or developed such modifications, enhancements,
|
||||||
|
improvements or inventions.
|
||||||
|
3.9. License-back of Derivate Works. If Customer elects, at its sole discretion, to distribute Derivative Works
|
||||||
|
back to Memgraph for potential incorporation into Memgraph’s maintained code base, Customer grants Memgraph
|
||||||
|
(without any restrictions, limitations or requirement of remuneration) a worldwide, non-exclusive, fully
|
||||||
|
paid-up, royalty-free, perpetual, irrevocable, transferable and sublicensable licence to use, exploit, modify,
|
||||||
|
make derivative works of, commercialise, distribute and otherwise exploit such Derivative Works.
|
||||||
|
|
||||||
|
|
||||||
|
4. CUSTOMER DATA; OBLIGATIONS OF CUSTOMER AND MEMGRAPH.
|
||||||
|
4.1. Customer shall retain all of its rights, title, and interest in and to its intellectual property rights in
|
||||||
|
Customer Data. Customer grants to Memgraph a non-exclusive, worldwide, limited-term licence solely to host,
|
||||||
|
copy, transmit and display Customer Data as reasonably necessary for Memgraph to support Customer’s use of the
|
||||||
|
Software, to ensure the security of and to administrate the Software, and to deliver Services in accordance
|
||||||
|
with this Agreement or as otherwise outlined in https://memgraph.com/legal/privacy-policy/.
|
||||||
|
4.2. Protection of Customer Data. Memgraph will maintain appropriate administrative, physical, and technical
|
||||||
|
safeguards, consistent with generally prevailing industry standards, for protection of the security,
|
||||||
|
confidentiality, and integrity of Customer Data, as described in the Documentation. Those safeguards will
|
||||||
|
include, but will not be limited to, measures for preventing access, use, modification, or disclosure of
|
||||||
|
Customer Data by Memgraph personnel, except as permitted by this Agreement.
|
||||||
|
4.3. Personal data. Both parties will comply with all applicable requirements of the Data Protection Legislation.
|
||||||
|
This section 4.3 is in addition to, and does not relieve, remove or replace, a party’s obligations under the
|
||||||
|
Data Protection Legislation. Notwithstanding the foregoing, the parties acknowledge that, in the ordinary
|
||||||
|
course of providing the Services, Memgraph shall not process personal data (as defined in the Data Protection
|
||||||
|
Legislation) on behalf of the Customer. In the event that the Customer requires Memgraph to process personal
|
||||||
|
data on its behalf, it shall notify Memgraph and the parties shall execute such additional terms as necessary
|
||||||
|
to comply with applicable Data Protection Legislation.
|
||||||
|
|
||||||
|
5. FEES AND PAYMENT.
|
||||||
|
5.1. Fees. Customer will pay Memgraph the fees for the Licences and Services as set forth in the applicable Order (
|
||||||
|
“Fees”). Customer acknowledges and agrees that if Customer’s use of the Software exceeds the Licensed Capacity
|
||||||
|
set forth on the applicable Orders or otherwise requires the payment of additional fees (per the terms of this
|
||||||
|
Agreement), Customer shall be invoiced for such usage and Customer agrees to pay the additional fees in
|
||||||
|
accordance with this Section. Notwithstanding the terms of Section 5.4 below (Reconciliation), Customer
|
||||||
|
acknowledges and agrees that it is obligated to ensure that its Software usage does not exceed the Licensed Capacity
|
||||||
|
and to promptly notify Memgraph of any such excess usage no more than thirty (30) days from the last day of the
|
||||||
|
calendar month during which such excess usage occurred.
|
||||||
|
5.2. Payment Terms. Except as otherwise specifically set forth on an Order Document, all fees are due and payable
|
||||||
|
within thirty days after the date of invoice. Renewal Fees for any renewal Subscription Term (if purchased by
|
||||||
|
Customer) will be due and payable within thirty (30) days of expiration of the then-current term. If Fees are
|
||||||
|
not paid when due, or in the event of other breach of this Agreement, Customer shall discontinue use of the
|
||||||
|
Software and Memgraph may suspend its performance, including its delivery of technical support of the Software
|
||||||
|
or other Services without further notice and without penalty. All Orders (including multi-year Subscriptions
|
||||||
|
with annual payment schedules) are non-cancellable and all amounts paid are non-refundable, unless otherwise
|
||||||
|
expressly set forth herein. Any invoiced amount not received by the due date will accrue late interest at the
|
||||||
|
rate of 1.5% of the outstanding balance per month, or the maximum rate permitted by applicable law, whichever
|
||||||
|
is lower.
|
||||||
|
5.3. Taxes. Fees are exclusive of taxes. Customer will pay any sales, use, value added, duties, fees and other
|
||||||
|
governmental assessments or charges arising out of this Agreement and the transactions contemplated herein.
|
||||||
|
Customer will make all payments free and clear of, and without reduction for, any withholding taxes.
|
||||||
|
5.4. Reconciliation. At Memgraph’s request from time to time, not exceeding once per quarter, Customer will provide
|
||||||
|
Memgraph with a report detailing its use of the Software, including its non-production and/or production use
|
||||||
|
and using the self-monitoring capabilities of the Software or other means, and Memgraph may inspect Customer’s
|
||||||
|
records related to such report not more frequently than annually to ensure payment of Fees. Any on-site review
|
||||||
|
will be conducted during regular business hours at Customer’s offices. The parties will use reasonable efforts
|
||||||
|
to promptly resolve any discrepancies between licensed usage and actual usage.
|
||||||
|
|
||||||
|
6. APPLICABLE LAWS.
|
||||||
|
6.1. Each Party shall perform this Agreement in accordance with all Applicable Laws. Without prejudice to the
|
||||||
|
foregoing, each Party shall:
|
||||||
|
6.1.1. comply with all Applicable Laws relating to anti-bribery, anti-corruption, anti-slavery and human
|
||||||
|
trafficking, including the Bribery Act 2010 and the Modern Slavery Act 2015
|
||||||
|
(the “Relevant Requirements”);
|
||||||
|
6.1.2. have and maintain in place throughout the Term its own policies and procedures, including adequate
|
||||||
|
procedures under the Bribery Act 2010, to ensure compliance with the Relevant Requirements, and will
|
||||||
|
enforce them where appropriate;
|
||||||
|
6.1.3. (if not prohibited by law or regulation from doing so) promptly report to the other Party any request or
|
||||||
|
demand for any undue financial or other advantage of any kind received by the reporting Party in
|
||||||
|
connection with the performance of this Agreement; and
|
||||||
|
6.1.4. (if not prohibited by law or regulation from doing so) notify the other Party (and email shall be
|
||||||
|
sufficient for this purpose) as soon as it becomes aware of any actual or suspected slavery or human
|
||||||
|
trafficking in a supply chain which has a connection with this Agreement.
|
||||||
|
|
||||||
|
7. REPRESENTATIONS AND WARRANTIES.
|
||||||
|
7.1. Mutual Representations and Warranties. Each Party represents and warrants to the other that: (i) it is a
|
||||||
|
corporation lawfully incorporated and validly existing pursuant to the laws of its place of incorporation;
|
||||||
|
(ii) it has all requisite power and authority, corporate or otherwise, to execute, deliver and perform its
|
||||||
|
obligations under this Agreement; and (iii) this Agreement constitutes its legal, valid and binding obligations
|
||||||
|
and may be enforced against it.
|
||||||
|
7.2. Limited Memgraph Warranty. Memgraph warrants that the Software, when used as permitted hereunder and in
|
||||||
|
accordance with the applicable Documentation, will operate in all material respects as described in the
|
||||||
|
applicable Documentation, and that the Services will be provided in a professional manner consistent with
|
||||||
|
industry standards.
|
||||||
|
7.3. Limitations; Remedy. Memgraph does not warrant that the Software or the Services will be error-free,
|
||||||
|
uninterrupted or meet Customer’s specific requirements or that performance of the Services will be
|
||||||
|
uninterrupted. Memgraph will have no warranty obligation under Section 7.2 for Customer’s misuse or failure to
|
||||||
|
use the Software in accordance with its Documentation or this Agreement. Customer’s sole and exclusive remedy,
|
||||||
|
and Memgraph’s sole and exclusive obligation, for breach of warranty will be (i) during the thirty (30) day
|
||||||
|
period following initial Delivery of the Software under an Order, Memgraph’s correction of the program errors
|
||||||
|
that cause the breach of warranty, or if Memgraph cannot substantially correct such breach in a commercially
|
||||||
|
reasonable manner, a refund of the fees paid for the nonconforming Software (ii) during the remainder of the
|
||||||
|
relevant Subscription Term, Memgraph’s delivery of Support with respect to any such program errors. In the
|
||||||
|
event of a refund remedy, Customer’s licences and right to use the Software or receive Services will end. In
|
||||||
|
the event of any noticed breach of warranty with respect to Services, Memgraph’s sole and exclusive obligation
|
||||||
|
shall be the re-performance of the deficient Services.
|
||||||
|
7.4. Disclaimer. THIS SECTION 7 IS A LIMITED WARRANTY AND, EXCEPT EXPRESSLY AS SET FORTH IN SECTION 7.2,
|
||||||
|
THE SOFTWARE, INCLUDING WITHOUT LIMITATION THE THIRD-PARTY CODE, AND ALL SERVICES ARE PROVIDED “AS IS”.
|
||||||
|
MEMGRAPH MAKES NO OTHER WARRANTIES OR REPRESENTATIONS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE, AND DISCLAIMS
|
||||||
|
ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
|
||||||
|
|
||||||
|
8. INDEMNIFICATION.
|
||||||
|
8.1. By Memgraph. Memgraph will defend against any action against Customer brought by a third party to the extent the
|
||||||
|
action is based on a claim that the Software infringes a third party’s patent, copyright or trademark
|
||||||
|
(a “Claim”) and indemnify Customer from the damages, liabilities, costs and expenses (including reasonable
|
||||||
|
attorneys’ fees) awarded against Customer or agreed in settlement by Customer resulting from such Claim. If
|
||||||
|
your use of the Software is (or in Memgraph’s opinion likely to be) enjoined, then Memgraph may, at its own
|
||||||
|
expense and at its option: (i) substitute substantially similar functionality for the Software which renders
|
||||||
|
it non-infringing; (ii) procure for Customer the right to continue to use the Software; or if (i) and (ii) are
|
||||||
|
not commercially reasonable, terminate this Agreement and refund Customer any prepaid, unused (pro-rated) Fees
|
||||||
|
for the duration of the then-current Subscription Term. The foregoing obligations of Memgraph will not apply:
|
||||||
|
(i) if the Software is modified by any party other than Memgraph, but solely to the extent the alleged
|
||||||
|
infringement is caused by such modification; (ii) if the Software is used in combination with other products or
|
||||||
|
processes not provided or authorized by Memgraph, but solely to the extent the alleged infringement is caused
|
||||||
|
by such combination; (iii) use of any version or release of Software other than the most current version or
|
||||||
|
release made available to Customer by Memgraph, if its use would have avoided the infringement; (iv) any
|
||||||
|
unauthorized use of the Software. THIS SECTION 8.1 SETS FORTH MEMGRAPH’S SOLE LIABILITY AND CUSTOMER’S SOLE
|
||||||
|
AND EXCLUSIVE REMEDY WITH RESPECT TO ANY CLAIM OF INTELLECTUAL PROPERTY INFRINGEMENT.
|
||||||
|
8.2. By Customer. Customer will indemnify and hold Memgraph and its suppliers harmless against any claims,
|
||||||
|
liabilities, costs, and expenses (including reasonable attorneys’ fees) that Memgraph or its suppliers may
|
||||||
|
incur as a result of a third-party claim arising from or related to Customer Data, or misuse or unauthorised
|
||||||
|
use of the Software by Customer or any User.
|
||||||
|
8.3. Conditions. All defence and indemnity obligations under Sections 8.1 and 8.2 are conditioned on the indemnitee
|
||||||
|
(i) giving the indemnitor written notice of the relevant claim within thirty (30) days after the indemnitee
|
||||||
|
receives notice of the Claim (or sooner if required by applicable law); (ii) reasonably cooperating with the
|
||||||
|
indemnitor, at the indemnitor’s expense, in the defence of the claim; and (iii) giving the indemnitor sole
|
||||||
|
control of the defence and any settlement negotiations. The indemnitee may participate in the defence at its
|
||||||
|
expense.
|
||||||
|
|
||||||
|
9. LIMITATION OF LIABILITY.
|
||||||
|
9.1. TO THE EXTENT PERMITTED BY LAW, NEITHER MEMGRAPH NOR CUSTOMER SHALL BE LIABLE TO THE OTHER OR ANY THIRD PARTY
|
||||||
|
FOR LOST PROFITS (WHETHER DIRECT OR INDIRECT) OR LOSS OF USE OR DATA, SUBSTITUTE GOODS OR SERVICES, OR FOR
|
||||||
|
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, SPECIAL OR EXEMPLARY DAMAGES (INCLUDING DAMAGE TO BUSINESS, REPUTATION OR
|
||||||
|
GOODWILL), OR INDIRECT DAMAGES OF ANY TYPE HOWEVER CAUSED, WHETHER BY BREACH OF WARRANTY, BREACH OF CONTRACT,
|
||||||
|
IN TORT (INCLUDING NEGLIGENCE) OR ANY OTHER LEGAL OR EQUITABLE CAUSE OF ACTION EVEN IF SUCH PARTY HAS BEEN
|
||||||
|
ADVISED OF SUCH DAMAGES IN ADVANCE OR IF SUCH DAMAGES WERE FORESEEABLE.
|
||||||
|
9.2. LIMITATIONS ON DIRECT DAMAGES. EXCEPT FOR ANY EXCLUDED CLAIMS AND ANY DAMAGES THAT CANNOT BE LIMITED UNDER
|
||||||
|
APPLICABLE LAW, IN NO EVENT WILL MEMGRAPH’S TOTAL AGGREGATE LIABILITY ARISING FROM OR RELATED TO THIS
|
||||||
|
AGREEMENT, EXCEED AN AMOUNT EQUAL TO THE TOTAL AMOUNT OF FEES PAID OR PAYABLE BY CUSTOMER TO MEMGRAPH UNDER
|
||||||
|
THIS AGREEMENT DURING THE TWELVE MONTHS PRECEDING THE CLAIM. THE FOREGOING LIMITATIONS SHALL NOT APPLY TO: (i)
|
||||||
|
PAYMENTS TO A THIRD PARTY ARISING FROM A PARTY’S OBLIGATIONS UNDER SECTION 8 (INDEMNIFICATION); (ii) BREACH BY
|
||||||
|
A PARTY OF SECTION 10 (CONFIDENTIAL INFORMATION), AND (iii) INFRINGEMENT BY A PARTY OF THE OTHER PARTY’S
|
||||||
|
INTELLECTUAL PROPERTY RIGHTS (COLLECTIVELY EXCLUSIONS (i)-(iii) ARE REFERRED TO AS THE “EXCLUDED CLAIMS”). WITH
|
||||||
|
RESPECT TO ANY EXCLUDED CLAIMS, MEMGRAPH’S TOTAL AGGREGATE LIABILITY SHALL IN NO EVENT EXCEED £1,000,000.
|
||||||
|
9.3. Nothing in this Agreement excludes the liability of Memgraph for death or personal injury caused by the
|
||||||
|
Supplier’s negligence; or for fraud or fraudulent misrepresentation.
|
||||||
|
|
||||||
|
10. CONFIDENTIALITY.
|
||||||
|
10.1. The Receiving Party will use the same degree of care that it uses to protect the confidentiality of its own
|
||||||
|
confidential information of like kind (but not less than reasonable care) to (i) not use any confidential
|
||||||
|
information of the Disclosing Party for any purpose outside the scope of this agreement and (ii) except as
|
||||||
|
otherwise authorized by the Disclosing Party in writing, limit access to confidential information of the
|
||||||
|
Disclosing Party to those of its and its affiliates’ employees and contractors who need that access for
|
||||||
|
purposes consistent with this agreement and who have signed confidentiality agreements with the receiving party
|
||||||
|
containing protections not materially less protective of the confidential information than those herein.
|
||||||
|
Neither party will disclose the terms of this agreement or any Orders to any third-party other than its
|
||||||
|
affiliates, legal counsel, and accountants without the other party’s prior written consent, provided that a
|
||||||
|
party that makes any such disclosure to its affiliate, legal counsel or accountants will remain responsible for
|
||||||
|
such affiliate’s, legal counsel’s, or accountant’s compliance with this “Confidentiality” section.
|
||||||
|
10.2. Compelled Disclosure. The Receiving Party may disclose confidential information of the Disclosing Party to the
|
||||||
|
extent compelled by law to do so, provided the Receiving Party gives the Disclosing Party prior notice of the
|
||||||
|
compelled disclosure (to the extent legally permitted) and reasonable assistance, at the Disclosing Party’s
|
||||||
|
cost, if the Disclosing Party wishes to contest the disclosure. If the receiving party is compelled by law to
|
||||||
|
disclose the Disclosing Party’s confidential information as part of a civil proceeding to which the Disclosing
|
||||||
|
Party is a party, and the Disclosing Party is not contesting the disclosure, the Disclosing Party will
|
||||||
|
reimburse the Receiving Party for its reasonable cost of complying and providing secure access to that
|
||||||
|
confidential information.
|
||||||
|
|
||||||
|
|
||||||
|
11. TERMINATION.
|
||||||
|
11.1. Term. The term (“Term”) of this Agreement will commence on the Effective Date and continue until all
|
||||||
|
Subscriptions, licence terms and Orders expire, unless earlier terminated in accordance with this Section 11.
|
||||||
|
11.2. Termination for Cause. In the event of a material breach of this Agreement (excluding any breaches for which an
|
||||||
|
exclusive remedy is expressly provided), the non-breaching party may terminate this Agreement if such breach
|
||||||
|
is not cured within thirty (30) days after written notice thereof (except that for a breach of Section 3.5
|
||||||
|
(“General Restrictions”), there will be no cure period). For clarity, material breach of this Agreement
|
||||||
|
includes, but is not limited to, failure to timely pay amounts due hereunder, exceeding the scope of any
|
||||||
|
Licence granted hereunder (including the Licensed Capacity), violating the Licence restrictions, breach of
|
||||||
|
Section 6.1 and failing to protect the other party’s Confidential Information.
|
||||||
|
11.3. Without affecting any other right or remedy available to it, and to the fullest extent permitted by applicable
|
||||||
|
law, either party may terminate this Agreement with immediate effect by giving written notice to the other
|
||||||
|
party if the other party:
|
||||||
|
11.3.1. suspends, or threatens to suspend, payment of its debts or is unable to pay its debts as they fall due or
|
||||||
|
admits inability to pay its debts or is deemed unable to pay its debts within the meaning of section 123
|
||||||
|
of the Insolvency Act 1986, as if the words “it is proved to the satisfaction of the court” did not
|
||||||
|
appear in sections 123(1)(e) or 123(2) of the Insolvency Act 1986; or
|
||||||
|
11.3.2. the other party commences negotiations with all or any class of its creditors with a view to rescheduling
|
||||||
|
any of its debts, or makes a proposal for or enters into any compromise or arrangement with its creditors
|
||||||
|
other than for the sole purpose of a scheme for a solvent amalgamation of that other party with one or
|
||||||
|
more other companies or the solvent reconstruction of that other party; or
|
||||||
|
11.3.3. a petition is filed, a notice is given, a resolution is passed, or an order is made, for or in connection
|
||||||
|
with the winding up of that other party other than for the sole purpose of a scheme for a solvent
|
||||||
|
amalgamation of that other party with one or more other companies or the solvent reconstruction of that
|
||||||
|
other party; or
|
||||||
|
11.3.4. an application is made to court, or an order is made, for the appointment of an administrator, or if a
|
||||||
|
notice of intention to appoint an administrator is given or if an administrator is appointed, over the
|
||||||
|
other party; or
|
||||||
|
11.3.5. the holder of a qualifying floating charge over the assets of that other party has become entitled to
|
||||||
|
appoint or has appointed an administrative receiver; or
|
||||||
|
11.3.6. a person becomes entitled to appoint a receiver over the assets of the other party or a receiver is
|
||||||
|
appointed over the assets of the other party; or
|
||||||
|
11.3.7. a creditor or encumbrancer of the other party attaches or takes possession of, or a distress, execution,
|
||||||
|
sequestration or other such process is levied or enforced on or sued against, the whole or any part of
|
||||||
|
the other party’s assets and such attachment or process is not discharged within 30 days; or
|
||||||
|
11.3.8. any event occurs, or proceeding is taken, with respect to the other party in any jurisdiction to which
|
||||||
|
it is subject that has an effect equivalent or similar to any of the events mentioned in clause 11.3.1 to
|
||||||
|
clause 11.3.7 (inclusive); or
|
||||||
|
11.3.9. the other party suspends or ceases, or threatens to suspend or cease, carrying on all or a substantial
|
||||||
|
part of its business.
|
||||||
|
11.4. Effect of Termination. Upon the termination of this Agreement: (i) all licences will terminate; (ii) Customer
|
||||||
|
will immediately discontinue all use of the affected Software and erase all other tangible embodiments of
|
||||||
|
Memgraph Confidential Information in Customer’s possession or control, and promptly certify the same to
|
||||||
|
Memgraph; (iii) Memgraph may immediately cease providing the Services; (iv) (subject to this Section),
|
||||||
|
Memgraph will return or delete all tangible embodiments of Customer Confidential Information in Memgraph’s
|
||||||
|
possession or control; and (v) Sections 1 (“Definitions”), 3.5 (“General Restrictions”), 3.6 (“Ownership;
|
||||||
|
Reservation of Rights”), 5 (“Fees and Payment”), 7.3 (“Limitations”), 7.4 (“Disclaimer”), 8
|
||||||
|
(“Indemnification”), 9 (“Limitation of Liability”), 10 (“Confidentiality”), 11.4 (“Effect of Termination”),
|
||||||
|
and 12 (“Miscellaneous”) will survive. If a party’s file retention policies or a valid legal order provides
|
||||||
|
for backup or archival copies of files to be retained, such party will notify the other party of such policy
|
||||||
|
or order, protect the other party’s Confidential Information as required hereunder, and permanently erase,
|
||||||
|
delete, or destroy such Confidential Information as soon as permissible under such policy or order.
|
||||||
|
|
||||||
|
12. MISCELLANEOUS.
|
||||||
|
12.1. Assignment. This Agreement will bind and inure to the benefit of each party’s permitted successors and assigns.
|
||||||
|
Memgraph may assign this Agreement to any affiliate or in connection with a merger, reorganization,
|
||||||
|
acquisition, or other transfer of all or substantially all of Memgraph’s assets or voting securities. Customer
|
||||||
|
may not assign or transfer this Agreement, in whole or in part, without Memgraph’s written consent except that
|
||||||
|
Customer may assign its rights and obligations under this Agreement, in whole but not in part, without
|
||||||
|
Memgraph’s written consent in connection with any merger, consolidation, sale of all or substantially all of
|
||||||
|
Customer’s assets or voting stock, or any other similar transaction provided that: (i) the assignee is not a
|
||||||
|
direct competitor of Memgraph; (ii) Customer provides prompt written notice of such assignment to Memgraph;
|
||||||
|
(iii) the assignee is capable of fully performing Customer’s obligations under this Agreement; and (iv) the
|
||||||
|
assignee agrees to be bound by the terms and conditions of this Agreement. Any attempt to transfer or assign
|
||||||
|
this Agreement without such written consent will be null and void.Force Majeure. Memgraph shall have no
|
||||||
|
liability to the Customer under this Agreement if it is prevented from or delayed in performing its obligations
|
||||||
|
under this Agreement, or from carrying on its business, by acts, events, omissions or accidents beyond its
|
||||||
|
reasonable control, including strikes, lock-outs or other industrial disputes (whether involving the workforce
|
||||||
|
of Memgraph or any other party), failure of a utility service or transport or telecommunications network, act
|
||||||
|
of God, war, pandemic, riot, civil commotion, malicious damage, compliance with any law or governmental order,
|
||||||
|
rule, regulation or direction, accident, breakdown of plant or machinery, fire, flood, storm or default of
|
||||||
|
suppliers or subcontractors, provided that the Customer is notified of such an event and its expected duration.
|
||||||
|
12.2. Governing Law. This Agreement and any dispute or claim arising out of or in connection with it or its subject
|
||||||
|
matter or formation (including non-contractual disputes or claims) shall be governed by and construed in
|
||||||
|
accordance with the law of England and Wales.
|
||||||
|
12.3. Jurisdiction. Each party irrevocably agrees that the courts of England and Wales shall have exclusive
|
||||||
|
jurisdiction to settle any dispute or claim arising out of or in connection with this Agreement or its subject
|
||||||
|
matter or formation (including non-contractual disputes or claims).
|
||||||
|
12.4. Severability; Waiver; Construction. If a court of competent jurisdiction adjudges any provision of this
|
||||||
|
Agreement to be invalid or unenforceable, the remaining provisions of this Agreement, if capable of substantial
|
||||||
|
performance, will continue in full force and effect without being impaired or invalidated in any way. The
|
||||||
|
parties agree to replace any invalid provision with a valid provision that most closely approximates the intent
|
||||||
|
and economic effect of the invalid provision. All waivers must be in writing. A party’s consent to, or waiver
|
||||||
|
of, enforcement of this Agreement on one occasion will not be deemed a waiver of any other provision or such
|
||||||
|
provision on any other occasion. In this Agreement, the word “including” means “including but not limited to.”
|
||||||
|
No presumption will operate in favour of or against any party as a result of its role in drafting this
|
||||||
|
Agreement.
|
||||||
|
12.5. Subcontractors. Memgraph may use the services of subcontractors in connection with its performance of this
|
||||||
|
Agreement, provided that Memgraph remains solely responsible for (i) compliance of any such subcontractor with
|
||||||
|
the terms of this Agreement and (ii) the overall performance of Memgraph as required under this Agreement.
|
||||||
|
12.6. Use of Aggregate Data. Customer agrees that Memgraph may collect, use and disclose quantitative data and
|
||||||
|
metadata derived from the use of the Software (i) for its own internal, statistical analysis, (ii) to develop
|
||||||
|
and improve the Software and (iii) to create and distribute reports and other materials regarding use of the
|
||||||
|
Software. For clarity, any such data collected, used, and disclosed will be in anonymized aggregate form only
|
||||||
|
and shall not identify Customer or its Users, or disclose any Customer Data.Independent Contractors. The
|
||||||
|
parties are independent contractors. No agency, partnership, franchise, joint venture, or employment
|
||||||
|
relationship is intended or created by this Agreement. Neither party has the power or authority to create or
|
||||||
|
assume any obligation, or make any representations or warranties, on behalf of the other party.
|
||||||
|
12.7. Publicity. Memgraph may, in conformity with Customer’s trademark usage guidelines, use Customer’s name and logo
|
||||||
|
in Memgraph’s sales and marketing materials, including in business presentations, Customer lists, and on
|
||||||
|
websites. Neither party will issue a press release regarding this Agreement without the other party’s prior
|
||||||
|
written consent. Neither party will disclose the terms of this Agreement to any third party, except as required
|
||||||
|
by law.
|
||||||
|
12.8. Notice. Any notice, consent, or waiver hereunder must be in writing, addressed to the attention of “Legal
|
||||||
|
Department” at the address set forth above, and delivered by personal delivery, reputable rapid courier, or
|
||||||
|
certified/registered mail, return receipt requested, and will be deemed given upon personal delivery, one (1)
|
||||||
|
day after deposit with an overnight domestic courier, two (2) days after deposit with an international courier,
|
||||||
|
or five (5) days after deposit in the certified or registered mail. A party may specify a new address by
|
||||||
|
providing notice to the other party in accordance with this Section.
|
||||||
|
12.9. Compliance with Law. Each party will comply with all applicable laws, regulations, and orders of any
|
||||||
|
governmental authority of competent jurisdiction in its performance under this Agreement, including but not
|
||||||
|
limited to those applicable to data collection and the privacy and security of personal information, including
|
||||||
|
trans-border data transfers and data breach notification requirements as required of each party by law.
|
||||||
|
12.10.Supremacy; Modification. This Agreement will prevail over any written instrument submitted by Customer; the
|
||||||
|
terms of any purchase order, acknowledgement, or similar document submitted by Customer to Memgraph will have
|
||||||
|
no effect. If the express terms of an Order Document conflict with this Agreement, the terms on the Order
|
||||||
|
Document will prevail, but only with respect to that Order Document. This Agreement cannot be varied or
|
||||||
|
supplemented by course of dealing or by usage of trade. All modifications or amendments to this Agreement must
|
||||||
|
be in writing and signed by both parties, except that subsequent renewals and purchases of additional Licensed
|
||||||
|
Capacity can be procured by payment against an issued invoice as set forth in Section 5 (“Fees and Payment”)
|
||||||
|
above.
|
||||||
|
12.11.No Third Party Beneficiaries. This Agreement is not intended and shall not be construed to give any third party
|
||||||
|
any interest or rights with respect to or in connection with any agreement or provision herein, except as
|
||||||
|
expressly provided for in this Agreement.
|
||||||
|
12.12.Entire Agreement. This Agreement in its original English text, sets forth the complete, exclusive, and final
|
||||||
|
agreement of the parties concerning the subject matter hereof, supersedes, replaces, and merges all prior and
|
||||||
|
contemporaneous agreements, communications, and understandings, both
|
||||||
|
written and oral, between them concerning the subject matter hereof. This Agreement may be executed in
|
||||||
|
counterparts.
|
||||||
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
|
||||||
|
)/
|
||||||
|
'''
|
||||||
@@ -16,7 +16,7 @@
|
|||||||
// CALL example.procedure(1, 2) YIELD args, result;
|
// CALL example.procedure(1, 2) YIELD args, result;
|
||||||
// CALL example.procedure(1) YIELD args, result;
|
// CALL example.procedure(1) YIELD args, result;
|
||||||
// Naturally, you may pass in different arguments or yield less fields.
|
// Naturally, you may pass in different arguments or yield less fields.
|
||||||
static void procedure(const struct mgp_list *args, const struct mgp_graph *graph, struct mgp_result *result,
|
static void procedure(struct mgp_list *args, struct mgp_graph *graph, struct mgp_result *result,
|
||||||
struct mgp_memory *memory) {
|
struct mgp_memory *memory) {
|
||||||
size_t args_size = 0;
|
size_t args_size = 0;
|
||||||
if (mgp_list_size(args, &args_size) != MGP_ERROR_NO_ERROR) {
|
if (mgp_list_size(args, &args_size) != MGP_ERROR_NO_ERROR) {
|
||||||
@@ -27,7 +27,7 @@ static void procedure(const struct mgp_list *args, const struct mgp_graph *graph
|
|||||||
goto error_something_went_wrong;
|
goto error_something_went_wrong;
|
||||||
}
|
}
|
||||||
for (size_t i = 0; i < args_size; ++i) {
|
for (size_t i = 0; i < args_size; ++i) {
|
||||||
const struct mgp_value *value = NULL;
|
struct mgp_value *value = NULL;
|
||||||
if (mgp_list_at(args, i, &value) != MGP_ERROR_NO_ERROR) {
|
if (mgp_list_at(args, i, &value) != MGP_ERROR_NO_ERROR) {
|
||||||
goto error_free_list;
|
goto error_free_list;
|
||||||
}
|
}
|
||||||
@@ -65,22 +65,20 @@ static void procedure(const struct mgp_list *args, const struct mgp_graph *graph
|
|||||||
error_free_list:
|
error_free_list:
|
||||||
mgp_list_destroy(args_copy);
|
mgp_list_destroy(args_copy);
|
||||||
error_something_went_wrong:
|
error_something_went_wrong:
|
||||||
|
// Best effort. If it fails, there is nothing we can do.
|
||||||
mgp_result_set_error_msg(result, "Something went wrong!");
|
mgp_result_set_error_msg(result, "Something went wrong!");
|
||||||
return;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Each module needs to define mgp_init_module function.
|
int add_read_procedure(struct mgp_module *module, struct mgp_memory *memory) {
|
||||||
// Here you can register multiple procedures your module supports.
|
|
||||||
int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
|
|
||||||
struct mgp_proc *proc = NULL;
|
struct mgp_proc *proc = NULL;
|
||||||
if (mgp_module_add_read_procedure(module, "procedure", procedure, &proc) != MGP_ERROR_NO_ERROR) {
|
if (mgp_module_add_read_procedure(module, "procedure", procedure, &proc) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
const struct mgp_type *any_type = NULL;
|
struct mgp_type *any_type = NULL;
|
||||||
if (mgp_type_any(&any_type) != MGP_ERROR_NO_ERROR) {
|
if (mgp_type_any(&any_type) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
const struct mgp_type *nullable_any_type = NULL;
|
struct mgp_type *nullable_any_type = NULL;
|
||||||
if (mgp_type_nullable(any_type, &nullable_any_type) != MGP_ERROR_NO_ERROR) {
|
if (mgp_type_nullable(any_type, &nullable_any_type) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -97,14 +95,14 @@ int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
|
|||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
mgp_value_destroy(null_value);
|
mgp_value_destroy(null_value);
|
||||||
const struct mgp_type *string = NULL;
|
struct mgp_type *string = NULL;
|
||||||
if (mgp_type_string(&string) != MGP_ERROR_NO_ERROR) {
|
if (mgp_type_string(&string) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
if (mgp_proc_add_result(proc, "result", string) != MGP_ERROR_NO_ERROR) {
|
if (mgp_proc_add_result(proc, "result", string) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
const struct mgp_type *list_of_anything = NULL;
|
struct mgp_type *list_of_anything = NULL;
|
||||||
if (mgp_type_list(nullable_any_type, &list_of_anything) != MGP_ERROR_NO_ERROR) {
|
if (mgp_type_list(nullable_any_type, &list_of_anything) != MGP_ERROR_NO_ERROR) {
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
@@ -114,6 +112,101 @@ int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This example procedure returns one field called `created_vertex`
|
||||||
|
// which contains the newly created vertex.
|
||||||
|
// In case of memory errors, this function will report them and finish
|
||||||
|
// executing.
|
||||||
|
//
|
||||||
|
// The procedure can be invoked in openCypher using the following call:
|
||||||
|
// CALL example.write_procedure("property value") YIELD created_vertex;
|
||||||
|
static void write_procedure(struct mgp_list *args, struct mgp_graph *graph, struct mgp_result *result,
|
||||||
|
struct mgp_memory *memory) {
|
||||||
|
size_t args_size = 0;
|
||||||
|
if (mgp_list_size(args, &args_size) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_something_went_wrong;
|
||||||
|
}
|
||||||
|
if (args_size != 1) {
|
||||||
|
mgp_result_set_error_msg(result, "The procedure requires exactly one argument!");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct mgp_value *arg = NULL;
|
||||||
|
if (mgp_list_at(args, 0, &arg) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_something_went_wrong;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct mgp_vertex *vertex = NULL;
|
||||||
|
if (mgp_graph_create_vertex(graph, memory, &vertex) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_something_went_wrong;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mgp_vertex_set_property(vertex, "new_property", arg) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_destroy_vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct mgp_value *vertex_value = NULL;
|
||||||
|
if (mgp_value_make_vertex(vertex, &vertex_value) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_destroy_vertex;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct mgp_result_record *record = NULL;
|
||||||
|
if (mgp_result_new_record(result, &record) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_destroy_vertex_value;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mgp_result_record_insert(record, "created_vertex", vertex_value) != MGP_ERROR_NO_ERROR) {
|
||||||
|
goto error_destroy_vertex_value;
|
||||||
|
}
|
||||||
|
mgp_value_destroy(vertex_value);
|
||||||
|
|
||||||
|
return;
|
||||||
|
|
||||||
|
error_destroy_vertex:
|
||||||
|
mgp_vertex_destroy(vertex);
|
||||||
|
goto error_something_went_wrong;
|
||||||
|
error_destroy_vertex_value:
|
||||||
|
mgp_value_destroy(vertex_value);
|
||||||
|
error_something_went_wrong:
|
||||||
|
// Best effort. If it fails, there is nothing we can do.
|
||||||
|
mgp_result_set_error_msg(result, "Something went wrong!");
|
||||||
|
}
|
||||||
|
|
||||||
|
int add_write_procedure(struct mgp_module *module, struct mgp_memory *memory) {
|
||||||
|
struct mgp_proc *proc = NULL;
|
||||||
|
if (mgp_module_add_write_procedure(module, "write_procedure", write_procedure, &proc) != MGP_ERROR_NO_ERROR) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
struct mgp_type *string_type = NULL;
|
||||||
|
if (mgp_type_string(&string_type) != MGP_ERROR_NO_ERROR) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (mgp_proc_add_arg(proc, "required_arg", string_type) != MGP_ERROR_NO_ERROR) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
struct mgp_type *node_type = NULL;
|
||||||
|
if (mgp_type_node(&node_type) != MGP_ERROR_NO_ERROR) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
if (mgp_proc_add_result(proc, "created_vertex", node_type) != MGP_ERROR_NO_ERROR) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Each module needs to define mgp_init_module function.
|
||||||
|
// Here you can register multiple procedures your module supports.
|
||||||
|
int mgp_init_module(struct mgp_module *module, struct mgp_memory *memory) {
|
||||||
|
if (add_read_procedure(module, memory) != 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
if (add_write_procedure(module, memory) != 0) {
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
// This is an optional function if you need to release any resources before the
|
// This is an optional function if you need to release any resources before the
|
||||||
// module is unloaded. You will probably need this if you acquired some
|
// module is unloaded. You will probably need this if you acquired some
|
||||||
// resources in mgp_init_module.
|
// resources in mgp_init_module.
|
||||||
|
|||||||
@@ -14,7 +14,7 @@ def procedure(context: mgp.ProcCtx,
|
|||||||
vertex_count=int,
|
vertex_count=int,
|
||||||
avg_degree=mgp.Number,
|
avg_degree=mgp.Number,
|
||||||
props=mgp.Nullable[mgp.Map]):
|
props=mgp.Nullable[mgp.Map]):
|
||||||
'''
|
"""
|
||||||
This example procedure returns 4 fields.
|
This example procedure returns 4 fields.
|
||||||
|
|
||||||
* `args` is a copy of arguments passed to the procedure.
|
* `args` is a copy of arguments passed to the procedure.
|
||||||
@@ -31,7 +31,7 @@ def procedure(context: mgp.ProcCtx,
|
|||||||
MATCH (n) CALL example.procedure(n, 1) YIELD * RETURN *;
|
MATCH (n) CALL example.procedure(n, 1) YIELD * RETURN *;
|
||||||
|
|
||||||
Naturally, you may pass in different arguments or yield different fields.
|
Naturally, you may pass in different arguments or yield different fields.
|
||||||
'''
|
"""
|
||||||
# Create a properties map if we received an Edge, Vertex, or Path instance.
|
# Create a properties map if we received an Edge, Vertex, or Path instance.
|
||||||
props = None
|
props = None
|
||||||
if isinstance(required_arg, (mgp.Edge, mgp.Vertex)):
|
if isinstance(required_arg, (mgp.Edge, mgp.Vertex)):
|
||||||
@@ -53,3 +53,42 @@ def procedure(context: mgp.ProcCtx,
|
|||||||
# Multiple rows can be produced by returning an iterable of mgp.Record.
|
# Multiple rows can be produced by returning an iterable of mgp.Record.
|
||||||
return mgp.Record(args=args_copy, vertex_count=vertex_count,
|
return mgp.Record(args=args_copy, vertex_count=vertex_count,
|
||||||
avg_degree=avg_degree, props=props)
|
avg_degree=avg_degree, props=props)
|
||||||
|
|
||||||
|
|
||||||
|
@mgp.write_proc
|
||||||
|
def write_procedure(context: mgp.ProcCtx,
|
||||||
|
property_name: str,
|
||||||
|
property_value: mgp.Nullable[mgp.Any]
|
||||||
|
) -> mgp.Record(created_vertex=mgp.Vertex):
|
||||||
|
"""
|
||||||
|
This example procedure creates a new vertex with the specified property
|
||||||
|
and connects it to all existing vertex which has the same property with
|
||||||
|
the same name. It returns one field called `created_vertex` which
|
||||||
|
contains the newly created vertex.
|
||||||
|
|
||||||
|
Any errors can be reported by raising an Exception.
|
||||||
|
|
||||||
|
The procedure can be invoked in openCypher using the following calls:
|
||||||
|
- CALL example.write_procedure("property_name", "property_value")
|
||||||
|
YIELD created_vertex;
|
||||||
|
- MATCH (n) WHERE n.my_property IS NOT NULL
|
||||||
|
WITH n.my_property as property_value
|
||||||
|
CALL example.write_procedure("my_property", property_value)
|
||||||
|
YIELD created_vertex;
|
||||||
|
|
||||||
|
Naturally, you may pass in different arguments.
|
||||||
|
"""
|
||||||
|
# Collect all the vertices that has the required property with the same
|
||||||
|
# value
|
||||||
|
vertices_to_connect = []
|
||||||
|
for v in context.graph.vertices:
|
||||||
|
if v.properties[property_name] == property_value:
|
||||||
|
vertices_to_connect.append(v)
|
||||||
|
# Create the new vertex and set its property
|
||||||
|
vertex = context.graph.create_vertex()
|
||||||
|
vertex.properties.set(property_name, property_value)
|
||||||
|
# Connect the new vertex to the other vertices
|
||||||
|
for v in vertices_to_connect:
|
||||||
|
context.graph.create_edge(vertex, v, mgp.EdgeType("HAS_SAME_VALUE"))
|
||||||
|
|
||||||
|
return mgp.Record(created_vertex=vertex)
|
||||||
|
|||||||
@@ -1,15 +1,3 @@
|
|||||||
# Install the license file.
|
|
||||||
if (MG_ENTERPRISE)
|
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE_ENTERPRISE.md
|
|
||||||
DESTINATION share/doc/memgraph RENAME copyright)
|
|
||||||
else()
|
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/LICENSE_COMMUNITY.md
|
|
||||||
DESTINATION share/doc/memgraph RENAME copyright)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
install(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}/third-party-licenses
|
|
||||||
DESTINATION share/doc/memgraph)
|
|
||||||
|
|
||||||
# Install systemd service (must use absolute path).
|
# Install systemd service (must use absolute path).
|
||||||
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/memgraph.service
|
install(FILES ${CMAKE_CURRENT_SOURCE_DIR}/memgraph.service
|
||||||
DESTINATION /lib/systemd/system)
|
DESTINATION /lib/systemd/system)
|
||||||
@@ -22,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)
|
||||||
@@ -29,24 +25,14 @@ 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")
|
||||||
if (MG_ENTERPRISE)
|
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
||||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/conffiles;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/enterprise/conffiles;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/copyright;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/enterprise/copyright;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/preinst;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/preinst;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/prerm;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/prerm;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm;"
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm;"
|
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;")
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;")
|
|
||||||
else()
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/community/conffiles;"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/community/copyright;"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/preinst;"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/prerm;"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postrm;"
|
|
||||||
"${CMAKE_CURRENT_SOURCE_DIR}/debian/postinst;")
|
|
||||||
endif()
|
|
||||||
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS ON)
|
||||||
# Description formatting is important, summary must be followed with a newline and 1 space.
|
# Description formatting is important, summary must be followed with a newline and 1 space.
|
||||||
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
|
set(CPACK_DEBIAN_PACKAGE_DESCRIPTION "${CPACK_PACKAGE_DESCRIPTION_SUMMARY}
|
||||||
@@ -55,30 +41,33 @@ 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)
|
||||||
set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils")
|
set(CPACK_RPM_PACKAGE_REQUIRES_PRE "shadow-utils")
|
||||||
if (MG_ENTERPRISE)
|
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_SOURCE_DIR}/rpm/memgraph.spec.in")
|
||||||
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_SOURCE_DIR}/rpm/enterprise/memgraph.spec.in")
|
set(CPACK_RPM_PACKAGE_LICENSE "Memgraph License")
|
||||||
set(CPACK_RPM_PACKAGE_LICENSE "Memgraph Enterprise Trial License")
|
|
||||||
else()
|
|
||||||
set(CPACK_RPM_USER_BINARY_SPECFILE "${CMAKE_CURRENT_SOURCE_DIR}/rpm/community/memgraph.spec.in")
|
|
||||||
set(CPACK_RPM_PACKAGE_LICENSE "Memgraph Community License")
|
|
||||||
endif()
|
|
||||||
# Description formatting is important, no line must be greater than 80 characters.
|
# Description formatting is important, no line must be greater than 80 characters.
|
||||||
set(CPACK_RPM_PACKAGE_DESCRIPTION "Contains Memgraph, the graph database.
|
set(CPACK_RPM_PACKAGE_DESCRIPTION "Contains Memgraph, the graph database.
|
||||||
It aims to deliver developers the speed, simplicity and scale required to build
|
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)
|
||||||
|
|||||||
@@ -1,98 +0,0 @@
|
|||||||
# Memgraph Community User License Agreement
|
|
||||||
|
|
||||||
This License Agreement governs your use of the Memgraph Community Release (the
|
|
||||||
"Software") and documentation ("Documentation").
|
|
||||||
|
|
||||||
BY DOWNLOADING AND/OR ACCESSING THIS SOFTWARE, YOU ("LICENSEE") AGREE TO THESE
|
|
||||||
TERMS.
|
|
||||||
|
|
||||||
1. License Grant
|
|
||||||
|
|
||||||
The Software and Documentation are provided to Licensee at no charge and are
|
|
||||||
licensed, not sold to Licensee. No ownership of any part of the Software and
|
|
||||||
Documentation is hereby transferred to Licensee. Subject to (i) the terms and
|
|
||||||
conditions of this License Agreement, and (ii) any additional license
|
|
||||||
restrictions and parameters contained on Licensor’s quotation, website, or
|
|
||||||
order form, Licensor hereby grants Licensee a personal, non-assignable,
|
|
||||||
non-transferable and non-exclusive license to install, access and use the
|
|
||||||
Software (in object code form only) and Documentation for Licensee’s internal
|
|
||||||
business purposes (including for use in a production environment) only. All
|
|
||||||
rights relating to the Software and Documentation that are not expressly
|
|
||||||
licensed in this License Agreement, whether now existing or which may hereafter
|
|
||||||
come into existence are reserved for Licensor. Licensee shall not remove,
|
|
||||||
obscure, or alter any proprietary rights notices (including without limitation
|
|
||||||
copyright and trademark notices), which may be affixed to or contained within
|
|
||||||
the Software or Documentation.
|
|
||||||
|
|
||||||
Licensor may terminate this License Agreement with immediate effect upon
|
|
||||||
written notice to the Licensee. Upon termination Licensee shall delete all
|
|
||||||
electronic copies of all or any part of the Software and/or the Documentation
|
|
||||||
resident in its systems or elsewhere.
|
|
||||||
|
|
||||||
2. Restrictions
|
|
||||||
|
|
||||||
Licensee will not, directly or indirectly, (a) copy the Software or
|
|
||||||
Documentation in any manner or for any purpose; (b) install, access or use any
|
|
||||||
component of the Software or Documentation for any purpose not expressly
|
|
||||||
granted in Section 1 above; (c) resell, distribute, publicly display or
|
|
||||||
publicly perform the Software or Documentation or any component thereof, by
|
|
||||||
transfer, lease, loan or any other means, or make it available for use by
|
|
||||||
others in any time-sharing, service bureau or similar arrangement; (d)
|
|
||||||
disassemble, decrypt, extract, reverse engineer or reverse compile the
|
|
||||||
Software, or otherwise attempt to discover the source code, confidential
|
|
||||||
algorithms or techniques incorporated in the Software; (e) export the Software
|
|
||||||
or Documentation in violation of any applicable laws or regulations; (f)
|
|
||||||
modify, translate, adapt, or create derivative works from the Software or
|
|
||||||
Documentation; (g) circumvent, disable or otherwise interfere with
|
|
||||||
security-related features of the Software or Documentation; (h) use the
|
|
||||||
Software or Documentation for any illegal purpose, in any manner that is
|
|
||||||
inconsistent with the terms of this License Agreement, or to engage in illegal
|
|
||||||
activity; (i) remove or alter any trademark, logo, copyright or other
|
|
||||||
proprietary notices, legends, symbols or labels on, or embedded in, the
|
|
||||||
Software or Documentation; or (j) provide access to the Software or
|
|
||||||
Documentation to third parties.
|
|
||||||
|
|
||||||
3. Warranty Disclaimer
|
|
||||||
|
|
||||||
THE SOFTWARE AND DOCUMENTATION ARE PROVIDED "AS IS" AND LICENSOR MAKES NO
|
|
||||||
WARRANTIES, EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED
|
|
||||||
WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, TITLE OR NON
|
|
||||||
INFRINGEMENT OF THIRD PARTIES’ INTELLECTUAL PROPERTY RIGHTS OR OTHER
|
|
||||||
PROPRIETARY RIGHTS. NEITHER THIS LICENSE AGREEMENT NOR ANY DOCUMENTATION
|
|
||||||
FURNISHED UNDER IT IS INTENDED TO EXPRESS OR IMPLY ANY WARRANTY THAT THE
|
|
||||||
OPERATION OF THE SOFTWARE WILL BE UNINTERRUPTED, TIMELY, OR ERROR-FREE.
|
|
||||||
|
|
||||||
4. Limitation of Liability
|
|
||||||
|
|
||||||
Licensor shall not in any circumstances be liable, whether in tort (including
|
|
||||||
for negligence or breach of statutory duty howsoever arising), contract,
|
|
||||||
misrepresentation (whether innocent or negligent) or otherwise for: loss of
|
|
||||||
profits, loss of business, depletion of goodwill or similar losses, loss of
|
|
||||||
anticipated savings, loss of goods, loss or corruption of data or computer
|
|
||||||
downtime, or any special, indirect, consequential or pure economic loss, costs,
|
|
||||||
damages, charges or expenses.
|
|
||||||
|
|
||||||
Licensor's total aggregate liability in contract, tort (including without
|
|
||||||
limitation negligence or breach of statutory duty howsoever arising),
|
|
||||||
misrepresentation (whether innocent or negligent), restitution or otherwise,
|
|
||||||
arising in connection with the performance or contemplated performance of this
|
|
||||||
License Agreement shall in all circumstances be limited to GBP10.00 (ten pounds
|
|
||||||
sterling).
|
|
||||||
|
|
||||||
Nothing in this License Agreement shall limit Licensor’s liability in the case
|
|
||||||
of death or personal injury caused by negligence, fraud, or fraudulent
|
|
||||||
misrepresentation, or where it otherwise cannot be limited by law.
|
|
||||||
|
|
||||||
5. Technical Data
|
|
||||||
|
|
||||||
Licensor may collect and use technical information (such as usage patterns)
|
|
||||||
gathered when the Licensee downloads and uses the Software. This is generally
|
|
||||||
statistical data which does not identify an identified or identifiable
|
|
||||||
individual. It may also include Licensee’s IP address which is personal data
|
|
||||||
and is processed in accordance with our Privacy Policy. We only use this
|
|
||||||
technical information to improve our products.
|
|
||||||
|
|
||||||
6. Law and Jurisdiction
|
|
||||||
|
|
||||||
This License Agreement is governed by the laws of England and is subject to the
|
|
||||||
non-exclusive jurisdiction of the courts of England.
|
|
||||||
@@ -1,671 +0,0 @@
|
|||||||
# Memgraph Enterprise - Software Subscription Agreement
|
|
||||||
|
|
||||||
Memgraph Limited is registered in England under registration 10195084 and has
|
|
||||||
its registered office at Suite 4, Ironstone House, Ironstone Way, Brixworth,
|
|
||||||
Northampton, NN6 9UD ("Memgraph").
|
|
||||||
|
|
||||||
Memgraph agrees to license and/or grant you (the "Customer") access to the
|
|
||||||
Software, as defined below and provide support and services to you only if you
|
|
||||||
accept and agree to be bound by the terms and conditions in this Software
|
|
||||||
Subscription Agreement (the "Agreement"). By signing an Order Document (as
|
|
||||||
defined below), which is subject to and part of this Agreement, installing and
|
|
||||||
using the Software or by downloading a trial version of the Software, you agree
|
|
||||||
to be bound by the terms of this Agreement.
|
|
||||||
|
|
||||||
Memgraph Enterprise Trial Users: If you receive free of charge trial access to
|
|
||||||
the Software, you are deemed a "Customer" for purposes of this Agreement except
|
|
||||||
that you are subject to the additional restrictions and limitations set forth
|
|
||||||
in Section 3.2 below as to such Software.
|
|
||||||
|
|
||||||
## 1. DEFINITIONS.
|
|
||||||
|
|
||||||
1.1. "Applicable Laws" means (i) all applicable laws, statutes and regulations,
|
|
||||||
and (ii) regulatory policies, guidelines and industry codes (in each case
|
|
||||||
having the force of law), which apply to the provisions of the Software and
|
|
||||||
Services and this Agreement.
|
|
||||||
|
|
||||||
1.2. "Confidential Information" means all information disclosed
|
|
||||||
by a party ("Disclosing Party") to the other party ("Receiving Party"), whether
|
|
||||||
orally or in writing, that is designated as confidential or that reasonably
|
|
||||||
should be understood to be confidential given the nature of the information and
|
|
||||||
the circumstances of disclosure. Customer's Confidential Information includes
|
|
||||||
Customer Data; Memgraph Confidential Information includes the Software and
|
|
||||||
Services; and Confidential Information of each party includes the terms and
|
|
||||||
conditions of this Agreement and all Orders (including pricing), as well as
|
|
||||||
business and marketing plans, technology and technical information, product
|
|
||||||
plans and designs, and business processes disclosed by such party. However,
|
|
||||||
Confidential Information does not include any information that (i) is or
|
|
||||||
becomes generally known to the public without breach of any obligation owed to
|
|
||||||
the Disclosing Party, (ii) was known to the Receiving Party prior to its
|
|
||||||
disclosure by the Disclosing Party without breach of any obligation owed to the
|
|
||||||
Disclosing Party, (iii) is received from a third party without breach of any
|
|
||||||
obligation owed to the Disclosing Party, or (iv) was independently developed by
|
|
||||||
the Receiving Party.
|
|
||||||
|
|
||||||
1.3. "Customer Data" means business information or other data loaded by or for
|
|
||||||
Customer and/or processed by the Software.
|
|
||||||
|
|
||||||
1.4. "Data Protection Legislation" means all applicable data protection and
|
|
||||||
privacy legislation in force from time to time in the UK including the General
|
|
||||||
Data Protection Regulation ((EU) 2016/679); the Data Protection Act 2018; the
|
|
||||||
Privacy and Electronic Communications Directive 2002/58/EC (as updated by
|
|
||||||
Directive 2009/136/EC) and the Privacy and Electronic Communications
|
|
||||||
Regulations 2003 (SI 2003/2426) as amended.
|
|
||||||
|
|
||||||
1.5. "Order Document" or "Order" means an order on the Memgraph form of
|
|
||||||
provisioning document that is submitted by or on behalf of Customer, and
|
|
||||||
executed by or on behalf of the parties referencing this Agreement and that
|
|
||||||
specifies the Software and/or Services ordered by Customer, as well as the
|
|
||||||
specific terms and conditions, for that particular transaction.
|
|
||||||
|
|
||||||
1.6. "Services" means those services, including Support Services, which may be
|
|
||||||
provided to Customer by Memgraph pursuant to the terms of this Agreement and
|
|
||||||
are expressly limited to those services directly related to Customer's use of
|
|
||||||
the Software, and expressly exclude any other services.
|
|
||||||
|
|
||||||
1.7. "Software" means the Memgraph proprietary downloadable graph database
|
|
||||||
enterprise software ("Enterprise Software") and the associated technical
|
|
||||||
documentation located at https://docs.memgraph.com/ ("Documentation"), as well
|
|
||||||
as software updates, upgrades, bug fixes, or modified versions thereof that
|
|
||||||
Memgraph licenses or provides to Customer directly or indirectly throughout the
|
|
||||||
Subscription Term.
|
|
||||||
|
|
||||||
1.8. "Subscription Term" means the fixed term, of not less than one (1) year,
|
|
||||||
designated in an Order Document beginning on the Effective Date and ending at
|
|
||||||
the end of the period stated therein. If no expiration date is specified in an
|
|
||||||
Order Document, the Subscription Term shall be a one (1) year period ("Minimum
|
|
||||||
Subscription Term"). A "Subscription" is the binding, non-cancellable contract
|
|
||||||
for the use of the Software for the Subscription Term as set forth in an Order
|
|
||||||
Document.
|
|
||||||
|
|
||||||
1.9. "Support" means the support and maintenance services, including any
|
|
||||||
updates, upgrades, patches, enhancements and bug fixes for the Software that
|
|
||||||
may be provided to Customer by Memgraph pursuant to the terms of this
|
|
||||||
Agreement.
|
|
||||||
|
|
||||||
1.10. "Users" means employees and Contractors of Customer that Customer has
|
|
||||||
permitted or authorized to access and use of the Software on Customer's behalf
|
|
||||||
pursuant to the terms of this Agreement.
|
|
||||||
|
|
||||||
## 2. ORDERS, DELIVERY; SUPPORT.
|
|
||||||
|
|
||||||
2.1. Delivery. Memgraph will promptly deliver the Software after it accepts an
|
|
||||||
Order and Customer issues a purchase order referencing such Order. Unless
|
|
||||||
otherwise stated in an Order, Customer is solely responsible for installing
|
|
||||||
Software on Customer's own computer equipment. In some instances, Customer's
|
|
||||||
purchasing relationship exists solely between Customer and an authorised
|
|
||||||
reseller of Memgraph's Software and Services (a "Reseller"), in which case
|
|
||||||
Sections 5.1-5.3 (Fees and Payment) will be inapplicable to such Order(s), and
|
|
||||||
the Reseller shall be responsible for submitting Orders and the appropriate
|
|
||||||
payment method therewith to Memgraph. An Order is not binding until Memgraph
|
|
||||||
accepts and countersigns the Order.
|
|
||||||
|
|
||||||
2.2 Support. Memgraph will use commercially reasonable efforts to provide
|
|
||||||
Support to Customer in accordance with Memgraph's then-current terms and
|
|
||||||
conditions set forth at
|
|
||||||
https://download.memgraph.com/legal/memgraph-support-terms-and-conditions.pdf
|
|
||||||
at the support tier stated in the applicable Order. The Support terms and
|
|
||||||
conditions are subject to change at Memgraph's discretion; however, Memgraph
|
|
||||||
will not materially reduce the level of Support during a Subscription Term for
|
|
||||||
which Fees have been paid.
|
|
||||||
|
|
||||||
## 3. LICENCE GRANTS; RESTRICTIONS AND PROPRIETARY RIGHTS.
|
|
||||||
|
|
||||||
Customer's licence and access rights and benefits and Memgraph's obligations to
|
|
||||||
Customer will vary depending on the product and the type of licence Memgraph is
|
|
||||||
granting. If you purchased a licence to Memgraph Software, your licence will be
|
|
||||||
subject to certain use and/or capacity restrictions, as identified on the
|
|
||||||
applicable Order Document.
|
|
||||||
|
|
||||||
3.1. Enterprise Software Licence. In consideration of the Fees paid hereunder
|
|
||||||
and subject to the terms of this Agreement and the applicable Order, Memgraph
|
|
||||||
grants Customer a world-wide, non-exclusive, non-transferable,
|
|
||||||
non-sublicenseable, and limited licence during the applicable Subscription
|
|
||||||
Term, to install, and use the Enterprise Software up to the maximum capacity
|
|
||||||
("Licensed Capacity"), and subject to the usage rules, specified in the
|
|
||||||
applicable Order Document, and to use Documentation solely for Customer's
|
|
||||||
internal business purposes in connection with operation of the Enterprise
|
|
||||||
Software.
|
|
||||||
|
|
||||||
3.2. Enterprise Trial Licence. If the Customer downloads, accesses, or uses the
|
|
||||||
Software under a trial licence ("Trial Licence"), then Customer may use one (1)
|
|
||||||
copy of the Software in accordance with the terms and conditions of this
|
|
||||||
Agreement for a thirty (30) day period, or such longer trial period represented
|
|
||||||
by the applicable licence key issued by or expressly authorised by Memgraph
|
|
||||||
(the "Trial Period"). Trial Licences are permitted solely for Customer's
|
|
||||||
evaluation use to determine whether to purchase a Subscription to the Software.
|
|
||||||
Customer may not use a Trial Licence for any other purpose. At the end of the
|
|
||||||
Trial Period, the Trial Licence will expire (and this Agreement will terminate
|
|
||||||
as to such Licence and continue to apply to any subsequent Subscription or use
|
|
||||||
of the Software; if Customer decides not to obtain a Subscription upon
|
|
||||||
expiration of the Trial Period, it will promptly cease using and will delete
|
|
||||||
the Software from its computer systems. Memgraph has the right to terminate a
|
|
||||||
Trial Licence at any time for any reason.
|
|
||||||
|
|
||||||
3.3. NO OBLIGATIONS. NOTWITHSTANDING ANYTHING TO THE CONTRARY IN THIS AGREEMENT
|
|
||||||
OR IN ANY ORDER DOCUMENT, MEMGRAPH WILL HAVE NO WARRANTY, INDEMNITY, SUPPORT,
|
|
||||||
OR SERVICE LEVEL, OBLIGATIONS WITH RESPECT TO ANY ENTERPRISE TRIAL, OR OTHER
|
|
||||||
NO-CHARGE SOFTWARE (INCLUDING TOOLS AND UTILITIES) LICENCES.
|
|
||||||
|
|
||||||
3.4. General Restrictions. Customer acknowledges that the Software, and its
|
|
||||||
structure, organization, and source code, constitute Memgraph's and its
|
|
||||||
suppliers' valuable trade secrets, and that usage of the Software is subject to
|
|
||||||
the following restrictions:
|
|
||||||
|
|
||||||
3.4.1. Restrictions. Customer agrees not to, and not to authorize any third
|
|
||||||
party to: (i) allow access or use of the Software by anyone other than its
|
|
||||||
Users; (ii) distribute, embed, sell, rent, transfer, lease, lend, sublicense,
|
|
||||||
loan, assign, pledge, grant a security interest in, or otherwise make the
|
|
||||||
Software accessible or available to any third party; except to the limited
|
|
||||||
extent expressly provided in Section 3.4.2, use the Software in any
|
|
||||||
service-bureau, timesharing, outsourcing or similar arrangement; or (iii)
|
|
||||||
disassemble, decompile, reverse engineer or otherwise attempt to derive the
|
|
||||||
structure, sequence or organization of source code or APIs; (iv) remove or
|
|
||||||
alter product identification, copyright, trademark or other proprietary
|
|
||||||
markings contained in or on the Software; (v) modify, adapt, recast, transform
|
|
||||||
or otherwise prepare a derivative work of the Software or portion thereof; (vi)
|
|
||||||
conduct any competitive analysis, publish or share with any third party any
|
|
||||||
results of any technical evaluation or tests performed on the Software, or
|
|
||||||
disclose Software features, errors or bugs to a third party without Memgraph's
|
|
||||||
prior written consent; or (vii) engage in any act designed to circumvent any
|
|
||||||
restriction set forth in this Agreement, in the Software, or in an Order,
|
|
||||||
including but not limited to restrictions related to Licensed Capacity.
|
|
||||||
|
|
||||||
3.4.2. Internal Use Licences; Users. The Software is licensed for Customer's
|
|
||||||
internal business use and not for distribution or use by third parties. For
|
|
||||||
clarity, however, Customer may make available to third parties any
|
|
||||||
Customer-hosted services or other Customer applications or services that make
|
|
||||||
use of or incorporate the Software, provided and solely to the extent that (i)
|
|
||||||
Customer's application or hosted service adds primary and significant
|
|
||||||
functionality to the Software, (ii) Customer does not embed or otherwise
|
|
||||||
distribute the Software to third parties, (iii) Customer does not provide third
|
|
||||||
parties direct access to operate or control the Software itself; and (iv)
|
|
||||||
Customer at all times remains in compliance with the terms of the applicable
|
|
||||||
licence grants under this Agreement. Subject to the terms and conditions of
|
|
||||||
this Agreement, in addition to Customer's employees, Customer may permit its
|
|
||||||
independent contractors and consultants ("Contractors") to serve as Users.
|
|
||||||
Customer will remain responsible for compliance by each of its Users (including
|
|
||||||
but not limited to any Contractor Users) with all of the terms and conditions
|
|
||||||
of this Agreement, and any use of the Software by any Contractors must be for
|
|
||||||
the sole benefit of Customer.
|
|
||||||
|
|
||||||
3.5. Ownership; Reservation of Rights. This is an agreement for use of Memgraph
|
|
||||||
Software and not an agreement for sale. Customer acknowledges that it is
|
|
||||||
obtaining only a limited right to use the Software on a licensed basis, and
|
|
||||||
that irrespective of any use of the words "purchase", "sale" or like terms
|
|
||||||
hereunder no ownership rights are being conveyed to Customer. Customer agrees
|
|
||||||
that Memgraph or its suppliers retain all right, title and interest (including
|
|
||||||
all patent, copyright, trade secret and other intellectual property rights) in
|
|
||||||
and to the Memgraph Software. Nothing in this Section shall be deemed as
|
|
||||||
granting Memgraph ownership of Customer Data or in any way impacting Customer's
|
|
||||||
ownership of Customer Data.
|
|
||||||
|
|
||||||
3.6. Third Party Code. The Software may contain or be provided with components
|
|
||||||
which are licensed from third parties, including components subject to the
|
|
||||||
terms and conditions of "open source" software licences ("Open Source
|
|
||||||
Software"). Open Source Software may be identified in the Software,
|
|
||||||
Documentation, or in a list of the Open Source Software provided to you upon
|
|
||||||
your written request. To the extent required by the licence that accompanies
|
|
||||||
the Open Source Software, the terms of such licence will apply in lieu of the
|
|
||||||
terms of this Agreement with respect to such Open Source Software, including,
|
|
||||||
without limitation, any provisions governing access to source code,
|
|
||||||
modification, or reverse engineering.
|
|
||||||
|
|
||||||
3.7. IP Ownership. The Parties agree that neither party shall gain, by virtue
|
|
||||||
of this Agreement, any rights of ownership or any other interest, right or
|
|
||||||
title of copyrights, patents, trade secrets, trademarks, or any other
|
|
||||||
intellectual property rights owned by the other Party. Any and all new works
|
|
||||||
developed in the course of performing obligations pursuant to this Agreement
|
|
||||||
and all new inventions, innovations or ideas developed by a Party in the course
|
|
||||||
of performance of its activities under this Agreement, will belong to that
|
|
||||||
Party who develops the same. Notwithstanding anything to the contrary in this
|
|
||||||
Section, the Parties understand and agree that any and all proprietary
|
|
||||||
materials developed by a Party prior to this Agreement and any modifications,
|
|
||||||
enhancements, improvements or inventions made to such proprietary materials
|
|
||||||
shall be owned by that Party, regardless of which Party prepared or developed
|
|
||||||
such modifications, enhancements, improvements or inventions.
|
|
||||||
|
|
||||||
## 4. CUSTOMER DATA; OBLIGATIONS OF CUSTOMER AND MEMGRAPH.
|
|
||||||
|
|
||||||
4.1. Customer shall retain all of its rights, title, and interest in and to its
|
|
||||||
intellectual property rights in Customer Data. Customer grants to Memgraph a
|
|
||||||
non-exclusive, worldwide, limited-term licence solely to host, copy, transmit
|
|
||||||
and display Customer Data as reasonably necessary for Memgraph to support
|
|
||||||
Customer's use of the Software, to ensure the security of and to administrate
|
|
||||||
the Software, and to deliver Services in accordance with this Agreement or as
|
|
||||||
otherwise outlined in https://memgraph.com/legal/privacy-policy/.
|
|
||||||
|
|
||||||
4.2. Protection of Customer Data. Memgraph will maintain appropriate
|
|
||||||
administrative, physical, and technical safeguards, consistent with generally
|
|
||||||
prevailing industry standards, for protection of the security, confidentiality,
|
|
||||||
and integrity of Customer Data, as described in the Documentation. Those
|
|
||||||
safeguards will include, but will not be limited to, measures for preventing
|
|
||||||
access, use, modification, or disclosure of Customer Data by Memgraph
|
|
||||||
personnel, except as permitted by this Agreement.
|
|
||||||
|
|
||||||
4.3. Personal data. Both parties will comply with all applicable requirements
|
|
||||||
of the Data Protection Legislation. This section 4 is in addition to, and does
|
|
||||||
not relieve, remove or replace, a party's obligations under the Data Protection
|
|
||||||
Legislation. Notwithstanding the foregoing, the parties acknowledge that, in
|
|
||||||
the ordinary course of providing the Services, Memgraph shall not process
|
|
||||||
personal data (as defined in the Data Protection Legislation) on behalf of the
|
|
||||||
Customer. In the event that the Customer requires Memgraph to process personal
|
|
||||||
data on its behalf, it shall notify Memgraph and the parties shall execute such
|
|
||||||
terms as necessary under applicable law.
|
|
||||||
|
|
||||||
## 5. FEES AND PAYMENT.
|
|
||||||
|
|
||||||
5.1. Fees. Customer will pay Memgraph the fees for the Licences and Services as
|
|
||||||
set forth in the applicable Order ("Fees"). Customer acknowledges and agrees
|
|
||||||
that if Customer's use of the Software exceeds the Licensed Capacity set forth
|
|
||||||
on the applicable Orders or otherwise requires the payment of additional fees
|
|
||||||
(per the terms of this Agreement), Customer shall be invoiced for such usage
|
|
||||||
and Customer agrees to pay the additional fees in accordance with this Section.
|
|
||||||
Notwithstanding the terms of Section 5.4 below (Reconciliation), Customer
|
|
||||||
acknowledges and agrees that it is obligated to ensure that its Software usage
|
|
||||||
does not exceed the Licensed Capacity and to promptly notify Memgraph of any
|
|
||||||
such excess usage no more than thirty (30) days from the last day of the
|
|
||||||
calendar month during which such excess usage occurred.
|
|
||||||
|
|
||||||
5.2. Payment Terms. Except as otherwise specifically set forth on an Order
|
|
||||||
Document, all fees are due and payable within thirty days after the date of
|
|
||||||
invoice. Renewal Fees for any renewal Subscription Term (if purchased by
|
|
||||||
Customer) will be due and payable within thirty (30) days of expiration of the
|
|
||||||
then-current term. If Fees are not paid when due, or in the event of other
|
|
||||||
breach of this Agreement, Customer shall discontinue use of the Software and
|
|
||||||
Memgraph may suspend its performance, including its delivery of technical
|
|
||||||
support of the Software or other Services without further notice and without
|
|
||||||
penalty. All Orders (including multi-year Subscriptions with annual payment
|
|
||||||
schedules) are non-cancellable and all amounts paid are non-refundable, unless
|
|
||||||
otherwise expressly set forth herein. Any invoiced amount not received by the
|
|
||||||
due date will accrue late interest at the rate of 1.5% of the outstanding
|
|
||||||
balance per month, or the maximum rate permitted by applicable law, whichever
|
|
||||||
is lower.
|
|
||||||
|
|
||||||
5.3. Taxes. Fees are exclusive of taxes. Customer will pay any sales, use,
|
|
||||||
value added, duties, fees and other governmental assessments or charges arising
|
|
||||||
out of this Agreement and the transactions contemplated herein. Customer will
|
|
||||||
make all payments free and clear of, and without reduction for, any withholding
|
|
||||||
taxes.
|
|
||||||
|
|
||||||
5.4. Reconciliation. At Memgraph's request from time to time, not exceeding
|
|
||||||
once per quarter, Customer will provide Memgraph with a report detailing its
|
|
||||||
use of the Software, including its non-production and/or production use and
|
|
||||||
using the self-monitoring capabilities of the Software or other means, and
|
|
||||||
Memgraph may inspect Customer's records related to such report not more
|
|
||||||
frequently than annually to ensure payment of Fees. Any on-site review will be
|
|
||||||
conducted during regular business hours at Customer's offices. The parties will
|
|
||||||
use reasonable good faith efforts to promptly resolve any discrepancies between
|
|
||||||
licensed usage and actual usage.
|
|
||||||
|
|
||||||
## 6. APPLICABLE LAWS.
|
|
||||||
|
|
||||||
6.1. Each Party shall perform this Agreement in accordance with all Applicable
|
|
||||||
Laws. Without prejudice to the foregoing, each Party shall:
|
|
||||||
|
|
||||||
6.1.1. comply with all Applicable Laws relating to anti-bribery,
|
|
||||||
anti-corruption, anti-slavery and human trafficking, including the Bribery Act
|
|
||||||
2010 and the Modern Slavery Act 2015 (the "Relevant Requirements");
|
|
||||||
|
|
||||||
6.1.2. have and maintain in place throughout the Term its own policies and
|
|
||||||
procedures, including adequate procedures under the Bribery Act 2010, to ensure
|
|
||||||
compliance with the Relevant Requirements, and will enforce them where
|
|
||||||
appropriate;
|
|
||||||
|
|
||||||
6.1.3. (if not prohibited by law or regulation from doing so) promptly report
|
|
||||||
to the other Party any request or demand for any undue financial or other
|
|
||||||
advantage of any kind received by the reporting Party in connection with the
|
|
||||||
performance of this Agreement; and
|
|
||||||
|
|
||||||
6.1.4. (if not prohibited by law or regulation from doing so) notify the other
|
|
||||||
Party (and email shall be sufficient for this purpose) as soon as it becomes
|
|
||||||
aware of any actual or suspected slavery or human trafficking in a supply chain
|
|
||||||
which has a connection with this Agreement.
|
|
||||||
|
|
||||||
## 7. REPRESENTATIONS AND WARRANTIES.
|
|
||||||
|
|
||||||
7.1. Mutual Representations and Warranties. Each Party represents and warrants
|
|
||||||
to the other that: (i) it is a corporation lawfully incorporated and validly
|
|
||||||
existing pursuant to the laws of its place of incorporation; (ii) it has all
|
|
||||||
requisite power and authority, corporate or otherwise, to execute, deliver and
|
|
||||||
perform its obligations under this Agreement; and (iii) this Agreement
|
|
||||||
constitutes its legal, valid and binding obligations and may be enforced
|
|
||||||
against it.
|
|
||||||
|
|
||||||
7.2. Limited Memgraph Warranty; Remedies. Memgraph warrants that the Software,
|
|
||||||
when used as permitted hereunder, will operate in all material respects as
|
|
||||||
described in the applicable Documentation, and that Services will be provided
|
|
||||||
in a professional manner consistent with industry standards.
|
|
||||||
|
|
||||||
7.3. Limitations; Remedy. Memgraph does not warrant that the Software or the
|
|
||||||
Services will be error-free, uninterrupted or meet Customer's specific
|
|
||||||
requirements or that performance of the Services will be uninterrupted.
|
|
||||||
Memgraph will have no warranty obligation under Section 7.2 for Customer's
|
|
||||||
misuse or failure to use the Software in accordance with its Documentation or
|
|
||||||
this Agreement. Customer's sole and exclusive remedy, and Memgraph's sole and
|
|
||||||
exclusive obligation, for breach of warranty will be (i) during the thirty (30)
|
|
||||||
day period following initial Delivery of the Software under an Order,
|
|
||||||
Memgraph's correction of the program errors that cause the breach of warranty,
|
|
||||||
or if Memgraph cannot substantially correct such breach in a commercially
|
|
||||||
reasonable manner, a refund of the fees paid for the nonconforming Software
|
|
||||||
(ii) during the remainder of the relevant Subscription Term, Memgraph's
|
|
||||||
delivery of Support with respect to any such program errors. In the event of a
|
|
||||||
refund remedy, Customer's licences and right to use the Software or receive
|
|
||||||
Services will end. In the event of any noticed breach of warranty with respect
|
|
||||||
to Services, Memgraph's sole and exclusive obligation shall be the
|
|
||||||
re-performance of the deficient Services.
|
|
||||||
|
|
||||||
7.4. Disclaimer. THIS SECTION 7 IS A LIMITED WARRANTY AND, EXCEPT EXPRESSLY AS
|
|
||||||
SET FORTH IN SECTION 7.2, THE SOFTWARE, INCLUDING WITHOUT LIMITATION THE
|
|
||||||
THIRD-PARTY CODE, AND ALL SERVICES ARE PROVIDED "AS IS". MEMGRAPH MAKES NO
|
|
||||||
OTHER WARRANTIES OR REPRESENTATIONS, EXPRESS, IMPLIED, STATUTORY OR OTHERWISE,
|
|
||||||
AND DISCLAIMS ALL IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
|
|
||||||
PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT.
|
|
||||||
|
|
||||||
## 8. INDEMNIFICATION.
|
|
||||||
|
|
||||||
8.1. By Memgraph. Memgraph will defend against any action against Customer
|
|
||||||
brought by a third party to the extent the action is based on a claim that the
|
|
||||||
Software infringes a third party's patent, copyright or trademark (a "Claim")
|
|
||||||
and indemnify Customer from the damages, liabilities, costs and expenses
|
|
||||||
(including reasonable attorneys' fees) awarded against Customer or agreed in
|
|
||||||
settlement by Customer resulting from such Claim. If your use of the Software
|
|
||||||
is (or in Memgraph's opinion likely to be) enjoined, then Memgraph may, at its
|
|
||||||
own expense and at its option: (i) substitute substantially similar
|
|
||||||
functionality for the Software which renders it non-infringing; (ii) procure
|
|
||||||
for Customer the right to continue to use the Software; or if (i) and (ii) are
|
|
||||||
not commercially reasonable, terminate this Agreement and refund Customer any
|
|
||||||
prepaid, unused (pro-rated) Fees for the duration of the then-current
|
|
||||||
Subscription Term. The foregoing obligations of Memgraph will not apply: (i) if
|
|
||||||
the Software is modified by any party other than Memgraph, but solely to the
|
|
||||||
extent the alleged infringement is caused by such modification; (ii) if the
|
|
||||||
Software is used in combination with other products or processes not provided
|
|
||||||
or authorized by Memgraph, but solely to the extent the alleged infringement is
|
|
||||||
caused by such combination; (iii) use of any version or release of Software
|
|
||||||
other than the most current version or release made available to Customer by
|
|
||||||
Memgraph, if its use would have avoided the infringement; (iv) any unauthorized
|
|
||||||
use of the Software. THIS SECTION 8.1 SETS FORTH MEMGRAPH'S SOLE LIABILITY AND
|
|
||||||
CUSTOMER'S SOLE AND EXCLUSIVE REMEDY WITH RESPECT TO ANY CLAIM OF INTELLECTUAL
|
|
||||||
PROPERTY INFRINGEMENT.
|
|
||||||
|
|
||||||
8.2. By Customer. Customer will indemnify and hold Memgraph and its suppliers
|
|
||||||
harmless against any claims, liabilities, costs, and expenses (including
|
|
||||||
reasonable attorneys' fees) that Memgraph or its suppliers may incur as a
|
|
||||||
result of a third-party claim arising from or related to Customer Data, or
|
|
||||||
misuse or unauthorised use of the Software by Customer or any User.
|
|
||||||
|
|
||||||
8.3. Conditions. All defence and indemnity obligations under Sections 8.1 and
|
|
||||||
8.2 are conditioned on the indemnitee (i) giving the indemnitor written notice
|
|
||||||
of the relevant claim within thirty (30) days after the indemnitee receives
|
|
||||||
notice of the Claim (or sooner if required by applicable law); (ii) reasonably
|
|
||||||
cooperating with the indemnitor, at the indemnitor's expense, in the defence of
|
|
||||||
the claim; and (iii) giving the indemnitor sole control of the defence and any
|
|
||||||
settlement negotiations. The indemnitee may participate in the defence at its
|
|
||||||
expense.
|
|
||||||
|
|
||||||
## 9. LIMITATION OF LIABILITY.
|
|
||||||
|
|
||||||
9.1. TO THE EXTENT PERMITTED BY LAW, NEITHER MEMGRAPH NOR CUSTOMER SHALL BE
|
|
||||||
LIABLE TO THE OTHER OR ANY THIRD PARTY FOR LOST PROFITS (WHETHER DIRECT OR
|
|
||||||
INDIRECT) OR LOSS OF USE OR DATA, SUBSTITUTE GOODS OR SERVICES, OR FOR
|
|
||||||
INCIDENTAL, CONSEQUENTIAL, PUNITIVE, SPECIAL OR EXEMPLARY DAMAGES (INCLUDING
|
|
||||||
DAMAGE TO BUSINESS, REPUTATION OR GOODWILL), OR INDIRECT DAMAGES OF ANY TYPE
|
|
||||||
HOWEVER CAUSED, WHETHER BY BREACH OF WARRANTY, BREACH OF CONTRACT, IN TORT
|
|
||||||
(INCLUDING NEGLIGENCE) OR ANY OTHER LEGAL OR EQUITABLE CAUSE OF ACTION EVEN IF
|
|
||||||
SUCH PARTY HAS BEEN ADVISED OF SUCH DAMAGES IN ADVANCE OR IF SUCH DAMAGES WERE
|
|
||||||
FORESEEABLE.
|
|
||||||
|
|
||||||
9.2. LIMITATIONS ON DIRECT DAMAGES. EXCEPT FOR ANY EXCLUDED CLAIMS AND ANY
|
|
||||||
DAMAGES THAT CANNOT BE LIMITED UNDER APPLICABLE LAW, IN NO EVENT WILL
|
|
||||||
MEMGRAPH'S TOTAL AGGREGATE LIABILITY ARISING FROM OR RELATED TO THIS AGREEMENT,
|
|
||||||
EXCEED AN AMOUNT EQUAL TO THE TOTAL AMOUNT OF FEES PAID OR PAYABLE BY CUSTOMER
|
|
||||||
TO MEMGRAPH UNDER THIS AGREEMENT DURING THE TWELVE MONTHS PRECEDING THE CLAIM.
|
|
||||||
THE FOREGOING LIMITATIONS SHALL NOT APPLY TO: (i) PAYMENTS TO A THIRD PARTY
|
|
||||||
ARISING FROM A PARTY'S OBLIGATIONS UNDER SECTION 8 (INDEMNIFICATION); (ii)
|
|
||||||
BREACH BY A PARTY OF SECTION 10 (CONFIDENTIAL INFORMATION), AND (iii)
|
|
||||||
INFRINGEMENT BY A PARTY OF THE OTHER PARTY'S INTELLECTUAL PROPERTY RIGHTS
|
|
||||||
(COLLECTIVELY EXCLUSIONS (i)-(iii) ARE REFERRED TO AS THE "EXCLUDED CLAIMS").
|
|
||||||
WITH RESPECT TO ANY EXCLUDED CLAIMS, MEMGRAPH'S TOTAL AGGREGATE LIABILITY SHALL
|
|
||||||
IN NO EVENT EXCEED £1,000,000.
|
|
||||||
|
|
||||||
9.3. Nothing in this Agreement excludes the liability of Memgraph for death or
|
|
||||||
personal injury caused by the Supplier's negligence; or for fraud or fraudulent
|
|
||||||
misrepresentation.
|
|
||||||
|
|
||||||
## 10. CONFIDENTIALITY.
|
|
||||||
|
|
||||||
10.1. The Receiving Party will use the same degree of care that it uses to
|
|
||||||
protect the confidentiality of its own confidential information of like kind
|
|
||||||
(but not less than reasonable care) to (i) not use any confidential information
|
|
||||||
of the Disclosing Party for any purpose outside the scope of this agreement and
|
|
||||||
(ii) except as otherwise authorized by the Disclosing Party in writing, limit
|
|
||||||
access to confidential information of the Disclosing Party to those of its and
|
|
||||||
its affiliates' employees and contractors who need that access for purposes
|
|
||||||
consistent with this agreement and who have signed confidentiality agreements
|
|
||||||
with the receiving party containing protections not materially less protective
|
|
||||||
of the confidential information than those herein. Neither party will disclose
|
|
||||||
the terms of this agreement or any Orders to any third-party other than its
|
|
||||||
affiliates, legal counsel, and accountants without the other party's prior
|
|
||||||
written consent, provided that a party that makes any such disclosure to its
|
|
||||||
affiliate, legal counsel or accountants will remain responsible for such
|
|
||||||
affiliate's, legal counsel's, or accountant's compliance with this
|
|
||||||
"confidentiality" section.
|
|
||||||
|
|
||||||
10.2. Compelled Disclosure. The Receiving Party may disclose confidential
|
|
||||||
information of the Disclosing Party to the extent compelled by law to do so,
|
|
||||||
provided the Receiving Party gives the Disclosing Party prior notice of the
|
|
||||||
compelled disclosure (to the extent legally permitted) and reasonable
|
|
||||||
assistance, at the Disclosing Party's cost, if the Disclosing Party wishes to
|
|
||||||
contest the disclosure. If the receiving party is compelled by law to disclose
|
|
||||||
the Disclosing Party's confidential information as part of a civil proceeding
|
|
||||||
to which the Disclosing Party is a party, and the Disclosing Party is not
|
|
||||||
contesting the disclosure, the Disclosing Party will reimburse the Receiving
|
|
||||||
Party for its reasonable cost of complying and providing secure access to that
|
|
||||||
confidential information.
|
|
||||||
|
|
||||||
## 11. TERMINATION.
|
|
||||||
|
|
||||||
11.1. Term. The term ("Term") of this Agreement will commence on the Effective
|
|
||||||
Date and continue until all Subscriptions, licence terms and Orders expire,
|
|
||||||
unless earlier terminated in accordance with this Section 11.
|
|
||||||
|
|
||||||
11.2. Termination for Cause. In the event of a material breach of this
|
|
||||||
Agreement (excluding any breaches for which an exclusive remedy is expressly
|
|
||||||
provided), the non-breaching party may terminate this Agreement if such breach
|
|
||||||
is not cured within thirty (30) days after written notice thereof (except that
|
|
||||||
for a breach of Section 3.4 ("General Restrictions"), there will be no cure
|
|
||||||
period). For clarity, material breach of this Agreement includes, but is not
|
|
||||||
limited to, failure to timely pay amounts due hereunder, exceeding the scope of
|
|
||||||
any Licence granted hereunder (including the Licensed Capacity), violating the
|
|
||||||
Licence restrictions, breach of Section 6.1 and failing to protect the other
|
|
||||||
party's Confidential Information.
|
|
||||||
|
|
||||||
11.3. Without affecting any other right or remedy available to it, either party
|
|
||||||
may terminate this Agreement with immediate effect by giving written notice to
|
|
||||||
the other party if the other party:
|
|
||||||
|
|
||||||
11.3.1. suspends, or threatens to suspend, payment of its debts or is unable to
|
|
||||||
pay its debts as they fall due or admits inability to pay its debts or is
|
|
||||||
deemed unable to pay its debts within the meaning of section 123 of the
|
|
||||||
Insolvency Act 1986, as if the words "it is proved to the satisfaction of the
|
|
||||||
court" did not appear in sections 123(1)(e) or 123(2) of the Insolvency Act
|
|
||||||
1986; or
|
|
||||||
|
|
||||||
11.3.2. the other party commences negotiations with all or any class of its
|
|
||||||
creditors with a view to rescheduling any of its debts, or makes a proposal for
|
|
||||||
or enters into any compromise or arrangement with its creditors other than for
|
|
||||||
the sole purpose of a scheme for a solvent amalgamation of that other party
|
|
||||||
with one or more other companies or the solvent reconstruction of that other
|
|
||||||
party; or
|
|
||||||
|
|
||||||
11.3.3. a petition is filed, a notice is given, a resolution is passed, or an
|
|
||||||
order is made, for or in connection with the winding up of that other party
|
|
||||||
other than for the sole purpose of a scheme for a solvent amalgamation of that
|
|
||||||
other party with one or more other companies or the solvent reconstruction of
|
|
||||||
that other party; or
|
|
||||||
|
|
||||||
11.3.4. an application is made to court, or an order is made, for the
|
|
||||||
appointment of an administrator, or if a notice of intention to appoint an
|
|
||||||
administrator is given or if an administrator is appointed, over the other
|
|
||||||
party; or
|
|
||||||
|
|
||||||
11.3.5. the holder of a qualifying floating charge over the assets of that
|
|
||||||
other party has become entitled to appoint or has appointed an administrative
|
|
||||||
receiver; or
|
|
||||||
|
|
||||||
11.3.6. a person becomes entitled to appoint a receiver over the assets of the
|
|
||||||
other party or a receiver is appointed over the assets of the other party; or
|
|
||||||
|
|
||||||
11.3.7. a creditor or encumbrancer of the other party attaches or takes
|
|
||||||
possession of, or a distress, execution, sequestration or other such process is
|
|
||||||
levied or enforced on or sued against, the whole or any part of the other
|
|
||||||
party's assets and such attachment or process is not discharged within 30 days;
|
|
||||||
or
|
|
||||||
|
|
||||||
11.3.8. any event occurs, or proceeding is taken, with respect to the other
|
|
||||||
party in any jurisdiction to which it is subject that has an effect equivalent
|
|
||||||
or similar to any of the events mentioned in clause 11.3.1 to clause 11.3.7
|
|
||||||
(inclusive); or
|
|
||||||
|
|
||||||
11.3.9. the other party suspends or ceases, or threatens to suspend or cease,
|
|
||||||
carrying on all or a substantial part of its business.
|
|
||||||
|
|
||||||
11.4. Effect of Termination. Upon the termination of this Agreement: (i) all
|
|
||||||
licences will terminate; (ii) Customer will immediately discontinue all use of
|
|
||||||
the affected Software, erase all full and partial copies of the Software and
|
|
||||||
(subject to this Section) all other tangible embodiments of Memgraph
|
|
||||||
Confidential Information in Customer's possession or control, and promptly
|
|
||||||
certify the same to Memgraph; (iii) Memgraph may immediately cease providing
|
|
||||||
the Services; (iv) (subject to this Section), Memgraph will return or delete
|
|
||||||
all tangible embodiments of Customer Confidential Information in Memgraph's
|
|
||||||
possession or control; and (v) Sections 1 ("Definitions"), 3.4 ("General
|
|
||||||
Restrictions"), 3.5 ("Ownership; Reservation of Rights"), 5 ("Fees and
|
|
||||||
Payment"), 7.3 ("Limitations"), 7.4 ("Disclaimer"), 8 ("Indemnification"), 9
|
|
||||||
("Limitation of Liability"), 10 ("Confidentiality"), 11.4 ("Effect of
|
|
||||||
Termination"), and 12 ("Miscellaneous") will survive. If a party's file
|
|
||||||
retention policies or a valid legal order provides for backup or archival
|
|
||||||
copies of files to be retained, such party will notify the other party of such
|
|
||||||
policy or order, protect the other party's Confidential Information as required
|
|
||||||
hereunder, and permanently erase, delete, or destroy such Confidential
|
|
||||||
Information as soon as permissible under such policy or order.
|
|
||||||
|
|
||||||
## 12. MISCELLANEOUS.
|
|
||||||
|
|
||||||
12.1. Assignment. This Agreement will bind and inure to the benefit of each
|
|
||||||
party's permitted successors and assigns. Memgraph may assign this Agreement to
|
|
||||||
any affiliate or in connection with a merger, reorganization, acquisition, or
|
|
||||||
other transfer of all or substantially all of Memgraph's assets or voting
|
|
||||||
securities. Customer may not assign or transfer this Agreement, in whole or in
|
|
||||||
part, without Memgraph's written consent except that Customer may assign its
|
|
||||||
rights and obligations under this Agreement, in whole but not in part, without
|
|
||||||
Memgraph's written consent in connection with any merger, consolidation, sale
|
|
||||||
of all or substantially all of Customer's assets or voting stock, or any other
|
|
||||||
similar transaction provided that: (i) the assignee is not a direct competitor
|
|
||||||
of Memgraph; (ii) Customer provides prompt written notice of such assignment to
|
|
||||||
Memgraph; (iii) the assignee is capable of fully performing Customer's
|
|
||||||
obligations under this Agreement; and (iv) the assignee agrees to be bound by
|
|
||||||
the terms and conditions of this Agreement. Any attempt to transfer or assign
|
|
||||||
this Agreement without such written consent will be null and void.
|
|
||||||
|
|
||||||
12.2. Force Majeure. Memgraph shall have no liability to the Customer under
|
|
||||||
this Agreement if it is prevented from or delayed in performing its obligations
|
|
||||||
under this Agreement, or from carrying on its business, by acts, events,
|
|
||||||
omissions or accidents beyond its reasonable control, including strikes,
|
|
||||||
lock-outs or other industrial disputes (whether involving the workforce of
|
|
||||||
Memgraph or any other party), failure of a utility service or transport or
|
|
||||||
telecommunications network, act of God, war, pandemic, riot, civil commotion,
|
|
||||||
malicious damage, compliance with any law or governmental order, rule,
|
|
||||||
regulation or direction, accident, breakdown of plant or machinery, fire,
|
|
||||||
flood, storm or default of suppliers or subcontractors, provided that the
|
|
||||||
Customer is notified of such an event and its expected duration.
|
|
||||||
|
|
||||||
12.3. Governing Law. This Agreement and any dispute or claim arising out of or
|
|
||||||
in connection with it or its subject matter or formation (including
|
|
||||||
non-contractual disputes or claims) shall be governed by and construed in
|
|
||||||
accordance with the law of England and Wales.
|
|
||||||
|
|
||||||
12.4. Jurisdiction. Each party irrevocably agrees that the courts of England
|
|
||||||
and Wales shall have exclusive jurisdiction to settle any dispute or claim
|
|
||||||
arising out of or in connection with this Agreement or its subject matter or
|
|
||||||
formation (including non-contractual disputes or claims).
|
|
||||||
|
|
||||||
12.5. Severability; Waiver; Construction. If a court of competent jurisdiction
|
|
||||||
adjudges any provision of this Agreement to be invalid or unenforceable, the
|
|
||||||
remaining provisions of this Agreement, if capable of substantial performance,
|
|
||||||
will continue in full force and effect without being impaired or invalidated in
|
|
||||||
any way. The parties agree to replace any invalid provision with a valid
|
|
||||||
provision that most closely approximates the intent and economic effect of the
|
|
||||||
invalid provision. All waivers must be in writing. A party's consent to, or
|
|
||||||
waiver of, enforcement of this Agreement on one occasion will not be deemed a
|
|
||||||
waiver of any other provision or such provision on any other occasion. In this
|
|
||||||
Agreement, the word "including" means "including but not limited to." No
|
|
||||||
presumption will operate in favour of or against any party as a result of its
|
|
||||||
role in drafting this Agreement.
|
|
||||||
|
|
||||||
12.6. Subcontractors. Memgraph may use the services of subcontractors in
|
|
||||||
connection with its performance of this Agreement, provided that Memgraph
|
|
||||||
remains solely responsible for (i) compliance of any such subcontractor with
|
|
||||||
the terms of this Agreement and (ii) the overall performance of Memgraph as
|
|
||||||
required under this Agreement.
|
|
||||||
|
|
||||||
12.7. Use of Aggregate Data. Customer agrees that Memgraph may collect, use and
|
|
||||||
disclose quantitative data and metadata derived from the use of the Software
|
|
||||||
(i) for its own internal, statistical analysis, (ii) to develop and improve the
|
|
||||||
Software and (iii) to create and distribute reports and other materials
|
|
||||||
regarding use of the Software. For clarity, any such data collected, used, and
|
|
||||||
disclosed will be in anonymized aggregate form only and shall not identify
|
|
||||||
Customer or its Users, or disclose any Customer Data.
|
|
||||||
|
|
||||||
12.8. Independent Contractors. The parties are independent contractors. No
|
|
||||||
agency, partnership, franchise, joint venture, or employment relationship is
|
|
||||||
intended or created by this Agreement. Neither party has the power or authority
|
|
||||||
to create or assume any obligation, or make any representations or warranties,
|
|
||||||
on behalf of the other party.
|
|
||||||
|
|
||||||
12.9. Publicity. Memgraph may, in conformity with Customer's trademark usage
|
|
||||||
guidelines, use Customer's name and logo in Memgraph's sales and marketing
|
|
||||||
materials, including in business presentations, Customer lists, and on
|
|
||||||
websites. Neither party will issue a press release regarding this Agreement
|
|
||||||
without the other party's prior written consent. Neither party will disclose
|
|
||||||
the terms of this Agreement to any third party, except as required by law.
|
|
||||||
|
|
||||||
12.10. Notice. Any notice, consent, or waiver hereunder must be in writing,
|
|
||||||
addressed to the attention of "Legal Department" at the address set forth
|
|
||||||
above, and delivered by personal delivery, reputable rapid courier, or
|
|
||||||
certified/registered mail, return receipt requested, and will be deemed given
|
|
||||||
upon personal delivery, one (1) day after deposit with an overnight domestic
|
|
||||||
courier, two (2) days after deposit with an international courier, or five (5)
|
|
||||||
days after deposit in the certified or registered mail. A party may specify a
|
|
||||||
new address by providing notice to the other party in accordance with this
|
|
||||||
Section.
|
|
||||||
|
|
||||||
12.11. Compliance with Law. Each party will comply with all applicable laws,
|
|
||||||
regulations, and orders of any governmental authority of competent jurisdiction
|
|
||||||
in its performance under this Agreement, including but not limited to those
|
|
||||||
applicable to data collection and the privacy and security of personal
|
|
||||||
information, including trans-border data transfers and data breach notification
|
|
||||||
requirements as required of each party by law.
|
|
||||||
|
|
||||||
12.12. Supremacy; Modification. This Agreement will prevail over any written
|
|
||||||
instrument submitted by Customer; the terms of any purchase order,
|
|
||||||
acknowledgement, or similar document submitted by Customer to Memgraph will
|
|
||||||
have no effect. If the express terms of an Order Document conflict with this
|
|
||||||
Agreement, the terms on the Order Document will prevail, but only with respect
|
|
||||||
to that Order Document. This Agreement cannot be varied or supplemented by
|
|
||||||
course of dealing or by usage of trade. All modifications or amendments to this
|
|
||||||
Agreement must be in writing and signed by both parties, except that subsequent
|
|
||||||
renewals and purchases of additional Licensed Capacity can be procured by
|
|
||||||
payment against an issued invoice as set forth in Section 5 ("Fees and
|
|
||||||
payment") above.
|
|
||||||
|
|
||||||
12.13. No Third Party Beneficiaries. This Agreement is not intended and shall
|
|
||||||
not be construed to give any third party any interest or rights with respect to
|
|
||||||
or in connection with any agreement or provision herein, except as expressly
|
|
||||||
provided for in this Agreement.
|
|
||||||
|
|
||||||
12.14. Entire Agreement. This Agreement in its original English text, sets
|
|
||||||
forth the complete, exclusive, and final agreement of the parties concerning
|
|
||||||
the subject matter hereof, supersedes, replaces, and merges all prior and
|
|
||||||
contemporaneous agreements, communications, and understandings, both written
|
|
||||||
and oral, between them concerning the subject matter hereof. This Agreement may
|
|
||||||
be executed in counterparts.
|
|
||||||
@@ -1,4 +0,0 @@
|
|||||||
# Memgraph Release
|
|
||||||
|
|
||||||
Please continue in
|
|
||||||
[Notion](https://www.notion.so/memgraph/Release-621733518c82456ebc119d2a025b5dd3).
|
|
||||||
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,2 +0,0 @@
|
|||||||
/etc/memgraph/memgraph.conf
|
|
||||||
/etc/logrotate.d/memgraph
|
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../LICENSE_COMMUNITY.md
|
|
||||||
1
release/debian/copyright
Symbolic link
1
release/debian/copyright
Symbolic link
@@ -0,0 +1 @@
|
|||||||
|
../../LICENSE
|
||||||
@@ -1 +0,0 @@
|
|||||||
../../LICENSE_ENTERPRISE.md
|
|
||||||
@@ -7,7 +7,7 @@ set -e
|
|||||||
|
|
||||||
# Manage (remove) /etc/logrotate.d/memgraph_audit file because the whole
|
# Manage (remove) /etc/logrotate.d/memgraph_audit file because the whole
|
||||||
# logrotate config is moved to /etc/logrotate.d/memgraph since v1.2.0.
|
# logrotate config is moved to /etc/logrotate.d/memgraph since v1.2.0.
|
||||||
# Note: Only used to manage Memgraph Enterprise config but packaged into the
|
# Note: Only used to manage Memgraph config but it was packaged into the
|
||||||
# Memgraph Community as well.
|
# Memgraph Community as well.
|
||||||
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null; then
|
if dpkg-maintscript-helper supports rm_conffile 2>/dev/null; then
|
||||||
# 1.1.999 is chosen because it's high enough version number. It's highly
|
# 1.1.999 is chosen because it's high enough version number. It's highly
|
||||||
|
|||||||
@@ -1,19 +1,21 @@
|
|||||||
FROM debian:buster
|
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 python3 libpython3.7 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.19.2 scipy==1.5.2
|
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,30 +0,0 @@
|
|||||||
FROM debian:buster
|
|
||||||
# NOTE: If you change the base distro update release/package as well.
|
|
||||||
|
|
||||||
ARG deb_release
|
|
||||||
|
|
||||||
RUN apt-get update && apt-get install -y \
|
|
||||||
openssl libcurl4 libssl1.1 libseccomp2 python3 libpython3.7 python3-pip \
|
|
||||||
--no-install-recommends \
|
|
||||||
&& rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
|
|
||||||
|
|
||||||
RUN pip3 install networkx==2.4 numpy==1.19.2 scipy==1.5.2
|
|
||||||
|
|
||||||
COPY ${deb_release} /
|
|
||||||
|
|
||||||
# Install memgraph package
|
|
||||||
RUN dpkg -i ${deb_release}
|
|
||||||
|
|
||||||
# Memgraph listens for Bolt Protocol on this port by default.
|
|
||||||
EXPOSE 7687
|
|
||||||
# Snapshots and logging volumes
|
|
||||||
VOLUME /var/log/memgraph
|
|
||||||
VOLUME /var/lib/memgraph
|
|
||||||
# Configuration volume
|
|
||||||
VOLUME /etc/memgraph
|
|
||||||
|
|
||||||
USER memgraph
|
|
||||||
WORKDIR /usr/lib/memgraph
|
|
||||||
|
|
||||||
ENTRYPOINT ["/usr/lib/memgraph/memgraph"]
|
|
||||||
CMD [""]
|
|
||||||
@@ -1,47 +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 '+~' '__'`
|
|
||||||
offering=`echo ${version} | cut -d '-' -f 2`
|
|
||||||
dockerfile_path="${working_dir}/memgraph_${offering}.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}'"
|
||||||
@@ -1,10 +1,11 @@
|
|||||||
#!/usr/bin/env python3
|
#!/usr/bin/env python3
|
||||||
import argparse
|
import argparse
|
||||||
|
import os
|
||||||
import re
|
import re
|
||||||
import subprocess
|
import subprocess
|
||||||
import sys
|
import sys
|
||||||
import os
|
import time
|
||||||
|
from functools import wraps
|
||||||
|
|
||||||
# This script is used to determine the current version of Memgraph. The script
|
# This script is used to determine the current version of Memgraph. The script
|
||||||
# determines the current version using `git` automatically. The user can also
|
# determines the current version using `git` automatically. The user can also
|
||||||
@@ -49,13 +50,13 @@ import os
|
|||||||
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]
|
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]
|
||||||
# Examples:
|
# Examples:
|
||||||
# Release version:
|
# Release version:
|
||||||
# 0.50.1-community
|
# 0.50.1-open-source
|
||||||
# 0.50.1-enterprise
|
# 0.50.1
|
||||||
# 0.50.1-enterprise-veryimportantcustomer
|
# 0.50.1-veryimportantcustomer
|
||||||
# Development version (master, 12 commits after release/0.50):
|
# Development version (master, 12 commits after release/0.50):
|
||||||
# 0.50.0+12~7e1eef94-community
|
# 0.50.0+12~7e1eef94-open-source
|
||||||
# 0.50.0+12~7e1eef94-enterprise
|
# 0.50.0+12~7e1eef94
|
||||||
# 0.50.0+12~7e1eef94-enterprise-veryimportantcustomer
|
# 0.50.0+12~7e1eef94-veryimportantcustomer
|
||||||
#
|
#
|
||||||
# The DEB package version is determined using the following two templates:
|
# The DEB package version is determined using the following two templates:
|
||||||
# Release version:
|
# Release version:
|
||||||
@@ -64,13 +65,13 @@ import os
|
|||||||
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]-1
|
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]-1
|
||||||
# Examples:
|
# Examples:
|
||||||
# Release version:
|
# Release version:
|
||||||
# 0.50.1-community-1
|
# 0.50.1-open-source-1
|
||||||
# 0.50.1-enterprise-1
|
# 0.50.1-1
|
||||||
# 0.50.1-enterprise-veryimportantcustomer-1
|
# 0.50.1-veryimportantcustomer-1
|
||||||
# Development version (master, 12 commits after release/0.50):
|
# Development version (master, 12 commits after release/0.50):
|
||||||
# 0.50.0+12~7e1eef94-community-1
|
# 0.50.0+12~7e1eef94-open-source-1
|
||||||
# 0.50.0+12~7e1eef94-enterprise-1
|
# 0.50.0+12~7e1eef94-1
|
||||||
# 0.50.0+12~7e1eef94-enterprise-veryimportantcustomer-1
|
# 0.50.0+12~7e1eef94-veryimportantcustomer-1
|
||||||
# For more documentation about the DEB package naming conventions see:
|
# For more documentation about the DEB package naming conventions see:
|
||||||
# https://www.debian.org/doc/debian-policy/ch-controlfields.html#version
|
# https://www.debian.org/doc/debian-policy/ch-controlfields.html#version
|
||||||
#
|
#
|
||||||
@@ -81,46 +82,59 @@ import os
|
|||||||
# <VERSION>_0.<DISTANCE>.<SHORTHASH>.<OFFERING>[.<SUFFIX>]
|
# <VERSION>_0.<DISTANCE>.<SHORTHASH>.<OFFERING>[.<SUFFIX>]
|
||||||
# Examples:
|
# Examples:
|
||||||
# Release version:
|
# Release version:
|
||||||
# 0.50.1_1.community
|
# 0.50.1_1.open-source
|
||||||
# 0.50.1_1.enterprise
|
# 0.50.1_1
|
||||||
# 0.50.1_1.enterprise.veryimportantcustomer
|
# 0.50.1_1.veryimportantcustomer
|
||||||
# Development version:
|
# Development version:
|
||||||
# 0.50.0_0.12.7e1eef94.community
|
# 0.50.0_0.12.7e1eef94.open-source
|
||||||
# 0.50.0_0.12.7e1eef94.enterprise
|
# 0.50.0_0.12.7e1eef94
|
||||||
# 0.50.0_0.12.7e1eef94.enterprise.veryimportantcustomer
|
# 0.50.0_0.12.7e1eef94.veryimportantcustomer
|
||||||
# For more documentation about the RPM package naming conventions see:
|
# For more documentation about the RPM package naming conventions see:
|
||||||
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
|
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Versioning/
|
||||||
# https://fedoraproject.org/wiki/Package_Versioning_Examples
|
# https://fedoraproject.org/wiki/Package_Versioning_Examples
|
||||||
|
|
||||||
|
|
||||||
|
def retry(retry_limit, timeout=100):
|
||||||
|
def inner_func(func):
|
||||||
|
@wraps(func)
|
||||||
|
def wrapper(*args, **kwargs):
|
||||||
|
for _ in range(retry_limit):
|
||||||
|
try:
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
except Exception:
|
||||||
|
time.sleep(timeout)
|
||||||
|
return func(*args, **kwargs)
|
||||||
|
return wrapper
|
||||||
|
return inner_func
|
||||||
|
|
||||||
|
|
||||||
|
@retry(3)
|
||||||
def get_output(*cmd, multiple=False):
|
def get_output(*cmd, multiple=False):
|
||||||
ret = subprocess.run(cmd, stdout=subprocess.PIPE, check=True)
|
ret = subprocess.run(cmd, stdout=subprocess.PIPE, check=True)
|
||||||
if multiple:
|
if multiple:
|
||||||
return list(map(lambda x: x.strip(),
|
return list(map(lambda x: x.strip(), ret.stdout.decode("utf-8").strip().split("\n")))
|
||||||
ret.stdout.decode("utf-8").strip().split("\n")))
|
|
||||||
return ret.stdout.decode("utf-8").strip()
|
return ret.stdout.decode("utf-8").strip()
|
||||||
|
|
||||||
|
|
||||||
def format_version(variant, version, offering, distance=None, shorthash=None,
|
def format_version(variant, version, offering, distance=None, shorthash=None, suffix=None):
|
||||||
suffix=None):
|
|
||||||
if not distance:
|
if not distance:
|
||||||
# This is a release version.
|
# This is a release version.
|
||||||
if variant == "deb":
|
if variant == "deb":
|
||||||
# <VERSION>-<OFFERING>[-<SUFFIX>]-1
|
# <VERSION>-<OFFERING>[-<SUFFIX>]-1
|
||||||
ret = "{}-{}".format(version, offering)
|
ret = "{}{}".format(version, "-" + offering if offering else "")
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "-" + suffix
|
ret += "-" + suffix
|
||||||
ret += "-1"
|
ret += "-1"
|
||||||
return ret
|
return ret
|
||||||
elif variant == "rpm":
|
elif variant == "rpm":
|
||||||
# <VERSION>_1.<OFFERING>[.<SUFFIX>]
|
# <VERSION>_1.<OFFERING>[.<SUFFIX>]
|
||||||
ret = "{}_1.{}".format(version, offering)
|
ret = "{}_1{}".format(version, "." + offering if offering else "")
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "." + suffix
|
ret += "." + suffix
|
||||||
return ret
|
return ret
|
||||||
else:
|
else:
|
||||||
# <VERSION>-<OFFERING>[-<SUFFIX>]
|
# <VERSION>-<OFFERING>[-<SUFFIX>]
|
||||||
ret = "{}-{}".format(version, offering)
|
ret = "{}{}".format(version, "-" + offering if offering else "")
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "-" + suffix
|
ret += "-" + suffix
|
||||||
return ret
|
return ret
|
||||||
@@ -128,59 +142,53 @@ def format_version(variant, version, offering, distance=None, shorthash=None,
|
|||||||
# This is a development version.
|
# This is a development version.
|
||||||
if variant == "deb":
|
if variant == "deb":
|
||||||
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]-1
|
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]-1
|
||||||
ret = "{}+{}~{}-{}".format(version, distance, shorthash, offering)
|
ret = "{}+{}~{}{}".format(version, distance, shorthash, "-" + offering if offering else "")
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "-" + suffix
|
ret += "-" + suffix
|
||||||
ret += "-1"
|
ret += "-1"
|
||||||
return ret
|
return ret
|
||||||
elif variant == "rpm":
|
elif variant == "rpm":
|
||||||
# <VERSION>_0.<DISTANCE>.<SHORTHASH>.<OFFERING>[.<SUFFIX>]
|
# <VERSION>_0.<DISTANCE>.<SHORTHASH>.<OFFERING>[.<SUFFIX>]
|
||||||
ret = "{}_0.{}.{}.{}".format(
|
ret = "{}_0.{}.{}{}".format(version, distance, shorthash, "." + offering if offering else "")
|
||||||
version, distance, shorthash, offering)
|
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "." + suffix
|
ret += "." + suffix
|
||||||
return ret
|
return ret
|
||||||
else:
|
else:
|
||||||
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]
|
# <VERSION>+<DISTANCE>~<SHORTHASH>-<OFFERING>[-<SUFFIX>]
|
||||||
ret = "{}+{}~{}-{}".format(version, distance, shorthash, offering)
|
ret = "{}+{}~{}{}".format(version, distance, shorthash, "-" + offering if offering else "")
|
||||||
if suffix:
|
if suffix:
|
||||||
ret += "-" + suffix
|
ret += "-" + suffix
|
||||||
return ret
|
return ret
|
||||||
|
|
||||||
|
|
||||||
# Parse arguments.
|
# Parse arguments.
|
||||||
parser = argparse.ArgumentParser(
|
parser = argparse.ArgumentParser(description="Get the current version of Memgraph.")
|
||||||
description="Get the current version of Memgraph.")
|
parser.add_argument("--open-source", action="store_true", help="set the current offering to 'open-source'")
|
||||||
|
parser.add_argument("version", help="manual version override, if supplied the version isn't " "determined using git")
|
||||||
|
parser.add_argument("suffix", help="custom suffix for the current version being built")
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"--enterprise", action="store_true",
|
"--variant",
|
||||||
help="set the current offering to enterprise (default 'community')")
|
choices=("binary", "deb", "rpm"),
|
||||||
|
default="binary",
|
||||||
|
help="which variant of the version string should be generated",
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
"version", help="manual version override, if supplied the version isn't "
|
"--memgraph-root-dir", help="The root directory of the checked out " "Memgraph repository.", default="."
|
||||||
"determined using git")
|
)
|
||||||
parser.add_argument(
|
|
||||||
"suffix", help="custom suffix for the current version being built")
|
|
||||||
parser.add_argument(
|
|
||||||
"--variant", choices=("binary", "deb", "rpm"), default="binary",
|
|
||||||
help="which variant of the version string should be generated")
|
|
||||||
parser.add_argument(
|
|
||||||
"--memgraph-root-dir", help="The root directory of the checked out "
|
|
||||||
"Memgraph repository.", default=".")
|
|
||||||
args = parser.parse_args()
|
args = parser.parse_args()
|
||||||
|
|
||||||
if not os.path.isdir(args.memgraph_root_dir):
|
if not os.path.isdir(args.memgraph_root_dir):
|
||||||
raise Exception("The root directory ({}) is not a valid directory".format(
|
raise Exception("The root directory ({}) is not a valid directory".format(args.memgraph_root_dir))
|
||||||
args.memgraph_root_dir))
|
|
||||||
|
|
||||||
os.chdir(args.memgraph_root_dir)
|
os.chdir(args.memgraph_root_dir)
|
||||||
|
|
||||||
offering = "enterprise" if args.enterprise else "community"
|
offering = "open-source" if args.open_source else None
|
||||||
|
|
||||||
# Check whether the version was manually supplied.
|
# Check whether the version was manually supplied.
|
||||||
if args.version:
|
if args.version:
|
||||||
if not re.match(r"^[0-9]+\.[0-9]+\.[0-9]+$", args.version):
|
if not re.match(r"^[0-9]+\.[0-9]+\.[0-9]+$", args.version):
|
||||||
raise Exception("Invalid version supplied '{}'!".format(args.version))
|
raise Exception("Invalid version supplied '{}'!".format(args.version))
|
||||||
print(format_version(args.variant, args.version, offering,
|
print(format_version(args.variant, args.version, offering, suffix=args.suffix), end="")
|
||||||
suffix=args.suffix), end="")
|
|
||||||
sys.exit(0)
|
sys.exit(0)
|
||||||
|
|
||||||
# Within CI, after the regular checkout, master is sometimes (e.g. in the case
|
# Within CI, after the regular checkout, master is sometimes (e.g. in the case
|
||||||
@@ -234,33 +242,28 @@ versions.sort(reverse=True)
|
|||||||
current_version = None
|
current_version = None
|
||||||
for version in versions:
|
for version in versions:
|
||||||
version_tuple, branch, master_branch_merge = version
|
version_tuple, branch, master_branch_merge = version
|
||||||
current_branch_merge = get_output(
|
current_branch_merge = get_output("git", "merge-base", current_hash, branch)
|
||||||
"git", "merge-base", current_hash, branch)
|
master_current_merge = get_output("git", "merge-base", current_hash, "master")
|
||||||
master_current_merge = get_output(
|
|
||||||
"git", "merge-base", current_hash, "master")
|
|
||||||
# The first check checks whether this commit is a child of `master` and
|
# The first check checks whether this commit is a child of `master` and
|
||||||
# the version branch was created before us.
|
# the version branch was created before us.
|
||||||
# The second check checks whether this commit is a child of the version
|
# The second check checks whether this commit is a child of the version
|
||||||
# branch.
|
# branch.
|
||||||
if master_branch_merge == current_branch_merge or \
|
if master_branch_merge == current_branch_merge or master_branch_merge == master_current_merge:
|
||||||
master_branch_merge == master_current_merge:
|
|
||||||
current_version = version
|
current_version = version
|
||||||
break
|
break
|
||||||
|
|
||||||
# Determine current version.
|
# Determine current version.
|
||||||
if current_version is None:
|
if current_version is None:
|
||||||
raise Exception("You are attempting to determine the version for a very "
|
raise Exception("You are attempting to determine the version for a very " "old version of Memgraph!")
|
||||||
"old version of Memgraph!")
|
|
||||||
version, branch, master_branch_merge = current_version
|
version, branch, master_branch_merge = current_version
|
||||||
distance = int(get_output("git", "rev-list", "--count", "--first-parent",
|
distance = int(get_output("git", "rev-list", "--count", "--first-parent", master_branch_merge + ".." + current_hash))
|
||||||
master_branch_merge + ".." + current_hash))
|
|
||||||
version_str = ".".join(map(str, version)) + ".0"
|
version_str = ".".join(map(str, version)) + ".0"
|
||||||
if distance == 0:
|
if distance == 0:
|
||||||
print(format_version(args.variant, version_str, offering,
|
print(format_version(args.variant, version_str, offering, suffix=args.suffix), end="")
|
||||||
suffix=args.suffix),
|
|
||||||
end="")
|
|
||||||
else:
|
else:
|
||||||
print(format_version(args.variant, version_str, offering,
|
print(
|
||||||
distance=distance, shorthash=current_hash_short,
|
format_version(
|
||||||
suffix=args.suffix),
|
args.variant, version_str, offering, distance=distance, shorthash=current_hash_short, suffix=args.suffix
|
||||||
end="")
|
),
|
||||||
|
end="",
|
||||||
|
)
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
# logrotate configuration for Memgraph Enterprise
|
# logrotate configuration for Memgraph Enterprise
|
||||||
# see "man logrotate" for details
|
# see "man logrotate" for details
|
||||||
|
|
||||||
/var/lib/memgraph/durability/audit/audit.log {
|
/var/lib/memgraph/audit/audit.log {
|
||||||
# rotate log files daily
|
# rotate log files daily
|
||||||
daily
|
daily
|
||||||
# keep one year worth of audit logs
|
# keep one year worth of audit logs
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
# logrotate configuration for Memgraph Community
|
|
||||||
# see "man logrotate" for details
|
|
||||||
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"]
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user