Skip to content

Commit 7bcd9ca

Browse files
committed
[backcompat-tests] Remove tests against older webserver than code server
1 parent e371e50 commit 7bcd9ca

File tree

7 files changed

+29
-98
lines changed

7 files changed

+29
-98
lines changed

.buildkite/dagster-buildkite/dagster_buildkite/steps/integration.py

Lines changed: 4 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -51,8 +51,6 @@ def build_integration_steps() -> List[BuildkiteStep]:
5151

5252
def build_backcompat_suite_steps() -> List[BuildkiteTopLevelStep]:
5353
tox_factors = [
54-
"webserver-latest-release",
55-
"webserver-earliest-release",
5654
"user-code-latest-release",
5755
"user-code-earliest-release",
5856
]
@@ -66,43 +64,25 @@ def build_backcompat_suite_steps() -> List[BuildkiteTopLevelStep]:
6664

6765
def backcompat_extra_cmds(_, factor: str) -> List[str]:
6866
tox_factor_map = {
69-
"webserver-latest-release": {
70-
"webserver": LATEST_DAGSTER_RELEASE,
71-
"user_code": DAGSTER_CURRENT_BRANCH,
72-
},
73-
"webserver-earliest-release": {
74-
"webserver": EARLIEST_TESTED_RELEASE,
75-
"user_code": DAGSTER_CURRENT_BRANCH,
76-
},
77-
"user-code-latest-release": {
78-
"webserver": DAGSTER_CURRENT_BRANCH,
79-
"user_code": LATEST_DAGSTER_RELEASE,
80-
},
81-
"user-code-earliest-release": {
82-
"webserver": DAGSTER_CURRENT_BRANCH,
83-
"user_code": EARLIEST_TESTED_RELEASE,
84-
},
67+
"user-code-latest-release": LATEST_DAGSTER_RELEASE,
68+
"user-code-earliest-release": EARLIEST_TESTED_RELEASE,
8569
}
8670

87-
release_mapping = tox_factor_map[factor]
88-
webserver_version = release_mapping["webserver"]
71+
webserver_version = DAGSTER_CURRENT_BRANCH
8972
webserver_library_version = _get_library_version(webserver_version)
90-
webserver_package = _infer_webserver_package(webserver_version)
91-
user_code_version = release_mapping["user_code"]
73+
user_code_version = tox_factor_map[factor]
9274
user_code_library_version = _get_library_version(user_code_version)
9375
user_code_definitions_file = _infer_user_code_definitions_files(user_code_version)
9476

