Skip to content

Commit 987d89a

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

File tree

7 files changed

+23
-89
lines changed

7 files changed

+23
-89
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: 13 additions & 37 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:
@@ -127,15 +113,9 @@ def release_test_map(request, dagster_most_recent_release: str) -> Mapping[str,
127113
return {"webserver": webserver_version, "user_code": user_code_version}
128114

129115

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)
116+
def check_webserver_connection(host: str, retrying_requests) -> None:
117+
result = retrying_requests.get(f"http://{host}:3000/server_info")
118+
assert result.json().get("dagster_webserver_version")
139119

140120

141121
def upload_docker_logs_to_buildkite():
@@ -204,7 +184,6 @@ def docker_service(
204184

205185
# Infer additional parameters used in our docker setup from webserver/usercode versions.
206186
webserver_library_version = get_library_version(webserver_version)
207-
webserver_package = infer_webserver_package(webserver_version)
208187
user_code_library_version = get_library_version(user_code_version)
209188
user_code_definitions_files = infer_user_code_definitions_files(user_code_version)
210189

@@ -214,7 +193,6 @@ def docker_service(
214193
file_relative_path(docker_compose_file, "./build.sh"),
215194
webserver_version,
216195
webserver_library_version,
217-
webserver_package,
218196
user_code_version,
219197
user_code_library_version,
220198
user_code_definitions_files,
@@ -223,11 +201,10 @@ def docker_service(
223201
build_process.wait()
224202
assert build_process.returncode == 0
225203

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.
204+
# Create the docker service. $USER_CODE_DEFINITIONS_FILE is referenced in the entrypoint of a
205+
# container so we need to make it available as an environment variable while creating the
206+
# service.
229207
env = {
230-
"WEBSERVER_PACKAGE": webserver_package,
231208
"USER_CODE_DEFINITIONS_FILE": user_code_definitions_files,
232209
**os.environ,
233210
}
@@ -259,15 +236,14 @@ def graphql_client(
259236
release_test_map: Mapping[str, str], retrying_requests
260237
) -> Iterator[DagsterGraphQLClient]:
261238
webserver_version = release_test_map["webserver"]
262-
webserver_package = infer_webserver_package(webserver_version)
263239

264240
# On Buildkite, the docker service is set up and torn down outside of pytest. The webserver is
265241
# exposed through the BACKCOMPAT_TESTS_WEBSERVER_HOST environment variable. We can just connect
266242
# to it and yield the client.
267243
if IS_BUILDKITE:
268244
webserver_host = os.environ["BACKCOMPAT_TESTS_WEBSERVER_HOST"]
269245
try:
270-
check_webserver_connection(webserver_host, webserver_package, retrying_requests)
246+
check_webserver_connection(webserver_host, retrying_requests)
271247
yield DagsterGraphQLClient(webserver_host, port_number=3000)
272248
finally:
273249
upload_docker_logs_to_buildkite()
@@ -282,7 +258,7 @@ def graphql_client(
282258
user_code_version=release_test_map["user_code"],
283259
):
284260
print("INSIDE DOCKER SERVICE")
285-
check_webserver_connection(webserver_host, webserver_package, retrying_requests)
261+
check_webserver_connection(webserver_host, retrying_requests)
286262
yield DagsterGraphQLClient(webserver_host, port_number=3000)
287263

288264

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)