dlthub-start 0.1.0__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- dlthub_start-0.1.0/.github/workflows/ci.yml +104 -0
- dlthub_start-0.1.0/.gitignore +16 -0
- dlthub_start-0.1.0/CONTRIBUTING.md +162 -0
- dlthub_start-0.1.0/LICENSE +92 -0
- dlthub_start-0.1.0/Makefile +78 -0
- dlthub_start-0.1.0/PKG-INFO +261 -0
- dlthub_start-0.1.0/README.md +153 -0
- dlthub_start-0.1.0/pyproject.toml +76 -0
- dlthub_start-0.1.0/scripts/generate_ai.py +185 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/__init__.py +5 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/__main__.py +7 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/cli.py +136 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/config.py +58 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/display.py +311 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/errors.py +17 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/plan.py +92 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/project_metadata.py +67 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/prompts.py +97 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffold.py +104 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/adjust-endpoint/SKILL.md +27 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/annotate-sources/SKILL.md +288 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/build-notebook/SKILL.md +94 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/build-notebook/references/notebook-patterns.md +110 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-ontology/SKILL.md +159 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-rest-api-pipeline/SKILL.md +156 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-transformation/SKILL.md +303 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/data-exploration-workflow/SKILL.md +54 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/debug-deployment/SKILL.md +92 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/debug-pipeline/SKILL.md +165 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/SKILL.md +113 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/advanced-patterns.md +171 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/scheduling-triggers.md +82 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/dlthub-runtime-profiles/SKILL.md +23 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/dlthub-runtime-workflow/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/SKILL.md +160 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/references/analysis-plan-format.md +59 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/references/dlt-relation-api.md +116 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/find-source/SKILL.md +86 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/generate-cdm/SKILL.md +126 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/init-dlthub-workspace/SKILL.md +42 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/new-endpoint/SKILL.md +127 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/SKILL.md +148 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/check_destination.py +55 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/deployment-module.md +75 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/rest-api-pipeline-workflow/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-runtime/SKILL.md +75 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/transformations-workflow/SKILL.md +30 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/validate-data/SKILL.md +72 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/view-data/SKILL.md +83 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/rules/init-dlthub-workspace.md +38 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claudeignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.codex/config.toml +3 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.codexignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/mcp.json +14 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/rules/init-dlthub-workspace.mdc +42 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursorignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/.toolkits +155 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/.workspace +0 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/config.toml +6 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.gitignore +28 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.mcp.json +14 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/AGENTS.md +13 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/__deployment__.py +5 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/pipeline.py +29 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/pyproject.toml +11 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/adjust-endpoint/SKILL.md +27 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/annotate-sources/SKILL.md +288 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/build-notebook/SKILL.md +94 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/build-notebook/references/notebook-patterns.md +110 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-ontology/SKILL.md +159 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-rest-api-pipeline/SKILL.md +156 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-transformation/SKILL.md +303 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/data-exploration-workflow/SKILL.md +54 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/debug-deployment/SKILL.md +92 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/debug-pipeline/SKILL.md +165 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/SKILL.md +113 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/advanced-patterns.md +171 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/scheduling-triggers.md +82 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/dlthub-runtime-profiles/SKILL.md +23 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/dlthub-runtime-workflow/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/SKILL.md +160 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/references/analysis-plan-format.md +59 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/references/dlt-relation-api.md +116 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/find-source/SKILL.md +86 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/generate-cdm/SKILL.md +126 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/init-dlthub-workspace/SKILL.md +42 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/new-endpoint/SKILL.md +127 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/SKILL.md +148 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/check_destination.py +55 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/deployment-module.md +75 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/rest-api-pipeline-workflow/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-runtime/SKILL.md +75 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/transformations-workflow/SKILL.md +30 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/validate-data/SKILL.md +72 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/view-data/SKILL.md +83 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/rules/init-dlthub-workspace.md +38 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claudeignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.codex/config.toml +3 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.codexignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/mcp.json +14 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/rules/init-dlthub-workspace.mdc +42 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/improve-skills/SKILL.md +87 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/setup-secrets/SKILL.md +120 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/setup-secrets/cli-reference.md +69 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/toolkit-dispatch/SKILL.md +39 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursorignore +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/.toolkits +155 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/.workspace +0 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/access.config.toml +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/config.toml +6 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/dev.config.toml +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/prod.config copy.toml +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/prod.config.toml +2 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.gitignore +32 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.mcp.json +14 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/AGENTS.md +13 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/__deployment__.py +20 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/__init__.py +0 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_data_quality_notebook.py +78 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_runs_notebook.py +81 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_transformations_notebook.py +82 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/pyproject.toml +17 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_data_quality.py +71 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_pipeline.py +75 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_transformations.py +70 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/uv.lock +1762 -0
- dlthub_start-0.1.0/src/create_dlthub_workspace/uv.py +150 -0
- dlthub_start-0.1.0/tests/__init__.py +0 -0
- dlthub_start-0.1.0/tests/test_cli.py +201 -0
- dlthub_start-0.1.0/tests/test_display.py +113 -0
- dlthub_start-0.1.0/tests/test_plan.py +323 -0
- dlthub_start-0.1.0/tests/test_project_metadata.py +52 -0
- dlthub_start-0.1.0/tests/test_prompts.py +112 -0
- dlthub_start-0.1.0/tests/test_scaffold.py +229 -0
- dlthub_start-0.1.0/tests/test_uv.py +122 -0
- dlthub_start-0.1.0/tests_integration/__init__.py +0 -0
- dlthub_start-0.1.0/tests_integration/helpers.py +33 -0
- dlthub_start-0.1.0/tests_integration/test_e2e_workspace.py +153 -0
- dlthub_start-0.1.0/uv.lock +480 -0
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
name: CI
|
|
2
|
+
|
|
3
|
+
on:
|
|
4
|
+
pull_request:
|
|
5
|
+
push:
|
|
6
|
+
branches:
|
|
7
|
+
- main
|
|
8
|
+
|
|
9
|
+
jobs:
|
|
10
|
+
# POSIX runners: Ubuntu + macOS. GNU make is available, so `make ci` runs
|
|
11
|
+
# the full chain (compile, lint, unit tests, e2e, check-ai, build).
|
|
12
|
+
posix:
|
|
13
|
+
name: ${{ matrix.os }}
|
|
14
|
+
runs-on: ${{ matrix.os }}
|
|
15
|
+
strategy:
|
|
16
|
+
fail-fast: false
|
|
17
|
+
matrix:
|
|
18
|
+
os: [ubuntu-latest, macos-latest]
|
|
19
|
+
|
|
20
|
+
steps:
|
|
21
|
+
- name: Checkout
|
|
22
|
+
uses: actions/checkout@v6
|
|
23
|
+
|
|
24
|
+
- name: Install uv
|
|
25
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
26
|
+
with:
|
|
27
|
+
python-version: "3.13"
|
|
28
|
+
enable-cache: true
|
|
29
|
+
|
|
30
|
+
- name: Install dependencies
|
|
31
|
+
run: uv sync --extra dev --frozen
|
|
32
|
+
|
|
33
|
+
- name: Lint + type-check
|
|
34
|
+
run: make lint-ci
|
|
35
|
+
|
|
36
|
+
- name: Compile
|
|
37
|
+
run: make compile
|
|
38
|
+
|
|
39
|
+
- name: Unit tests
|
|
40
|
+
run: make test
|
|
41
|
+
|
|
42
|
+
- name: Integration tests
|
|
43
|
+
run: make test-integration
|
|
44
|
+
|
|
45
|
+
- name: Build wheel
|
|
46
|
+
run: make build
|
|
47
|
+
|
|
48
|
+
# Windows runner: GNU make isn't standard on windows-latest. Invoke each
|
|
49
|
+
# check directly via uv so the workflow stays portable.
|
|
50
|
+
windows:
|
|
51
|
+
name: windows-latest
|
|
52
|
+
runs-on: windows-latest
|
|
53
|
+
|
|
54
|
+
steps:
|
|
55
|
+
- name: Checkout
|
|
56
|
+
uses: actions/checkout@v6
|
|
57
|
+
|
|
58
|
+
- name: Install uv
|
|
59
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
60
|
+
with:
|
|
61
|
+
python-version: "3.13"
|
|
62
|
+
enable-cache: true
|
|
63
|
+
|
|
64
|
+
- name: Install dependencies
|
|
65
|
+
run: uv sync --extra dev --frozen
|
|
66
|
+
|
|
67
|
+
- name: Lint + type-check
|
|
68
|
+
run: |
|
|
69
|
+
uv run ruff format --check src tests tests_integration scripts
|
|
70
|
+
uv run ruff check src tests tests_integration scripts
|
|
71
|
+
uv run mypy src tests tests_integration scripts
|
|
72
|
+
|
|
73
|
+
- name: Unit tests
|
|
74
|
+
run: uv run python -m unittest discover -s tests -t .
|
|
75
|
+
|
|
76
|
+
- name: Integration tests
|
|
77
|
+
run: uv run python -m unittest discover -s tests_integration -t .
|
|
78
|
+
|
|
79
|
+
- name: Build wheel
|
|
80
|
+
run: uv build
|
|
81
|
+
|
|
82
|
+
# Drift guard: regenerates the bundled AI workbench files from the pinned
|
|
83
|
+
# WORKBENCH_REF and fails if the result doesn't match what's committed.
|
|
84
|
+
# Runs on one platform only — the output is platform-independent and we
|
|
85
|
+
# don't need to triple the CI time.
|
|
86
|
+
check-ai:
|
|
87
|
+
name: AI workbench drift
|
|
88
|
+
runs-on: ubuntu-latest
|
|
89
|
+
|
|
90
|
+
steps:
|
|
91
|
+
- name: Checkout
|
|
92
|
+
uses: actions/checkout@v6
|
|
93
|
+
|
|
94
|
+
- name: Install uv
|
|
95
|
+
uses: astral-sh/setup-uv@08807647e7069bb48b6ef5acd8ec9567f424441b # v8.1.0
|
|
96
|
+
with:
|
|
97
|
+
python-version: "3.13"
|
|
98
|
+
enable-cache: true
|
|
99
|
+
|
|
100
|
+
- name: Install dependencies
|
|
101
|
+
run: uv sync --extra dev --frozen
|
|
102
|
+
|
|
103
|
+
- name: Regenerate + diff
|
|
104
|
+
run: make check-ai
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
# Contributing
|
|
2
|
+
|
|
3
|
+
Thanks for helping improve `dlthub-start`. This project uses a
|
|
4
|
+
standard Python `src/` layout, `uv` for environment management, `ruff` for
|
|
5
|
+
formatting/linting, and `mypy` for type checking.
|
|
6
|
+
|
|
7
|
+
The package itself supports Python 3.10+. Generated dltHub workspaces currently
|
|
8
|
+
target Python 3.12+ because their scaffold dependencies do.
|
|
9
|
+
|
|
10
|
+
## Setup
|
|
11
|
+
|
|
12
|
+
Install development dependencies into a local virtual environment:
|
|
13
|
+
|
|
14
|
+
```bash
|
|
15
|
+
make dev
|
|
16
|
+
```
|
|
17
|
+
|
|
18
|
+
Run the CLI from the checkout:
|
|
19
|
+
|
|
20
|
+
```bash
|
|
21
|
+
uv run dlthub-start --help
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
Create a workspace with the recommended non-interactive path:
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
uv run dlthub-start my-workspace --yes
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
Create a workspace without running the generated workspace dependency sync:
|
|
31
|
+
|
|
32
|
+
```bash
|
|
33
|
+
uv run dlthub-start my-workspace --yes --skip-uv-sync
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Choose a scaffold or AI workbench explicitly:
|
|
37
|
+
|
|
38
|
+
```bash
|
|
39
|
+
uv run dlthub-start my-workspace --scaffold minimal_workspace
|
|
40
|
+
uv run dlthub-start my-workspace --agent claude
|
|
41
|
+
uv run dlthub-start my-workspace --agent claude --agent codex
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Create a disposable test workspace under `examples/`:
|
|
45
|
+
|
|
46
|
+
```bash
|
|
47
|
+
make workspace
|
|
48
|
+
```
|
|
49
|
+
|
|
50
|
+
The `workspace` target recreates `examples/my-workspace` by default. It
|
|
51
|
+
pre-deletes that directory before running the CLI, so only use it for
|
|
52
|
+
throwaway local workspaces. To choose a different workspace name:
|
|
53
|
+
|
|
54
|
+
```bash
|
|
55
|
+
make workspace TEST_WORKSPACE_NAME=starter-demo
|
|
56
|
+
```
|
|
57
|
+
|
|
58
|
+
## Tests
|
|
59
|
+
|
|
60
|
+
Run the fast unit test suite:
|
|
61
|
+
|
|
62
|
+
```bash
|
|
63
|
+
make test
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
Run the fast end-to-end coverage that avoids a real generated-workspace
|
|
67
|
+
dependency sync:
|
|
68
|
+
|
|
69
|
+
```bash
|
|
70
|
+
uv run python -m unittest \
|
|
71
|
+
tests_integration.test_e2e_workspace.WorkspaceCreationFastTests \
|
|
72
|
+
tests_integration.test_e2e_workspace.InstalledEntryPointTests
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
Run all integration tests:
|
|
76
|
+
|
|
77
|
+
```bash
|
|
78
|
+
make test-integration
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
`make test-integration` includes a slow path that invokes the real CLI and runs
|
|
82
|
+
`uv sync` in a generated workspace. It may require network access and can take
|
|
83
|
+
noticeably longer than the unit suite.
|
|
84
|
+
|
|
85
|
+
Run a quick bytecode compile check:
|
|
86
|
+
|
|
87
|
+
```bash
|
|
88
|
+
make compile
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
## Quality Checks
|
|
92
|
+
|
|
93
|
+
Format code:
|
|
94
|
+
|
|
95
|
+
```bash
|
|
96
|
+
make format
|
|
97
|
+
```
|
|
98
|
+
|
|
99
|
+
Run linting and type checks:
|
|
100
|
+
|
|
101
|
+
```bash
|
|
102
|
+
make lint
|
|
103
|
+
```
|
|
104
|
+
|
|
105
|
+
Run the same format/lint/type-check sequence used by CI:
|
|
106
|
+
|
|
107
|
+
```bash
|
|
108
|
+
make lint-ci
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
Run the full local CI workflow:
|
|
112
|
+
|
|
113
|
+
```bash
|
|
114
|
+
make ci
|
|
115
|
+
```
|
|
116
|
+
|
|
117
|
+
`make ci` runs compile checks, linting, unit tests, integration tests, AI
|
|
118
|
+
scaffold drift checks, and package build.
|
|
119
|
+
|
|
120
|
+
## Build
|
|
121
|
+
|
|
122
|
+
Build the package:
|
|
123
|
+
|
|
124
|
+
```bash
|
|
125
|
+
make build
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
The build artifacts are written to `dist/`.
|
|
129
|
+
|
|
130
|
+
## AI Workbench Scaffolds
|
|
131
|
+
|
|
132
|
+
The generated workspace includes vendored dltHub AI workbench files for Claude,
|
|
133
|
+
Cursor, and Codex. These files are generated into each bundled scaffold, not
|
|
134
|
+
downloaded during normal CLI execution.
|
|
135
|
+
|
|
136
|
+
The source ref is pinned in `WORKBENCH_REF` in
|
|
137
|
+
`src/create_dlthub_workspace/config.py`. To refresh the vendored AI files:
|
|
138
|
+
|
|
139
|
+
1. Update `WORKBENCH_REF` to the desired `dlt-hub/dlthub-ai-workbench` commit.
|
|
140
|
+
2. Run `make generate-ai`.
|
|
141
|
+
3. Review the scaffold diff carefully.
|
|
142
|
+
4. Run `make check-ai`.
|
|
143
|
+
5. Commit the `WORKBENCH_REF` change and regenerated scaffold files together.
|
|
144
|
+
|
|
145
|
+
`make check-ai` reruns generation and fails if the committed scaffolds drift
|
|
146
|
+
from the pinned workbench ref.
|
|
147
|
+
|
|
148
|
+
## Release Checklist
|
|
149
|
+
|
|
150
|
+
Before publishing, verify:
|
|
151
|
+
|
|
152
|
+
```bash
|
|
153
|
+
uv run dlthub-start --help
|
|
154
|
+
make ci
|
|
155
|
+
```
|
|
156
|
+
|
|
157
|
+
The package exposes a single console command:
|
|
158
|
+
|
|
159
|
+
```text
|
|
160
|
+
dlthub-start
|
|
161
|
+
```
|
|
162
|
+
|
|
@@ -0,0 +1,92 @@
|
|
|
1
|
+
dltHub License
|
|
2
|
+
|
|
3
|
+
Copyright 2026 ScaleVector, GmbH. All rights reserved.
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
## Definitions
|
|
7
|
+
|
|
8
|
+
"Agreement" means the agreement between ScaleVector, GmbH and its affiliates
|
|
9
|
+
(collectively, "dltHub") and you governing the use of dltHub Services, including
|
|
10
|
+
dltHub Platform, as those terms are defined in the applicable dltHub Terms of Use
|
|
11
|
+
available at: https://dlthub.com/terms.
|
|
12
|
+
|
|
13
|
+
"dltHub Services" means dltHub Platform and any other products or services offered
|
|
14
|
+
by dltHub, as defined in the Agreement.
|
|
15
|
+
|
|
16
|
+
"Derivative Works" means any work that is based on, incorporates, or is derived
|
|
17
|
+
from the Licensed Materials, including but not limited to code generated with the
|
|
18
|
+
assistance of the Licensed Materials, modified copies, adaptations, and projects
|
|
19
|
+
into which the Licensed Materials is installed or integrated.
|
|
20
|
+
|
|
21
|
+
"Licensed Materials" means the source code, object code, data, and/or other works,
|
|
22
|
+
including educational materials, to which this license applies.
|
|
23
|
+
|
|
24
|
+
## Scope of Use
|
|
25
|
+
|
|
26
|
+
You may view, use, copy, modify, publish, and distribute the Licensed Materials
|
|
27
|
+
solely in connection with dltHub Services under a governing Agreement. Any use of
|
|
28
|
+
the Licensed Materials outside of dltHub Services is not permitted under this
|
|
29
|
+
license.
|
|
30
|
+
|
|
31
|
+
Without limiting the foregoing, the following are examples of permitted use:
|
|
32
|
+
|
|
33
|
+
1. Using toolkits and skills provided by dltHub to develop, build, test,
|
|
34
|
+
and deploy data pipelines on dltHub Platform.
|
|
35
|
+
2. Copying and modifying toolkit code for use exclusively with dltHub Services and on
|
|
36
|
+
dltHub Services.
|
|
37
|
+
3. Using the Licensed Materials to generate code intended for deployment on dltHub
|
|
38
|
+
Platform.
|
|
39
|
+
|
|
40
|
+
The following are examples of uses that are NOT permitted under this license:
|
|
41
|
+
|
|
42
|
+
1. Using toolkits and skills provided by dltHub to generate code or pipelines for
|
|
43
|
+
deployment on a third-party runtime platform or orchestration service that is not
|
|
44
|
+
part of dltHub Services.
|
|
45
|
+
2. Modifying toolkits to replace, bypass, or substitute components that are part of
|
|
46
|
+
dltHub services in order to operate within a third-party development environment.
|
|
47
|
+
3. Incorporating the Licensed Materials or Derivative Works into any product or
|
|
48
|
+
service that competes with the Licensed Materials, or any other dltHub Services.
|
|
49
|
+
4. Providing the Licensed Materials to third parties as part of a hosted or managed
|
|
50
|
+
service that replicates the functionality of dltHub Services.
|
|
51
|
+
|
|
52
|
+
Use beyond the scope of this license requires a separate license agreement
|
|
53
|
+
negotiated with dltHub on a case-by-case basis.
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
## Redistribution
|
|
57
|
+
|
|
58
|
+
Redistribution of the Licensed Materials, with or without modification, is
|
|
59
|
+
permitted provided that this license notice is included in all copies or substantial
|
|
60
|
+
portions of the Licensed Materials. All recipients are bound by the same scope of
|
|
61
|
+
use restrictions set forth in this license.
|
|
62
|
+
|
|
63
|
+
## Intellectual Property
|
|
64
|
+
|
|
65
|
+
dltHub retains all right, title, and interest in and to the Licensed Materials as
|
|
66
|
+
originally published.
|
|
67
|
+
|
|
68
|
+
dltHub waives all intellectual property claims over Derivative Works, provided that:
|
|
69
|
+
|
|
70
|
+
1. The use of the Licensed Materials complies with the scope of use set forth in
|
|
71
|
+
this license, and
|
|
72
|
+
2. This license notice is retained in all copies or substantial portions of the
|
|
73
|
+
Licensed Materials contained within the Derivative Works.
|
|
74
|
+
|
|
75
|
+
This waiver extends to the Licensed Materials itself as incorporated into Derivative
|
|
76
|
+
Works — you are free to use, modify, and distribute it within your Derivative Works
|
|
77
|
+
without further restriction, subject only to the scope of use and redistribution
|
|
78
|
+
terms above.
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
## Disclaimer and Limitation of Liability
|
|
82
|
+
|
|
83
|
+
THE LICENSED MATERIALS ARE PROVIDED "AS IS" WITH ALL FAULTS. DLTHUB AND ITS
|
|
84
|
+
LICENSORS DISCLAIM ALL WARRANTIES, WHETHER EXPRESS, IMPLIED, STATUTORY, OR
|
|
85
|
+
OTHERWISE, INCLUDING WITHOUT LIMITATION THE WARRANTIES OF MERCHANTABILITY, FITNESS
|
|
86
|
+
FOR A PARTICULAR PURPOSE, TITLE, AND NONINFRINGEMENT. DLTHUB AND ITS LICENSORS'
|
|
87
|
+
TOTAL AGGREGATE LIABILITY RELATING TO OR ARISING OUT OF YOUR USE OF OR DLTHUB'S
|
|
88
|
+
PROVISIONING OF THE LICENSED MATERIALS SHALL BE LIMITED TO ONE THOUSAND DOLLARS
|
|
89
|
+
($1,000). IN NO EVENT SHALL DLTHUB OR ITS LICENSORS BE LIABLE FOR ANY LOST PROFITS,
|
|
90
|
+
LOSS OF REVENUE, LOST BUSINESS, COSTS OF COVER OR ANY INCIDENTAL, SPECIAL,
|
|
91
|
+
EXEMPLARY OR PUNITIVE DAMAGES OF ANY KIND OR NATURE IN CONNECTION WITH THIS LICENSE
|
|
92
|
+
OR THE LICENSED MATERIALS.
|
|
@@ -0,0 +1,78 @@
|
|
|
1
|
+
.DEFAULT_GOAL := help
|
|
2
|
+
|
|
3
|
+
.PHONY: help dev test test-integration compile build ci workspace lint lint-fix format format-check fl lint-ci generate-ai check-ai
|
|
4
|
+
|
|
5
|
+
PYTHONPYCACHEPREFIX ?= /tmp/create-dlthub-pyc
|
|
6
|
+
PACKAGE_MODULES := $(wildcard src/create_dlthub_workspace/*.py)
|
|
7
|
+
PYTHON_SOURCES := src tests tests_integration scripts
|
|
8
|
+
|
|
9
|
+
help: ## Show this help message
|
|
10
|
+
@echo "Available targets:"
|
|
11
|
+
@grep -E '^[a-zA-Z0-9_.-]+:.*?## .*$$' $(MAKEFILE_LIST) \
|
|
12
|
+
| awk 'BEGIN {FS = ":.*?## "}; {printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}'
|
|
13
|
+
|
|
14
|
+
#
|
|
15
|
+
# Dev setup
|
|
16
|
+
#
|
|
17
|
+
|
|
18
|
+
dev: ## Install dev dependencies
|
|
19
|
+
uv sync --extra dev
|
|
20
|
+
|
|
21
|
+
#
|
|
22
|
+
# Linting and formatting
|
|
23
|
+
#
|
|
24
|
+
|
|
25
|
+
lint: ## Lint with ruff and type-check with mypy
|
|
26
|
+
uv run ruff check $(PYTHON_SOURCES)
|
|
27
|
+
uv run mypy $(PYTHON_SOURCES)
|
|
28
|
+
|
|
29
|
+
lint-fix: ## Lint and autofix with ruff, type-check with mypy
|
|
30
|
+
uv run ruff check --fix $(PYTHON_SOURCES)
|
|
31
|
+
uv run mypy $(PYTHON_SOURCES)
|
|
32
|
+
|
|
33
|
+
format: ## Format with ruff
|
|
34
|
+
uv run ruff format $(PYTHON_SOURCES)
|
|
35
|
+
|
|
36
|
+
format-check: ## Check formatting with ruff (no writes)
|
|
37
|
+
uv run ruff format --check $(PYTHON_SOURCES)
|
|
38
|
+
|
|
39
|
+
fl: format lint-fix ## Format and lint-fix in one shot
|
|
40
|
+
|
|
41
|
+
lint-ci: format-check lint ## CI lint workflow (format-check then lint)
|
|
42
|
+
|
|
43
|
+
#
|
|
44
|
+
# Testing and build
|
|
45
|
+
#
|
|
46
|
+
|
|
47
|
+
test: ## Run unit tests (fast)
|
|
48
|
+
uv run python -m unittest discover -s tests -t .
|
|
49
|
+
|
|
50
|
+
test-integration: ## Run e2e integration tests (slow; invokes real CLI + uv sync)
|
|
51
|
+
uv run python -m unittest discover -s tests_integration -t .
|
|
52
|
+
|
|
53
|
+
compile: ## Byte-compile package and tests
|
|
54
|
+
PYTHONPYCACHEPREFIX=$(PYTHONPYCACHEPREFIX) uv run python -m compileall $(PACKAGE_MODULES) tests
|
|
55
|
+
|
|
56
|
+
build: ## Build the package wheel
|
|
57
|
+
uv build
|
|
58
|
+
|
|
59
|
+
TEST_WORKSPACE_NAME ?= my-workspace
|
|
60
|
+
|
|
61
|
+
workspace: ## Create a test workspace under examples/ (pre-deletes existing)
|
|
62
|
+
@case "$(TEST_WORKSPACE_NAME)" in */*|*..*|"") echo "invalid TEST_WORKSPACE_NAME: $(TEST_WORKSPACE_NAME)"; exit 1;; esac
|
|
63
|
+
@echo "Recreating examples/$(TEST_WORKSPACE_NAME)"
|
|
64
|
+
rm -rf -- "examples/$(TEST_WORKSPACE_NAME)"
|
|
65
|
+
uv run dlthub-start "examples/$(TEST_WORKSPACE_NAME)"
|
|
66
|
+
|
|
67
|
+
ci: compile lint-ci test test-integration check-ai build ## Run all CI checks locally
|
|
68
|
+
|
|
69
|
+
#
|
|
70
|
+
# Bundled AI workbench refresh
|
|
71
|
+
#
|
|
72
|
+
|
|
73
|
+
generate-ai: ## Refresh bundled AI workbench files in scaffolds (run after bumping WORKBENCH_REF)
|
|
74
|
+
uv run python scripts/generate_ai.py
|
|
75
|
+
|
|
76
|
+
check-ai: ## CI guard: fail if generate-ai would produce a diff
|
|
77
|
+
$(MAKE) generate-ai
|
|
78
|
+
git diff --exit-code -- src/create_dlthub_workspace/scaffolds
|