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¶
Chores¶
- Update uv.lock
(
1331865)
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_.