Skip to content
This repository was archived by the owner on Oct 9, 2023. It is now read-only.

Commit b42231f

Browse files
authored
Upgrade to Bazel 5 (#253)
## What is the goal of this PR? Make the repository use Bazel 5. Bazel 4 and below only work with the deprecated Python 2, which is no longer included in some operating systems such as the latest Mac OS X. ## What are the changes implemented in this PR? 1. Upgrade Bazel to 5.1.1. 2. Upgrade all `@vaticle` dependencies (repositories and artifacts) 3. Update BDD steps as a consequence of upgrading to the latest version of `@vaticle_typedb_behaviour` 4. Update test runners according to the latest version of TypeDB Cluster 5. Update all CI jobs to use Python 3.7
1 parent 0632ffa commit b42231f

File tree

10 files changed

+177
-110
lines changed

10 files changed

+177
-110
lines changed

.bazelversion

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.3.1
1+
5.1.1

.grabl/automation.yml

Lines changed: 46 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -40,10 +40,11 @@ build:
4040
image: vaticle-ubuntu-21.04
4141
type: foreground
4242
command: |
43-
pyenv global 3.6.10
43+
pyenv install 3.7.12
44+
pyenv global 3.7.12
4445
sudo unlink /usr/bin/python3
4546
sudo ln -s $(which python3) /usr/bin/python3
46-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
47+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
4748
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
4849
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
4950
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -54,12 +55,13 @@ build:
5455
image: vaticle-ubuntu-21.04
5556
type: foreground
5657
command: |
57-
pyenv global 3.6.10
58+
pyenv install 3.7.12
59+
pyenv global 3.7.12
5860
pip3 install -U pip
5961
pip install -r requirements_dev.txt
6062
sudo unlink /usr/bin/python3
6163
sudo ln -s $(which python3) /usr/bin/python3
62-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
64+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
6365
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
6466
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
6567
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -68,12 +70,13 @@ build:
6870
# image: vaticle-ubuntu-21.04
6971
# type: foreground
7072
# command: |
71-
# pyenv global 3.6.10
73+
# pyenv install 3.7.12
74+
# pyenv global 3.7.12
7275
# pip3 install -U pip
7376
# pip install -r requirements_dev.txt
7477
# sudo unlink /usr/bin/python3
7578
# sudo ln -s $(which python3) /usr/bin/python3
76-
# sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
79+
# sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
7780
# export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
7881
# export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
7982
# bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -82,12 +85,13 @@ build:
8285
image: vaticle-ubuntu-21.04
8386
type: foreground
8487
command: |
85-
pyenv global 3.6.10
88+
pyenv install 3.7.12
89+
pyenv global 3.7.12
8690
pip3 install -U pip
8791
pip install -r requirements_dev.txt
8892
sudo unlink /usr/bin/python3
8993
sudo ln -s $(which python3) /usr/bin/python3
90-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
94+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
9195
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
9296
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
9397
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -96,12 +100,13 @@ build:
96100
image: vaticle-ubuntu-21.04
97101
type: foreground
98102
command: |
99-
pyenv global 3.6.10
103+
pyenv install 3.7.12
104+
pyenv global 3.7.12
100105
pip3 install -U pip
101106
pip install -r requirements_dev.txt
102107
sudo unlink /usr/bin/python3
103108
sudo ln -s $(which python3) /usr/bin/python3
104-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
109+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
105110
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
106111
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
107112
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -110,12 +115,13 @@ build:
110115
image: vaticle-ubuntu-21.04
111116
type: foreground
112117
command: |
113-
pyenv global 3.6.10
118+
pyenv install 3.7.12
119+
pyenv global 3.7.12
114120
pip3 install -U pip
115121
pip install -r requirements_dev.txt
116122
sudo unlink /usr/bin/python3
117123
sudo ln -s $(which python3) /usr/bin/python3
118-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
124+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
119125
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
120126
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
121127
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -125,12 +131,13 @@ build:
125131
# image: vaticle-ubuntu-21.04
126132
# type: foreground
127133
# command: |
128-
# pyenv global 3.6.10
134+
# pyenv install 3.7.12
135+
# pyenv global 3.7.12
129136
# pip3 install -U pip
130137
# pip install -r requirements_dev.txt
131138
# sudo unlink /usr/bin/python3
132139
# sudo ln -s $(which python3) /usr/bin/python3
133-
# sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
140+
# sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
134141
# export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
135142
# export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
136143
# bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -140,12 +147,13 @@ build:
140147
image: vaticle-ubuntu-21.04
141148
type: foreground
142149
command: |
143-
pyenv global 3.6.10
150+
pyenv install 3.7.12
151+
pyenv global 3.7.12
144152
pip3 install -U pip
145153
pip install -r requirements_dev.txt
146154
sudo unlink /usr/bin/python3
147155
sudo ln -s $(which python3) /usr/bin/python3
148-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
156+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
149157
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
150158
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
151159
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -156,12 +164,13 @@ build:
156164
image: vaticle-ubuntu-21.04
157165
type: foreground
158166
command: |
159-
pyenv global 3.6.10
167+
pyenv install 3.7.12
168+
pyenv global 3.7.12
160169
pip3 install -U pip
161170
pip install -r requirements_dev.txt
162171
sudo unlink /usr/bin/python3
163172
sudo ln -s $(which python3) /usr/bin/python3
164-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
173+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
165174
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
166175
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
167176
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -172,12 +181,13 @@ build:
172181
image: vaticle-ubuntu-21.04
173182
type: foreground
174183
command: |
175-
pyenv global 3.6.10
184+
pyenv install 3.7.12
185+
pyenv global 3.7.12
176186
pip3 install -U pip
177187
pip install -r requirements_dev.txt
178188
sudo unlink /usr/bin/python3
179189
sudo ln -s $(which python3) /usr/bin/python3
180-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
190+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
181191
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
182192
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
183193
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -187,12 +197,13 @@ build:
187197
image: vaticle-ubuntu-21.04
188198
type: foreground
189199
command: |
190-
pyenv global 3.6.10
200+
pyenv install 3.7.12
201+
pyenv global 3.7.12
191202
pip3 install -U pip
192203
pip install -r requirements_dev.txt
193204
sudo unlink /usr/bin/python3
194205
sudo ln -s $(which python3) /usr/bin/python3
195-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
206+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
196207
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
197208
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
198209
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -203,12 +214,13 @@ build:
203214
image: vaticle-ubuntu-21.04
204215
type: foreground
205216
command: |
206-
pyenv global 3.6.10
217+
pyenv install 3.7.12
218+
pyenv global 3.7.12
207219
pip3 install -U pip
208220
pip install -r requirements_dev.txt
209221
sudo unlink /usr/bin/python3
210222
sudo ln -s $(which python3) /usr/bin/python3
211-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
223+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
212224
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
213225
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD
214226
bazel run @vaticle_dependencies//distribution/artifact:create-netrc
@@ -231,11 +243,12 @@ build:
231243
branch: master
232244
type: foreground
233245
command: |
234-
pyenv global 3.6.10
246+
pyenv install 3.7.12
247+
pyenv global 3.7.12
235248
pip3 install -U pip
236249
sudo unlink /usr/bin/python3
237250
sudo ln -s $(which python3) /usr/bin/python3
238-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
251+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
239252
export DEPLOY_PIP_USERNAME=$REPO_VATICLE_USERNAME
240253
export DEPLOY_PIP_PASSWORD=$REPO_VATICLE_PASSWORD
241254
bazel run --define version=$(git rev-parse HEAD) //:deploy-pip -- snapshot
@@ -247,11 +260,12 @@ build:
247260
branch: master
248261
type: foreground
249262
command: |
250-
pyenv global 3.6.10
263+
pyenv install 3.7.12
264+
pyenv global 3.7.12
251265
pip3 install -U pip
252266
sudo unlink /usr/bin/python3
253267
sudo ln -s $(which python3) /usr/bin/python3
254-
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.6.10/lib/python3.6/site-packages/lsb_release.py
268+
sudo ln -s /usr/share/pyshared/lsb_release.py /opt/pyenv/versions/3.7.12/lib/python3.7/site-packages/lsb_release.py
255269
bazel run //tests:typedb-extractor -- typedb-all-linux
256270
./typedb-all-linux/typedb server &
257271
pip install --extra-index-url https://repo.vaticle.com/repository/pypi-snapshot/simple typedb-client==0.0.0-$GRABL_COMMIT
@@ -271,8 +285,8 @@ release:
271285
deploy-github:
272286
image: vaticle-ubuntu-21.04
273287
command: |
274-
pyenv install -s 3.6.10
275-
pyenv global 3.6.10 system
288+
pyenv install -s 3.7.12
289+
pyenv global 3.7.12 system
276290
pip3 install -U pip
277291
pip install certifi
278292
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
@@ -285,8 +299,8 @@ release:
285299
deploy-pip-release:
286300
image: vaticle-ubuntu-21.04
287301
command: |
288-
pyenv install -s 3.6.10
289-
pyenv global 3.6.10 system
302+
pyenv install -s 3.7.12
303+
pyenv global 3.7.12 system
290304
pip3 install -U pip
291305
export ARTIFACT_USERNAME=$REPO_VATICLE_USERNAME
292306
export ARTIFACT_PASSWORD=$REPO_VATICLE_PASSWORD

WORKSPACE

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ kt_register_toolchains()
4646
# Load //builder/python
4747
load("@vaticle_dependencies//builder/python:deps.bzl", python_deps = "deps")
4848
python_deps()
49-
load("@rules_python//python:pip.bzl", "pip_repositories", "pip_import")
49+
load("@rules_python//python:pip.bzl", "pip_repositories")
5050
pip_repositories()
5151

5252
# Load //builder/grpc

dependencies/vaticle/artifacts.bzl

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ def vaticle_typedb_artifacts():
2929
artifact_name = "typedb-server-{platform}-{version}.{ext}",
3030
tag_source = deployment["artifact.release"],
3131
commit_source = deployment["artifact.snapshot"],
32-
tag = "2.6.1",
32+
commit = "0f84e6577b6ef60dac838b604e6d66222c512957",
3333
)
3434

