conan-io / conan-center-index

Recipes for the ConanCenter repository
https://conan.io/center
MIT License
971 stars 1.79k forks source link

Conan 2.0 Migration Effort #12888

Closed prince-chrismc closed 6 months ago

prince-chrismc commented 2 years ago

Recipe Migration

One of the more important requirements for the Conan 2.0 adoptions strategy is to have a very strong showing of recipes that are ready to go.

Goal ~80% of most download recipes from August 2022

Criteria for "2.0 ready" currently is:

Note: The standard for ready may change as final tweaks are put into place before the Conan 2.0 is released

Migration Effort

This list of just over 100 recipes hits just above the 80% mark.

Last updated: November 29th 2022 👻

Recipe Readiness Notes
zlib :white_check_mark: #12075 #13597
openssl 1.x :warning: #14066 Does not use new build helpers
openssl 3.x :warning: #14426 Does not use new build helpers
boost :warning: #14415 Uses a bunch of legacy tools
nlohmann_json :white_check_mark: #12413 #13120
bzip2 :white_check_mark: #12081 #12840 #13667
fmt :white_check_mark: #12847 #13727
gtest :white_check_mark: #12326 #12885
eigen :white_check_mark: #12348 #13721
catch2 :white_check_mark: #13037
libiconv :white_check_mark: #13263
rapidjson :white_check_mark: #12935
zstd :white_check_mark: #12825 missing test_type
sqlite3 :white_check_mark: #12578 missing test_type and can_run
libbacktrace :white_check_mark: #13498
spdlog :white_check_mark: #11981 #13618
pkgconf :x: #12219
b2 :white_check_mark: #13758
libjpeg :white_check_mark: #13123
xz_utils :white_check_mark: #13038
expat :white_check_mark: #11969 #12059 missing test_type
m4 :white_check_mark: #12892 #13135
libpng :white_check_mark: #12386
libwebp :white_check_mark: #12109 missing test_type
opengl :warning: #13570 needs new PkgConfig tools
cli11 :white_check_mark: #13793
libcurl :white_check_mark: ~#12377~ #12956 #13684
autoconf :white_check_mark: #12896
protobuf :warning: generate + toolchain
automake :x: #12898
c-ares :white_check_mark: #12582 missing test_type and can_run
jbig :white_check_mark: #12263 missing test_type and can_run
libuuid :white_check_mark: #13130
xorg :white_check_mark: #11698 missing test_type and can_run
libtool :x: #12916 #14466
ninja :white_check_mark: #12918
ms-gsl :white_check_mark: #12453 #13725
libpq :x:
cpp-httplib :white_check_mark: #12544 missing test_type
libxml2 :white_check_mark: #13511
pybind11 :white_check_mark: #12327 #13283
brotli :white_check_mark: #12608 missing test_type and can_run
abseil :white_check_mark: #12056 missing test_type and can_run
freetype :white_check_mark: #13451 #13557 #13822
libffi :white_check_mark: #12904 #13355
pcre :white_check_mark: #12617
libdeflate :white_check_mark: #13759 #14028
wayland :white_check_mark: #12771 #13488 #13640
grpc :warning: #13817 needs generators + build helpers
pcre2 :white_check_mark: #12343 missing test_type and can_run
yaml-cpp :white_check_mark: #12352 13723 missing can_run
asio :white_check_mark: #12791 missing test_type
wayland-protocols :white_check_mark: #13487
opus :white_check_mark: #12276 missing test_type and can_run
gnu-config :white_check_mark: #13584
libtiff :white_check_mark: #13109
re2 :white_check_mark: #12320 missing test_type and can_run
meson :white_check_mark: #12727
poco :white_check_mark: #12868
xkbcommon :white_check_mark: #11636 #13612 #13668
ogg :white_check_mark: #12318 missing test_type and can_run
jasper :x: #14291 #13285
jsoncpp :white_check_mark: #12632 #13027
glm :white_check_mark: #12546
libuv :white_check_mark: #13129
libsodium :x: #13792
lz4 :white_check_mark: #12108
range-v3 :white_check_mark: #13919
vorbis :white_check_mark: #12414 See TODO https://github.com/conan-io/conan-center-index/blob/f2b50a5191fa9bfdc407787f437eccc7556f086c/recipes/vorbis/all/conanfile.py#L93
flex :x: :point_left: Medium Autotools
benchmark :white_check_mark: #13080
fontconfig :white_check_mark: #13845
openjpeg :white_check_mark: #12378
openexr :white_check_mark: #12457
aws-c-common :white_check_mark: #12486
md4c :white_check_mark: #12977
magic_enum :white_check_mark: #12894
cppcodec :white_check_mark: #13110
glfw :white_check_mark: #12030
openh264 :white_check_mark: #13849 missing can_run
cyrus-sasl :white_check_mark: #13458
bison :warning: #13091 missing generate + toolchain
zulu-openjdk :x:
cmake :warning: #13739 missing generate + toolchain
glib :white_check_mark: #12331 ~#12221~ #13394 #13347
libunwind :white_check_mark: #13998 #14141
libjpeg-turbo :white_check_mark: #13123
ghc-filesystem :white_check_mark: #14054
nanoflann :white_check_mark: #12622 missing test_type
glu :warning: #13569 needs new PkgConfig tool
stb :white_check_mark: #13920
nasm :white_check_mark: #13485
libmysqlclient :warning: #13086 generate + toolchain
cxxopts :white_check_mark: #13922
odbc :white_check_mark: #13131
libcap :white_check_mark: #12241
mbedtls :white_check_mark: #13929
cereal :white_check_mark: #12542
cryptopp :white_check_mark: #12400 missing android https://github.com/conan-io/conan-center-index/blob/c15fb3dd31c4a69d26696f10f7b4a8262009aaf6/recipes/cryptopp/all/conanfile.py#L104
civetweb :white_check_mark: #12270
sdl :warning: #12805 #12186 #12472 generate + toolchain
xtl :white_check_mark: #12585
xtensor :white_check_mark: #14298
minizip :white_check_mark: #12707 #13863
icu :warning: #14156 few tools have not been migrated https://github.com/conan-io/conan-center-index/blob/cb8582405c758b67e76e6b86ea6e222e1e479124/recipes/icu/all/conanfile.py#L10
libalsa :white_check_mark: #12824 #13124
jwt-cpp :white_check_mark: #12735 #13306
SpaceIm commented 2 years ago

