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

Add boostdep/1.75.0 recipe #2096

Merged
merged 15 commits into from
Jan 9, 2021
Merged

Conversation

madebr
Copy link
Contributor

@madebr madebr commented Jun 30, 2020

Specify library name and version: boostdep/1.73.0

Tool to generate dependency information of boost
@SSE4

  • I've read the guidelines for contributing.
  • I've followed the PEP8 style guides for Python code in the recipes.
  • I've used the latest Conan client version.
  • I've tried at least one configuration locally with the
    conan-center hook activated.

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 1 (b772cd60e77b86e400b2e2885c176eab52844ee2):

  • Linux x86_64, Release, gcc 5, libstdc++
    • Hooks errors detected:
      • [HOOK - conan-center.py] post_package(): ERROR: [PACKAGE LICENSE (KB-H012)] No 'licenses' folder found in package: /home/conan/workspace/onan-center-pull-request_PR-2096/1/pr_2096_1_0_0/.conan/data/boostdep/1.73.0/_/_/package/90ee443cae5dd5c1b4861766ac14dc6fae231a92 (https://github.com/conan-io/conan-center-index/wiki/Error-Knowledge-Base#KB-H012)
    • Log download
    • Log error Download
    • Profile
  • Access to all the logs

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 2 (44678ebddf5864108ed2ee6b4924a3350f753708):

@madebr
Copy link
Contributor Author

madebr commented Jun 30, 2020

This is a executable only recipe,
so it should only be built in Release/MT runtime configuration, for one compiler version

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 3 (d7bee49cb7e905e1858c29235dbc4ee0be570675):

@conan-center-bot
Copy link
Collaborator

Failure in build 4 (020e62d162c22d5be40a99af4387e76803db6678):
boostdep/1.73.0:

  • Error processing recipe: Linux x86_64, Release, gcc 5, libstdc++
    Unexpected error happened:
ERROR: 'ConanInfo' object has no attribute 'settings'

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 5 (186224be711914b9573aeff599b0f765448f00d1):

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 6 (92fba5c4bfc9e38dc041c40895c295c67da70469):

@prince-chrismc
Copy link
Contributor

Instead of producing the binary, could we package the dependency yaml? The package info would be accessible by the boost project

boostdeps -> dependency.yml -> boost

@madebr
Copy link
Contributor Author

madebr commented Jul 1, 2020

@prince-chrismc

boostdeps -> dependency.yml -> boost

That's what I am doing in #2097 (see its recipes/boost/all/rebuild-dependencies.py )
I thought it was useful to create a boostdep package for this purpose.

@prince-chrismc
Copy link
Contributor

Yes I saw that, I am suggesting moving it here! And the dependencies-{version}.yml is output from this recipe

@madebr
Copy link
Contributor Author

madebr commented Jul 1, 2020

Yes I saw that, I am suggesting moving it here! And the dependencies-{version}.yml is output from this recipe

This has plusses and minuses.

plusses

  • This boostdep recipe has no other purpose then providing the dependency tree of boost, so why not make it more useful.
  • The dependency generator script is tested on CI and has less chance to bitrot
  • Run the generation of the dependency files on CI => more assurance that the generated files are not altered manually

minusses

  • The boost recipe then would have a dependency on boostdep. But this recipe requires boost. So a dependency cycle is created.
  • Also, we'd still want to test the generated dependency files. So a rebuild of boost is required to test.
  • Isn't it weird to require a rebuild of boostdep to have a change in behavior of boost components?

I prefer the current method of having a separate boostdep recipe and running
python3 rebuild-dependencies.py -A manually inside the recipes/boost/all directory.

But let's hear for other opinions.

@prince-chrismc
Copy link
Contributor

So a dependency cycle is created.

That sounds painful!

So a rebuild of boost is required to test.

And there's the pain.

This: find_package(Boost) in boostdep is a little frustrating.

I noticed the requires but I was under the impression the tool was more standalone. Now looking at it again, I see the tool needs a copy of boost to build, which explains you approach.

@madebr
Copy link
Contributor Author

madebr commented Jul 20, 2020

@uilianries @danimtb @SSE4 @jgsogo
Can I get some reviews?

return "build_subfolder"

def requirements(self):
self.requires("boost/1.70.0")
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
self.requires("boost/1.70.0")
self.requires("boost/1.73.0")

boostdep is 1.73, but its requirement is 1.70 ?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

boostdep is not really using latest boost features.
I lowered the version to enable bootstrapping for a newer boost version,
but I think it does not matter as you can always override the version.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Probably users will override it. Aligning the version will avoid the warning message related to version overriding.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Or that was the reason: #2096 (comment)
😆

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🤦 let's revert and keep 1.70

Co-authored-by: Uilian Ries <uilianries@gmail.com>
uilianries
uilianries previously approved these changes Jul 20, 2020
@uilianries uilianries requested review from danimtb and SSE4 July 20, 2020 20:49
@conan-center-bot
Copy link
Collaborator

Some configurations of 'boostdep/1.73.0' failed in build 7 (374e7502d9ab4e26e0645017f63297230f1b3249):

@prince-chrismc
Copy link
Contributor

I guess you'll have to first add the boost pr adding component support.
Then I will be able to use these components here.

is this still blocked by #2097

@madebr
Copy link
Contributor Author

madebr commented Nov 23, 2020

I guess you'll have to first add the boost pr adding component support.
Then I will be able to use these components here.

is this still blocked by #2097

No because it doesn't use cmake_find_package.
This makes this recipe only work with cmake versions that support the declared boost version though.

When #2097 gets added, then this can add cmake_find_package.

boost and boostdep won't become a dependency cycle, as it's the dependency generator script of boost that requires boostdep, not boost itself.

prince-chrismc
prince-chrismc previously approved these changes Nov 23, 2020
@madebr madebr dismissed stale reviews from prince-chrismc and SSE4 via 1264ab7 December 12, 2020 13:07
@conan-center-bot
Copy link
Collaborator

All green in build 13 (1264ab722ab56ac8a7b610e99d5152905d120478)! 😊

  • boostdep/1.74.0: Generated 3 packages (+ 3 invalid config from build()). All logs here

prince-chrismc
prince-chrismc previously approved these changes Dec 12, 2020
Comment on lines 45 to 46
if self.settings.build_type != "Release":
raise ConanInvalidConfiguration("Only Release built_type supported")
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
if self.settings.build_type != "Release":
raise ConanInvalidConfiguration("Only Release built_type supported")

Is there a reason to remove Release builds? We finally decided to keep the Debug builds just in case someone wants to debug those binaries.

Copy link
Contributor Author

@madebr madebr Dec 14, 2020

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No this was done just for reducing the number of builds.
I will modify the recipe to make it look like other installer recipes.

@conan-center-bot
Copy link
Collaborator

All green in build 14 (f7f8440bae81d97606ecad23712ce917d6fdb98e)! 😊

prince-chrismc
prince-chrismc previously approved these changes Dec 14, 2020
@madebr madebr changed the title Add boostdep/1.73.0 recipe Add boostdep/1.75.0 recipe Dec 14, 2020
@madebr madebr mentioned this pull request Dec 15, 2020
4 tasks
recipes/boostdep/all/conanfile.py Outdated Show resolved Hide resolved
@conan-center-bot
Copy link
Collaborator

All green in build 15 (ce36973f57b958564a87c570e39d3acb776eadb5)! 😊

@conan-center-bot conan-center-bot merged commit 1300210 into conan-io:master Jan 9, 2021
@madebr madebr deleted the boostdep_recipe branch January 10, 2021 00:19
@madebr
Copy link
Contributor Author

madebr commented Jan 10, 2021

Has anyone tried to run the rebuild-dependencies.py script of boost btw?

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

Successfully merging this pull request may close these issues.

8 participants