Skip to content

Add bump-serverless-env-version skill - #6419

Merged
rugpanov merged 10 commits into
mainfrom
bump-serverless-env-skill
Sep 11, 2026
Merged

rugpanov merged 10 commits into
mainfrom
bump-serverless-env-skill

Conversation

@rugpanov

@rugpanov rugpanov commented Aug 28, 2026

Copy link
Copy Markdown
Contributor

Changes

Add the bump-serverless-env-version skill for upgrading the default serverless environment version shipped by bundle templates.

The skill covers coupled Python and DB Connect compatibility, macro and hardcoded version sources, the separate defaultServerlessVersion fallback, acceptance regeneration, and prior-bump cross-checks. It also updates the shared template-version policy to require more than six months of remaining DBR support when selecting the conservative DB Connect floor.

Why

The version 5 bump in #6378 was performed manually. This makes future bumps repeatable and prevents newly generated projects from starting too close to a DBR end-of-support date.

Tests

  • Parsed both Markdown frontmatter blocks and ran git diff --check.
  • Forward-tested a hypothetical version 6 bump with fresh agents; the skill stopped when version 6 was not published instead of guessing compatibility data.
  • Independently reviewed routing, scope, authorization boundaries, repository paths, commands, and policy consistency.
  • ./task checks could not run because Go 1.26.8 was not installed and the environment could not reach the Go toolchain download.

This PR was written with Claude Code and Codex.

@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Aug 28, 2026

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 5e633fd

Run: 34604741887

Env 💚​RECOVERED ✅​pass 🙈​skip Time
💚​ aws linux 1 275 15 6:17
💚​ aws windows 1 277 13 5:21
💚​ azure linux 1 274 15 6:08
💚​ azure windows 1 276 13 4:49
💚​ gcp linux 1 275 15 7:50
💚​ gcp windows 1 277 13 4:47
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
💚​ TestAccept 💚​R 💚​R 💚​R 💚​R 💚​R 💚​R
Top 3 slowest tests (at least 2 minutes):
duration env testname
5:18 aws windows TestAccept
3:30 azure windows TestAccept
3:26 gcp windows TestAccept

@rugpanov
rugpanov marked this pull request as ready for review August 28, 2026 09:34
@rugpanov
rugpanov force-pushed the serverless-upgrade-guidance branch 4 times, most recently from 9374164 to 56ed261 Compare September 2, 2026 12:38
Base automatically changed from serverless-upgrade-guidance to main September 8, 2026 09:17
rugpanov and others added 8 commits September 8, 2026 11:52
Automates the serverless environment version bump across bundle templates:
the serverless_environment_version macro plus the hardcoded literals in
default-scala and lakeflow-integrations, the coupled Python / DB Connect
pins in default/, golden regeneration across both template trees, and the
mandatory verify pass. Delegates policy to .agents/rules/template-versions.md.

Follow-up to #6378.

Co-authored-by: Isaac <no-reply@databricks.com>
- Scope: defaultServerlessVersion (libs/localenv/envkey.go) is a separate
  "latest LTS" Go pin, not the SSH test fixture; tell the bumper to check and
  bump it in sync rather than "leave it alone".
- Step 2: make the grep the source of truth; the file list is orientation only.

Co-authored-by: Isaac <no-reply@databricks.com>
- Remove GOTOOLCHAIN=local from the golden commands: env-specific, diverges
  from bump-sdk/bump-tf, and can break contributors on older local Go.
- Step 6: defer PR body to pr-checklist + the PR template (Changes/Why/Tests
  in order + authorship disclosure) instead of a competing template that
  dropped ## Why; broaden pre-PR checks to fmt/checks/lint/test.
- Step 2: only version-bearing grep hits get edited (macro names / template
  references carry no literal).
- Step 5: spell out the release-notes URL slug convention (five/six).

Co-authored-by: Isaac <no-reply@databricks.com>
- Scope: when bumping defaultServerlessVersion, also refresh the version shown
  in its help/example/error strings (cmd/environments/sync.go,
  libs/localenv/constraints.go), not just regenerate tests.
