Skip to content

Commit eb17f16

Browse files
committed
Merge branch 'devel' into feat/extend-table-reference
2 parents 3fa5445 + 0dcdcf0 commit eb17f16

File tree

389 files changed

+9649
-3773
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

389 files changed

+9649
-3773
lines changed

.github/workflows/build_docs.yml

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
name: docs | build docs
2+
3+
on:
4+
workflow_call:
5+
workflow_dispatch:
6+
7+
jobs:
8+
build_docs:
9+
name: docs | build docs
10+
runs-on: ubuntu-latest
11+
12+
steps:
13+
- name: Check out
14+
uses: actions/checkout@master
15+
16+
- uses: pnpm/action-setup@v2
17+
with:
18+
version: 9.13.2
19+
20+
- uses: actions/setup-node@v5
21+
with:
22+
node-version: '22'
23+
24+
- name: Setup Python
25+
uses: actions/setup-python@v5
26+
with:
27+
python-version: "3.11"
28+
29+
- name: Install node dependencies
30+
run: cd docs/website && npm install
31+
32+
- name: Install python dependencies
33+
run: cd docs/website && pip install -r requirements.txt
34+
35+
- name: Build docs
36+
run: cd docs/website && npm run build:cloudflare

.github/workflows/main.yml

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ jobs:
3030
test_docs_snippets:
3131
name: test snippets in docs
3232
uses: ./.github/workflows/test_docs_snippets.yml
33+
34+
# NOTE: we build docs the same way as on cloudflare, so we can catch problems early
35+
build_docs:
36+
name: build docs
37+
uses: ./.github/workflows/build_docs.yml
3338

3439
lint:
3540
name: lint on all python versions
@@ -61,10 +66,10 @@ jobs:
6166
needs: test_common
6267
uses: ./.github/workflows/test_sources_local.yml
6368

64-
test_hub:
65-
name: test dlthub features
66-
needs: lint
67-
uses: ./.github/workflows/test_hub.yml
69+
# test_hub:
70+
# name: test dlthub features
71+
# needs: lint
72+
# uses: ./.github/workflows/test_hub.yml
6873

6974
test_tools_airflow:
7075
name: test airflow helpers

.github/workflows/test_common.yml

Lines changed: 12 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,11 @@ jobs:
6363
- os: windows-latest
6464
python-version: "3.11"
6565
shell: cmd
66-
pytest_args: '-m "not forked"'
66+
pytest_args: '-m "not forked and not rfam"'
6767
- os: windows-latest
6868
python-version: "3.13"
6969
shell: cmd
70-
pytest_args: '-m "not forked"'
70+
pytest_args: '-m "not forked and not rfam"'
7171

7272
defaults:
7373
run:
@@ -121,13 +121,22 @@ jobs:
121121
pytest tests/pipeline/test_pipeline_extra.py -k arrow ${{ matrix.pytest_args }}
122122
if: matrix.python-version != '3.14.0-beta.4'
123123

124+
- name: Install workspace dependencies
125+
run: uv sync ${{ matrix.uv_sync_args }} --extra workspace --extra cli --group sentry-sdk
126+
if: matrix.python-version != '3.14.0-beta.4'
127+
128+
- name: Run workspace tests
129+
run: |
130+
pytest tests/workspace ${{ matrix.pytest_args }}
131+
if: matrix.python-version != '3.14.0-beta.4'
132+
124133
- name: Install pipeline and sources dependencies
125134
run: uv sync ${{ matrix.uv_sync_args }} --extra duckdb --extra cli --extra parquet --extra deltalake --extra sql_database --group sentry-sdk --group pipeline --group sources --group ibis
126135
if: matrix.python-version != '3.14.0-beta.4'
127136

128137
- name: Run extract and pipeline tests
129138
run: |
130-
pytest tests/extract tests/pipeline tests/libs tests/cli/common tests/destinations tests/sources ${{ matrix.pytest_args }}
139+
pytest tests/extract tests/pipeline tests/libs tests/destinations tests/sources ${{ matrix.pytest_args }}
131140
if: matrix.python-version != '3.14.0-beta.4'
132141

133142
# here we upgrade sql alchemy to 2 an run the sql_database tests again

.github/workflows/test_destinations_local.yml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -33,13 +33,11 @@ jobs:
3333
post_install_commands: "uv run pip install sqlalchemy==2.0.18" # minimum version required by `pyiceberg`
3434

