Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change Boost min version to 1.56 #1850

Closed
6 tasks done
cvvergara opened this issue Jan 13, 2021 · 9 comments
Closed
6 tasks done

Change Boost min version to 1.56 #1850

cvvergara opened this issue Jan 13, 2021 · 9 comments
Assignees
Labels
Milestone

Comments

@cvvergara
Copy link
Member

cvvergara commented Jan 13, 2021

Problem

  1. Due to 1.53, 1.54, 1.55 Boost's geometry lack of some functionality,
    Code from boost had to be ported to pgRouting repository here
  2. Boost Graph which is used intensively evolves rapidly with new functions that can be added to pgRouting. Normally GSoC students choose which functions from Boost Graph to implement which might not be on the minimum version.

Improvement

As the continuation of #1817 (which is porting the changes from #1831)
For 3.2:

  • Change Boost min version to 1.56

  • If a Boost version 1.X does not have provide the requirements of a pgRouting function pgr_foo then:

    • The pgr_foo SQL code needs to return an error message stating which minimum version of Boost is needed to work
    • functions that exist and work on pgRouting 3.1should continue working on 3.2
  • While Boost min version is less than 1.75

    • C++ standard to be the same minimum as required in Boost graph / geometry
      • C++ standard for pgRouting = max(BoostMin_Graph, BoostMin_Geometry)
      • example, for 1.75, boost graph needs c++03 and boost Geometry needs c++14, so C++14 is the version to use for Boost1.75
    • see this discussion
    • see this deprecation PR
  • TODO (what I can think as global things at this moment in time)

    • set actions for Boost min version to start from 1.56
    • remove boost code copy of the repository
    • Set conditional testing on functions based on Boost versions
    • Set code to be compiled based on Boost version
    • Make functions to return error when the needed boost version does not exist
    • Document changes
@cvvergara cvvergara added this to the Release 3.2.0 milestone Jan 13, 2021
@chenrui333
Copy link

👋 just heads up, due to the boost compatibility issue, I have closed the pgrouting 3.1.2 upgrade in the homebrew side.

@sanak
Copy link
Member

sanak commented Jan 17, 2021

@chenrui333
Thanks for information and sorry for closing the following issue on the Homebrew/homebrew-core repository...

@dkastl @cvvergara (CC: @chenrui333)
Could you check whether pgRouting license is GPL-2.0-only or GPL-2.0-or-later ?
(Related with Homebrew/homebrew-core#69231.)

Well, about pgRouting Homebrew update, brew audit --strict pgrouting reported the following, but should we apply GPL-2.0-only or GPL-2.0-or-later ?

$ brew audit --strict pgrouting
:
pgrouting:
  * Formula pgrouting contains deprecated SPDX licenses: ["GPL-2.0"].
    You may need to add `-only` or `-or-later` for GNU licenses (e.g. `GPL`, `LGPL`, `AGPL`, `GFDL`).
    For a list of valid licenses check: https://spdx.org/licenses/
Error: 1 problem in 1 formula detected

@chenrui333
Copy link

yeah, the licensing thing is based on my interpretation with the license header declarations.

@chenrui333
Copy link

@sanak regarding closing the PR (I am not quite sure what would be the boost library that I can use with for pgrouting 3.1.2)

@sanak
Copy link
Member

sanak commented Jan 17, 2021

@chenrui333
Well, latest (=current) boost 1.75.0 is not compatible with current released pgRouting 3.1.2, so I think that the followings are possible.

  • Quick: depends not boost (latest), but [email protected]
  • Not quick but quite soon: wait for next pgRouting 3.1.3

The fix was already merged, so we can build it without changes by brew install --HEAD pgrouting.

@chenrui333
Copy link

yeah, I can give a try with [email protected] and then wait for the next release for pgrouting 3.1.3. :)

@chenrui333
Copy link

[email protected] is disabled, so i have to wait for the next release.

krashish8 added a commit to krashish8/pgrouting that referenced this issue Jan 23, 2021
@cvvergara
Copy link
Member Author

Changes done:

if the boost version >= "1.75.0"
   Use c++14 standard
else   
    Set to use c++11 if the compiler supports it
    else Set to use c++0x if the compiler supports it
    else Use the compiler as is. For example on MSVC 

krashish8 added a commit that referenced this issue Jan 23, 2021
* [ci] Add GitHub Actions release script

* Update Sphinx version in requirements.txt

* Update NEWS, release_notes and notes2news

* Fetching and rebasing before push

* Revert "Update Sphinx version in requirements.txt"

This reverts commit afe4a8a.

* Added Sphinx and sphinx-bootstrap-theme in yml file

* Change #1825 to #1850 in release_notes
@cvvergara cvvergara self-assigned this Jan 23, 2021
@chenrui333
Copy link

yeah, I can give a try with [email protected] and then wait for the next release for pgrouting 3.1.3. :)

3.1.3 works for me and merged in Homebrew/homebrew-core#69644

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants