Skip to content

Conversation

@martin-georgiev
Copy link
Owner

@martin-georgiev martin-georgiev commented Oct 20, 2025

Summary by CodeRabbit

  • Chores

    • Bumped PostgreSQL to 18 and PostGIS to 3.6 across development, Docker, and CI environments.
    • Switched dev/local container images to the Alpine PostGIS variant and removed tmpfs for the DB data dir.
    • Expanded CI matrix to include PostgreSQL 18/PostGIS 3.6, added a PHP 8.4 include with coverage, and added compatibility exclude rules.
  • Documentation

    • Updated contributing and integration docs and examples to reflect new database versions, commands, and environment notes.

@coderabbitai
Copy link

coderabbitai bot commented Oct 20, 2025

Walkthrough

Updated CI, local development, Docker, and docs to target PostgreSQL 18 and PostGIS 3.6: CI matrix include/exclude entries adjusted, PostGIS service images switched to alpine variant, devenv.nix PostgreSQL package bumped to 18, docker-compose.yml defaults updated, and documentation examples/text revised. No public API changes.

Changes

Cohort / File(s) Summary
CI workflow
/.github/workflows/integration-tests.yml
Extended matrix to include PostgreSQL 18 and PostGIS 3.6; added include for PHP 8.4 + Postgres 18/PostGIS 3.6 with coverage; added exclude rules for incompatible combos; switched PostGIS service image tag to alpine and removed tmpfs mount.
Development environment
devenv.nix
Bumped services.postgres.package from pkgs.postgresql_17 to pkgs.postgresql_18; minor comment/string wording edits.
Docker compose
docker-compose.yml
Updated PostGIS image tag defaults to ${POSTGRES_VERSION:-18} and ${POSTGIS_VERSION:-3.6} (uses postgis:18-3.6-alpine by default); rest unchanged.
Documentation / CI README
docs/CONTRIBUTING.md, tests/Integration/README.md
Updated examples and wording to reference PostgreSQL 18 / PostGIS 3.6; updated Docker run example and CI notes describing supported PG/PostGIS versions.

Sequence Diagram(s)

sequenceDiagram
    autonumber
    participant Dev as Developer/CI config
    participant CI as GitHub Actions
    participant Matrix as Job Matrix
    participant PG as PostGIS Service (Docker)
    Note right of Matrix #DDEEFF: matrix expands combos\n(php, pg, postgis)
    Dev->>CI: push workflow
    CI->>Matrix: expand jobs
    Matrix->>PG: select image tag (postgis:${POSTGRES_VERSION}-${POSTGIS_VERSION}-alpine)
    PG-->>CI: service ready (healthcheck)
    CI->>CI: run tests (coverage enabled for include entry)
    alt incompatible combo
      CI->>CI: skip via exclude rules
    end
Loading

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Possibly related PRs

Poem

🐰 I hopped from seventeen to eighteen at dawn,
PostGIS 3.6 now wears the lawn,
Workflows, compose, and devenv in tune,
Docs refreshed beneath the moon,
I nibble a carrot—deploy soon! 🥕

Pre-merge checks and finishing touches

✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title Check ✅ Passed The PR title "chore: run the project on PostgreSQL 18" directly aligns with the main objective of the changeset. The modifications across all five files—including updates to CI workflows, development environment configuration, Docker compose, and documentation—consistently reflect the core purpose of upgrading the project to run on PostgreSQL 18 (along with PostGIS 3.6). The title is specific, clear, and free from vague terminology, allowing a teammate reviewing the commit history to immediately understand the primary change without ambiguity.
Docstring Coverage ✅ Passed No functions found in the changes. Docstring coverage check skipped.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch pg18

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 20, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
tests/Integration/README.md (1)

24-24: Update the Docker command example to reflect the new default versions.

Line 24 shows an outdated Docker command example (postgis/postgis:17-3.4). Since the project now defaults to PostgreSQL 18 with PostGIS 3.6, update this example to reflect the current versions for consistency with the documentation updated on line 69.

-docker run --name postgres-doctrine-test -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -e POSTGRES_DB=postgres_doctrine_test -p 5432:5432 -d postgis/postgis:17-3.4
+docker run --name postgres-doctrine-test -e POSTGRES_PASSWORD=postgres -e POSTGRES_USER=postgres -e POSTGRES_DB=postgres_doctrine_test -p 5432:5432 -d postgis/postgis:18-3.6
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between f01ccbc and 14e22fc.

📒 Files selected for processing (4)
  • .github/workflows/integration-tests.yml (1 hunks)
  • docker-compose.yml (1 hunks)
  • docs/CONTRIBUTING.md (2 hunks)
  • tests/Integration/README.md (1 hunks)
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/workflows/integration-tests.yml
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (20)
  • GitHub Check: PHP 8.2 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.1 + Doctrine ORM 3.0 + Doctrine Lexer latest
  • GitHub Check: PHP 8.1 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
  • GitHub Check: PostgreSQL 17 + PostGIS 3.5 + PHP 8.4
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.4
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.4
  • GitHub Check: PostgreSQL 17 + PostGIS 3.5 + PHP 8.3
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.4
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.3
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.3
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.2
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.2
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.5 + PHP 8.2
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.3
  • GitHub Check: PostgreSQL 17 + PostGIS 3.5 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.2
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.1
  • GitHub Check: wait-for-tests-worflows-before-upload
🔇 Additional comments (4)
tests/Integration/README.md (1)

