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

boost: add boost/1.75.0 #3872

Merged
merged 22 commits into from
Dec 23, 2020
Merged

boost: add boost/1.75.0 #3872

merged 22 commits into from
Dec 23, 2020

Conversation

madebr
Copy link
Contributor

@madebr madebr commented Dec 12, 2020

Specify library name and version: boost/1.75.0

Fixes #3899: assertions are still here, but the options have correct(er) defaults
Fixes #3895: allow building with a static icu dependency (-o boost:i18n_backend=icu)
Fixes #3890: fix building with Android
Fixes #3869: libsuffix of a versioned layout is calculated correctly (:crossed_fingers:) now
Fixes #3867: define BOOST_(AS|SP)_USE_PTHREADS
Fixes #3863: this adds 1.75.0
Fixes #3522: this line has been changed by the layout change
Fixes #3205: test_package uses targets now
Fixes #1925: boost uses components now

  • The dependency generator needed a modification because boostdep emitted a circular dependency between math and random.
  • I've also modified the main conanfile bit: before, the code would emit an error when a circular dependency was detected. Now it passes through. Conan itself will complain when components have circular dependencies.
  • add json option + test json libary (json is also available header-only, but that is not tested)
  • fix layout suffix

  • 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 'boost/1.69.0' failed in build 1 (ceb127865a25e204659828fa0faf79f34d5a9a4a):

recipes/boost/all/test_package/conanfile.py Outdated Show resolved Hide resolved
recipes/boost/all/test_package/conanfile.py Outdated Show resolved Hide resolved
@conan-center-bot
Copy link
Collaborator

Some configurations of 'boost/1.69.0' failed in build 2 (ec8677bd88081f886fcc18ca1e2901f70288a499):

prince-chrismc
prince-chrismc previously approved these changes Dec 12, 2020
@conan-center-bot
Copy link
Collaborator

Failure in build 6 (f89b444cf24a6ca543da822b87ab002eac631d08):

  • Error processing recipe (ref 'boost/1.69.0'): Linux x86_64, Release, gcc 4.9, libstdc++ . Options: boost:shared-False
    Unexpected error happened:
ERROR: boost/1.69.0: Error in config_options() method, line 215
	self.options.without_json = True
	ConanException: option 'without_json' doesn't exist
Possible options are ['shared', 'header_only', 'error_code_header_only', 'system_no_deprecated', 'asio_no_deprecated', 'filesystem_no_deprecated', 'fPIC', 'layout', 'magic_autolink', 'diagnostic_definitions', 'python_executable', 'python_version', 'namespace', 'namespace_alias', 'multithreading', 'zlib', 'bzip2', 'lzma', 'zstd', 'segmented_stacks', 'debug_level', 'pch', 'extra_b2_flags', 'i18n_backend', 'without_atomic', 'without_chrono', 'without_container', 'without_context', 'without_contract', 'without_coroutine', 'without_date_time', 'without_exception', 'without_fiber', 'without_filesystem', 'without_graph', 'without_graph_parallel', 'without_iostreams', 'without_locale', 'without_log', 'without_math', 'without_mpi', 'without_program_options', 'without_python', 'without_random', 'without_regex', 'without_serialization', 'without_stacktrace', 'without_system', 'without_test', 'without_thread', 'without_timer', 'without_type_erasure', 'without_wave']

@conan-center-bot
Copy link
Collaborator

An unexpected error happened and has been reported. Help is on its way! 🏇

@conan-center-bot
Copy link
Collaborator

Failure in build 7 (fce828b58a396f2f77b341495cba33f1260fbe68):

  • Error processing recipe (ref 'boost/1.69.0'): Windows x86_64, Release, Visual Studio 14, MT. Options: boost:shared-False
    Unexpected error happened:
ERROR: boost/1.69.0: Error in config_options() method, line 209
	elif tools.Version(self.settings.compiler.version) < version_cxx11_standard:
	ConanException: Invalid version 'None'

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boost/1.75.0' failed in build 8 (2d6e2c3920e903888929c1bf2abf10fdc4750fd1):

@conan-center-bot
Copy link
Collaborator

An unexpected error happened and has been reported. Help is on its way! 🏇

@conan-center-bot
Copy link
Collaborator