3535
# TODO: also test ducklake in remote mode with a buckets and remote postgres
36-
- name: postgres, duckdb, ducklake, and dummy with cli commands
36+
- name: postgres, duckdb, ducklake, and dummy
3737
destinations: "[\"postgres\", \"duckdb\", \"ducklake\", \"dummy\"]"
3838
filesystem_drivers: "[\"memory\", \"file\"]"
3939
extras: "--group adbc --extra postgres --extra postgis --extra parquet --extra duckdb --extra cli --extra filesystem"
4040
needs_postgres: true
41-
additional_tests: "pytest tests/cli"
42-
4341

4442
# Clickhouse OSS (TODO: test with minio s3)
4543
- name: clickhouse

.github/workflows/test_docs_snippets.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -71,8 +71,8 @@ jobs:
7171
- name: Install dependencies
7272
run: uv sync --extra duckdb --extra weaviate --extra parquet --extra qdrant --extra bigquery --extra postgres --extra lancedb --extra s3 --extra workspace --group docs --group sentry-sdk --group ibis --group providers
7373

74-
- name: Install dlt-plus incl alpha releases
75-
run: uv run pip install --pre dlt-plus
74+
# - name: Install dlthub incl alpha releases
75+
# run: uv run pip install --pre dlthub
7676

7777
- name: run docs preprocessor
7878
run: make preprocess-docs

.github/workflows/test_examples.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@ jobs:
4747
- name: Install dependencies
4848
run: uv sync --extra duckdb --extra weaviate --extra parquet --extra qdrant --extra bigquery --extra postgres --extra lancedb --extra s3 --extra workspace --group docs --group sentry-sdk --group ibis --group providers
4949

50-
- name: Install dlt-plus incl alpha releases
51-
run: uv run pip install --pre dlt-plus
50+
# - name: Install dlthub incl alpha releases
51+
# run: uv run pip install --pre dlthub
5252

5353
- name: create secrets.toml for examples
5454
run: pwd && echo "$DLT_SECRETS_TOML" > docs/examples/.dlt/secrets.toml

.github/workflows/test_hub.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
name: hub | dlthub features
22

33
#
4-
# dlt-plus smoke tests against the nightly build.
4+
# dlthub smoke tests against the nightly build.
55
#
66

77
on:
@@ -19,7 +19,7 @@ jobs:
1919
matrix:
2020
os: ["ubuntu-latest", "macos-latest", "windows-latest"]
2121
python-version: ["3.10", "3.11", "3.12"]
22-
plus_dep: ["dlt-plus", "https://dlt-packages.fra1.digitaloceanspaces.com/dlt-plus/dlt_plus-0.0.0+nightly-py3-none-any.whl"]
22+
dlthub_dep: ["dlthub", "https://dlt-packages.fra1.digitaloceanspaces.com/dlthub/dlthub-0.0.0+nightly-py3-none-any.whl"]
2323
# Test all python versions on ubuntu only
2424
exclude:
2525
- os: "macos-latest"
@@ -61,8 +61,8 @@ jobs:
6161
- name: Install all dependencies
6262
run: make dev
6363

64-
- name: Install dlt-plus nightly devel build without cache
65-
run: uv run pip install --upgrade --force-reinstall --no-cache-dir ${{ matrix.plus_dep }}
64+
- name: Install dlthub nightly devel build without cache
65+
run: uv run pip install --upgrade --force-reinstall --no-cache-dir ${{ matrix.dlthub_dep }}
6666

6767
- name: Run tests
6868
run: pytest tests/hub

.github/workflows/test_tools_dashboard.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -102,18 +102,18 @@ jobs:
102102
# Run pipeline dashboard unit tests
103103
- name: Run pipeline dashboard unit tests
104104
run: |
105-
pytest tests/helpers/dashboard
105+
pytest tests/workspace/helpers/dashboard
106106
107107
# Run pipeline dashboard e2e tests (does not pass with python 3.9, does not pass on windows (playwright does not work somehow), does not pass on python 3.13 (ibis not available))
108108
# Mac is also disabled for the time being
109109
- name: Run dashboard e2e
110110
run: |
111-
marimo run --headless dlt/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage/.dlt/pipelines/ --with_test_identifiers true & pytest --browser chromium tests/e2e
111+
marimo run --headless dlt/_workspace/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage/.dlt/pipelines/ --with_test_identifiers true & pytest --browser chromium tests/e2e
112112
if: matrix.python-version != '3.9' && matrix.python-version != '3.14.0-beta.4' && matrix.os != 'windows-latest'
113113

