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 component support to boost using boostdep #2097

Merged
merged 53 commits into from
Dec 12, 2020

Conversation

madebr
Copy link
Contributor

@madebr madebr commented Jun 30, 2020

Specify library name and version: boost/all

@SSE4 @grafikrobot
Please review this approach.


Discussion points:

  • How to handle the dependency information? As a separate yml? Add it to conandata.yml?
  • Only create components for the buildable boost modules (=those having libraries)? Or also create components for every thinkable boost module (those reported by boostdep)?
  • How to handle external dependencies (such as zlib/xz_utils/...)? Add them as a requirement to the global headers target? Or add them to those specific modules (allowed by creating components for every thinkable boost module)?

update 2020-07-22
Read #2097 (comment)



  • 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.

@uilianries uilianries mentioned this pull request Jun 30, 2020
4 tasks
@grafikrobot
Copy link
Contributor

Some questions:

  1. Does this handle the circular dependencies?
  2. Some of the code looks rather familiar.. As in close to code used in the Bincrafters modular Boost. If the codeis indeed from that you'll need to BSL attribute appropriately.
  3. Is use of experimental features allowed in CCI?

@SSE4
Copy link
Contributor

SSE4 commented Jun 30, 2020

@grafikrobot to answer question number 3 - yes, there are several experimental features we're already using a lot in conan-center, and the plan is to make then stable (non-experimental) ASAP, for instance:

  • conandata.yml
  • hooks
  • cppstd
  • components
  • cmake_find_package_multi generator

this doesn't apply to all features, but at least to features listed above (maybe something else, /cc @danimtb @uilianries )

@conan-center-bot
Copy link
Collaborator

Some configurations of 'boost/1.71.0' failed in build 1 (e7304b1959292df63f3ebf3bd4cede68c40aabe7):

@madebr
Copy link
Contributor Author

madebr commented Jul 1, 2020

@grafikrobot

1. Does this handle the circular dependencies?

Right now it only adds components for all buildable modules, given by boostdep --list-buildables.
These don't contain circular dependencies.

boostdep can break the circular dependencies for us by using boostdep --module-levels.
This gives very fine grained access to all boost components.
This would be very nice for the external depencies.
Right now, zlib/bzip2/lzma/zstd/icu are added as a dependency to the boost::headers component.
But using the finer grained approach, they can be added to those specific boost (header-only) libraries that require them.