69-69: Documentation accurately reflects PostgreSQL 18 support.

The update on line 69 correctly documents the expanded CI test matrix to include PostgreSQL 18 alongside PostgreSQL 16 and 17 with PostGIS support.

docker-compose.yml (1)

3-3: Environment-driven defaults appropriately updated.

The Docker image reference now defaults to PostgreSQL 18 with PostGIS 3.6, with both versions parameterized via environment variables. This maintains flexibility for local development overrides while establishing sensible defaults aligned with the project's new baseline.

docs/CONTRIBUTING.md (2)

118-118: Environment documentation correctly updated.

Line 120 now accurately specifies PostgreSQL 18 with PostGIS 3.6, properly reflecting the updated development environment baseline.

Also applies to: 120-120


131-131: Example customization documentation is clear.

The devenv.local.nix example on line 131 clearly demonstrates how to override the PHP version in local development, maintaining consistency with the environment setup guidance.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 20, 2025
coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 21, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 127a84d and 4a02b1a.

📒 Files selected for processing (1)
  • .github/workflows/integration-tests.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (16)
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.4
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.6 + PHP 8.1
  • GitHub Check: PostgreSQL 16 + PostGIS 3.4 + PHP 8.3
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.1
  • GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer latest
  • GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 2.1
  • GitHub Check: PHP 8.4 + Doctrine ORM 2.18 + Doctrine Lexer 2.1
  • GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer latest
  • GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer latest
  • GitHub Check: PHP 8.3 + Doctrine ORM 2.14 + Doctrine Lexer 2.1
  • GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
  • GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 2.1
  • GitHub Check: wait-for-tests-worflows-before-upload
🔇 Additional comments (1)
.github/workflows/integration-tests.yml (1)

54-59: Intentional include entry for coverage—well done.

The include entry duplicates the PHP 8.4 + PostgreSQL 18 + PostGIS 3.6 combination from the matrix but adds the calculate-code-coverage: true flag. This is the intended best practice: targeting the latest stable combination for code coverage, ensuring consistent measurement across releases.

coderabbitai[bot]
coderabbitai bot previously approved these changes Oct 21, 2025
Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 0

🧹 Nitpick comments (1)
.github/workflows/integration-tests.yml (1)

42-59: Matrix and exclusion rules are well-structured; alpine variant exclusions are correctly documented.

The matrix expansion to PostgreSQL 18, PostGIS 3.6, and PHP 8.4 is clear, and the exclude rules correctly restrict to available alpine image combinations (as confirmed by CI). The include rule appropriately targets the latest stable combination for code coverage.

One minor suggestion: add an inline comment for PostgreSQL 17 to explicitly note that all PostGIS versions (3.4, 3.5, 3.6) are available, which would improve clarity and prevent future confusion about why no exclusions exist for that PostgreSQL version.

Proposed comment enhancement:

         exclude:
           # PostgreSQL 16: Docker images support only for PostGIS 3.4, 3.5
           - postgres: '16'
             postgis: '3.6'
+          # PostgreSQL 17: Docker images support all PostGIS versions (3.4, 3.5, 3.6)
           # PostgreSQL 18: Docker images support only for PostGIS 3.6
           - postgres: '18'
             postgis: '3.4'
           - postgres: '18'
             postgis: '3.5'
📜 Review details

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between 4a02b1a and 49b41c1.

📒 Files selected for processing (1)
  • .github/workflows/integration-tests.yml (1 hunks)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (19)
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.4
  • GitHub Check: PostgreSQL 17 + PostGIS 3.5 + PHP 8.4
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.4
  • GitHub Check: PostgreSQL 18 + PostGIS 3.6 + PHP 8.2
  • GitHub Check: PostgreSQL 18 + PostGIS 3.6 + PHP 8.3
  • GitHub Check: PostgreSQL 17 + PostGIS 3.6 + PHP 8.2
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.3
  • GitHub Check: PostgreSQL 16 + PostGIS 3.5 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.6 + PHP 8.1
  • GitHub Check: PostgreSQL 17 + PostGIS 3.4 + PHP 8.1
  • GitHub Check: PHP 8.4 + Doctrine ORM latest + Doctrine Lexer 2.1
  • GitHub Check: PHP 8.3 + Doctrine ORM latest + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.2 + Doctrine ORM latest + Doctrine Lexer latest
  • GitHub Check: PHP 8.3 + Doctrine ORM 3.0 + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.3 + Doctrine ORM 2.18 + Doctrine Lexer 3.0
  • GitHub Check: PHP 8.2 + Doctrine ORM 2.14 + Doctrine Lexer latest
  • GitHub Check: PHP 8.1 + Doctrine ORM latest + Doctrine Lexer 3.0
  • GitHub Check: sloth
  • GitHub Check: wait-for-tests-worflows-before-upload
🔇 Additional comments (1)
.github/workflows/integration-tests.yml (1)

63-63: Alpine variant switch is appropriate and reduces image footprint.

The switch to alpine variant images (line 63) aligns with best practices for CI workflows, reducing both pull time and attack surface. The CI execution confirms compatibility across all non-excluded matrix combinations.

@coveralls
Copy link

Coverage Status

coverage: 95.62%. remained the same
when pulling 49b41c1 on pg18
into 8ac7a70 on main.

@martin-georgiev martin-georgiev merged commit f99623d into main Oct 21, 2025
74 of 75 checks passed
@martin-georgiev martin-georgiev deleted the pg18 branch October 21, 2025 14:39
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.

3 participants