Skip to content

CHANGELOG

v0.3.3 (2026-03-27)

Bug Fixes

  • Include fdl.toml in config value resolution (2e6c921)

_get_config_value now checks project config (fdl.toml) before workspace and user config, matching resolve_remote's 3-layer lookup.

v0.3.2 (2026-03-26)

Bug Fixes

  • Expand env vars in remote URLs (38341e3)

resolve_remote() now calls os.path.expandvars() so that fdl.toml remotes like s3://${FDL_S3_BUCKET} are expanded.

v0.3.1 (2026-03-26)

Bug Fixes

  • Remove .fdl/ pre-check from pull command (4e2023b)

pull.py already creates .fdl/ via mkdir(parents=True). The check broke CI where .fdl/ is gitignored and doesn't exist before pull.

v0.3.0 (2026-03-26)

Chores

  • Bump frozen-ducklake to 0.2.1 (b359533)

Features

  • Require fdl init before pull, remove --sqlite fallback (b21369e)

pull no longer auto-initializes the catalog. Users must run fdl init first. Removes --sqlite option from pull.

  • Rewrite fdl init with fdl.toml scaffolding and rollback (e5e6454)

  • name argument required (like git init ) - generates fdl.toml with name and optional catalog type - auto-creates .gitignore entry for .fdl/ - rolls back fdl.toml and .fdl/ on failure - set_value now auto-detects top-level vs sectioned keys

Refactoring

  • Move datasource/URL resolution from DatasetConfig to config module (6ff1ff2)

datasource_name(), public_url(), ducklake_url() are now in config.py with 3-layer resolution (env var → workspace → user config). DatasetConfig no longer holds public_url or ducklake_url.

  • Resolve storage in create_destination, add FDL_S3_ENDPOINT_HOST (26bcec8)

  • create_destination defaults to config.storage() instead of hardcoded .fdl - s3_env_dict now derives FDL_S3_ENDPOINT_HOST (scheme-less) for DuckDB

v0.2.1 (2026-03-26)

Bug Fixes

  • Update outdated docstring in create_destination (ad31665)

Continuous Integration

  • Merge publish into release workflow (22ba582)

GITHUB_TOKEN tags don't trigger other workflows. Run PyPI publish in the same job after semantic-release.

  • Switch release to manual trigger (workflow_dispatch) (0186734)

v0.2.0 (2026-03-26)

Bug Fixes

  • Allow zero version in semantic-release (074baae)

  • Use major_on_zero=false to stay in 0.x (edbc322)

Chores

Features

  • Named remotes, fdl run/config/serve, FDL_* env vars (d749935)

BREAKING CHANGE: push/pull now require named remotes instead of URLs. s3_url removed from dataset.yml, replaced by fdl.toml remotes. DUCKLAKE_STORAGE renamed to FDL_STORAGE. S3 env vars prefixed with FDL_S3_.

Named remotes: - push/pull require explicit remote name (e.g. origin, local) - Remotes defined in fdl.toml (project), .fdl/config (workspace), ~/.fdl/config (user) - No built-in remotes; all user-defined via fdl config

fdl run: - Sets FDL_STORAGE, FDL_DATA_PATH, FDL_ATTACH_PATH for pipeline execution - S3 credentials loaded from config (env var → workspace → user) - Usage: fdl run [REMOTE] -- COMMAND

fdl config: - git config-like settings management - fdl config key value (user), fdl config --local key value (workspace)

fdl serve: - HTTP server with CORS + Range request support - Optional remote arg: fdl serve (project .fdl/) or fdl serve REMOTE

Other changes: - DIST_DIR renamed to FDL_DIR - S3 endpoint now stored with https:// scheme - gc.py: add OVERRIDE_DATA_PATH for v1.0 compatibility

Breaking Changes

  • Push/pull now require named remotes instead of URLs. s3_url removed from dataset.yml, replaced by fdl.toml remotes. DUCKLAKE_STORAGE renamed to FDL_STORAGE. S3 env vars prefixed with FDL_S3_.

v0.1.0 (2026-03-22)

Features

  • Replace tagpr with python-semantic-release (c8e72ed)

  • Update release workflow and remove changelog (76eceb8)