Skip to content

Add "stale wheel" acc/integration test for serverless - #2519

Merged
denik merged 6 commits into
mainfrom
denik/acc-whl-serverless
Mar 20, 2025
Merged

Add "stale wheel" acc/integration test for serverless#2519
denik merged 6 commits into
mainfrom
denik/acc-whl-serverless

Conversation

@denik

@denikdenik commented Mar 19, 2025

Copy link
Copy Markdown
Contributor

Changes

Expand integration_whl tests with serverless configuration

Why

Record "stale wheel" situation. Going to use this test for patched wheel functionality.

Tests

Enabling this test on PR by temp setting CLOUD_SLOW = false (http://go/deco/tests/13948235349/job/39040568795)

@@ -0,0 +1,87 @@

>>> cp -r [TESTROOT]/bundle/integration_whl/serverless/../base/setup.py [TESTROOT]/bundle/integration_whl/serverless/../base/my_test_code .

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I guess we need to add a repl for Window forward slashes in path?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

added

@@ -0,0 +1,12 @@
envsubst < databricks.yml.tmpl > databricks.yml
trace cp -r $TESTDIR/../base/{setup.py,my_test_code} .

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Does the path work on Windows?

Copy link
Copy Markdown
ContributorAuthor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

this passed the test

@denik
denikforce-pushed the denik/acc-whl-serverless branch from 8faa723 to a9b1826CompareMarch 19, 2025 11:31
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 11:31 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 11:32 — with GitHub Actions Inactive
@denik
denikforce-pushed the denik/acc-whl-serverless branch from 4423c40 to 068d3ccCompareMarch 19, 2025 11:38
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 11:38 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 11:39 — with GitHub Actions Inactive
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 13:51 — with GitHub Actions Inactive
@denik
denik requested a review from andrewnesterMarch 19, 2025 15:52
@denik
denikforce-pushed the denik/acc-whl-serverless branch from 7932ac4 to 055fe37CompareMarch 19, 2025 15:54
@denik
deniktemporarily deployed to test-trigger-is March 19, 2025 15:54 — with GitHub Actions Inactive
@denik
denik enabled auto-merge March 19, 2025 15:56
@denik
denik requested a review from anton-107 as a code ownerMarch 20, 2025 12:39
@denik
deniktemporarily deployed to test-trigger-is March 20, 2025 12:39 — with GitHub Actions Inactive
@denik

Copy link
Copy Markdown
ContributorAuthor

Integration test failure seems unrelated (TestSyncNestedFolderSync)

@denik
deniktemporarily deployed to test-trigger-is March 20, 2025 15:46 — with GitHub Actions Inactive
@denik
denik added this pull request to the merge queueMar 20, 2025
Merged via the queue into main with commit 3de11f2Mar 20, 2025
@denik
denik deleted the denik/acc-whl-serverless branch March 20, 2025 16:21
github-merge-queueBot pushed a commit that referenced this pull request Mar 26, 2025
## Changes
Add opt-in field `artifacts.*.dynamic_version` (bool). If set to true,
then wheels produced or referenced by this artifact will be "patched" to
break dependency caching. The patching involves modifying the version to
append current timestamp after `+` sign and rewriting internals of
wheel, such as METADATA and RECORD. Details of patching:
#2427
The patching involves two phases:
1. During build phase we check what wheels where produced (or references
via files.source field) and apply PatchWheel on those.
2. During deploy phase we go through places where wheels are referenced
and update unpatched files to patched. The places are
jobs/task/libraries, jobs/task/for_each_task/libraries,
jobs/environments/spec/dependencies.
## Why
We would like to switch default template to pyproject.toml without
having to carry on setuptools dependency. Currently we're relying on
setuptools to patch the version at build time:
#1034
Previously I added integration tests showing this problem: #2477#2519 Those tests showed that the problem exists only for interactive clusters
and only when DATA_SECURITY_MODE=USER_ISOLATION. However, this PR
enables patching everywhere, since we don't have any guarantees about
this behaviour.
## Tests
New local acceptance test whl_dynamic to check that patching works
across all 3 places.
New integration tests to check that patched wheels can be run properly
in classic and serverless environments:
interactive_cluster_dynamic_version, serverless_dynamic_version.
github-merge-queueBot pushed a commit that referenced this pull request Mar 26, 2025
It was passing for the whole week since it was added in
#2519 but started failing on the
recent commits, so it does not exhibit consistent behaviour without
wheel patching.
Note, that we do have integration_whl/serverless_dynamic_version which
tests the same but with wheel patching #2520
denik added a commit that referenced this pull request May 20, 2026
## Changes
Expand integration_whl tests with serverless configuration
## Why
Record "stale wheel" situation. Going to use this test for patched wheel
functionality.
## Tests
Enabling this test on PR by temp setting CLOUD_SLOW = false
(http://go/deco/tests/13948235349/job/39040568795)
denik added a commit that referenced this pull request May 20, 2026
## Changes
Add opt-in field `artifacts.*.dynamic_version` (bool). If set to true,
then wheels produced or referenced by this artifact will be "patched" to
break dependency caching. The patching involves modifying the version to
append current timestamp after `+` sign and rewriting internals of
wheel, such as METADATA and RECORD. Details of patching:
#2427
The patching involves two phases:
1. During build phase we check what wheels where produced (or references
via files.source field) and apply PatchWheel on those.
2. During deploy phase we go through places where wheels are referenced
and update unpatched files to patched. The places are
jobs/task/libraries, jobs/task/for_each_task/libraries,
jobs/environments/spec/dependencies.
## Why
We would like to switch default template to pyproject.toml without
having to carry on setuptools dependency. Currently we're relying on
setuptools to patch the version at build time:
#1034
Previously I added integration tests showing this problem: #2477#2519 Those tests showed that the problem exists only for interactive clusters
and only when DATA_SECURITY_MODE=USER_ISOLATION. However, this PR
enables patching everywhere, since we don't have any guarantees about
this behaviour.
## Tests
New local acceptance test whl_dynamic to check that patching works
across all 3 places.
New integration tests to check that patched wheels can be run properly
in classic and serverless environments:
interactive_cluster_dynamic_version, serverless_dynamic_version.
denik added a commit that referenced this pull request May 20, 2026
It was passing for the whole week since it was added in
#2519 but started failing on the
recent commits, so it does not exhibit consistent behaviour without
wheel patching.
Note, that we do have integration_whl/serverless_dynamic_version which
tests the same but with wheel patching #2520
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants

@denik@andrewnester