Failure in build 22 (9e4b09674c03d9c4819e970e66d917c62cc43c53):

  • boost/1.73.0
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.69.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.69.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.70.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.70.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.71.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.71.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.72.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.72.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
  • boost/1.74.0
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.69.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.69.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.70.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.70.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.71.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.71.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.72.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.72.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
  • boost/1.75.0
    • Hooks errors detected:
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.69.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.69.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.70.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.70.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.71.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.71.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)
      • [HOOK - conan-center.py] pre_export(): ERROR: [CONFIG.YML HAS NEW VERSION (KB-H052)] The version "1.72.0" exists in "conandata.yml" but not in "../config.yml", so it will not be built. Please update "../config.yml" to include newly added version "1.72.0". (https://github.com/conan-io/conan-center-index/blob/master/docs/error_knowledge_base.md#KB-H052)

@conan-center-bot
Copy link
Collaborator

Failure in build 23 (cb23421c0d902e1997b43ac893d3e595b0500a4e):

  • Error processing recipe (ref 'boost/1.73.0'): Linux x86_64, Release, gcc 4.9, libstdc++ . Options: boost:shared-False
    Unexpected error happened:
ERROR: boost/1.73.0: Error in configure() method, line 241
	if self.settings.compiler != "VIsual Studio":
	ConanException: Invalid setting 'VIsual Studio' is not a valid 'settings.compiler' value.
Possible values are ['Visual Studio', 'apple-clang', 'clang', 'gcc', 'intel', 'qcc', 'sun-cc']
Read "http://docs.conan.io/en/latest/faq/troubleshooting.html#error-invalid-setting"

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boost/1.73.0' failed in build 24 (ca43764973a34195253f5950c5b99948351f4ccc):

@madebr
Copy link
Contributor Author

madebr commented Dec 22, 2020

@jgsogo

This is something to improve, and it is coupled with the refactor we are doing of all the CI. We run many nodes in parallel, when one of them fails we try to stop the rest asap, depending on the status of the interrupt signal, the rest of the jobs might be able to upload stdout/stderr logs or not,... or it can even result in those Unexpected errors... that are no help at all. We are working on it, little by little.

Thanks for the reply!

May I suggest to add a file/message in the logs/directory saying that a build is cancelled (+ the reason why)?
The last build failed (correctly), but when looking at other logs, it is not directly clear to me why they have not finished.
Of course, I know that they are canceled, but some explicit message would be nice.

@conan-center-bot
Copy link
Collaborator

All green in build 25 (3303863b072dd0c34e557dced08490233f6d7860)! 😊

@conan-center-bot
Copy link
Collaborator

All green in build 26 (aaa7a89d83b3289da4e2cbba70bdcab5c234c37b)! 😊

@fpelliccioni
Copy link
Contributor

I am not a reviewer but this PR looks good to me.

@jgsogo
Copy link
Contributor

jgsogo commented Dec 23, 2020

I am not a reviewer but this PR looks good to me.

@fpelliccioni It is true that there are some official reviewers, but we'd love to have more. Even if your approval (right now) is not taken into account for the number of 3 required, for us, it is useful to know which people are contributing to reviews in case we want to add someone else. Feel free to approve/reject PRs, it is always useful.

@mathbunnyru
Copy link
Contributor

@fpelliccioni It is true that there are some official reviewers, but we'd love to have more. Even if your approval (right now) is not taken into account for the number of 3 required, for us, it is useful to know which people are contributing to reviews in case we want to add someone else. Feel free to approve/reject PRs, it is always useful.

I also approved for the same reason.

Copy link
Member

@uilianries uilianries left a comment

Choose a reason for hiding this comment

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

Not only a new release, but also a great improvement

@datalogics-kam
Copy link
Contributor

datalogics-kam commented Dec 23, 2020

We're still using apple-clang 10, and the guess of 12 for various support is a bit high; 10 still works. Can we put in this patch?

diff --git a/recipes/boost/all/conanfile.py b/recipes/boost/all/conanfile.py
index 1782b831..bac11c02 100644
--- a/recipes/boost/all/conanfile.py
+++ b/recipes/boost/all/conanfile.py
@@ -137,7 +137,7 @@ class BoostConan(ConanFile):
         return {
             "gcc": 6,
             "clang": 6,
-            "apple-clang": 12,  # guess
+            "apple-clang": 10,  # guess
             "Visual Studio": 14,  # guess
         }.get(str(self.settings.compiler))

@@ -147,7 +147,7 @@ class BoostConan(ConanFile):
         return {
             "gcc": 5,
             "clang": 5,
-            "apple-clang": 12,  # guess
+            "apple-clang": 10,  # guess
             "Visual Studio": 14,  # guess
         }.get(str(self.settings.compiler))

This was my build configuration:

Configuration:
[settings]
arch=x86_64
arch_build=x86_64
build_type=Release
compiler=apple-clang
compiler.cppstd=11
compiler.libcxx=libc++
compiler.version=10.0
os=Macos
os.version=10.9
os_build=Macos
[options]
boost:i18n_backend=icu
[build_requires]
[env]
DEVELOPER_DIR=/Applications/Xcode-10.3.app/Contents/Developer
MACOSX_DEPLOYMENT_TARGET=10.9

Boost reported:

    - std::fstream is moveable and swappable : yes

apple-clang 10 is clang 4.2: Wikipedia table

...and clang 4.2 definitely supports all of C++ 11: Cppreference compiler support tables.

ETA: Works means if I create a Conan package, the test_package builds and runs.

@conan-center-bot conan-center-bot merged commit 165420d into conan-io:master Dec 23, 2020
@mathbunnyru
Copy link
Contributor

@datalogics-kam I guess automatic merging was faster than you.
I suggest you create new PR, where you change the minimum apple-clang version for the one actually needed.
Also, removing the word "guess" would be great.

@datalogics-kam
Copy link
Contributor

@mathbunnyru No worries, I just thought up something more to test on our config today. I'll get that PR up shortly.

@madebr madebr deleted the boost_bump branch December 23, 2020 20:08
@madebr
Copy link
Contributor Author

madebr commented Dec 23, 2020

@datalogics-kam
The defaults are there for fiber, json and nowide.

The main problem that was haunting me is that b2 tests compiler features using the configured c++ version.
So if you don't set a compiler.cppstd, then it will use the default compiler c++ standard.

@datalogics-kam
Copy link
Contributor

datalogics-kam commented Dec 23, 2020

So if you don't set a compiler.cppstd, then it will use the default compiler c++ standard.

I think the real answer is for end users to set compiler.cppstd in their profiles. We're going to look into that at our company after the new year. Setting compiler.cppstd causes Conan to emit flags that set up the compilers, and I think that's a good thing.

I think it's reasonable for the recipe to check compiler.cppstd against the components that are turned on.

@jgsogo
Copy link
Contributor

jgsogo commented Dec 24, 2020

@datalogics-kam maybe this can give you some insights: conan-io/examples#73 It is a quick draft, but it shows how recipes could look like in the future.

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