GSoC 2026 first coding period

Hi all,
Don’t forget we have our first meeting in about 2 minutes

From tuesday meeting:

Week plan (for function pgr_foo):

Create the code skeleton to be used (in appropriate subdirectories).

  • sql: _foo.sql, foo.sql
  • src: foo.c, foo_process.cpp foo_driver.cpp
  • include: foo_process.h foo_driver.hpp

If possible:

  • doc: pgr_foo.rst
  • docqueries: foo.pg (can be empty) foo.result

My wish is that the skeleton compiles before the start of next week so we can start modifying it.

From the PRs I see 2 PR missing, one for each contributor that is doing 2 functions

I had time today to review the progress and prepare for the meeting where we add the code to the build and make it compile but the PRs still have only the sql files. (except mine)

That is, on your PRs they have the work you did while during the meeting and the demo copy/paste of the remaining files I also did during the meeting is missing.

This is like running a marathon: Average Speed: (2.6) to (3.5) mts/s
You don’t run a marathon by sitting down, then run 100mts in 10 seconds, then sit down, then run another 100mts in 10 seconds, to get that average speed.
You run the marathon by running all the time, maybe the speed is faster at the beginning than at the end because you are tired, but you keep a pace.

Remember we am not behind you, the only way for us to see your work is because you pushed it.

You wouldn’t be the first ones or the last ones that get a fail on the program on the second week.

Regards
Vicky

3 Likes

Hi Vicky,

I couldn’t properly catch up with the work earlier this week because I had exams and also needed to prepare for two exams scheduled for tomorrow.

I have now pushed the remaining skeleton structure changes that were discussed in the meeting. Some tests/CI checks are still failing at the moment, but I’m already working on fixing them and plan to resolve everything by tomorrow night.

Also, if there is any meeting planned for tomorrow (friday), I would really appreciate if it could be postponed because of the exams.
Sorry for the delay

@sakirr05
ok, meeting is usual monday at usual place and usual time.

1 Like

Hii @cvvergara ,

Following our last meeting where you suggested working on both algorithms in parallel, I wanted to confirm how I should structure the weekly plan on my GitHub wiki page.

My proposal had pgr_makeBiconnectedPlanar in Weeks 1–6 and pgr_makeMaximalPlanar in Weeks 7–12 sequentially. Since we’re now doing both in parallel, should I restructure the wiki plan to show combined milestones per week? For example:

  • Week 1: Core implementation files for both algorithms (SQL, C, C++ driver, HPP)

  • Week 2: Edge cases and testing for both

  • Week 3: …so on

I have made PRs for both and for makebiconnected done with basic implementation, Just wanted to know regarding github wiki page updates so I am aligned with the goals.

Thank you!

1 Like

First topic of the meeting will be then, review admin procedures, filling the wiki is part of it

1 Like

Hi all,

Dont forget we have a meeting in about an hour.
Regards
Vicky

2 Likes

Sakir and Regina are here. We are starting

Hi @cvvergara, @robe just a reminder that our meeting is scheduled for now. we are waiting for any moderator to start the meeting.

Hello all,

Sorry I could not be on the meeting on time.
(I am a habit person, last week was on Tuesday, and … start getting the wrong habit)

I will schedule for Your Tuesday 8:30 am (would be my 9pm Monday).
Let me know if its OK.

Please read bellow, its important, some reminders and a little bit of showing how I work to review your code.

week in progress:

  • Creation of PR for the week in progress, max time to be created is what ever comes first:
    • (UTC) Monday of the week
    • before our meeting
      note: (lucky you all) meeting is postponed then you still have time to create your PRs for the week.
  • Report on discourse, max time to be sent is (UTC) Sunday of the week.
    • All PR’s you created must be listed on the report.
    • For each branch: at least one PR, must be merged.

I am against making students work on weekends, weekends are for family, relaxing, doing what you like to do.
So rule of thumb for when I check on a weekend (like this weekend)

  • I don’t check commits done during weekends
  • If I leave a comment, I am not expecting the fix on the PR, but on next week’s PR

I have a check_students_status directory that has scripts does not consider weekends, for checking (when possible)

list commits of a PR

This is WIP, but here is a json snippet example

    {
      "authoredDate": "2026-06-08T15:36:25Z",
      "authors": [
        {
          "email": "your-email@example.com",
          "id": "",
          "login": "",
          "name": "mayurgalhate"
        }
      ],
      "committedDate": "2026-06-08T15:36:25Z",
      "messageBody": "",
      "messageHeadline": "update cmakelsit",
      "oid": "1d8253bee6a6acb425f1cd1688216a40b6f29c84"
    }

@Mayur You will need to fix your email on the commits, that will not be acceptable when doing the final PR to pgRouting repo

Then I can see what you are doing in the commit:

git show 1d8253bee6a6acb425f1cd1688216a40b6f29c84
commit 1d8253bee6a6acb425f1cd1688216a40b6f29c84
Author: mayurgalhate <your-email@example.com>
Date:   Mon Jun 8 15:36:25 2026 +0000

    update cmakelsit

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 69e97358c0..a7095e4357 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -78,7 +78,7 @@ include(pgr/Configure)
 set(DOXYGEN_MINIMUM_VERSION "1.7")
 set(SPHINX_MINIMUM_VERSION "4.0")
 set(POSTGRESQL_MINIMUM_VERSION "13")
-set(BOOST_MINIMUM_VERSION "1.74.0")
+set(BOOST_MINIMUM_VERSION "1.56.0")
 set(POSTGIS_MINIMUM_VERSION "3.0.0")

Then I Think “OMG he is modifying a file he should not touch, I need to check”

git diff upstream/develop 1d8253bee6a6acb425f1cd1688216a40b6f29c84 CMakeLists.txt

The diff comes empty, and I think “AHHHH, he modified it before and he is correcting that, good”

Checking Commits & dates

Its easier when its merged

Commits done on origin/mohit-2026-biconnected-planar from Monday to Friday (local author time)

Fri Jun 5 09:42:55 2026 - Fix docquery: restore cost column requirement for get_edges
Fri Jun 5 07:25:43 2026 - Fix CI License error: Re-add missing copyright headers
Fri Jun 5 07:15:56 2026 - Update locale: commit 708e33d9b
Fri Jun 5 07:14:24 2026 - Fix Sphinx warning: add biconnected to planar toctree
Fri Jun 5 07:09:06 2026 - Week 2: Add diagnostic logging, empty documentation and docquery stubs to resolve build warnings
Mon Jun 1 08:14:44 2026 - Week 2: PR creation
Mon Jun 1 08:02:01 2026 - Merge pull request #550 from Mohit242-bit/week1-biconnected

Reading comments:

My script also reads comments, and I exclude coderabbit comments

For example for PR #564 comments,

--- By cvvergara ---
I can not follow your line of thought with one commit

inline comments

This is WIP, but I can see the progress of any inline comment

here is a snippet of the JSON

    {
      "id": "PRR_kwDOCe-F9M8AAAABCOHElA",
      "state": "COMMENTED",
      "submitted_at": "2026-06-06T23:00:06Z",
      "author_login": "cvvergara",
      "comments": [
        {
          "thread_id": "PRRT_kwDOCe-F9M6HnIFo",
          "path": "doc/planar/pgr_makeBiconnectedPlanar.rst",
          "author_login": "cvvergara",
          "body": "You missed:\n- the index,\n- the `` around the function name\n- the `- Experimental\n- the availability\n\n```\n.. rubric:: Availability\n\n.. rubric:: Version 4.2.0\n\n* New experimental function.\n```\n\nIf possible add the section titles\nand use:\n[TBD]  = To be Defined",
          "created_at": "2026-06-06T23:00:06Z",
          "is_resolved": true,
          "is_outdated": true,
          "thread_comments": [
            {
              "author_login": "Mohit242-bit",
              "body": "Yes done",
              "created_at": "2026-06-07T03:31:17Z"
            }
          ]
        }
      ]
    },

So @Mohit242-bit made some changes, (that I need to go check)

          "is_resolved": true,
          "is_outdated": true,

Searching PR for the milestone

check_students_status has script that shows the date when you created the PR.

Showing 10 of 10 pull requests in pgRouting/GSoC-pgRouting that match your search

ID TITLE BRANCH STATUS CREATED AT
566 Week-2 pgr_maximumWeightedMatching mayurgalhate:week2-matching OPEN 2026-06-07T09:50:48Z
565 Week-2 pgr_maximumWeightedMatching mayurgalhate:week2-matching CLOSED 2026-06-01T17:53:42Z
564 Week 2: coreNumbers sakirr05:week2-coreNumbers MERGED 2026-06-01T17:05:22Z
563 Week 2: planarFaces sakirr05:week2-planarFaces MERGED 2026-06-01T16:59:29Z
562 Week-1 pgr_maximumWeightedMatching mayurgalhate:week1-matching1 MERGED 2026-06-01T15:18:22Z
560 Week 2: makemaximalPlanar Mohit242-bit:week2-maximal-planar MERGED 2026-06-01T14:20:42Z
558 Week 2: make biconnected planar Mohit242-bit:week2-biconnected MERGED 2026-06-01T14:15:55Z
557 week2 pgr_foo cvvergara:week2-my-pgr-foo OPEN 2026-06-01T14:08:48Z
554 Week 1 : pgr_makeMaximalPlanar Mohit242-bit:week1-maximal-planar MERGED 2026-05-28T17:10:48Z
550 Week-1 pgr_makeBiconnectedPlanar Mohit242-bit:week1-biconnected MERGED 2026-05-26T15:54:32Z

