GSoC 2026 Week 9 Report: Implementation of Planar Face Extraction and K-Core Decomposition Algorithms to pgRouting

Md Sakir Ahmed
Github id: sakirr05
Mentors: @cvvergara, @robe
Organization: OSGeo / pgRouting
OSGeo Profile: OSGeo Profile Link
Project Wiki: Github Wiki Link
Repository: Repo Link

Hello everyone,

This is my ninth weekly report of Official coding period for GSoC 2026

Week 9 Report (20 July ~ 26 July)

What did I get done this week?

pgr_coreNumbers - PR #602:

  • Followed up on the Discourse thread about parallel edges. @cvvergara pointed at insert_min_edges_no_parallel which prim already uses, so I used that in coreNumbers_driver.cpp instead of writing something new
  • Before this, 2 parallel edges gave both vertices core 2 and 3 gave core 3. Now they collapse to one edge and both come out core 1, which is what k-core should do
  • Checked it did not break other cases, K4 still all core 3, sampledata id < 10 unchanged
  • pgtap 25 → 26, rewrote the 2 parallel edge test and added one for 3. Also documented it in the rst

Develop sync - PR #611:

  • Merged develop into both branches, 62 files, mostly the components refactor that drops the individual driver files
  • planarFaces had conflicts but only in the two locale files, nothing in real code. coreNumbers merged clean
  • Rebuilt and reran pgtap on both after, coreNumbers 92 and planar 153 all pass

Git exercise - PR #615:

  • The exercise the mentors gave. git rm on bridges_driver.cpp and makeConnected_driver.h, one commit each, then restored bridges.c from develop with git checkout pgrouting/develop -- <file>
  • Those files are already gone upstream after the refactor, so once the integration branch had develop merged in the PR ended up as 0 diff

Am I blocked on anything?

No

References:

1] Link to wiki page:
wiki page

2] Link to github repository:
github repository

3] Link to pull requests:
- PR #602 coreNumbers (Week 9)
- PR #611 develop sync
- PR #615 git exercise (Week 9)