3535
def vaticle_typedb_cluster_artifacts():
@@ -39,5 +39,5 @@ def vaticle_typedb_cluster_artifacts():
3939
artifact_name = "typedb-cluster-all-{platform}-{version}.{ext}",
4040
tag_source = deployment_private["artifact.release"],
4141
commit_source = deployment_private["artifact.snapshot"],
42-
commit = "f6d9eae58c83c165d932c0433a3a0d858e206fab"
42+
commit = "aa8531f154d7c74c8922c71a252022c650c1be0c"
4343
)

dependencies/vaticle/repositories.bzl

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,19 +25,19 @@ def vaticle_dependencies():
2525
git_repository(
2626
name = "vaticle_dependencies",
2727
remote = "https://github.com/vaticle/dependencies",
28-
commit = "249700ec1e6de8b46d528d0a4fde4d1c7a9b3aa5", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_dependencies
28+
commit = "465e60776ca3055ce85d90e94624d37db3f7e790", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_dependencies
2929
)
3030

3131
def vaticle_typedb_common():
3232
git_repository(
3333
name = "vaticle_typedb_common",
3434
remote = "https://github.com/vaticle/typedb-common",
35-
tag = "2.7.0" # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_common
35+
commit = "d11cee9745e4559450ef4ccb140d4e9781587932" # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_common
3636
)
3737