@Mayur :

  • I don’t understand whats happening, you closed the PR #565 that you opened Monday last week, instead of merging.
  • You opened a new PR on time for this week, but with last weeks title
  • There is no week2 report, so that makes it for me impossible to figure out what happened.
    I will proceed to merge it, tts your responsability to merge, but I think its better for me to merge, and you create a new branch based on the repo/branch.

Image of the before merge:

So please, try to keep a steady pace (aka work everyday) and don’t work on weekends.

I am now going to prepare the meeting for my tonight:

git fetch upstream

for each branch

git switch branch
git pull

check the status of the branch:

  • see what are the next possible steps
    • add comment in the week’s PR, if needed. (because it only applies to that branch)
      • of course if there is no branch, … then … hmmm where can I write it? ah, in my notebook, but then hmm … are they going to come to my house to read my notebook? hmmmm …
    • add to my list of topics for the meeting is something is general

Remember @Mayur is the only one that created a PR for this week, wrong title, but good timing, so I will start checking his code. I will use that PR that I merged, to write the comments.
(maybe the other PRs are created where I can write if needed)

Regards
Vicky

2 Likes

I don’t understand what is going on:

@Mayur was the only one that copied the correct files

from the demo I made during the meeting:

git diff --name-only develop 
include/drivers/demo_driver.hpp
include/process/demo_process.h
sql/dijkstra/_mydijkstra.sql
sql/dijkstra/mydijkstra.sql
src/dijkstra/demo_driver.cpp
src/dijkstra/demo_process.cpp
src/dijkstra/mydijkstra.c
tools/scripts/code_checker.sh

The majority have SQL right. good :slight_smile:

So the general problem is,

example 1

for example, for file include/drivers/demo_driver.hpp
then: include/drivers/whateverNameYouUsed_driver.hpp
must be there.

I do:

git diff --name-only develop upstream/mohit-2026-maximal-planar include/drivers/

I get

include/drivers/planar/makeMaximalPlanar_driver.h

instead of:

include/drivers/makeMaximalPlanar_driver.hpp

(and the corresponding .cpp file to be copied)

example 2

for example, for file include/process/demo_process.h

then
then: include/process/whateverNameYouUsed_process.hpp
must be there.

I do:

git diff --name-only develop upstream/mohit-2026-maximal-planar include/process/

and get nothing, so that was not copied.
(and the corresponding .cpp file to be copied)

Only @Mayur copied the corresponding cpp file for the process:

git diff --name-only develop upstream/mayur-2026  src/
src/max_flow/CMakeLists.txt
src/max_flow/maximumWeightedMatching.c
src/max_flow/maximumWeightedMatching_process.cpp
src/max_flow/maximum_weighted_matching_driver.cpp

So hmm.

example 3

The C file I copied … needs adjustments, anyway,
But I copied one that uses the originals from where I got the driver and process, so less adjustments I have to make :slight_smile:
You will just need to make more adjustments :slight_smile:

2 Likes

Hi vicky,

I saw your post about the demo file structure. I got one doubt,

For pgr_planarFaces I copied the file structure from isPlanar (since both are in the planar module). isPlanar uses a 2-layer pattern the .c file calls pgr_do_isPlanar() directly from isPlanar_driver.cpp, with no process layer in between. There is no include/process/ file for isPlanar, and no isPlanar_process.cpp in src/planar/. So I followed the same pattern for planarFaces.

For pgr_coreNumbers, I copied from betweennessCentrality (since both are in the metrics module). Same thing betweennessCentrality.c calls pgr_do_betweennessCentrality() directly, no process layer. So I did the same for coreNumbers.

But the demo you showed during the meeting used the 3-layer pattern with a process
file between .c and driver (like maxFlow does with pgr_process_maxFlow). I see both patterns exist in the codebase.

Should I restructure planarFaces and coreNumbers to use the 3-layer pattern (add _process.cpp and include/process/ header), or is the direct driver pattern used by isPlanar and betweennessCentrality OK to keep?

Thanks,
Sakir

Hi @cvvergara

I’m sorry I couldn’t attend today’s meeting. I live in the north-eastern
region of India and we had a heavy powercut due to monsoon weather it lasted till evening

I have my summer vacations going on so I’m completely free this entire week. Whenever it is feasible for you to do a show-and-tell for review of my PRs, please let me know on Discourse and I’ll join immediately.

Also, I got the meeting summary from @Mohit242-bit, I understand
the planar algorithms are on the older pattern and the new process-driver pattern should be followed going forward. I’ll restructure my code accordingly. My question on Discourse also covered this doubt, so i have the context now.

Thanks,
Sakir

Hey all sorry about today’s meeting. We are going to meet tomorrow at the same time.

1 Like

Hi @cvvergara, @robe just a reminder that our meeting is scheduled for now. we are waiting for any moderator to start the meeting.

Hi sorry
Regina and I had a my midnight and her 2 am conversation.
I am in the room now.

Gentle reminder

in 15 mintues we will have our meeting.

I will be in my living room, so please talk when you arrive, so I can come to my office