114114
- name: Run dashboard e2e windows
115115
run: |
116-
start marimo run --headless dlt/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage\.dlt\pipelines\ --with_test_identifiers true
116+
start marimo run --headless dlt/_workspace/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage\.dlt\pipelines\ --with_test_identifiers true
117117
pytest --browser chromium tests/e2e
118118
if: matrix.python-version != '3.9' && matrix.python-version != '3.14.0-beta.4' && matrix.os == 'windows-latest'
119119

.github/workflows/tools_deploy_docs.yml

Lines changed: 0 additions & 20 deletions
This file was deleted.

Makefile

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,10 @@ dev: has-uv
4848

4949
dev-airflow: has-uv
5050
uv sync --all-extras --group docs --group providers --group pipeline --group sources --group sentry-sdk --group ibis --group airflow
51-
52-
lint:
51+
52+
lint: lint-core lint-security lint-docstrings
53+
54+
lint-core:
5355
uv run mypy --config-file mypy.ini dlt tests
5456
# NOTE: we need to make sure docstring_parser_fork is the only version of docstring_parser installed
5557
uv pip uninstall docstring_parser
@@ -59,22 +61,20 @@ lint:
5961
uv run flake8 --extend-ignore=D --max-line-length=200 dlt
6062
uv run flake8 --extend-ignore=D --max-line-length=200 tests --exclude tests/reflection/module_cases,tests/common/reflection/cases/modules/
6163
uv run black dlt docs tests --check --diff --color --extend-exclude=".*syntax_error.py"
62-
$(MAKE) lint-security
63-
$(MAKE) lint-docstrings
6464

6565
format:
6666
uv run black dlt docs tests --extend-exclude='.*syntax_error.py|_storage/.*'
6767
uv run black docs/education --ipynb --extend-exclude='.*syntax_error.py|_storage/.*'
6868

6969
lint-snippets:
7070
cd docs/tools && uv run python check_embedded_snippets.py full
71-
72-
lint-and-test-snippets: lint-snippets
73-
# TODO: re-enable transformation snippets tests
71+
# TODO: re-enable transformation snippets tests when dlthub dep is available
7472
uv pip install docstring_parser_fork --reinstall
75-
uv run mypy --config-file mypy.ini docs/website docs/tools --exclude docs/tools/lint_setup --exclude docs/website/docs_processed --exclude docs/website/versioned_docs/ --exclude docs/website/docs/general-usage/transformations/transformation-snippets.py
73+
uv run mypy --config-file mypy.ini docs/website docs/tools --exclude docs/tools/lint_setup --exclude docs/website/docs_processed --exclude docs/website/versioned_docs/
7674
uv run ruff check
77-
uv run flake8 --max-line-length=200 docs/website docs/tools --exclude docs/website/.dlt-repo --exclude docs/website/docs/hub/features/transformations/transformation-snippets.py
75+
uv run flake8 --max-line-length=200 docs/website docs/tools --exclude docs/website/.dlt-repo
76+
77+
lint-and-test-snippets: lint-snippets
7878
cd docs/website/docs && uv run pytest --ignore=node_modules --ignore hub/features/transformations/transformation-snippets.py
7979

8080
lint-and-test-examples:
@@ -123,7 +123,7 @@ test-load-local-postgres:
123123
DESTINATION__POSTGRES__CREDENTIALS=postgresql://loader:loader@localhost:5432/dlt_data ACTIVE_DESTINATIONS='["postgres"]' ALL_FILESYSTEM_DRIVERS='["memory"]' uv run pytest tests/load
124124

125125
test-common:
126-
uv run pytest tests/common tests/normalize tests/extract tests/pipeline tests/reflection tests/sources tests/cli/common tests/load/test_dummy_client.py tests/libs tests/destinations
126+
uv run pytest tests/common tests/normalize tests/extract tests/pipeline tests/reflection tests/sources tests/workspace tests/load/test_dummy_client.py tests/libs tests/destinations
127127

128128
reset-test-storage:
129129
-rm -r _storage
@@ -180,8 +180,8 @@ test-e2e-dashboard-headed:
180180
uv run pytest --headed --browser chromium tests/e2e
181181

182182
start-dlt-dashboard-e2e:
183-
uv run marimo run --headless dlt/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage/.dlt/pipelines --with_test_identifiers true
183+
uv run marimo run --headless dlt/_workspace/helpers/dashboard/dlt_dashboard.py -- -- --pipelines-dir _storage/.dlt/pipelines --with_test_identifiers true
184184

185185
# creates the dashboard test pipelines globally for manual testing of the dashboard app and cli
186186
create-test-pipelines:
187-
uv run python tests/helpers/dashboard/example_pipelines.py
187+
uv run python tests/workspace/helpers/dashboard/example_pipelines.py

0 commit comments

Comments
 (0)