- Step 5: don't extrapolate the changelog line from v5 — adapt the benefit to
  the target version's actual release notes and link its real URL.

Co-authored-by: Isaac <no-reply@databricks.com>
The "-update lets both EnvMatrix variants overwrite each other's output"
explanation is stale: -update now auto-enables -subset (acceptance_test.go),
regenerating each output file from one covering variant. Correct the rationale
(the non-update pass matters because it runs *every* variant against the
goldens) and stop framing a load-induced timeout as an automatic flake.

Co-authored-by: Isaac <no-reply@databricks.com>
- Intro: only the golden output under acceptance/ is regenerated (acceptance/
  also holds hand-maintained inputs), not "everything under acceptance/".
- Step 3: use the full path libs/template/templates/default/library/versions.tmpl.

Co-authored-by: Isaac <no-reply@databricks.com>
Only the conservative_db_connect_version_spec and python_version_spec blocks
carry version-specific reasoning; name them instead of implying every macro does.

Co-authored-by: Isaac <no-reply@databricks.com>
Narrow the trigger, target golden regeneration, separate the localenv fallback, and cross-check prior template bumps while keeping the workflow concise.

Co-authored-by: Codex <noreply@openai.com>
@rugpanov
rugpanov force-pushed the bump-serverless-env-skill branch from d6add1c to 4bc5e84 Compare September 8, 2026 09:52
Comment thread .agents/skills/bump-serverless-env-version/SKILL.md Outdated
Comment thread .agents/skills/bump-serverless-env-version/SKILL.md Outdated
Comment thread .agents/skills/bump-serverless-env-version/SKILL.md Outdated
Comment thread .agents/skills/bump-serverless-env-version/SKILL.md

@lennartkats-db lennartkats-db left a comment

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.

Four suggested minor improvements, otherwise LGTM. Thanks!

rugpanov and others added 2 commits September 11, 2026 15:08
Add compatibility and support-buffer rules, include Python pins in discovery, and identify the suggested reviewer.

Co-authored-by: Codex <noreply@openai.com>
@rugpanov
rugpanov enabled auto-merge September 11, 2026 13:29
@rugpanov
rugpanov added this pull request to the merge queue Sep 11, 2026
Merged via the queue into main with commit 2c890bf Sep 11, 2026
32 checks passed
@rugpanov
rugpanov deleted the bump-serverless-env-skill branch September 11, 2026 14:10
@eng-dev-ecosystem-bot

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 2c890bf

Run: 34608588215