Dependency tree when using --module-levels
(unknown): []
accumulators:
- array
- assert
- circular_buffer
- concept_check
- config
- core
- fusion
- iterator
- mpl
- numeric~conversion
- numeric~ublas
- parameter
- preprocessor
- range
- serialization
- static_assert
- throw_exception
- tuple
- type_traits
- typeof
algorithm:
- array
- assert
- bind
- concept_check
- config
- core
- exception
- function
- iterator
- mpl
- range
- regex
- static_assert
- throw_exception
- tuple
- type_traits
- unordered
align:
- assert
- config
- core
- static_assert
any:
- config
- core
- static_assert
- throw_exception
- type_index
- type_traits
array:
- assert
- config
- core
- static_assert
- throw_exception
asio:
- array
- assert
- bind
- chrono
- config
- core
- coroutine
- date_time
- function
- regex
- smart_ptr
- system
- throw_exception
- type_traits
- utility
assert:
- config
assign:
- array
- config
- core
- move
- mpl
- preprocessor
- ptr_container
- range
- static_assert
- throw_exception
- tuple
- type_traits
atomic:
- assert
- config
- static_assert
- type_traits
beast:
- asio
- assert
- bind
- config
- container
- core
- endian
- intrusive
- logic
- mp11
- optional
- smart_ptr
- static_assert
- system
- throw_exception
- type_traits
- utility
- winapi
bimap:
- concept_check
- config
- container_hash
- core
- iterator
- lambda
- mpl
- multi_index
- preprocessor
- property_map
- serialization
- static_assert
- throw_exception
- type_traits
- utility
bind:
- config
- core
callable_traits: []
chrono:
- assert
- config
- core
- integer
- move
- mpl
- predef
- ratio
- static_assert
- system
- throw_exception
- type_traits
- typeof
- utility
- winapi
circular_buffer:
- assert
- concept_check
- config
- core
- move
- static_assert
- throw_exception
- type_traits
compatibility: []
compute:
- (unknown)
- algorithm
- array
- assert
- chrono
- config
- core
- filesystem
- function
- function_types
- fusion
- iterator
- lexical_cast
- mpl
- optional
- preprocessor
- property_tree
- proto
- range
- smart_ptr
- static_assert
- thread
- throw_exception
- tuple
- type_traits
- typeof
- utility
- uuid
concept_check:
- config
- preprocessor
- static_assert
- type_traits
config: []
container:
- assert
- config
- container_hash
- core
- intrusive
- move
- static_assert
- type_traits
container_hash:
- assert
- config
- core
- detail
- integer
- static_assert
- type_traits
context:
- assert
- config
- pool
- predef
- smart_ptr
contract:
- any
- assert
- config
- core
- exception
- function
- function_types
- mpl
- optional
- preprocessor
- smart_ptr
- static_assert
- thread
- type_traits
- typeof
- utility
conversion:
- assert
- config
- core
- smart_ptr
- throw_exception
- type_traits
- typeof
convert:
- config
- core
- function_types
- lexical_cast
- math
- mpl
- optional
- parameter
- range
- spirit
- type_traits
core:
- assert
- config
coroutine:
- assert
- config
- context
- core
- exception
- move
- range
- system
- throw_exception
- type_traits
- utility
coroutine2:
- assert
- config
- context
crc:
- array
- config
- integer
- type_traits
date_time:
- algorithm
- assert
- config
- core
- io
- lexical_cast
- numeric~conversion
- range
- serialization
- smart_ptr
- static_assert
- throw_exception
- tokenizer
- type_traits
- utility
- winapi
detail:
- config
- core
- preprocessor
- static_assert
- type_traits
disjoint_sets:
- graph
dll:
- assert
- config
- core
- filesystem
- function
- move
- predef
- smart_ptr
- spirit
- static_assert
- system
- throw_exception
- type_index
- type_traits
- winapi
dynamic_bitset:
- assert
- config
- container_hash
- core
- integer
- move
- static_assert
- throw_exception
endian:
- config
- core
- static_assert
- type_traits
exception:
- assert
- config
- core
- smart_ptr
- throw_exception
- tuple
- type_traits
fiber:
- assert
- config
- context
- core
- intrusive
- predef
- smart_ptr
filesystem:
- assert
- config
- container_hash
- core
- detail
- io
- iterator
- smart_ptr
- system
- type_traits
flyweight:
- assert
- config
- container_hash
- core
- detail
- interprocess
- mpl
- multi_index
- parameter
- preprocessor
- serialization
- smart_ptr
- throw_exception
- type_traits
foreach:
- config
- core
- iterator
- mpl
- range
- type_traits
format:
- assert
- config
- core
- optional
- smart_ptr
- throw_exception
- utility
function:
- assert
- bind
- config
- core
- integer
- preprocessor
- throw_exception
- type_index
- type_traits
- typeof
function_types:
- config
- core
- detail
- mpl
- preprocessor
- type_traits
functional:
- config
- core
- function
- function_types
- mpl
- preprocessor
- type_traits
- typeof
- utility
fusion:
- config
- container_hash
- core
- function_types
- mpl
- preprocessor
- static_assert
- tuple
- type_traits
- typeof
- utility
geometry:
- (unknown)
- algorithm
- array
- assert
- concept_check
- config
- container
- core
- function_types
- fusion
- integer
- iterator
- lexical_cast
- math
- move
- mpl
- multiprecision
- numeric~conversion
- polygon
- qvm
- range
- rational
- serialization
- smart_ptr
- static_assert
- thread
- throw_exception
- tokenizer
- tuple
- type_traits
- utility
- variant
gil:
- (unknown)
- assert
- concept_check
- config
- core
- filesystem
- integer
- iterator
- mp11
- numeric~conversion
- preprocessor
- variant
graph:
- algorithm
- any
- array
- assert
- bimap
- bind
- concept_check
- config
- container_hash
- conversion
- core
- detail
- foreach
- function
- integer
- iterator
- lexical_cast
- math
- move
- mpl
- multi_index
- optional
- parameter
- preprocessor
- property_map
- property_tree
- random
- range
- serialization
- smart_ptr
- spirit
- static_assert
- throw_exception
- tti
- tuple
- type_traits
- typeof
- unordered
- utility
- xpressive
graph_parallel:
- assert
- concept_check
- config
- container_hash
- core
- detail
- dynamic_bitset
- filesystem
- foreach
- function
- graph
- iterator
- lexical_cast
- mpi
- mpl
- optional
- property_map
- random
- serialization
- smart_ptr
- static_assert
- tuple
- type_traits
- variant
hana:
- config
- core
- fusion
- mpl
- tuple
heap:
- array
- assert
- bind
- concept_check
- config
- intrusive
- iterator
- parameter
- static_assert
- throw_exception
- type_traits
histogram:
- assert
- config
- core
- mp11
- serialization
- throw_exception
- variant2
hof: []
icl:
- assert
- concept_check
- config
- container
- core
- date_time
- detail
- iterator
- move
- mpl
- range
- rational
- static_assert
- type_traits
- utility
integer:
- assert
- config
- core
- static_assert
- throw_exception
interprocess:
- (unknown)
- assert
- config
- container
- core
- date_time
- integer
- intrusive
- move
- static_assert
- type_traits
- unordered
- winapi
intrusive:
- assert
- config
- container_hash
- core
- move
- static_assert
io:
- config
iostreams:
- assert
- bind
- config
- core
- detail
- function
- integer
- iterator
- mpl
- preprocessor
- random
- range
- regex
- smart_ptr
- static_assert
- throw_exception
- type_traits
- utility
iterator:
- assert
- concept_check
- config
- conversion
- core
- detail
- function_types
- fusion
- mpl
- optional
- smart_ptr
- static_assert
- type_traits
- utility
lambda:
- bind
- config
- core
- detail
- iterator
- mpl
- preprocessor
- tuple
- type_traits
- utility
lexical_cast:
- array
- assert
- config
- container
- core
- integer
- math
- numeric~conversion
- range
- static_assert
- throw_exception
- type_traits
local_function:
- config
- mpl
- preprocessor
- scope_exit
- type_traits
- typeof
- utility
locale:
- assert
- config
- function
- iterator
- smart_ptr
- static_assert
- type_traits
lockfree:
- align
- array
- assert
- atomic
- config
- core
- integer
- iterator
- mpl
- parameter
- predef
- static_assert
- tuple
- type_traits
- utility
log:
- array
- assert
- atomic
- bind
- config
- container
- core
- date_time
- exception
- filesystem
- function_types
- fusion
- intrusive
- iterator
- lexical_cast
- locale
- move
- mpl
- optional
- parameter
- phoenix
- predef
- preprocessor
- property_tree
- proto
- range
- regex
- smart_ptr
- spirit
- static_assert
- system
- thread
- throw_exception
- type_index
- type_traits
- utility
- winapi
- xpressive
logic:
- config
- core
math:
- array
- assert
- atomic
- concept_check
- config
- core
- detail
- fusion
- integer
- lambda
- lexical_cast
- mp11
- mpl
- predef
- range
- smart_ptr
- static_assert
- throw_exception
- tuple
- type_traits
metaparse:
- config
- mpl
- predef
- preprocessor
- static_assert
- type_traits
move:
- assert
- config
- core
- static_assert
mp11: []
mpi:
- assert
- config
- core
- foreach
- function
- graph
- integer
- iterator
- mpl
- optional
- python
- serialization
- smart_ptr
- static_assert
- throw_exception
- type_traits
mpl:
- config
- core
- predef
- preprocessor
- static_assert
- type_traits
- utility
msm:
- any
- assert
- bind
- circular_buffer
- config
- core
- function
- fusion
- mpl
- parameter
- phoenix
- preprocessor
- proto
- serialization
- tuple
- type_traits
- typeof
multi_array:
- array
- assert
- concept_check
- config
- core
- functional
- iterator
- mpl
- static_assert
- type_traits
multi_index:
- assert
- bind
- config
- container_hash
- core
- foreach
- integer
- iterator
- move
- mpl
- preprocessor
- serialization
- smart_ptr
- static_assert
- throw_exception
- tuple
- type_traits
- utility
multiprecision:
- array
- assert
- atomic
- config
- container_hash
- core
- integer
- lexical_cast
- math
- mpl
- predef
- random
- rational
- smart_ptr
- static_assert
- throw_exception
- type_traits
nowide:
- config
- filesystem
- smart_ptr
- static_assert
numeric~conversion:
- config
- conversion
- core
- mpl
- preprocessor
- throw_exception
- type_traits
numeric~interval:
- config
- detail
- logic
numeric~odeint:
- (unknown)
- array
- assert
- bind
- compute
- config
- core
- function
- fusion
- iterator
- math
- mpi
- mpl
- multi_array
- numeric~ublas
- preprocessor
- range
- static_assert
- throw_exception
- type_traits
- units
- utility
numeric~ublas:
- (unknown)
- compute
- concept_check
- config
- core
- iterator
- mpl
- numeric~interval
- range
- serialization
- smart_ptr
- static_assert
- type_traits
- typeof
optional:
- assert
- config
- core
- detail
- move
- predef
- static_assert
- throw_exception
- type_traits
- utility
outcome:
- config
- exception
- system
- throw_exception
parameter:
- config
- core
- function
- fusion
- mp11
- mpl
- optional
- preprocessor
- type_traits
- utility
parameter_python:
- mpl
- parameter
- preprocessor
- python
phoenix:
- assert
- bind
- config
- core
- function
- fusion
- mpl
- predef
- preprocessor
- proto
- range
- smart_ptr
- type_traits
- utility
poly_collection:
- assert
- config
- core
- iterator
- mp11
- mpl
- type_erasure
- type_traits
polygon:
- config
pool:
- assert
- config
- integer
- throw_exception
- type_traits
- winapi
predef: []
preprocessor: []
process:
- algorithm
- asio
- config
- core
- filesystem
- fusion
- iterator
- move
- optional
- system
- tokenizer
- type_index
- winapi
program_options:
- any
- config
- core
- detail
- function
- iterator
- lexical_cast
- smart_ptr
- static_assert
- throw_exception
- type_traits
property_map:
- any
- assert
- bind
- concept_check
- config
- core
- function
- iterator
- lexical_cast
- mpi
- mpl
- multi_index
- optional
- serialization
- smart_ptr
- static_assert
- throw_exception
- type_traits
- utility
property_tree:
- any
- assert
- bind
- config
- core
- format
- iterator
- mpl
- multi_index
- optional
- range
- serialization
- static_assert
- throw_exception
- type_traits
proto:
- config
- core
- fusion
- mpl
- preprocessor
- range
- static_assert
- type_traits
- typeof
- utility
ptr_container:
- array
- assert
- circular_buffer
- config
- core
- iterator
- mpl
- range
- serialization
- smart_ptr
- static_assert
- type_traits
- unordered
- utility
python:
- bind
- config
- conversion
- core
- detail
- foreach
- function
- iterator
- lexical_cast
- mpl
- numeric~conversion
- preprocessor
- smart_ptr
- static_assert
- tuple
- type_traits
- utility
qvm:
- assert
- core
- exception
- static_assert
- throw_exception
random:
- assert
- config
- core
- dynamic_bitset
- integer
- io
- math
- mpl
- multiprecision
- range
- static_assert
- system
- throw_exception
- type_traits
- utility
range:
- array
- assert
- concept_check
- config
- container_hash
- core
- detail
- iterator
- mpl
- numeric~conversion
- optional
- preprocessor
- regex
- static_assert
- tuple
- type_traits
- utility
ratio:
- config
- core
- integer
- mpl
- rational
- static_assert
- type_traits
rational:
- assert
- config
- core
- integer
- static_assert
- throw_exception
- type_traits
- utility
regex:
- assert
- concept_check
- config
- container_hash
- core
- integer
- iterator
- mpl
- predef
- smart_ptr
- static_assert
- throw_exception
- type_traits
safe_numerics:
- concept_check
- config
- core
- integer
- logic
- mp11
scope_exit:
- config
- function
- preprocessor
- type_traits
- typeof
serialization:
- array
- assert
- config
- core
- detail
- integer
- io
- iterator
- move
- mpl
- optional
- predef
- preprocessor
- smart_ptr
- spirit
- static_assert
- type_traits
- unordered
- utility
- variant
signals:
- any
- config
- core
- function
- iterator
- mpl
- optional
- smart_ptr
- type_traits
- utility
signals2:
- assert
- bind
- config
- core
- function
- iterator
- mpl
- optional
- parameter
- predef
- preprocessor
- smart_ptr
- throw_exception
- tuple
- type_traits
- variant
smart_ptr:
- assert
- config
- core
- move
- static_assert
- throw_exception
- type_traits
sort:
- (unknown)
- config
- core
- range
- serialization
- static_assert
- type_traits
spirit:
- (unknown)
- array
- assert
- config
- core
- endian
- filesystem
- foreach
- function
- function_types
- fusion
- integer
- io
- iostreams
- iterator
- locale
- math
- move
- mpl
- optional
- phoenix
- pool
- preprocessor
- proto
- range
- regex
- smart_ptr
- static_assert
- thread
- throw_exception
- type_traits
- typeof
- unordered
- utility
- variant
stacktrace:
- array
- config
- container_hash
- core
- predef
- static_assert
- type_traits
- winapi
statechart:
- assert
- bind
- config
- conversion
- core
- detail
- function
- mpl
- smart_ptr
- static_assert
- thread
- type_traits
static_assert:
- config
static_string:
- assert
- container_hash
- static_assert
- throw_exception
- utility
system:
- config
- winapi
test:
- algorithm
- assert
- bind
- config
- core
- detail
- exception
- function
- io
- iterator
- mpl
- numeric~conversion
- optional
- preprocessor
- smart_ptr
- static_assert
- type_traits
- utility
thread:
- (unknown)
- assert
- atomic
- bind
- chrono
- concept_check
- config
- container
- container_hash
- core
- date_time
- exception
- function
- intrusive
- io
- iterator
- move
- optional
- predef
- preprocessor
- smart_ptr
- static_assert
- system
- throw_exception
- tuple
- type_traits
- utility
- winapi
throw_exception:
- assert
- config
timer:
- config
- core
- system
tokenizer:
- assert
- config
- iterator
- mpl
- throw_exception
- type_traits
tti:
- config
- function_types
- mpl
- preprocessor
- type_traits
tuple:
- config
- core
- static_assert
- type_traits
type_erasure:
- assert
- config
- core
- fusion
- iterator
- mp11
- mpl
- preprocessor
- smart_ptr
- throw_exception
- type_traits
- typeof
- vmd
type_index:
- config
- container_hash
- core
- preprocessor
- smart_ptr
- static_assert
- throw_exception
- type_traits
type_traits:
- config
- static_assert
typeof:
- config
- preprocessor
- type_traits
units:
- assert
- config
- core
- integer
- io
- lambda
- math
- mpl
- preprocessor
- serialization
- static_assert
- type_traits
- typeof
unordered:
- assert
- config
- container
- container_hash
- core
- detail
- move
- predef
- preprocessor
- smart_ptr
- throw_exception
- tuple
- type_traits
utility:
- config
- container_hash
- core
- io
- preprocessor
- static_assert
- throw_exception
- type_traits
uuid:
- assert
- config
- container_hash
- core
- io
- move
- numeric~conversion
- predef
- random
- serialization
- static_assert
- throw_exception
- tti
- type_traits
- winapi
variant:
- assert
- bind
- config
- container_hash
- core
- detail
- integer
- move
- mpl
- preprocessor
- static_assert
- throw_exception
- type_index
- type_traits
- utility
variant2:
- config
- mp11
vmd:
- preprocessor
wave:
- assert
- concept_check
- config
- core
- filesystem
- iterator
- lexical_cast
- mpl
- multi_index
- pool
- preprocessor
- serialization
- smart_ptr
- spirit
- static_assert
- throw_exception
- type_traits
winapi:
- config
- predef
xpressive:
- (unknown)
- assert
- config
- conversion
- core
- exception
- fusion
- integer
- iterator
- lexical_cast
- mpl
- numeric~conversion
- optional
- preprocessor
- proto
- range
- smart_ptr
- static_assert
- throw_exception
- type_traits
- typeof
- utility
yap:
- hana
- preprocessor
- type_index
2. Some of the code looks rather familiar.. As in close to code used in the Bincrafters modular Boost. If the codeis indeed from that you'll need to BSL attribute appropriately.