pkgconf: https://github.com/conan-io/conan-center-index/pull/12219

jellespijker commented 2 years ago

m4: Closed #12815 which is superseded by #12892

jellespijker commented 2 years ago

autoconf; Closed #12777 which is superseded by #12896

jellespijker commented 2 years ago

automake: https://github.com/conan-io/conan-center-index/pull/12898

jellespijker commented 2 years ago

libffi: #12904

jellespijker commented 2 years ago

libtool: #12916 The recipe and test_v1_package are mostly ported, still working on the test_package which holds a bit of a challenge since it tries to test 3 different scenario's with multiple tools, in non-standard installation locations

prince-chrismc commented 2 years ago

rapidjson: https://github.com/conan-io/conan-center-index/pull/12935

prince-chrismc commented 2 years ago

Requirements add https://github.com/conan-io/conan-center-index/pull/12847#pullrequestreview-1106461688

AndreyMlashkin commented 2 years ago

Is would be cool to update bison to 3.8.2 and upgrade it to conan v2, it will also close https://github.com/conan-io/conan-center-index/issues/10381

prince-chrismc commented 2 years ago

Libcurl #12956

SpaceIm commented 2 years ago

benchmark: https://github.com/conan-io/conan-center-index/pull/13080 cppcodec: https://github.com/conan-io/conan-center-index/pull/13110 libjpeg: https://github.com/conan-io/conan-center-index/pull/13123 libtiff: https://github.com/conan-io/conan-center-index/pull/13109 libuuid: https://github.com/conan-io/conan-center-index/pull/13130 libuv: https://github.com/conan-io/conan-center-index/pull/13129 magic_enum: https://github.com/conan-io/conan-center-index/pull/12894 md4c: https://github.com/conan-io/conan-center-index/pull/12977 odbc: https://github.com/conan-io/conan-center-index/pull/13131

prince-chrismc commented 2 years ago

October 5th update

SSE4 commented 2 years ago

Has a test_v1_package/ to ensure 1.x is not broken

I think it should be optional.

therefore, if recipe has test_package and it passes CI, we ensure recipe can be successfully consumed with both v1 and v2. however, test_v1_package might be used to test some legacy v1 generators, such generators v2 doesn't have and will not ever have (for instance, legacy cmake generator). in reality, it's rarely needed, as both v1 and v2 can perfectly use modern generators (such as CMakeDeps), so test_v1_package should be an optional thing. so for most of new recipes, it should be enough to just have test_package using sub-set of features available in both v1 and v2.

SpaceIm commented 2 years ago

I disagree. CCI recipes must still check both new & legacy genrators, because a PR may break legacy generators and therefore break consumers or other CCI recipes which are still relying on these legacy generators.

prince-chrismc commented 2 years ago

You are both right and we are doing exactly that -- just in different words

Neustradamus commented 2 years ago

To follow :)

grafikrobot commented 2 years ago

B2: https://github.com/conan-io/conan-center-index/pull/13758

prince-chrismc commented 2 years ago

October 31st update

grafikrobot commented 2 years ago

@SSE4 , @SpaceIm , @prince-chrismc out of paranoia, for the B2 recipe I ended up adding all three test packages (test_package, test_v1_package, test_v2_package). Perhaps not the best approach. But it's hard to discern from my distant vantage point what should be done when. And would much rather just hope a single test package. But, whatever ;-)

prince-chrismc commented 2 years ago

But it's hard to discern from my distant vantage point what should be done when

I commented on your PR trying to help :)

grafikrobot commented 2 years ago

lyra: https://github.com/conan-io/conan-center-index/pull/13969

datalogics-kam commented 2 years ago

flex: #14013 ...but I'm having a problem detailed in a comment there about flex_target not being defined, as it is with the built-in CMake module.

prince-chrismc commented 2 years ago

November 29th update

prince-chrismc commented 1 year ago

I have not been maintaining this list but you can take a peak at my fork to see what's been cooking 🧑‍🍳

A complete list can be found in https://github.com/prince-chrismc/conan-center-index/blob/config/v2-top100/.github/top_100_recipes.yaml

Croydon commented 6 months ago

Since this list is not maintained, maybe we can close this issue in favor of #20992 which is more up-to-date.

prince-chrismc commented 6 months ago

Great suggestion!