PgRouting - Contraction Hierarchies

Still cant merge, lets go to gitter chat

Sorry, I was not in front of my computer, can we see together tomorrow?

Yes same time.

Meeting about contraction Hierarchies today:
In pgrouting room we will start in 20 minutes.

GSoC students are welcome to listen.

@AuBousquet

Too many force pushes on the PR you made to my fork and its for develop.
Could not even start the tests, which they worked before so I dont think there is a problem.

Can you change the name of the branch and make the PR to the main repository
Suggested name:
issue-2882-code-reorganization-on-pgr_contraction

Remember: make the code change in main branch as we want your development in v3.8.0.

I suppose you havent seen my messges.
I will be on a show and tell.
Please Join if you can and I will switch to your work

Hi @cvvergara,

I finished the work and function pgr_contractionHierarchies today.

I pushed three PRs on the main repository :

  • one to reorganize the code of the contraction module;
  • a second one to fix details that had been forgotten when the documentation of the module was reorganized;
  • a third one with adaptations of the test scripts.

Finally, I push one more PR to your repository with the main development of the pgr_contractionHierarchies function.

I hope it is clear and answers to your expectations.

Regards.

Aurélie Bousquet

Hi @AuBousquet

Had to do additional work on the PR 2844.

  • The code is supposed to go to main repository.

  • And there is a file where a many lines were changed because of formatting (loosing the history of the original developer).

  • The PR 2853 to main:
    Now the commit 26d5437b basically has the least changes. (You are authored, I am just committer)

And we use code rabbit so some changes had to be done. as you can see on these list of commits

The PR 2854 to develop is just administrative that cherry picks commits from the PR to main, with the difference that the additional commits I made I just squashed them into 1 commit.

About PR 2856 “Fixing contraction documentation”: Those aren’t fixes those are attempts to promote the functions to become official. We have the policy of new functions to enter as proposed when they are a derivative of some other function In this case they both use the _pgr_contraction code. To make them official they need a motion from the PSC. So they are still proposed as many others until we get a vote for promotion to official.

Also functions that are not based on already existing functions in the project come as experimental. And a vote for promotion to proposed is needed, then a vote to convert to official is needed after that.

About PR 2843 you are complicating all the lines.
Just a new example on how to pass an specific location of the pg_config file is sufficient. Otherwise in all examples of the cmake lines its missing everything, the build documentation, all the languages we handle all, the type of build etc.
The user is to copy the run.sh & taptest.sh to their root repository (not to the build repository) and use/adjust them as they see fit to their operative system. (and your changes caused the shell check to fail)

So I converted to draft, waiting for a simple example of add the specific path to pg_config and removing my name. (Do not force push, at the end it will be squashed)

Regards
Vicky

Hi @cvvergara,
Thank you for your answer and your work to make my contribution in line with the project.

I made the modifications you asked in PR 2843 and asked you a new review. I pushed force (sorry!) before finishing to read your comment.

Concerning the main PR, can you explain me where I should push it to conclude this work? On your fork or on the main one of PgRouting? On the master or on the develop branch?

I understand it should be on the develop one, but want to be sure.

Thanks in advance for your answer.
Regards,
Aurélie BOUSQUET

Hi @AuBousquet

Thanks for the PR towards develop branch (aka v4.0.0).

We want to include your work in version 3.8.0 (aka master)
We are on a fast pace working on 4.0.0 and now the PR has conflicts.

The way I will work (like I did with your other PR):

  • cherry-pick from the branch from your repository and fix conflicts with version 3.8.0 (aka main)
  • Fix issues
  • Make PR to main branch
  • Merge
  • cherry-pick from main branch and fix conflicts with version 4.0.0 (aka develop)
  • Make PR to develop branch
  • Merge
  • Close your PR in favor of the PR done to develop

Things I will be fixing:

pgr_contractionHierarchies fixes

sql:

  • Order of optional parameters: “directed” is first
  • forbidden_vertices → forbidden

General fixes:

  • Fixing licenses
  • Removed trailing spaces on files
  • Adjust to parameters names and order

pgtap:

  • The function is new on 3.8.0
  • Adjusting plans and skip message

build:

  • Adding pgr_contractionHierarchies signatures in 3.8

doc queries:

  • Capitalizing postgreSQL key words

Doc:

  • Added Experimental keyword

Fixing C/C++ warnings:

  • template-id not allowed for constructor in C++20 [-Wtemplate-id-cdtor]
  • no member named remove_edge in namespace boost [clang-diagnostic-error]
  • no member named make_iterator_range in namespace boost [clang-diagnostic-error]

Regards