9577
return [
9678
f"export EARLIEST_TESTED_RELEASE={EARLIEST_TESTED_RELEASE}",
97-
f"export WEBSERVER_PACKAGE={webserver_package}",
9879
f"export USER_CODE_DEFINITIONS_FILE={user_code_definitions_file}",
9980
"pushd integration_tests/test_suites/backcompat-test-suite/webserver_service",
10081
" ".join(
10182
[
10283
"./build.sh",
10384
webserver_version,
10485
webserver_library_version,
105-
webserver_package,
10686
user_code_version,
10787
user_code_library_version,
10888
user_code_definitions_file,
@@ -119,17 +99,6 @@ def backcompat_extra_cmds(_, factor: str) -> List[str]:
11999
]
120100

121101

122-
def _infer_webserver_package(release: str) -> str:
123-
"""Returns `dagster-webserver` if on source or version >=1.3.14 (first dagster-webserver
124-
release), `dagit` otherwise.
125-
"""
126-
if release == "current_branch":
127-
return "dagster-webserver"
128-
else:
129-
version = packaging.version.parse(release)
130-
return "dagit" if version < packaging.version.Version("1.3.14") else "dagster-webserver"
131-
132-
133102
def _infer_user_code_definitions_files(release: str) -> str:
134103
"""Returns `repo.py` if on source or version >=1.0, `legacy_repo.py` otherwise."""
135104
if release == "current_branch":

integration_tests/test_suites/backcompat-test-suite/README.md

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Backcompatability Integration Tests
22

3-
This test suite ensures that the branch Dagster code can successfully communicate cross-process with older Dagster code.
3+
This test suite ensures that the branch Dagster code can successfully communicate cross-process with older Dagster code. It only tests older user code (i.e. code server), because our backcompat policy is that the host process (e.g. webserver) version must be >= user code version.
44

55
## Looking at test artifacts in BuildKite
66

@@ -38,19 +38,13 @@ If you are on MacOS, ensure you have docker running
3838

3939
From `integration_tests/test_suites/backcompat-test-suite` run any of the following commands
4040

41-
- `pytest -m webserver-latest-release -xvv -ff tests/test_backcompat.py`
42-
- `pytest -m webserver-earliest-release -xvv -ff tests/test_backcompat.py`
4341
- `pytest -m user-code-latest-release -xvv -ff tests/test_backcompat.py`
4442
- `pytest -m user-code-earliest-release -xvv -ff tests/test_backcompat.py`
45-
- `tox webserver-latest-release`
46-
- `tox webserver-earliest-release`
4743
- `tox user-code-latest-release`
4844
- `tox user-code-earliest-release`
4945

5046
where:
5147

52-
- webserver-latest-release: webserver on most recent release (`dagster-webserver`) and user code on current branch
53-
- webserver-earliest-release: webserver on earliest release (this will run the deprecated `dagit` package if `EARLIEST_TESTED_RELEASE` is less than 1.3.14) to maintain backcompat for, and user code on current branch
5448
- user-code-latest-release: webserver on current branch and user code on latest minor release
5549
- user-code-earliest-release: webserver on current branch and user code on earliest release to maintain backcompat for
5650

integration_tests/test_suites/backcompat-test-suite/tests/test_backcompat.py

Lines changed: 19 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -30,13 +30,12 @@
3030
pytest_plugins = ["dagster_test.fixtures"]
3131

3232

33-
# Maps pytest marks to (webserver-version, user-code-version) 2-tuples. These versions are CORE
34-
# versions-- library versions are derived from these later with `get_library_version`.
33+
# Maps pytest marks to user code version numbers. The webserver version is always the current
34+
# branch. Note that these versions are CORE versions-- library versions are derived from these later
35+
# with `get_library_version`.
3536
MARK_TO_VERSIONS_MAP = {
36-
"webserver-earliest-release": (EARLIEST_TESTED_RELEASE, DAGSTER_CURRENT_BRANCH),
37-
"user-code-earliest-release": (DAGSTER_CURRENT_BRANCH, EARLIEST_TESTED_RELEASE),
38-
"webserver-latest-release": (MOST_RECENT_RELEASE_PLACEHOLDER, DAGSTER_CURRENT_BRANCH),
39-
"user-code-latest-release": (DAGSTER_CURRENT_BRANCH, MOST_RECENT_RELEASE_PLACEHOLDER),
37+
"user-code-earliest-release": EARLIEST_TESTED_RELEASE,
38+
"user-code-latest-release": MOST_RECENT_RELEASE_PLACEHOLDER,
4039
}
4140

4241

@@ -64,19 +63,6 @@ def infer_user_code_definitions_files(release: str) -> str:
6463
return "legacy_repo.py" if version < packaging.version.Version("1.0") else "repo.py"
6564

6665

67-
def infer_webserver_package(release: str) -> str:
68-
"""Returns `dagster-webserver` if on source or version >=1.3.14 (first dagster-webserver
69-
release), `dagit` otherwise.
70-
"""
71-
if release == "current_branch":
72-
return "dagster-webserver"
73-
else:
74-
if not EARLIEST_TESTED_RELEASE:
75-
check.failed("Environment variable `$EARLIEST_TESTED_RELEASE` must be set.")
76-
version = packaging.version.parse(release)
77-
return "dagit" if version < packaging.version.Version("1.3.14") else "dagster-webserver"
78-
79-
8066
def assert_run_success(client: DagsterGraphQLClient, run_id: str) -> None:
8167
start_time = time.time()
8268
while True:
@@ -117,25 +103,17 @@ def dagster_most_recent_release() -> str:
117103
scope="session",
118104
)
119105
def release_test_map(request, dagster_most_recent_release: str) -> Mapping[str, str]:
120-
webserver_version = request.param[0]
121-
if webserver_version == MOST_RECENT_RELEASE_PLACEHOLDER:
122-
webserver_version = dagster_most_recent_release
123-
user_code_version = request.param[1]
124-
if user_code_version == MOST_RECENT_RELEASE_PLACEHOLDER:
125-
user_code_version = dagster_most_recent_release
126-
127-
return {"webserver": webserver_version, "user_code": user_code_version}
106+
user_code_version = (
107+
dagster_most_recent_release
108+
if request.param == MOST_RECENT_RELEASE_PLACEHOLDER
109+
else request.param
110+
)
111+
return {"webserver": DAGSTER_CURRENT_BRANCH, "user_code": user_code_version}
128112

129113

130-
def check_webserver_connection(host: str, webserver_package: str, retrying_requests) -> None:
131-
if webserver_package == "dagit":
132-
url_path = "dagit_info"
133-
json_key = "dagit_version"
134-
else: # dagster-webserver
135-
url_path = "server_info"
136-
json_key = "dagster_webserver_version"
137-
result = retrying_requests.get(f"http://{host}:3000/{url_path}")
138-
assert result.json().get(json_key)
114+
def check_webserver_connection(host: str, retrying_requests) -> None:
115+
result = retrying_requests.get(f"http://{host}:3000/server_info")
116+
assert result.json().get("dagster_webserver_version")
139117

140118

141119
def upload_docker_logs_to_buildkite():
@@ -204,7 +182,6 @@ def docker_service(
204182

205183
# Infer additional parameters used in our docker setup from webserver/usercode versions.
206184
webserver_library_version = get_library_version(webserver_version)
207-
webserver_package = infer_webserver_package(webserver_version)
208185
user_code_library_version = get_library_version(user_code_version)
209186
user_code_definitions_files = infer_user_code_definitions_files(user_code_version)
210187

@@ -214,7 +191,6 @@ def docker_service(
214191
file_relative_path(docker_compose_file, "./build.sh"),
215192
webserver_version,
216193
webserver_library_version,
217-
webserver_package,
218194
user_code_version,
219195
user_code_library_version,
220196
user_code_definitions_files,
@@ -223,11 +199,10 @@ def docker_service(
223199
build_process.wait()
224200
assert build_process.returncode == 0
225201

226-
# Create the docker service. $WEBSERVER_PACKAGE and $USER_CODE_DEFINITIONS_FILE are referenced
227-
# in the entrypoint of a container so we need to make them available as environment variables
228-
# while creating the service.
202+
# Create the docker service. $USER_CODE_DEFINITIONS_FILE is referenced in the entrypoint of a
203+
# container so we need to make it available as an environment variable while creating the
204+
# service.
229205
env = {
230-
"WEBSERVER_PACKAGE": webserver_package,
231206
"USER_CODE_DEFINITIONS_FILE": user_code_definitions_files,
232207
**os.environ,
233208
}
@@ -259,15 +234,14 @@ def graphql_client(
259234
release_test_map: Mapping[str, str], retrying_requests
260235
) -> Iterator[DagsterGraphQLClient]:
261236
webserver_version = release_test_map["webserver"]
262-
webserver_package = infer_webserver_package(webserver_version)
263237

264238
# On Buildkite, the docker service is set up and torn down outside of pytest. The webserver is
265239
# exposed through the BACKCOMPAT_TESTS_WEBSERVER_HOST environment variable. We can just connect
266240
# to it and yield the client.
267241
if IS_BUILDKITE:
268242
webserver_host = os.environ["BACKCOMPAT_TESTS_WEBSERVER_HOST"]
269243
try:
270-
check_webserver_connection(webserver_host, webserver_package, retrying_requests)
244+
check_webserver_connection(webserver_host, retrying_requests)
271245
yield DagsterGraphQLClient(webserver_host, port_number=3000)
272246
finally:
273247
upload_docker_logs_to_buildkite()
@@ -281,8 +255,7 @@ def graphql_client(
281255
webserver_version=webserver_version,
282256
user_code_version=release_test_map["user_code"],
283257
):
284-
print("INSIDE DOCKER SERVICE")
285-
check_webserver_connection(webserver_host, webserver_package, retrying_requests)
258+
check_webserver_connection(webserver_host, retrying_requests)
286259
yield DagsterGraphQLClient(webserver_host, port_number=3000)
287260

288261

integration_tests/test_suites/backcompat-test-suite/tox.ini

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,5 @@ allowlist_externals =
2424
uv
2525
commands =
2626
!windows: /bin/bash -c '! pip list --exclude-editable | grep -e dagster'
27-
webserver-latest-release: pytest -m "webserver-latest-release" -vv -s {posargs}
28-
webserver-earliest-release: pytest -m "webserver-earliest-release" -vv -s {posargs}
2927
user-code-latest-release: pytest -m "user-code-latest-release" -vv -s {posargs}
3028
user-code-earliest-release: pytest -m "user-code-earliest-release" -vv -s {posargs}

integration_tests/test_suites/backcompat-test-suite/webserver_service/Dockerfile_webserver_release

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ FROM python:3.8-slim
22

33
ARG WEBSERVER_VERSION
44
ARG WEBSERVER_LIBRARY_VERSION
5-
ARG WEBSERVER_PACKAGE
65

76
COPY pins.txt pins.txt
87

@@ -12,7 +11,7 @@ RUN pip install \
1211
dagster-postgres=="${WEBSERVER_LIBRARY_VERSION}" \
1312
dagster-docker=="${WEBSERVER_LIBRARY_VERSION}" \
1413
dagster-graphql=="${WEBSERVER_VERSION}" \
15-
${WEBSERVER_PACKAGE}=="${WEBSERVER_VERSION}"
14+
dagster-webserver=="${WEBSERVER_VERSION}"
1615

1716
ENV DAGSTER_HOME=/opt/dagster/dagster_home/
1817
RUN mkdir -p $DAGSTER_HOME

integration_tests/test_suites/backcompat-test-suite/webserver_service/build.sh

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,9 @@
11
#!/bin/bash
22
WEBSERVER_VERSION=$1
33
WEBSERVER_LIBRARY_VERSION=$2
4-
WEBSERVER_PACKAGE=$3
5-
USER_CODE_VERSION=$4
6-
USER_CODE_LIBRARY_VERSION=$5
7-
USER_CODE_DEFINITIONS_FILE=$6
4+
USER_CODE_VERSION=$3
5+
USER_CODE_LIBRARY_VERSION=$4
6+
USER_CODE_DEFINITIONS_FILE=$5
87

98
if [ "$WEBSERVER_VERSION" = "current_branch" ]; then
109
export WEBSERVER_DOCKERFILE="./Dockerfile_webserver_source"
@@ -65,7 +64,6 @@ echo -e "--- \033[32m:docker: Building Docker images\033[0m"
6564
docker-compose build \
6665
--build-arg WEBSERVER_VERSION="${WEBSERVER_VERSION}" \
6766
--build-arg WEBSERVER_LIBRARY_VERSION="${WEBSERVER_LIBRARY_VERSION}" \
68-
--build-arg WEBSERVER_PACKAGE="${WEBSERVER_PACKAGE}" \
6967
--build-arg USER_CODE_VERSION="${USER_CODE_VERSION}" \
7068
--build-arg USER_CODE_LIBRARY_VERSION="${USER_CODE_LIBRARY_VERSION}" \
7169
--build-arg USER_CODE_DEFINITIONS_FILE="${USER_CODE_DEFINITIONS_FILE}"

integration_tests/test_suites/backcompat-test-suite/webserver_service/docker-compose.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ services:
4848
expose:
4949
- "3000"
5050
entrypoint:
51-
- ${WEBSERVER_PACKAGE}
51+
- dagster-webserver
5252
- -h
5353
- "0.0.0.0"
5454
- -p

0 commit comments

Comments
 (0)