Env ❌​FAIL 🟨​KNOWN 🤯​MISS 🔄​flaky 🙈​SKIP ✅​pass 🙈​skip Time
❌​ aws linux 6 6 46 1 1542 1039 355:53
❌​ aws windows 11 2 83 1 1410 1062 347:24
🟨​ azure linux 3 9 3 1399 1088 277:19
🟨​ azure windows 3 3 1314 1111 290:13
🟨​ gcp linux 3 6 3 1388 1092 327:26
🟨​ gcp windows 3 2 3 1298 1115 328:30
152 interesting tests: 110 MISS, 17 flaky, 17 FAIL, 7 KNOWN, 1 SKIP
Test Name aws linux aws windows azure linux azure windows gcp linux gcp windows
🟨​ TestAccept 🤯​M 🤯​M 🟨​K 🟨​K 🟨​K 🟨​K
🔄​ TestAccept/bundle/config-remote-sync/resolve_variables ✅​p 🙈​s 🔄​f 🙈​s ✅​p 🙈​s
🔄​ TestAccept/bundle/config-remote-sync/resolve_variables/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🔄​f ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/dms/successful-recreate ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/dms/successful-recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/invariant/destroy_idempotent/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=app.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=catalog.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_policy.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=dashboard.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=experiment.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=genie_space.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=instance_pool.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_for_each_task.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_job_cluster.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_apply_policy_default_values_task_cluster.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_cross_resource_ref.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_escaped_refs.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_permission_ref.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_pydabs_1000_tasks.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN= 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=job_pydabs_10_tasks.yml.tmpl/READPLAN=1 🤯​M ✅​p ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/apps/lifecycle-started ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
🔄​ TestAccept/bundle/resources/dashboards/change-serialized-dashboard ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/dashboards/change-serialized-dashboard/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true/READPLAN=1 ✅​p ✅​p ✅​p ✅​p ✅​p 🔄​f
🔄​ TestAccept/bundle/resources/grants/schemas/remove_all ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🔄​ TestAccept/bundle/resources/grants/schemas/remove_all/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p ✅​p ✅​p ✅​p 🔄​f ✅​p
🟨​ TestAccept/bundle/resources/model_services/lifecycle 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K
🟨​ TestAccept/bundle/resources/model_services/lifecycle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K 🟨​K
❌​ TestAccept/bundle/resources/permissions/jobs/delete_one ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/permissions/jobs/delete_one/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ❌​F ✅​p ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/postgres_roles/recreate ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_roles/recreate-postgres-role ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_roles/recreate-postgres-role/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/recreate-postgres-role/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/recreate/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/replace_existing ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_roles/replace_existing/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/replace_existing/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/update ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_roles/update/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/update/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_roles/update/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M
🟨​ TestAccept/bundle/resources/postgres_snapshot_schedules/basic 🟨​K 🤯​M 🙈​S 🙈​S 🙈​S 🙈​S
🤯​ TestAccept/bundle/resources/postgres_snapshot_schedules/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🟨​ TestAccept/bundle/resources/postgres_snapshot_schedules/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true 🟨​K 🤯​M
🟨​ TestAccept/bundle/resources/postgres_snapshot_schedules/out-of-band 🟨​K 🤯​M 🙈​S 🙈​S 🙈​S 🙈​S
🤯​ TestAccept/bundle/resources/postgres_snapshot_schedules/out-of-band/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🟨​ TestAccept/bundle/resources/postgres_snapshot_schedules/out-of-band/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true 🟨​K 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/basic ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_synced_tables/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/basic/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/recreate ✅​p 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestAccept/bundle/resources/postgres_synced_tables/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/postgres_synced_tables/recreate/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M
🤯​ TestAccept/bundle/resources/quality_monitors/change_assets_dir ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_assets_dir/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_assets_dir/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_assets_dir/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_output_schema_name ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_output_schema_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_output_schema_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_output_schema_name/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_table_name ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_table_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/quality_monitors/change_table_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/basic ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/basic/DATABRICKS_BUNDLE_ENGINE=terraform/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/comment_cleared ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/comment_cleared/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/registered_models/comment_cleared/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/schemas/comment_out_of_band ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/schemas/comment_out_of_band/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/secrets/basic ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/secrets/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/secrets/remove-expire-time ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
❌​ TestAccept/bundle/resources/secrets/remove-expire-time/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p ❌​F ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_endpoints/drift/recreated_same_name/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/basic ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/basic/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/grants/select ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/grants/select/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/schema_normalization ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/schema_normalization/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/vector_search_indexes/schema_normalization/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_out_of_band ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_out_of_band/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_out_of_band/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_with_rename ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_with_rename/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/comment_with_rename/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/recreate ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS= ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestAccept/bundle/resources/volumes/recreate/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true ✅​p 🤯​M ✅​p ✅​p ✅​p ✅​p
🙈​ TestAccept/ssh/connection 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S 🙈​S
🤯​ TestCIUniqueName 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestDbrAcceptance 🤯​M 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestInprocessMode 🤯​M 🤯​M 🙈​s 🙈​s 🙈​s 🙈​s
🤯​ TestInvariantConfigsCoverage 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetApproximatesPct 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetChangedAlwaysRuns 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetChangedVariantFilter 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetChangedVariantFilterAlternatives 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetDisabled 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetPctBoundaries 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetSeedChangesSelection 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetSeedDeterministic 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🤯​ TestSubsetVariantsIndependent 🤯​M 🤯​M ✅​p ✅​p ✅​p ✅​p
🔄​ TestFsCpFileToFileFileNotOverwritten/dbfs_to_dbfs ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsCpFileToFileFileNotOverwritten/dbfs_to_local ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsCpFileToFileFileNotOverwritten/dbfs_to_uc-volumes ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsCpFileToFileFileNotOverwritten/local_to_dbfs ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsCpFileToFileFileNotOverwritten/uc-volumes_to_dbfs ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsLsOnFile ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
🔄​ TestFsLsOnFile/dbfs ✅​p ✅​p 🔄​f ✅​p ✅​p ✅​p
Top 50 slowest tests (at least 2 minutes):
duration env testname
26:51 aws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
23:40 aws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
23:18 aws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
19:54 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
19:51 aws windows TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
19:08 aws windows TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
17:30 aws linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
16:56 aws linux TestAccept/bundle/resources/clusters/resize-terminated-fallback/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
15:26 aws windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
15:25 gcp windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
14:53 aws linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
14:32 aws linux TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
14:29 gcp linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
13:58 gcp windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
13:27 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
13:24 aws linux TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
13:18 aws windows TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
13:13 aws linux TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
13:09 aws windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
13:05 aws linux TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=
12:49 gcp linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
12:16 aws windows TestAccept/bundle/resources/clusters/lifecycle-started-toggle/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
12:04 aws linux TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
11:33 aws windows TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=1
10:39 aws windows TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=/INPUT_CONFIG=cluster_apply_policy_default_values.yml.tmpl/READPLAN=1
10:23 aws windows TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=terraform/DMS=
10:14 aws linux TestAccept/bundle/resources/clusters/deploy/update-after-create/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
10:13 aws linux TestAccept/bundle/deploy/spark-jar-task/DATABRICKS_BUNDLE_ENGINE=terraform/DMS=
10:04 aws linux TestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
9:53 aws linux TestAccept/bundle/resources/clusters/resize-terminated-fallback/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
9:40 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
9:20 aws linux TestAccept/bundle/resources/clusters/deploy/data_security_mode/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
8:56 aws windows TestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
8:31 azure windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
8:22 aws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
8:18 aws windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
8:13 aws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
8:10 azure windows TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
8:08 gcp windows TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
8:03 aws linux TestAccept/bundle/resources/clusters/deploy/simple/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
7:54 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
7:48 gcp linux TestAccept/bundle/resources/apps/lifecycle-started-omitted/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
7:43 azure linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
7:41 gcp windows TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
7:39 gcp linux TestAccept/bundle/resources/clusters/deploy/local_ssd_count/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
7:38 azure linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
7:34 aws linux TestAccept/bundle/resources/apps/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true
7:31 gcp linux TestAccept/bundle/invariant/no_drift/DATABRICKS_BUNDLE_ENGINE=direct/DMS=true/INPUT_CONFIG=cluster.yml.tmpl/READPLAN=
7:29 gcp linux TestAccept/bundle/resources/clusters/lifecycle-started/DATABRICKS_BUNDLE_ENGINE=direct/DMS=
7:29 azure linux TestAccept/bundle/config-remote-sync/multiple_resources/DATABRICKS_BUNDLE_ENGINE=direct/DMS=

janniklasrose pushed a commit that referenced this pull request Sep 15, 2026
## Changes

Add the `bump-serverless-env-version` skill for upgrading the default
serverless environment version shipped by bundle templates.

The skill covers coupled Python and DB Connect compatibility, macro and
hardcoded version sources, the separate `defaultServerlessVersion`
fallback, acceptance regeneration, and prior-bump cross-checks. It also
updates the shared template-version policy to require more than six
months of remaining DBR support when selecting the conservative DB
Connect floor.

## Why

The version 5 bump in #6378 was performed manually. This makes future
bumps repeatable and prevents newly generated projects from starting too
close to a DBR end-of-support date.

## Tests

- Parsed both Markdown frontmatter blocks and ran `git diff --check`.
- Forward-tested a hypothetical version 6 bump with fresh agents; the
skill stopped when version 6 was not published instead of guessing
compatibility data.
- Independently reviewed routing, scope, authorization boundaries,
repository paths, commands, and policy consistency.
- `./task checks` could not run because Go 1.26.8 was not installed and
the environment could not reach the Go toolchain download.

_This PR was written with Claude Code and Codex._

---------

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Codex <noreply@openai.com>
Sign up for free to 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.

3 participants