Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

master merge for 1.6.0 release #2257

Merged
merged 31 commits into from
Feb 3, 2025
Merged
Changes from all commits
Commits
Show all changes
31 commits
Select commit Hold shift + click to select a range
5a1cb69
fix credentials link (add slash) (#2162)
AstrakhantsevaAA Dec 18, 2024
fb17e99
recognizes ARRAY data type and converts to nested, fixes minimal nest…
rudolfix Dec 23, 2024
5afa6ce
#2020 #2151 - fixes dbt 1.8.6 and arrow dict types (#2175)
rudolfix Dec 23, 2024
2f20cc4
fix: unravel Optional to inner generic arg from instance (#2172)
otosky Dec 28, 2024
e91de1f
bug: support lag for non-UTC datetime cursor fields (#2170)
hairrrrr Dec 28, 2024
63c9aa9
Added note for missing credentials error for windows authentication (…
dat-a-man Jan 2, 2025
662d4c9
unifies handling of naive datetime for arrow and object incrementals …
rudolfix Jan 8, 2025
c7c3370
Force use of typeddict from typingexentions, pin poetry in tests, sim…
sh-rp Jan 9, 2025
cbcff92
drop python 3.8, enable python 3.13, and enable full linting for 3.12…
sh-rp Jan 12, 2025
488bd24
Updated credentials docs "Added section Destination configuration via…
dat-a-man Jan 13, 2025
08fd3d9
add downloads badge (#2211)
sh-rp Jan 15, 2025
7a7fe02
Release dlt 1.6.0a0 alpha with Python 3.13 added and Python 3.8 dropp…
rudolfix Jan 20, 2025
2ac7d5a
Fix a broken link in ibis-backend.md (#2228)
burnash Jan 21, 2025
d423682
fix: streamlit sidebar button (#2217)
zilto Jan 23, 2025
47509f0
Declare pip dependency for cli extras (#2207)
jonbiemond Jan 24, 2025
4a83a06
#2110 adds several not found error message patterns to sqlalchemy des…
rudolfix Jan 24, 2025
852c515
add more python versions to bug template (#2239)
sh-rp Jan 27, 2025
aa5355d
Enable resolve for query and json parameters (#2208)
francescomucio Jan 28, 2025
0be70f9
update branch naming guide (#2242)
sh-rp Jan 28, 2025
6cf8b74
Performance page update with parallelism pitfalls section (#2240)
sh-rp Jan 28, 2025
8654625
Update book a call link (#2245)
VioletM Jan 28, 2025
8d8b4c3
typed entity registries (#2236)
rudolfix Jan 29, 2025
faa4d76
support azure default credentials (#2244)
gaatjeniksaan Jan 29, 2025
4f90e1d
added exception for unsupported arrow types (#2246)
zilto Jan 30, 2025
c0735ac
Nicer cli help output and generated cli reference (#2232)
sh-rp Jan 30, 2025
ae18acb
#2226 enables dbt 1.9 (#2250)
rudolfix Jan 30, 2025
e9bbeef
#2166 databricks direct loading (#2219)
donotpush Feb 1, 2025
9ea3812
#2249 sqlalchemy indexes off by default (#2253)
rudolfix Feb 1, 2025
e5e7a8c
Docs: fix pipeline file name (#2255)
lpillmann Feb 2, 2025
622c28e
chore: takes dlt-pendulum from pypi (#2254)
rudolfix Feb 2, 2025
d4282d6
bumps dlt to 1.6.0 (#2256)
rudolfix Feb 3, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/bug_report.yml
Original file line number Diff line number Diff line change
@@ -80,6 +80,8 @@ body:
description: What Python version are you using?
multiple: false
options:
- "3.13"
- "3.12"
- "3.11"
- "3.10"
- "3.9"
11 changes: 8 additions & 3 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -26,7 +26,7 @@ jobs:
matrix:
os:
- ubuntu-latest
python-version: ["3.8.x", "3.9.x", "3.10.x", "3.11.x"]
python-version: ["3.9.x", "3.10.x", "3.11.x", "3.12.x"]

defaults:
run:
@@ -42,13 +42,14 @@ jobs:
uses: actions/setup-python@v4
with:
python-version: ${{ matrix.python-version }}

- name: Install Poetry
uses: snok/install-poetry@v1
uses: snok/install-poetry@v1.3.2
with:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -65,6 +66,10 @@ jobs:
run: |
export PATH=$PATH:"/c/Program Files/usr/bin" # needed for Windows
make lint
- name: Check that cli docs are up to date
run: make check-cli-docs
if: ${{ matrix.python-version == '3.11.x' }}

matrix_job_required_check:
name: lint | code & tests
1 change: 1 addition & 0 deletions .github/workflows/test_airflow.yml
Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
1 change: 1 addition & 0 deletions .github/workflows/test_build_images.yml
Original file line number Diff line number Diff line change
@@ -37,6 +37,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Build images
run: make test-build-images
29 changes: 9 additions & 20 deletions .github/workflows/test_common.yml
Original file line number Diff line number Diff line change
@@ -37,14 +37,16 @@ jobs:
python-version: ["3.11.x"]
# Test all python versions on ubuntu only
include:
- python-version: "3.8.x"
os: "ubuntu-latest"
- python-version: "3.9.x"
os: "ubuntu-latest"
- python-version: "3.10.x"
os: "ubuntu-latest"
- python-version: "3.12.x"
os: "ubuntu-latest"
- python-version: "3.13.x"
os: "ubuntu-latest"
- python-version: "3.13.x"
os: "windows-latest"

defaults:
run:
@@ -79,6 +81,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

# NOTE: do not cache. we want to have a clean state each run and we upgrade depdendencies later
# - name: Load cached venv
@@ -93,11 +96,11 @@ jobs:
run: poetry install --no-interaction --with sentry-sdk

- run: |
poetry run pytest tests/common tests/normalize tests/reflection tests/load/test_dummy_client.py tests/extract/test_extract.py tests/extract/test_sources.py tests/pipeline/test_pipeline_state.py
poetry run pytest tests/common tests/normalize tests/reflection tests/plugins tests/load/test_dummy_client.py tests/extract/test_extract.py tests/extract/test_sources.py tests/pipeline/test_pipeline_state.py
if: runner.os != 'Windows'
name: Run common tests with minimum dependencies Linux/MAC
- run: |
poetry run pytest tests/common tests/normalize tests/reflection tests/load/test_dummy_client.py tests/extract/test_extract.py tests/extract/test_sources.py tests/pipeline/test_pipeline_state.py -m "not forked"
poetry run pytest tests/common tests/normalize tests/reflection tests/plugins tests/load/test_dummy_client.py tests/extract/test_extract.py tests/extract/test_sources.py tests/pipeline/test_pipeline_state.py -m "not forked"
if: runner.os == 'Windows'
name: Run common tests with minimum dependencies Windows
shell: cmd
@@ -116,7 +119,7 @@ jobs:
shell: cmd
- name: Install pyarrow
run: poetry install --no-interaction -E duckdb -E cli -E parquet --with sentry-sdk && poetry run pip install pyarrow==15.0.2
run: poetry install --no-interaction -E duckdb -E cli -E parquet --with sentry-sdk

- run: |
poetry run pytest tests/pipeline/test_pipeline_extra.py -k arrow
@@ -129,7 +132,7 @@ jobs:
shell: cmd
- name: Install pipeline and sources dependencies
run: poetry install --no-interaction -E duckdb -E cli -E parquet -E deltalake -E sql_database --with sentry-sdk,pipeline,sources && poetry run pip install pyarrow==15.0.2
run: poetry install --no-interaction -E duckdb -E cli -E parquet -E deltalake -E sql_database --with sentry-sdk,pipeline,sources

- run: |
poetry run pytest tests/extract tests/pipeline tests/libs tests/cli/common tests/destinations tests/sources
@@ -155,20 +158,6 @@ jobs:
name: Run extract tests Windows
shell: cmd
# here we upgrade pyarrow to 17 and run the libs tests again
- name: Install pyarrow 17
run: poetry run pip install pyarrow==17.0.0

- run: |
poetry run pytest tests/libs
if: runner.os != 'Windows'
name: Run libs tests Linux/MAC
- run: |
poetry run pytest tests/libs
if: runner.os == 'Windows'
name: Run libs tests Windows
shell: cmd
# - name: Install Pydantic 1.0
# run: pip install "pydantic<2"

1 change: 1 addition & 0 deletions .github/workflows/test_dbt_cloud.yml
Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
1 change: 1 addition & 0 deletions .github/workflows/test_dbt_runner.yml
Original file line number Diff line number Diff line change
@@ -49,6 +49,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_athena.yml
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -67,7 +68,7 @@ jobs:

- name: Install dependencies
# if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction -E athena --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E athena --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_athena_iceberg.yml
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -67,7 +68,7 @@ jobs:

- name: Install dependencies
# if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction -E athena --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E athena --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_bigquery.yml
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -66,7 +67,7 @@ jobs:

- name: Install dependencies
# if: steps.cached-poetry-dependencies.outputs.cache-hit != 'true'
run: poetry install --no-interaction -E bigquery --with providers -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E bigquery --with providers -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_clickhouse.yml
Original file line number Diff line number Diff line change
@@ -52,6 +52,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -61,7 +62,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E clickhouse --with providers -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E clickhouse --with providers -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_databricks.yml
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -64,7 +65,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E databricks -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E databricks -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_dremio.yml
Original file line number Diff line number Diff line change
@@ -56,6 +56,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -65,7 +66,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- run: |
poetry run pytest tests/load --ignore tests/load/sources
1 change: 1 addition & 0 deletions .github/workflows/test_destination_lancedb.yml
Original file line number Diff line number Diff line change
@@ -53,6 +53,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_motherduck.yml
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -64,7 +65,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-motherduck

- name: Install dependencies
run: poetry install --no-interaction -E motherduck -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E motherduck -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_mssql.yml
Original file line number Diff line number Diff line change
@@ -60,6 +60,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -69,7 +70,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E mssql -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E mssql -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
1 change: 1 addition & 0 deletions .github/workflows/test_destination_qdrant.yml
Original file line number Diff line number Diff line change
@@ -54,6 +54,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_snowflake.yml
Original file line number Diff line number Diff line change
@@ -55,6 +55,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -64,7 +65,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E snowflake -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E snowflake -E s3 -E gs -E az -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
Original file line number Diff line number Diff line change
@@ -77,6 +77,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -86,7 +87,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-local-destinations

- name: Install dependencies
run: poetry install --no-interaction -E parquet -E filesystem -E sqlalchemy -E cli --with sentry-sdk --with pipeline,ibis && poetry run pip install mysqlclient && poetry run pip install "sqlalchemy==${{ matrix.sqlalchemy }}"
run: poetry install --no-interaction -E parquet -E filesystem -E sqlalchemy -E cli --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse] && poetry run pip install mysqlclient && poetry run pip install "sqlalchemy==${{ matrix.sqlalchemy }}"

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destination_synapse.yml
Original file line number Diff line number Diff line change
@@ -58,6 +58,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -67,7 +68,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-gcp

- name: Install dependencies
run: poetry install --no-interaction -E synapse -E parquet --with sentry-sdk --with pipeline,ibis
run: poetry install --no-interaction -E synapse -E parquet --with sentry-sdk --with pipeline && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: create secrets.toml
run: pwd && echo "$DLT_SECRETS_TOML" > tests/.dlt/secrets.toml
3 changes: 2 additions & 1 deletion .github/workflows/test_destinations.yml
Original file line number Diff line number Diff line change
@@ -67,6 +67,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

# - name: Load cached venv
# id: cached-poetry-dependencies
@@ -77,7 +78,7 @@ jobs:
# key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-redshift

- name: Install dependencies
run: poetry install --no-interaction -E redshift -E postgis -E postgres -E gs -E s3 -E az -E parquet -E duckdb -E cli -E filesystem --with sentry-sdk --with pipeline,ibis -E deltalake -E pyiceberg
run: poetry install --no-interaction -E redshift -E postgis -E postgres -E gs -E s3 -E az -E parquet -E duckdb -E cli -E filesystem --with sentry-sdk --with pipeline -E deltalake -E pyiceberg && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: Upgrade sqlalchemy
run: poetry run pip install sqlalchemy==2.0.18 # minimum version required by `pyiceberg`
Original file line number Diff line number Diff line change
@@ -86,6 +86,7 @@ jobs:
virtualenvs-create: true
virtualenvs-in-project: true
installer-parallel: true
version: 1.8.5

- name: Load cached venv
id: cached-poetry-dependencies
@@ -95,7 +96,7 @@ jobs:
key: venv-${{ runner.os }}-${{ steps.setup-python.outputs.python-version }}-${{ hashFiles('**/poetry.lock') }}-local-destinations

- name: Install dependencies
run: poetry install --no-interaction -E postgres -E postgis -E duckdb -E parquet -E filesystem -E cli -E weaviate -E qdrant -E sftp --with sentry-sdk --with pipeline,ibis -E deltalake -E pyiceberg
run: poetry install --no-interaction -E postgres -E postgis -E duckdb -E parquet -E filesystem -E cli -E weaviate -E qdrant -E sftp --with sentry-sdk --with pipeline -E deltalake -E pyiceberg && poetry run pip install ibis-framework[duckdb,postgres,bigquery,snowflake,mssql,clickhouse]

- name: Upgrade sqlalchemy
run: poetry run pip install sqlalchemy==2.0.18 # minimum version required by `pyiceberg`
Loading