Skip to content

feat(upgrade): pgrx to0.16.0#15

Merged
pmpetit merged 27 commits intomainfrom
feat/upgrade_pgrx
Sep 5, 2025
Merged

feat(upgrade): pgrx to0.16.0#15
pmpetit merged 27 commits intomainfrom
feat/upgrade_pgrx

Conversation

@pmpetit
Copy link
Owner

@pmpetit pmpetit commented Sep 1, 2025

  • Updated pgrx dependency from =0.14.3 to 0.16.0
  • Updated pgrx-tests dependency from =0.14.3 to 0.16.0
  • Added PostgreSQL 18 support in Cargo.toml features
  • Updated Rust toolchain to 1.89.0 (meets 1.88.0+ requirement)
  • Re-initialized pgrx environment with PostgreSQL 18beta2 support
  • All tests pass successfully with new version
  • No breaking changes detected in existing codebase

Key benefits:

  • PostgreSQL 18beta2 support
  • Latest security and bug fixes
  • Improved performance and stability

pmpetit and others added 27 commits September 1, 2025 20:36
- Updated pgrx dependency from =0.14.3 to 0.16.0
- Updated pgrx-tests dependency from =0.14.3 to 0.16.0
- Added PostgreSQL 18 support in Cargo.toml features
- Updated Rust toolchain to 1.89.0 (meets 1.88.0+ requirement)
- Re-initialized pgrx environment with PostgreSQL 18beta2 support
- All tests pass successfully with new version
- No breaking changes detected in existing codebase

Key benefits:
- PostgreSQL 18beta2 support
- Latest security and bug fixes
- Improved performance and stability
- Updated GitHub Actions regression-tests.yml to use correct pgrx 0.16.0 paths
- Fixed build and install steps to use version-specific PostgreSQL paths
- Updated Makefile TARGET_SHAREDIR and TARGET_PKGLIBDIR for new pgrx structure
- Added PostgreSQL startup/cleanup steps in CI workflow
- Now correctly copies from target/release/pglinter-pgXX/usr/ paths

This fixes the CI error:
'cannot stat target/release/pglinter-pg13//usr/share/postgresql/16/extension/*'
- Updated install target to handle both system and pgrx-managed PostgreSQL paths
- Added fallback logic to support different pgrx 0.16.0 behaviors
- Made installcheck depend on extension and install targets
- Now works with both CI (system PostgreSQL) and local dev (pgrx-managed)

This ensures compatibility across different PostgreSQL installation types
and pgrx version behaviors.
- Added PostgreSQL compatibility section highlighting pgrx 0.16.0
- Listed supported PostgreSQL versions (13-18beta2)
- Updated installation instructions with current requirements
- Added Rust 1.88.0+ requirement and cargo-pgrx 0.16.0
- Improved build and install instructions with Makefile usage
- Add pg17 to CI test matrix in GitHub Actions workflow
- Include PostgreSQL 17 in test summary reporting
- Ensures compatibility testing across PostgreSQL 13-17
- Part of pgrx 0.16.0 upgrade supporting expanded PostgreSQL versions
- Use system PostgreSQL consistently throughout CI workflow
- Build extension with system pg_config for proper path structure
- Install to system directories with sudo (required for CI)
- Start system PostgreSQL service instead of pgrx-managed instances
- Remove pgrx start/stop commands that don't work with system PostgreSQL
- Ensure database creation and cleanup work with system PostgreSQL

Resolves permission denied errors when running regression tests in CI
while maintaining compatibility with local pgrx-managed development.
- Add installcheck-ci-only target that skips install and pgrx start/stop
- Separates CI workflow from local development workflow
- CI assumes PostgreSQL service is already running and extension is installed
- Prevents permission errors when trying to install to system directories
- Maintains original installcheck target for local development
🐳 Docker Infrastructure:
- Multi-stage Dockerfile supporting PostgreSQL 13-17
- GitHub Container Registry integration (ghcr.io)
- Docker Compose configuration for all PostgreSQL versions
- Automated Docker image builds via GitHub Actions

🚀 New Features:
- Pre-built images: ghcr.io/pmpetit/pglinter:pg{13,14,15,16,17}-latest
- Container initialization script for pglinter extension
- Health checks and proper PostgreSQL startup
- Volume mounting for test files

🧪 Enhanced CI/CD:
- Docker-based regression testing workflow
- Parallel testing across all PostgreSQL versions in containers
- Faster, more reliable CI with consistent environments
- Automatic image building and pushing to registry

�� Documentation:
- Comprehensive Docker README with usage examples
- Makefile targets for Docker operations
- Integration examples for GitHub Actions and development

Benefits:
- Eliminates CI permission issues with containerized testing
- Provides reproducible development environments
- Enables easy distribution and deployment
- Supports all PostgreSQL versions in isolation
@pmpetit pmpetit merged commit 8ea8de0 into main Sep 5, 2025
19 of 20 checks passed
@pmpetit pmpetit deleted the feat/upgrade_pgrx branch September 5, 2025 16:14
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.

1 participant