Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
117d45e
testmask: read sources from Taskfile.yml
denik Apr 19, 2026
a4ace47
Migrate build/test commands from Makefile to Taskfile
denik Apr 19, 2026
6f27057
ci: invoke task directly instead of make
denik Apr 19, 2026
5dc976e
docs: update AGENTS.md command references for task
denik Apr 19, 2026
8620289
Add golangci-lint configs for tools/ and tf/codegen modules
denik Apr 19, 2026
9f2873a
Add ./task wrapper script
denik Apr 19, 2026
008400a
Use ./task wrapper everywhere
denik Apr 19, 2026
a9b1fba
Fix sources/generates in Taskfile and split fmt per language
denik Apr 19, 2026
a5fb2b2
Document fmt:go module-spanning behavior
denik Apr 19, 2026
4d37268
Rename lint tasks to lint:go:* and add lint:go composite
denik Apr 19, 2026
761a36d
Split fmt:go into incremental (lintdiff) and full variants
denik Apr 19, 2026
ee27be6
Trim build sources and delete orphaned _build-yamlfmt task
denik Apr 19, 2026
23f93a0
Refactor code generation tasks under generate:* namespace
denik Apr 19, 2026
dcc8150
Split generate:refschema from generate:commands; wire generate into d…
denik Apr 19, 2026
8a76d24
Rename fmt/lint: drop :full, add -q suffix for quick variants
denik Apr 20, 2026
654a96d
lintdiff: auto-detect when to filter nested modules
denik Apr 20, 2026
c5097f6
Taskfile: skip generate:commands in `./task all`
denik Apr 20, 2026
23051bc
Taskfile: consistency fixes from review
denik Apr 20, 2026
a3431df
Taskfile: tidy/lint cache precision and multi-module tidy
denik Apr 20, 2026
63c4c0b
Taskfile: remove Slow test variants
denik Apr 20, 2026
2564a7a
Taskfile: run lint:go and tidy in parallel via deps
denik Apr 20, 2026
63b574f
Taskfile: namespace generate:direct subtasks with colon
denik Apr 20, 2026
4358d7a
Taskfile: rename generate:commands to generate:genkit, inline post-ge…
denik Apr 20, 2026
39667a6
Taskfile: rename python:* tasks to pydabs:*
denik Apr 20, 2026
c843230
Taskfile: split test:unit per Go module (root, tools, codegen)
denik Apr 20, 2026
ae1f726
Taskfile: cache test/test:unit merge via sources+generates
denik Apr 20, 2026
3e96e29
Taskfile: rename test:exp-aitools/ssh to test:exp:aitools/ssh
denik Apr 20, 2026
a9d88d2
Taskfile: flatten integration:short, dbr:integration, dbr:test
denik Apr 20, 2026
2642025
Taskfile: drop "(in parallel)" from test task descriptions
denik Apr 20, 2026
564ecda
Taskfile: fix generate:genkit comments — genkit does not bump go.mod
denik Apr 20, 2026
1f935a5
Taskfile: use dash separators for all task names
denik Apr 21, 2026
7e0dc9c
Makefile: use .DEFAULT so the task wrapper actually fires
denik Apr 21, 2026
6f920d8
tools: tidy duplicate require in go.mod
denik Apr 21, 2026
d155086
Taskfile: add `full` task for more complete dev loop
denik Apr 21, 2026
bb5fae3
Taskfile: fail loudly on test-update errors
denik Apr 21, 2026
039a4b8
Taskfile: drop generate-out-test-toml
denik Apr 21, 2026
2010a47
Taskfile: tighten sources for test-acc and test-update*
denik Apr 21, 2026
2134a5a
testmask: diff against empty tree SHA to avoid depending on HEAD~2
denik Apr 21, 2026
4d19c6b
Taskfile: reference ws-fix from generate-genkit
denik Apr 21, 2026
c7cc94c
task wrapper: resolve modfile via script dirname instead of git
denik Apr 21, 2026
9d16402
docs: prefer ./task over bare task in code-fenced examples
denik Apr 21, 2026
ed7da79
lintdiff: hard-code nested module list
denik Apr 21, 2026
2457e0c
Taskfile: drop nested golangci configs, inherit root with gocritic off
denik Apr 21, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
18 changes: 10 additions & 8 deletions .agent/rules/auto-generated-files.md
Original file line number Diff line number Diff line change
Expand Up @@ -63,23 +63,25 @@ If a change is needed in any matched file:

