Skip to content

feat: new extension scaffolding#79

Merged
gbartolini merged 17 commits intocloudnative-pg:mainfrom
GabriFedi97:dev/17
Jan 22, 2026
Merged

feat: new extension scaffolding#79
gbartolini merged 17 commits intocloudnative-pg:mainfrom
GabriFedi97:dev/17

Conversation

@GabriFedi97
Copy link
Contributor

@GabriFedi97 GabriFedi97 commented Jan 15, 2026

Add Dagger function and Taskfile entry to scaffold a new extension directory from scratch.

Documentation has been temporarily added to the BUILD.md file but will probably be moved in a more appropriate section.

Closes #17

@GabriFedi97 GabriFedi97 marked this pull request as ready for review January 15, 2026 17:04
@GabriFedi97 GabriFedi97 requested review from a team and NiccoloFei as code owners January 15, 2026 17:04
@GabriFedi97 GabriFedi97 force-pushed the dev/17 branch 4 times, most recently from 48283c4 to 3349043 Compare January 19, 2026 16:01
Copy link
Contributor

@mbiagetti mbiagetti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I've tested the command and do the job.

Don't know if we should also patch some wf like:

@GabriFedi97
Copy link
Contributor Author

@mbiagetti

Don't know if we should also patch some wf

That's a good point, but I'd keep it out of this PR. We can also think about some sort of required check to ensure tests have run on every modified target/extension

@mbiagetti
Copy link
Contributor

@mbiagetti

Don't know if we should also patch some wf

That's a good point, but I'd keep it out of this PR. We can also think about some sort of required check to ensure tests have run on every modified target/extension

@GabriFedi97 Agree, is a bit out-of-scope for the scaffolding task 👍

GabriFedi97 and others added 11 commits January 22, 2026 17:23
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Added copyright info

Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
Signed-off-by: Gabriele Bartolini <gabriele.bartolini@enterprisedb.com>
Signed-off-by: Niccolò Fei <niccolo.fei@enterprisedb.com>
Add validation for name, versions, distros parameters and template file
existence. Extension names must contain only lowercase alphanumeric
characters, hyphens, and underscores.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Enhance error messages to include template file name and context,
making it easier to debug template-related failures.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Replace vector-specific example text with generic placeholders that
developers should customize for their extensions.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Replace unconventional <REMOVE> blocks with standard TODO comments for
better readability and consistency with common practices.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Add precondition to check NAME is not empty and improve error messages
with usage examples. Add description to NAME variable requirement.

Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
# Include the extension's shared objects and related dependencies under the /lib directory.
# CNPG will load these libraries at runtime by configuring the dynamic linker path (LD_LIBRARY_PATH) and
# the PostgreSQL GUC "dynamic_library_path" based on defaults and Cluster configuration.
# CNPG will configure PostgreSQL to locate these libraries at runtime by configuring
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch!

@gbartolini gbartolini merged commit 19c6738 into cloudnative-pg:main Jan 22, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Scaffolding of a new extension directory

5 participants