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
./duckdb
should be set to latest tagged release./extension-ci-tools
should be set to updated branch corresponding to latest DuckDB release. So if you're building for DuckDBv1.1.0
there will be a branch inextension-ci-tools
namedv1.1.0
to which you should check out.
- Bump versions in
./github/workflows
duckdb_version
input induckdb-stable-build
job inMainDistributionPipeline.yml
should be set to latest tagged releaseduckdb_version
input induckdb-stable-deploy
job inMainDistributionPipeline.yml
should be set to latest tagged release- the reusable workflow
duckdb/extension-ci-tools/.github/workflows/_extension_distribution.yml
for theduckdb-stable-build
job 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