### Core generation commands

- Everything, in one shot:
- `./task generate` — aggregator that runs all generators below
- OpenAPI SDK/CLI command stubs and related generated artifacts:
- `make generate`
- Includes generated `cmd/account/**`, `cmd/workspace/**`, `.gitattributes`, `internal/genkit/tagging.py`, and direct engine refresh.
- `./task generate-genkit`
- Includes generated `cmd/account/**`, `cmd/workspace/**`, `.gitattributes`, `internal/genkit/tagging.py`.
- Direct engine generated YAML:
- `make generate-direct` (or `make generate-direct-apitypes`, `make generate-direct-resources`)
- `./task generate-direct` (or `./task generate-direct-apitypes`, `./task generate-direct-resources`)
- Bundle schemas:
- `make schema`
- `make schema-for-docs`
- `./task generate-schema`
- `./task generate-schema-docs`
- This can also refresh `bundle/internal/schema/annotations_openapi.yml` when OpenAPI annotation extraction is enabled.
- Bundle docs:
- `make docs`
- `./task generate-docs`
- Validation generated code:
- `make generate-validation`
- `./task generate-validation`
- Mock files:
- `go run github.com/vektra/mockery/v2@b9df18e0f7b94f0bc11af3f379c8a9aea1e1e8da`
- Python bundle codegen:
- `make -C python codegen`
- `./task pydabs-codegen`

### Acceptance and test generated outputs

Expand Down
22 changes: 11 additions & 11 deletions .agent/skills/pr-checklist/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,26 +3,26 @@ name: pr-checklist
description: Checklist to run before submitting a PR
---

Before submitting a PR, run these commands to match what CI checks. CI uses the **full** variants (not the diff-only wrappers), so `make lint` alone is insufficient.
Before submitting a PR, run these commands to match what CI checks. CI uses the full variants (not the `-q` diff-only wrappers), so `./task lint-q` alone is insufficient.

```bash
# 1. Formatting and checks (CI runs fmtfull, not fmt)
make fmtfull
make checks
# 1. Formatting and checks (CI runs fmt, not fmt-q)
./task fmt
./task checks

# 2. Linting (CI runs full golangci-lint, not the diff-only wrapper)
make lintfull
# 2. Linting (CI runs full golangci-lint across all modules, not the diff-only wrapper)
./task lint

# 3. Tests (CI runs with both deployment engines)
make test
./task test

# 4. If you changed bundle config structs or schema-related code:
make schema
./task generate-schema

# 5. If you changed files in python/:
cd python && make codegen && make test && make lint && make docs
./task pydabs-codegen pydabs-test pydabs-lint pydabs-docs

# 6. If you changed experimental/aitools or experimental/ssh:
make test-exp-aitools # only if aitools code changed
make test-exp-ssh # only if ssh code changed
./task test-exp-aitools # only if aitools code changed
./task test-exp-ssh # only if ssh code changed
```
3 changes: 0 additions & 3 deletions .codegen.json
Original file line number Diff line number Diff line change
Expand Up @@ -12,9 +12,6 @@
"toolchain": {
"required": [
"go"
],
"post_generate": [
"./tools/post-generate.sh"
]
}
}
2 changes: 1 addition & 1 deletion .github/actions/setup-build-environment/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@ runs:
version: "0.8.9"

- name: Install Python versions for tests
run: make install-pythons
run: ./task install-pythons
shell: bash

- name: Install ruff (Python linter and formatter)
Expand Down
11 changes: 5 additions & 6 deletions .github/workflows/check.yml
Original file line number Diff line number Diff line change
Expand Up @@ -36,22 +36,21 @@ jobs:
run: git diff --exit-code

