Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.82 KB

File metadata and controls

41 lines (34 loc) · 1.82 KB

Development

In order to build and test your changes, simply run ./scripts/develop.

For local upgrade-validation coverage, install pg_validate_extupgrade so ctest can run the same extension-upgrade checks as CI. Without it, CTest registers explicit *_validate_extupgrade_unavailable placeholder tests and those placeholders fail when your worktree touches upgrade-sensitive SQL or CMake files:

cargo install --git https://github.com/rjuju/pg_validate_extupgrade pg_validate_extupgrade

When pg_validate_extupgrade is available, the test suite runs it against a temporary build-tree PostgreSQL cluster instead of the developer's default local server.

Documentation is generated from the SQL files using scripts/documentation (requires poetry). This command also validates that all extension GUCs are documented in h3/src/guc.c.

Release Process

  1. Update version number
    • Don't follow semver, simply use major and minor from H3 core and increment patch.
    • Version number should be changed in root CMakeLists.txt.
    • Set INSTALL_VERSION to "${PROJECT_VERSION}".
    • Update files (and cmake references) suffixed --unreleased should be renamed.
    • Installer .sql files should have @ availability comments updated.
    • Update changelog by moving from Unreleased to a new section
    • Push and merge changes in release-x.y.z branch.
  2. Create a release on GitHub
    • Draft new release "vX.Y.Z"
    • Copy CHANGELOG.md entry into release description
  3. Distribute the extension on PGXN
    • Run scripts/bundle to package the release
    • Upload the distribution on PGXN Manager
  4. Prepare for development
    • Set INSTALL_VERSION to unreleased in root CMakeLists.txt.
    • Create new update files with --unreleased suffix.
    • Add them to relevant CMakeLists.txt files.