Extension updating
When cloning this template, the target version of DuckDB should be the latest stable release of DuckDB. However, there will inevitably come a time when a new DuckDB is released and the extension repository needs updating. This process goes as follows:
- Bump submodules
./duckdbshould be set to latest tagged release./extension-ci-toolsshould be set to updated branch corresponding to latest DuckDB release. So if you're building for DuckDBv1.1.0there will be a branch inextension-ci-toolsnamedv1.1.0to which you should check out.
- Bump versions in
./github/workflowsduckdb_versioninput induckdb-stable-buildjob inMainDistributionPipeline.ymlshould be set to latest tagged releaseduckdb_versioninput induckdb-stable-deployjob inMainDistributionPipeline.ymlshould be set to latest tagged release- the reusable workflow
duckdb/extension-ci-tools/.github/workflows/_extension_distribution.ymlfor theduckdb-stable-buildjob should be set to latest tagged release
API changes
DuckDB extensions built with this extension template are built against the internal C++ API of DuckDB. This API is not guaranteed to be stable. What this means for extension development is that when updating your extensions DuckDB target version using the above steps, you may run into the fact that your extension no longer builds properly.
Currently, DuckDB does not (yet) provide a specific change log for these API changes, but it is generally not too hard to figure out what has changed.
For figuring out how and why the C++ API changed, we recommend using the following resources:
- DuckDB's Release Notes
- DuckDB's history of Core extension patches
- The git history of the relevant C++ Header file of the API that has changed