- name: Run Go lint checks (does not include formatting checks)
run: go tool -modfile=tools/go.mod golangci-lint run --timeout=15m
run: ./task lint

- name: Run ruff (Python linter and formatter)
uses: astral-sh/ruff-action@0ce1b0bf8b818ef400413f810f8a11cdbda0034b # v4.0.0
with:
version: "0.9.1"
args: "format --check"

- name: "make fmtfull: Python and Go formatting"
- name: "task fmt: Python and Go formatting"
# Python formatting is already checked above, but this also checks Go and YAML formatting
# and verifies that the make command works correctly
run: |
make fmtfull
./task fmt
git diff --exit-code

- name: "make checks: custom checks outside of fmt and lint"
- name: "task checks: custom checks outside of fmt and lint"
run: |-
make checks
./task checks
git diff --exit-code
42 changes: 23 additions & 19 deletions .github/workflows/push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -77,7 +77,7 @@ jobs:

# Only run if the target is in the list of targets from testmask
if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test') }}
name: "make test (${{matrix.os.name}}, ${{matrix.deployment}})"
name: "task test (${{matrix.os.name}}, ${{matrix.deployment}})"
runs-on: ${{ matrix.os.runner }}

permissions:
Expand Down Expand Up @@ -137,23 +137,23 @@ jobs:
if: ${{ github.event_name == 'pull_request' || github.event_name == 'merge_group' || github.event_name == 'schedule' }}
env:
ENVFILTER: DATABRICKS_BUNDLE_ENGINE=${{ matrix.deployment }}
run: make test
run: ./task test

- name: Run tests with coverage
# Only run 'make cover' on push to main to make sure it does not get broken.
# Only run 'task cover' on push to main to make sure it does not get broken.
if: ${{ github.event_name == 'push' }}
env:
ENVFILTER: DATABRICKS_BUNDLE_ENGINE=${{ matrix.deployment }}
run: make cover
run: ./task cover

- name: Analyze slow tests
run: make slowest
run: ./task slowest

- name: Check out.test.toml files are up to date
shell: bash
run: |
if ! git diff --exit-code; then
echo "ERROR: detected changed files in the repository; Most likely you have out.test.toml files that are out of date. Run 'make generate-out-test-toml' to update."
echo "ERROR: detected changed files in the repository; Most likely you have out.test.toml files that are out of date. Run './task generate-out-test-toml' to update."
exit 1
fi

Expand All @@ -164,7 +164,7 @@ jobs:

# Only run if the target is in the list of targets from testmask
if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test-exp-aitools') }}
name: "make test-exp-aitools (${{matrix.os.name}})"
name: "task test-exp-aitools (${{matrix.os.name}})"
runs-on: ${{ matrix.os.runner }}

permissions:
Expand Down Expand Up @@ -201,7 +201,7 @@ jobs:

- name: Run tests
run: |
make test-exp-aitools
./task test-exp-aitools

test-exp-ssh:
needs:
Expand All @@ -210,7 +210,7 @@ jobs:

# Only run if the target is in the list of targets from testmask
if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test-exp-ssh') }}
name: "make test-exp-ssh (${{matrix.os.name}})"
name: "task test-exp-ssh (${{matrix.os.name}})"
runs-on: ${{ matrix.os.runner }}

permissions:
Expand Down Expand Up @@ -246,7 +246,7 @@ jobs:

- name: Run tests
run: |
make test-exp-ssh
./task test-exp-ssh

test-pipelines:
needs:
Expand All @@ -255,7 +255,7 @@ jobs:

# Only run if the target is in the list of targets from testmask
if: ${{ contains(fromJSON(needs.testmask.outputs.targets), 'test-pipelines') }}
name: "make test-pipelines (${{matrix.os.name}})"
name: "task test-pipelines (${{matrix.os.name}})"
runs-on: ${{ matrix.os.runner }}

permissions:
Expand Down Expand Up @@ -291,7 +291,7 @@ jobs:

