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.
Files changed (159) hide show
  1. dlthub_start-0.1.0/.github/workflows/ci.yml +104 -0
  2. dlthub_start-0.1.0/.gitignore +16 -0
  3. dlthub_start-0.1.0/CONTRIBUTING.md +162 -0
  4. dlthub_start-0.1.0/LICENSE +92 -0
  5. dlthub_start-0.1.0/Makefile +78 -0
  6. dlthub_start-0.1.0/PKG-INFO +261 -0
  7. dlthub_start-0.1.0/README.md +153 -0
  8. dlthub_start-0.1.0/pyproject.toml +76 -0
  9. dlthub_start-0.1.0/scripts/generate_ai.py +185 -0
  10. dlthub_start-0.1.0/src/create_dlthub_workspace/__init__.py +5 -0
  11. dlthub_start-0.1.0/src/create_dlthub_workspace/__main__.py +7 -0
  12. dlthub_start-0.1.0/src/create_dlthub_workspace/cli.py +136 -0
  13. dlthub_start-0.1.0/src/create_dlthub_workspace/config.py +58 -0
  14. dlthub_start-0.1.0/src/create_dlthub_workspace/display.py +311 -0
  15. dlthub_start-0.1.0/src/create_dlthub_workspace/errors.py +17 -0
  16. dlthub_start-0.1.0/src/create_dlthub_workspace/plan.py +92 -0
  17. dlthub_start-0.1.0/src/create_dlthub_workspace/project_metadata.py +67 -0
  18. dlthub_start-0.1.0/src/create_dlthub_workspace/prompts.py +97 -0
  19. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffold.py +104 -0
  20. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/adjust-endpoint/SKILL.md +27 -0
  21. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/annotate-sources/SKILL.md +288 -0
  22. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/build-notebook/SKILL.md +94 -0
  23. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/build-notebook/references/notebook-patterns.md +110 -0
  24. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-ontology/SKILL.md +159 -0
  25. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-rest-api-pipeline/SKILL.md +156 -0
  26. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/create-transformation/SKILL.md +303 -0
  27. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/data-exploration-workflow/SKILL.md +54 -0
  28. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/debug-deployment/SKILL.md +92 -0
  29. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/debug-pipeline/SKILL.md +165 -0
  30. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/SKILL.md +113 -0
  31. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/advanced-patterns.md +171 -0
  32. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/deploy-workspace/scheduling-triggers.md +82 -0
  33. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/dlthub-runtime-profiles/SKILL.md +23 -0
  34. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/dlthub-runtime-workflow/SKILL.md +39 -0
  35. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/SKILL.md +160 -0
  36. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/references/analysis-plan-format.md +59 -0
  37. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/explore-data/references/dlt-relation-api.md +116 -0
  38. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/find-source/SKILL.md +86 -0
  39. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/generate-cdm/SKILL.md +126 -0
  40. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/improve-skills/SKILL.md +87 -0
  41. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/init-dlthub-workspace/SKILL.md +42 -0
  42. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/new-endpoint/SKILL.md +127 -0
  43. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/SKILL.md +148 -0
  44. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/check_destination.py +55 -0
  45. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/prepare-deployment/deployment-module.md +75 -0
  46. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/rest-api-pipeline-workflow/SKILL.md +39 -0
  47. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-runtime/SKILL.md +75 -0
  48. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-secrets/SKILL.md +120 -0
  49. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/setup-secrets/cli-reference.md +69 -0
  50. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/toolkit-dispatch/SKILL.md +39 -0
  51. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/transformations-workflow/SKILL.md +30 -0
  52. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/validate-data/SKILL.md +72 -0
  53. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.agents/skills/view-data/SKILL.md +83 -0
  54. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/rules/init-dlthub-workspace.md +38 -0
  55. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/improve-skills/SKILL.md +87 -0
  56. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/setup-secrets/SKILL.md +120 -0
  57. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/setup-secrets/cli-reference.md +69 -0
  58. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claude/skills/toolkit-dispatch/SKILL.md +39 -0
  59. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.claudeignore +2 -0
  60. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.codex/config.toml +3 -0
  61. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.codexignore +2 -0
  62. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/mcp.json +14 -0
  63. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/rules/init-dlthub-workspace.mdc +42 -0
  64. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/improve-skills/SKILL.md +87 -0
  65. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/setup-secrets/SKILL.md +120 -0
  66. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/setup-secrets/cli-reference.md +69 -0
  67. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursor/skills/toolkit-dispatch/SKILL.md +39 -0
  68. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.cursorignore +2 -0
  69. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/.toolkits +155 -0
  70. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/.workspace +0 -0
  71. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.dlt/config.toml +6 -0
  72. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.gitignore +28 -0
  73. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/.mcp.json +14 -0
  74. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/AGENTS.md +13 -0
  75. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/__deployment__.py +5 -0
  76. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/pipeline.py +29 -0
  77. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/minimal_workspace/pyproject.toml +11 -0
  78. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/adjust-endpoint/SKILL.md +27 -0
  79. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/annotate-sources/SKILL.md +288 -0
  80. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/build-notebook/SKILL.md +94 -0
  81. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/build-notebook/references/notebook-patterns.md +110 -0
  82. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-ontology/SKILL.md +159 -0
  83. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-rest-api-pipeline/SKILL.md +156 -0
  84. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/create-transformation/SKILL.md +303 -0
  85. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/data-exploration-workflow/SKILL.md +54 -0
  86. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/debug-deployment/SKILL.md +92 -0
  87. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/debug-pipeline/SKILL.md +165 -0
  88. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/SKILL.md +113 -0
  89. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/advanced-patterns.md +171 -0
  90. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/deploy-workspace/scheduling-triggers.md +82 -0
  91. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/dlthub-runtime-profiles/SKILL.md +23 -0
  92. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/dlthub-runtime-workflow/SKILL.md +39 -0
  93. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/SKILL.md +160 -0
  94. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/references/analysis-plan-format.md +59 -0
  95. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/explore-data/references/dlt-relation-api.md +116 -0
  96. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/find-source/SKILL.md +86 -0
  97. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/generate-cdm/SKILL.md +126 -0
  98. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/improve-skills/SKILL.md +87 -0
  99. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/init-dlthub-workspace/SKILL.md +42 -0
  100. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/new-endpoint/SKILL.md +127 -0
  101. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/SKILL.md +148 -0
  102. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/check_destination.py +55 -0
  103. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/prepare-deployment/deployment-module.md +75 -0
  104. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/rest-api-pipeline-workflow/SKILL.md +39 -0
  105. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-runtime/SKILL.md +75 -0
  106. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-secrets/SKILL.md +120 -0
  107. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/setup-secrets/cli-reference.md +69 -0
  108. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/toolkit-dispatch/SKILL.md +39 -0
  109. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/transformations-workflow/SKILL.md +30 -0
  110. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/validate-data/SKILL.md +72 -0
  111. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.agents/skills/view-data/SKILL.md +83 -0
  112. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/rules/init-dlthub-workspace.md +38 -0
  113. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/improve-skills/SKILL.md +87 -0
  114. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/setup-secrets/SKILL.md +120 -0
  115. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/setup-secrets/cli-reference.md +69 -0
  116. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claude/skills/toolkit-dispatch/SKILL.md +39 -0
  117. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.claudeignore +2 -0
  118. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.codex/config.toml +3 -0
  119. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.codexignore +2 -0
  120. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/mcp.json +14 -0
  121. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/rules/init-dlthub-workspace.mdc +42 -0
  122. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/improve-skills/SKILL.md +87 -0
  123. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/setup-secrets/SKILL.md +120 -0
  124. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/setup-secrets/cli-reference.md +69 -0
  125. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursor/skills/toolkit-dispatch/SKILL.md +39 -0
  126. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.cursorignore +2 -0
  127. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/.toolkits +155 -0
  128. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/.workspace +0 -0
  129. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/access.config.toml +2 -0
  130. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/config.toml +6 -0
  131. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/dev.config.toml +2 -0
  132. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/prod.config copy.toml +2 -0
  133. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.dlt/prod.config.toml +2 -0
  134. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.gitignore +32 -0
  135. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/.mcp.json +14 -0
  136. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/AGENTS.md +13 -0
  137. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/__deployment__.py +20 -0
  138. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/__init__.py +0 -0
  139. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_data_quality_notebook.py +78 -0
  140. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_runs_notebook.py +81 -0
  141. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/notebooks/starter_transformations_notebook.py +82 -0
  142. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/pyproject.toml +17 -0
  143. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_data_quality.py +71 -0
  144. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_pipeline.py +75 -0
  145. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/starter_transformations.py +70 -0
  146. dlthub_start-0.1.0/src/create_dlthub_workspace/scaffolds/starter_workspace/uv.lock +1762 -0
  147. dlthub_start-0.1.0/src/create_dlthub_workspace/uv.py +150 -0
  148. dlthub_start-0.1.0/tests/__init__.py +0 -0
  149. dlthub_start-0.1.0/tests/test_cli.py +201 -0
  150. dlthub_start-0.1.0/tests/test_display.py +113 -0
  151. dlthub_start-0.1.0/tests/test_plan.py +323 -0
  152. dlthub_start-0.1.0/tests/test_project_metadata.py +52 -0
  153. dlthub_start-0.1.0/tests/test_prompts.py +112 -0
  154. dlthub_start-0.1.0/tests/test_scaffold.py +229 -0
  155. dlthub_start-0.1.0/tests/test_uv.py +122 -0
  156. dlthub_start-0.1.0/tests_integration/__init__.py +0 -0
  157. dlthub_start-0.1.0/tests_integration/helpers.py +33 -0
  158. dlthub_start-0.1.0/tests_integration/test_e2e_workspace.py +153 -0
  159. 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,16 @@
1
+ .venv/
2
+ **/.venv/
3
+ __pycache__/
4
+ *.py[cod]
5
+ .pytest_cache/
6
+ .ruff_cache/
7
+ dist/
8
+ build/
9
+ *.egg-info/
10
+ **/.dlt/.var/
11
+ **/.dlt/data/
12
+ **/.dlt/state/
13
+ **/_local/
14
+
15
+ # Example workspaces created for testing
16
+ examples/
@@ -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