The dependencies-XXX.yml files are generated by parsing the output of boostdep.
The idea of using boostdep comes from a suggestion by @SSE4 made here
I didn't look at bincrafters' modular Boost while writing this (and haven't since then).
Code handling dependencies is very similar, which may cause confusion?

3. Is use of experimental features allowed in CCI?

I have a pr open for adding cpython, which uses the experimental msbuild generated, added in 1.26.0. No reviewers have raised any concerns thus far.

@conan-center-bot
Copy link
Collaborator

All green in build 2 (55e46cc23ada244dd2904fa10678cfbb610fcdc0)! 😊

@jgsogo
Copy link
Contributor

jgsogo commented Jul 1, 2020

I've added a comment here (conan-io/conan#7283 (comment)) that applies to this PR, it is related to how/where to store dependencies information. Please refer to that, and we can continue here with what's applicable to this PR.

@madebr madebr mentioned this pull request Jul 1, 2020
4 tasks
@madebr
Copy link
Contributor Author

madebr commented Jul 1, 2020

@grafikrobot

1. Does this handle the circular dependencies?

Right now it only adds components for all buildable modules, given by boostdep --list-buildables.
These don't contain circular dependencies.

Looks like I was not right, because there exists a loop containing mpi, graph and graph_parallel.
I'm not sure why this isn't causing problems now.
I"ll have to check this.

@madebr madebr closed this Jul 1, 2020
@madebr madebr reopened this Jul 1, 2020
@SSE4
Copy link
Contributor

SSE4 commented Jul 1, 2020

Looks like I was not right, because there exists a loop containing mpi, graph and graph_parallel.
I'm not sure why this isn't causing problems now.
I"ll have to check this.

I guess because we're not building mpi right now, and graph_parallel as result?

@conan-center-bot
Copy link
Collaborator

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

@madebr
Copy link
Contributor Author

madebr commented Jul 1, 2020

Looks like I was not right, because there exists a loop containing mpi, graph and graph_parallel.
I'm not sure why this isn't causing problems now.
I"ll have to check this.

I guess because we're not building mpi right now, and graph_parallel as result?

The cycle was only present in boost versions < 1.71.
It should have been catched by the CI.

See #2097 (comment)
The stdout logs of boost/1.69.0 and boost/1.70.0 are near-empty.
@danimtb @uilianries @jgsogo

I've modified the dependency generator to remove the the dependency of graph on graph_parallel, and also the dependency of python on graph.
The latter dependency is not expected, I think.

@conan-center-bot
Copy link
Collaborator

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

1 similar comment
@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

Some configurations of 'boost/1.69.0' failed in build 6 (62860fa34b456c219bbd75728cfa4375dc79e534):

SSE4
SSE4 previously approved these changes Dec 11, 2020
jgsogo
jgsogo previously approved these changes Dec 11, 2020
prince-chrismc
prince-chrismc previously approved these changes Dec 11, 2020
Copy link
Contributor

@prince-chrismc prince-chrismc left a comment

Choose a reason for hiding this comment

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

Merge!

@madebr madebr dismissed stale reviews from prince-chrismc, jgsogo, and SSE4 via 43a8a6b December 11, 2020 14:17
@madebr
Copy link
Contributor Author

madebr commented Dec 11, 2020

Merge denied!
Sorry!!!!

This fixes @ericriff 's comment about the python module not working.

@ericriff
Copy link
Contributor

Merge denied!
Sorry!!!!

This fixes @ericriff 's comment about the python module not working.

I promise that I'll keep my mouth shut for the rest of the PR 🤣
Awesome job!

@jgsogo
Copy link
Contributor

jgsogo commented Dec 11, 2020

😄
image

@jgsogo jgsogo requested a review from SSE4 December 11, 2020 15:08
Copy link
Contributor

@SSE4 SSE4 left a comment

Choose a reason for hiding this comment

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

go go!

@madebr
Copy link
Contributor Author

madebr commented Dec 11, 2020

I guess we want to want to merge this pr before adding 1.75.0?
#3863

@conan-center-bot
Copy link
Collaborator

All green in build 46 (43a8a6b5cc379be68f9f34fdeca905f5747cd50c)! 😊

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
infrastructure Waiting on tools or services belonging to the infra
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet