Skip to content

Conversation

@cvvergara
Copy link
Member

@cvvergara cvvergara commented Nov 6, 2025

Pump up to v4.0.0

This is the final release
Any problems will go to micro releases

@pgRouting/admins

Summary by CodeRabbit

  • Chores
    • Released version 4.0.0 as the stable release, transitioning from release candidate status.

@cvvergara cvvergara added this to the Release 4.0.0 milestone Nov 6, 2025
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Nov 6, 2025

Walkthrough

This pull request finalizes the project version by removing the "-rc1" release candidate suffix from the development version identifier. Changes propagate through the CMake configuration and corresponding test result files, updating the version string from "4.0.0-rc1" to "4.0.0".

Changes

Cohort / File(s) Summary
Version Configuration
CMakeLists.txt
Removes "-rc1" suffix by setting PROJECT_VERSION_DEV to an empty string, transitioning from pre-release to stable version identifier
Test Result Updates
docqueries/version/full_version.result, docqueries/version/version.result
Updates expected version output from "4.0.0-rc1" to "4.0.0" to reflect the finalized stable release version

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~5 minutes

  • All changes are homogeneous version string updates with no logic modifications
  • Straightforward removal of release candidate suffix across configuration and test files

Possibly related PRs

Suggested reviewers

  • robe2

Poem

🐰 The "-rc1" hops away at last,
Four-point-oh shines bold and vast,
From candidate to stable ground,
A finished release we've found! 🎉

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 title 'Pump up to v4.0.0' clearly and concisely summarizes the main change: bumping the project version from 4.0.0-rc1 to the final 4.0.0 release, which is exactly what the changeset accomplishes across CMakeLists.txt and all version result files.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
✨ Finishing touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment

📜 Recent review details

Configuration used: CodeRabbit UI

Review profile: ASSERTIVE

Plan: Pro

📥 Commits

Reviewing files that changed from the base of the PR and between e3d3ecb and 0b54ff6.

📒 Files selected for processing (3)
  • CMakeLists.txt (1 hunks)
  • docqueries/version/full_version.result (1 hunks)
  • docqueries/version/version.result (1 hunks)
🧰 Additional context used
🧠 Learnings (20)
📓 Common learnings
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: .github/workflows/update.yml:132-133
Timestamp: 2025-09-14T17:22:22.313Z
Learning: In pgRouting, when testing extension updates in workflows, the target version should be the normalized major.minor.patch format (e.g., "4.0.0") even for pre-release versions like 4.0.0-alpha1, because the extension is installed with the normalized version number regardless of source version suffixes.
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: .github/workflows/boost_version.yml:134-135
Timestamp: 2025-09-14T16:43:16.715Z
Learning: In pgrouting, the installed PostgreSQL extension version is normalized to major.minor.patch format (e.g., "4.0.0") regardless of any pre-release suffixes like -alpha1, -beta, or -rc that are used in the source/build versioning. Database setup scripts should use the normalized version format.
📚 Learning: 2025-01-19T13:17:02.243Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2723
File: tools/developer/run.sh:62-68
Timestamp: 2025-01-19T13:17:02.243Z
Learning: For pgRouting project, CMake configuration comments should be kept minimal and concise, avoiding extensive explanations of build options and configurations.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-09-14T16:43:16.715Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: .github/workflows/boost_version.yml:134-135
Timestamp: 2025-09-14T16:43:16.715Z
Learning: In pgrouting, the installed PostgreSQL extension version is normalized to major.minor.patch format (e.g., "4.0.0") regardless of any pre-release suffixes like -alpha1, -beta, or -rc that are used in the source/build versioning. Database setup scripts should use the normalized version format.

Applied to files:

  • CMakeLists.txt
  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-09-14T17:22:22.313Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: .github/workflows/update.yml:132-133
Timestamp: 2025-09-14T17:22:22.313Z
Learning: In pgRouting, when testing extension updates in workflows, the target version should be the normalized major.minor.patch format (e.g., "4.0.0") even for pre-release versions like 4.0.0-alpha1, because the extension is installed with the normalized version number regardless of source version suffixes.

Applied to files:

  • CMakeLists.txt
  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-04-25T02:12:17.271Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2871
File: include/drivers/transitiveClosure/transitiveClosure_driver.h:45-49
Timestamp: 2025-04-25T02:12:17.271Z
Learning: The pgRouting project avoids using named parameters in C header files to prevent conflicts with Doxygen documentation.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-04-24T23:34:23.099Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2868
File: NEWS.md:46-47
Timestamp: 2025-04-24T23:34:23.099Z
Learning: For pgRouting, NEWS.md should be updated using the generator script (tools/release-scripts/notes2news.pl) rather than edited directly, which is the correct procedure that the project maintainers follow.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-09-14T17:29:04.360Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: CMakeLists.txt:96-104
Timestamp: 2025-09-14T17:29:04.360Z
Learning: In pgRouting, BOOST_THREAD_LIBRARIES is referenced in CMakeLists.txt but the project doesn't actually use Boost threading functionality in the source code, so the LINK_LIBRARIES(${BOOST_THREAD_LIBRARIES}) line should be removed as unused legacy code.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-02-27T23:03:08.160Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2771
File: locale/en/LC_MESSAGES/pgrouting_doc_strings.po:4407-4419
Timestamp: 2025-02-27T23:03:08.160Z
Learning: In the pgRouting project, locale files (.po files) should not be manually edited as they are managed through automated localization tools.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-09-14T17:29:04.360Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: CMakeLists.txt:96-104
Timestamp: 2025-09-14T17:29:04.360Z
Learning: In pgRouting CMakeLists.txt, the project does not use the Boost thread component, so LINK_LIBRARIES(${BOOST_THREAD_LIBRARIES}) should be removed rather than adding COMPONENTS thread to find_package(Boost).

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-01-27T01:49:25.212Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 0
File: :0-0
Timestamp: 2025-01-27T01:49:25.212Z
Learning: pgRouting version checks in tests:
- Use min_version() for SQL API changes
- Use min_lib_version() for C/C++ library changes
- Adjust test plans based on version conditions

Applied to files:

  • CMakeLists.txt
  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-04-22T22:41:34.709Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2864
File: NEWS.md:47-50
Timestamp: 2025-04-22T22:41:34.709Z
Learning: In pgRouting, NEWS.md is a generated file created by the tools/release-scripts/notes2news.pl script and should not be modified manually.

Applied to files:

  • CMakeLists.txt
📚 Learning: 2025-05-22T03:27:15.287Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2896
File: pgtap/ksp/withPointsKSP/types_check.pg:29-0
Timestamp: 2025-05-22T03:27:15.287Z
Learning: In pgRouting's pgtap tests, messages like "pgr_withPointsKSP testing only valid signatures on 4.0.0" are standard skip messages used when testing is skipped for versions below a certain threshold (typically 3.6.0), even though the wording might suggest the opposite condition.

Applied to files:

  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-02-27T23:09:12.162Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2771
File: doc/topology/pgr_extractVertices.rst:28-35
Timestamp: 2025-02-27T23:09:12.162Z
Learning: In pgRouting documentation, historical version entries should be maintained in reverse chronological order (newest first) to provide context about the evolution of functions over time.

Applied to files:

  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-02-27T16:42:23.807Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2764
File: doc/withPoints/pgr_withPoints.rst:30-35
Timestamp: 2025-02-27T16:42:23.807Z
Learning: For pgr_withPoints, the original function was proposed in version 2.2.0, while the Combinations signature overload was added in version a3.2.0.

Applied to files:

  • docqueries/version/version.result
📚 Learning: 2025-05-22T03:27:15.287Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2896
File: pgtap/ksp/withPointsKSP/types_check.pg:29-0
Timestamp: 2025-05-22T03:27:15.287Z
Learning: In pgRouting's pgtap tests, messages like "pgr_withPointsKSP testing only valid signatures on 4.0.0" are standard skip messages used when testing only specific version signatures, even when the condition checks for versions below a certain threshold.

Applied to files:

  • docqueries/version/version.result
📚 Learning: 2025-02-27T23:08:14.497Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2771
File: doc/topology/pgr_degree.rst:28-35
Timestamp: 2025-02-27T23:08:14.497Z
Learning: In the pgRouting documentation, historical version notes should be retained to show the evolution of functions across different versions.

Applied to files:

  • docqueries/version/version.result
  • docqueries/version/full_version.result