3838
def vaticle_typedb_behaviour():
3939
git_repository(
4040
name = "vaticle_typedb_behaviour",
4141
remote = "https://github.com/vaticle/typedb-behaviour",
42-
commit = "d92d840dd40cc8393936d6f6042820ebcd3a9cef" # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_behaviour
42+
commit = "7aa405c01eb46b8a28867bc49c4f8c0427c32d52", # sync-marker: do not remove this comment, this is used for sync-dependencies by @vaticle_typedb_behaviour
4343
)

tests/behaviour/concept/type/thingtype/thing_type_steps.py

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,20 @@ def step_impl(context: Context, root_label: RootLabel, type_label: str, get_labe
6767
assert_that(context.get_thing_type(root_label, type_label).as_remote(context.tx()).get_label().name(), is_(get_label))
6868

6969

70+
@step("{root_label:RootLabel}({type_label}) set abstract: {is_abstract}; throws exception")
71+
def step_impl(context: Context, root_label: RootLabel, type_label: str, is_abstract):
72+
is_abstract = parse_bool(is_abstract)
73+
thing_type = context.get_thing_type(root_label, type_label)
74+
try:
75+
if is_abstract:
76+
thing_type.as_remote(context.tx()).set_abstract()
77+
else:
78+
thing_type.as_remote(context.tx()).unset_abstract()
79+
assert False
80+
except TypeDBClientException:
81+
pass
82+
83+
7084
@step("{root_label:RootLabel}({type_label}) set abstract: {is_abstract}")
7185
def step_impl(context: Context, root_label: RootLabel, type_label: str, is_abstract):
7286
is_abstract = parse_bool(is_abstract)

tests/behaviour/typeql/typeql_steps.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -471,8 +471,8 @@ def step_impl(context: Context):
471471
assert_that(list(context.tx().query().match(query)), has_length(1))
472472

473473

474-
@step("each answer does not satisfy")
474+
@step("templated typeql match; throws exception")
475475
def step_impl(context: Context):
476476
for answer in context.answers:
477477
query = apply_query_template(template=context.text, answer=answer)
478-
assert_that(list(context.tx().query().match(query)), has_length(0))
478+
assert_that(calling(list).with_args(context.tx().query().match(query)), raises(TypeDBClientException))

tests/integration/test_cluster_failover.py

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -42,6 +42,26 @@ def setUp(self):
4242
client.databases().get("typedb").delete()
4343
client.databases().create("typedb")
4444

45+
@staticmethod
46+
def server_start(index):
47+
subprocess.Popen([
48+
"./%s/typedb" % index, "cluster",
49+
"--storage.data", "server/data",
50+
"--server.address", "127.0.0.1:%s1729" % index,
51+
"--server.internal-address.zeromq", "127.0.0.1:%s1730" % index,
52+
"--server.internal-address.grpc", "127.0.0.1:%s1731" % index,
53+
"--server.peers.peer-1.address", "127.0.0.1:11729",
54+
"--server.peers.peer-1.internal-address.zeromq", "127.0.0.1:11730",
55+
"--server.peers.peer-1.internal-address.grpc", "127.0.0.1:11731",
56+
"--server.peers.peer-2.address", "127.0.0.1:21729",
57+
"--server.peers.peer-2.internal-address.zeromq", "127.0.0.1:21730",
58+
"--server.peers.peer-2.internal-address.grpc", "127.0.0.1:21731",
59+
"--server.peers.peer-3.address", "127.0.0.1:31729",
60+
"--server.peers.peer-3.internal-address.zeromq", "127.0.0.1:31730",
61+
"--server.peers.peer-3.internal-address.grpc", "127.0.0.1:31731",
62+
"--server.encryption.enable", "true"
63+
])
64+
4565
def get_primary_replica(self, database_manager: ClusterDatabaseManager):
4666
retry_num = 0
4767
while retry_num < 10:
@@ -89,7 +109,7 @@ def test_put_entity_type_to_crashed_primary_replica(self):
89109
print("Retrieved entity type with label '%s' from new primary replica." % person.get_label())
90110
assert person.get_label().name() == "person"
91111
idx = str(primary_replica.address())[10]
92-
subprocess.Popen(["./%s/typedb" % idx, "cluster", "--data", "server/data", "--address", "127.0.0.1:%s1729:%s1730:%s1731" % (idx, idx, idx), "--peer", "127.0.0.1:11729:11730:11731", "--peer", "127.0.0.1:21729:21730:21731", "--peer", "127.0.0.1:31729:31730:31731", "--encryption-enabled=true"])
112+
self.server_start(idx)
93113
lsof = None
94114
live_check_iteration = 0
95115
while not lsof and live_check_iteration < 60:

0 commit comments

Comments
 (0)