- name: Run tests
run: |
make test-pipelines
./task test-pipelines

# This job groups the result of all the above test jobs.
# It is a required check, so it blocks auto-merge and the merge queue.
Expand Down Expand Up @@ -340,15 +340,15 @@ jobs:

- name: Verify that the schema is up to date
run: |
if ! ( make schema && git diff --exit-code ); then
echo "The schema is not up to date. Please run 'make schema' and commit the changes."
if ! ( ./task --force generate-schema && git diff --exit-code ); then
echo "The schema is not up to date. Please run 'task generate-schema' and commit the changes."
exit 1
fi

- name: Verify that the generated enum and required fields are up to date
run: |
if ! ( make generate-validation && git diff --exit-code ); then
echo "The generated enum and required fields are not up to date. Please run 'make generate-validation' and commit the changes."
if ! ( ./task --force generate-validation && git diff --exit-code ); then
echo "The generated enum and required fields are not up to date. Please run 'task generate-validation' and commit the changes."
exit 1
fi

Expand All @@ -360,18 +360,22 @@ jobs:
- name: Checkout
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod

- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version: "0.6.5"

- name: Verify that python/codegen is up to date
working-directory: python
run: |-
make codegen
./task pydabs-codegen

if ! ( git diff --exit-code ); then
echo "Generated Python code is not up-to-date. Please run 'pushd python && make codegen' and commit the changes."
echo "Generated Python code is not up-to-date. Please run 'task pydabs-codegen' and commit the changes."

exit 1
fi
Expand Down
24 changes: 18 additions & 6 deletions .github/workflows/python_push.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,15 +32,19 @@ jobs:
- name: Checkout repository and submodules
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod

- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
python-version: ${{ matrix.pyVersion }}
version: "0.6.5"

- name: Run tests
working-directory: python
run: make test
run: ./task pydabs-test

python_linters:
name: lint
Expand All @@ -50,14 +54,18 @@ jobs:
- name: Checkout repository and submodules
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod

- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version: "0.6.5"

- name: Run lint
working-directory: python
run: make lint
run: ./task pydabs-lint

python_docs:
name: docs
Expand All @@ -67,11 +75,15 @@ jobs:
- name: Checkout repository and submodules
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: Setup Go
uses: actions/setup-go@4a3601121dd01d1626a1e23e37211e3254c1c06c # v6.4.0
with:
go-version-file: go.mod

- name: Install uv
uses: astral-sh/setup-uv@cec208311dfd045dd5311c1add060b2062131d57 # v8.0.0
with:
version: "0.6.5"

- name: Run docs
working-directory: python
run: make docs
run: ./task pydabs-docs
4 changes: 3 additions & 1 deletion .github/workflows/release-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -172,7 +172,9 @@ jobs:

- name: Build wheel
working-directory: python
run: make build
run: |
rm -rf build dist
uv build .
- name: Upload Python wheel
uses: actions/upload-artifact@bbbca2ddaa5d8feaa63e36b76fdaad77386f024f # v7.0.0
Expand Down
20 changes: 16 additions & 4 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -28,17 +28,28 @@ __pycache__

.ruff_cache

# Test results from 'make test'
# Test results from 'task test'
test-output.json
test-output-unit.json
test-output-unit-root.json
test-output-unit-tools.json
test-output-unit-codegen.json
test-output-acc.json

# Built by make for 'make fmt' and yamlcheck.py in acceptance tests
# Taskfile cache
.task/

# Snapshot binary from 'task snapshot'
.databricks/

# Built for 'task fmt' and yamlcheck.py in acceptance tests
tools/yamlfmt
tools/yamlfmt.exe

# Built by make for 'make lint'
# Built for 'task lint'
tools/golangci-lint

# Built by make for test filtering
# Built for test filtering
tools/testmask/testmask

# Cache for tools/gh_report.py
Expand All @@ -50,6 +61,7 @@ dist/
# Local development notes, tmp
/pr-*
/tmp/
/.tmp/

# Go workspace file
go.work
Expand Down
Loading
Loading