📚 Learning: 2025-02-06T20:50:07.967Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2744
File: doc/src/release_notes.rst:94-94
Timestamp: 2025-02-06T20:50:07.967Z
Learning: In pgRouting, changes to functions can happen at two levels:
1. SQL level - removal/addition of function signatures
2. C/C++ level - deprecation/changes to the underlying implementation
These are documented separately in the release notes.

Applied to files:

  • docqueries/version/full_version.result
📚 Learning: 2025-09-14T16:56:27.138Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2970
File: .github/workflows/clang.yml:82-85
Timestamp: 2025-09-14T16:56:27.138Z
Learning: In pgRouting workflows, the PGDG testing suite (pgdg-testing) is used in testing workflows like clang.yml and ubuntu.yml to access more PostgreSQL versions including betas and development versions, while other workflows use the stable pgdg suite.

Applied to files:

  • docqueries/version/full_version.result
📚 Learning: 2025-04-25T15:12:03.608Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2874
File: doc/utilities/pgr_separateCrossing.rst:26-27
Timestamp: 2025-04-25T15:12:03.608Z
Learning: In pgRouting documentation, official functions don't include version information in their index entries (`:single:` directives). Only deprecated functions include when they were deprecated in the index entries.

Applied to files:

  • docqueries/version/full_version.result
📚 Learning: 2025-04-25T01:06:14.238Z
Learnt from: cvvergara
Repo: pgRouting/pgrouting PR: 2868
File: docqueries/contraction/contractionHierarchies.result:30-56
Timestamp: 2025-04-25T01:06:14.238Z
Learning: In the pgRouting project, files in the "docqueries" directory are not for testing purposes but for documentation example use. They show the output of functions exactly as users would see it, serving as illustrations in the documentation.

Applied to files:

  • docqueries/version/full_version.result
⏰ 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). (21)
  • GitHub Check: Codacy Static Code Analysis
  • GitHub Check: Build (56, 3.3.0)
  • GitHub Check: Build (56, 3.3.1)
  • GitHub Check: Build (56, 3.5.1)
  • GitHub Check: Build (56, 3.4.2)
  • GitHub Check: Build (56, 3.7.1)
  • GitHub Check: Build (56, 3.7.2)
  • GitHub Check: Build (56, 3.7.0)
  • GitHub Check: Build (56, 3.6.3)
  • GitHub Check: Build (56, 3.7.3)
  • GitHub Check: Ubuntu Boost (86)
  • GitHub Check: Ubuntu Boost (83)
  • GitHub Check: Ubuntu Boost (78)
  • GitHub Check: Ubuntu Boost (56)
  • GitHub Check: Ubuntu Boost (84)
  • GitHub Check: Ubuntu Boost (79)
  • GitHub Check: Ubuntu Boost (76)
  • GitHub Check: Ubuntu Boost (80)
  • GitHub Check: Ubuntu Boost (75)
  • GitHub Check: Ubuntu Boost (77)
  • GitHub Check: Ubuntu Boost (68)
🔇 Additional comments (3)
docqueries/version/version.result (1)

9-9: LGTM! Test result correctly updated.

The version string update from "4.0.0-rc1" to "4.0.0" is consistent with the CMakeLists.txt change and correctly reflects the expected output of pgr_version() for the final release.

docqueries/version/full_version.result (1)

7-9: LGTM! Test result correctly updated.

The version update from "4.0.0-rc1" to "4.0.0" is consistent with the CMakeLists.txt change. The header formatting adjustment and the library name "pgrouting-4.0.0" correctly reflect the expected PostgreSQL output for pgr_full_version() in the final release.

Based on learnings

CMakeLists.txt (1)

35-35: Version bump to final release is correct—no RC1 references found.

The verification confirms that the removal of the "-rc1" suffix from PROJECT_VERSION_DEV in CMakeLists.txt (line 35) has been properly applied throughout the codebase. No remaining references to "4.0.0-rc1" or "-rc1" exist in CMake files or version documentation.


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.

@cvvergara cvvergara requested a review from iosefa November 6, 2025 19:33
@cvvergara cvvergara merged commit 3571200 into pgRouting:main Nov 7, 2025
62 checks passed
@cvvergara cvvergara deleted the pumpup-to-v4.0.0 branch November 7, 2025 18:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants