You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: CHANGELOG.md
+6-14Lines changed: 6 additions & 14 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -4,14 +4,6 @@ All notable changes to this project will be documented in this file. The format
4
4
5
5
## [Unreleased]
6
6
7
-
### Added
8
-
9
-
-`dbt-dag-opt replay` subcommand: reconstructs the observed schedule from `run_results.json`'s `thread_id` + per-phase `timing` data, joined against `manifest.json`'s `parent_map`. Reports per-thread utilization, observed critical path (walked backwards from the last-completing node), and top idle gaps with parent-node attribution.
10
-
- Output formats for `replay`: `text` (rich terminal summary, default) and `json` (full replay report, including raw events).
11
-
- Integration fixture at `tests/fixtures/dbt_dugout/` — a real Snowflake dbt run (57 nodes, 4 threads) used to smoke-test `replay` end-to-end.
12
-
-`analyze --show-path`: render the full chain of node ids for each longest path in the table output.
13
-
-`analyze` table now includes a **Bottleneck** column naming the slowest model on each path. A bottleneck that appears across multiple rows is a shared-node optimization target.
14
-
15
7
## [0.1.0] - 2026-04-24
16
8
17
9
Initial PyPI release. Complete rewrite of the pre-release prototype.
@@ -21,10 +13,14 @@ Initial PyPI release. Complete rewrite of the pre-release prototype.
21
13
-`dbt-dag-opt analyze` CLI (Typer) with two input modes:
22
14
- File mode: `--manifest` and `--run-results` point at local dbt artifacts.
23
15
- Cloud mode: `--account-id`, `--job-id`, optional `--run-id`, and `DBT_CLOUD_TOKEN` env var (or `--token`) pull artifacts from the dbt Cloud Admin API.
-`--top N` to limit results; `--output` to write to a file.
16
+
-`analyze --show-path` to render the full chain of node ids for each longest path in the table output.
17
+
-`analyze` table includes a **Bottleneck** column naming the slowest model on each path. A bottleneck that appears across multiple rows is a shared-node optimization target.
18
+
-`dbt-dag-opt replay` subcommand: reconstructs the observed schedule from `run_results.json`'s `thread_id` + per-phase `timing` data, joined against `manifest.json`'s `parent_map`. Reports per-thread utilization, observed critical path (walked backwards from the last-completing node), and top idle gaps with parent-node attribution.
- Integration fixture at `tests/fixtures/dbt_dugout/` — a real Snowflake dbt run (57 nodes, 4 threads) used to smoke-test `replay` end-to-end.
28
24
- CI matrix across Python 3.10 / 3.11 / 3.12.
29
25
- PyPI publishing via Trusted Publishers (OIDC) on tag push.
30
26
@@ -34,7 +30,3 @@ Initial PyPI release. Complete rewrite of the pre-release prototype.
34
30
- Node weights are now attached to the *target* node of each path hop (fixes a bug where parent weights were assigned to outgoing edges).
35
31
- Adjacency list replaces full-edge-list rescan on every DFS step.
36
32
- Output is valid JSON by default (prototype's `longest_paths.json` was a stream of comma-separated fragments opened in append mode — not parseable).
37
-
38
-
### Notes for PyPI Trusted Publishing
39
-
40
-
Before the first `v*` tag is pushed, configure PyPI: Project settings → Publishing → Add GitHub publisher with `trouze/dbt-dag-opt` / workflow `publish.yml` / environment `pypi`.
0 commit comments