Skip to content

diag: use structpath for diagnostic paths - #6980

Draft
denik wants to merge 12 commits into
mainfrom
denik/diag-paths-structpath
Draft

denik wants to merge 12 commits into
mainfrom
denik/diag-paths-structpath

Conversation

@denik

@denik denik commented Oct 7, 2026

Copy link
Copy Markdown
Contributor

Changes

diag.Diagnostic.Paths is []*structpath.PathNode instead of []dyn.Path. Producers convert existing dyn paths with dyn.ToStructPaths or build paths from keys with structpath.NewStringKeys/NewStringKeysSlice/MustParsePaths. structpath.PureReferenceToPath moves to dynvar.PureReferenceToStructPath so structpath does not import dyn.

User-visible: diagnostic paths quote map keys that are not identifiers, e.g. resources.jobs['${var.env}_job'] instead of resources.jobs.${var.env}_job (one golden).

Why

First step of removing libs/dyn from bundle configuration: #6974 moves Location to libs/diag on top of this (it needs diag to no longer import dyn), then #6954.

This pull request and its description were written by Isaac.

@github-actions github-actions Bot added DABs DABs related issues PyDABs labels Oct 7, 2026
denik added a commit that referenced this pull request Oct 7, 2026
Co-authored-by: Isaac <no-reply@databricks.com>
@eng-dev-ecosystem-bot

eng-dev-ecosystem-bot commented Oct 7, 2026 •

Copy link
Copy Markdown
Collaborator

Integration test report

Commit: 6890bb2

Run: 37810058747

Env ✅​pass 🙈​skip Time
✅​ aws linux-2core-8gb 276 17 5:36
✅​ aws-windows-latest-4core-16gb 278 15 3:57
✅​ azure linux-2core-8gb 275 17 6:12
✅​ azure-windows-latest-4core-16gb 277 15 3:58
✅​ gcp linux-2core-8gb 276 17 5:45
✅​ gcp-windows-latest-4core-16gb 278 15 4:12
Top 6 slowest tests (at least 2 minutes):
duration env testname
4:10 gcp-windows-latest-4core-16gb TestAccept
3:58 azure linux-2core-8gb TestAccept
3:55 aws-windows-latest-4core-16gb TestAccept
3:54 aws linux-2core-8gb TestAccept
3:51 gcp linux-2core-8gb TestAccept
3:47 azure-windows-latest-4core-16gb TestAccept

denik added a commit that referenced this pull request Oct 8, 2026
Co-authored-by: Isaac <no-reply@databricks.com>
@denik
denik force-pushed the denik/diag-paths-structpath branch from 57f292f to 5f3edeb Compare October 8, 2026 11:11
denik and others added 12 commits October 8, 2026 18:33
Diagnostic.Paths is []*structpath.PathNode; producers convert dyn paths with
dyn.ToStructPath(s) or use structpath.MustParsePaths. Map keys that are not
identifiers are now quoted in rendered paths.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
…import regrouping

Co-authored-by: Isaac <no-reply@databricks.com>
Replace NewStringKeys/NewStringKeysSlice and nested NewIndex/NewStringKey
chains: NewPath(prev, parts...) takes string keys and int indices.

Co-authored-by: Isaac <no-reply@databricks.com>
ToStructPaths copies the walked path, so it no longer needs cloning.

Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
Co-authored-by: Isaac <no-reply@databricks.com>
@denik
denik force-pushed the denik/diag-paths-structpath branch from 42ccbe5 to 6890bb2 Compare October 8, 2026 16:35

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DABs DABs related issues PyDABs

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants