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

behaviortree.cpp: add versions 3.8.3,4.0.2,4.1.1 #16731

Closed
wants to merge 16 commits into from

Conversation

bariscelik
Copy link

@bariscelik bariscelik commented Mar 27, 2023

behaviortree.cpp/4.1.1
behaviortree.cpp/4.0.2
behaviortree.cpp/3.8.3

  • Introduced 3 new versions 4.1.1, 4.0.2, 3.8.3
  • Updated the recipe for conan 2.0.0+
  • Added some logic to prevent building < 4.1.0 versions of the recipe on conan 2.0.0+
  • Updated dependencies by versions for each platform
  • Fixed 3.5.6

This PR is based on #16189


@CLAassistant
Copy link

CLAassistant commented Mar 27, 2023

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@bariscelik bariscelik changed the title behaviortree.cpp: add versions 4.1.0 and 3.8.3 behaviortree.cpp: add versions Mar 28, 2023
@bariscelik bariscelik changed the title behaviortree.cpp: add versions behaviortree.cpp: add versions 3.8.3,4.0.2,4.1.0 Mar 28, 2023
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@bariscelik bariscelik marked this pull request as ready for review March 29, 2023 08:45
@conan-center-bot

This comment has been minimized.

@bariscelik bariscelik marked this pull request as draft March 29, 2023 09:12
@bariscelik bariscelik changed the title behaviortree.cpp: add versions 3.8.3,4.0.2,4.1.0 behaviortree.cpp: add versions 3.8.3,4.0.2,4.1.1 Mar 29, 2023
@conan-center-bot

This comment has been minimized.

1 similar comment
@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

Comment on lines 35 to 36
"with_groot_interface": False,
"with_sqlite_logging": False,

Choose a reason for hiding this comment

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

These two should be True by default. also, these options make sense only in version 4.1.1 or older.
Additionally with_coroutines should be removed in version 4.1.1 and newer

Comment on lines 164 to 169
if Version(self.version) < "4.1.0":
self.cpp_info.components[libname].requires.extend(["ncurses::ncurses"])
if self.options.with_coroutines:
self.cpp_info.components[libname].requires.append("boost::coroutine")

if Version(self.version) > "4.1.0" and self.options.with_sqlite_logging:

Choose a reason for hiding this comment

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

change to 4.1.1 ?

Copy link
Author

Choose a reason for hiding this comment

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

I think SQLite is needed for 4.1.1 and more, right? (so > 4.1.0)

Choose a reason for hiding this comment

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

right

Comment on lines 23 to 25
+find_package(lexy REQUIRED CONFIG)
+find_package(minitrace REQUIRED CONFIG)
+find_package(tinyxml2 REQUIRED CONFIG)

Choose a reason for hiding this comment

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

These should be removed alson in 4.0.2 and 4.0.1:

  • cppzmq
  • lexy
  • minitrace
  • tinyxml2

It was never intended to use conan for these specific dependencies, only sqlite and ZeroMQ

Copy link
Member

Choose a reason for hiding this comment

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

The problem is that if the behaviortree library uses these dependencies internally, vendored, or something like that (it seems so https://github.com/BehaviorTree/BehaviorTree.CPP/tree/master/3rdparty), and the behaviortree library is used together with these vendored libraries, there could easily be linking errors, right? In principle, vendored libraries are not allowed in ConanCenter.

I'd like to understand a bit better about this.

Comment on lines 26 to 29
-add_subdirectory(3rdparty/lexy)
+find_package(cppzmq REQUIRED CONFIG)
+find_package(lexy REQUIRED CONFIG)
+find_package(tinyxml2 REQUIRED CONFIG)

Choose a reason for hiding this comment

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

see comment below about dependencies

@conan-center-bot

This comment has been minimized.

@@ -58,38 +67,49 @@ def config_options(self):
del self.options.fPIC

def configure(self):
if conan_version >= Version("2.0.0") and Version(self.version) < "4.0.1":
raise Exception("Conan >=v2.0.0 is not compatible with behaviortree.cpp < 4.0.1")
Copy link
Contributor

Choose a reason for hiding this comment

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

What is the reason for this error? We have not made 2.0 required so it seems odd to have this in 🤔
The Conan client also prints a message so it should not be require in each recipe

Comment on lines 9 to 10
-find_package(ZMQ)
+find_package(ZeroMQ)
Copy link
Contributor

Choose a reason for hiding this comment

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

This can be changed in a recipe with CMakeDeps using the set_property in the generate method

Comment on lines +27 to +28
"with_groot_interface": [True, False],
"with_sqlite_logging": [True, False],
Copy link
Contributor

Choose a reason for hiding this comment

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

If these are specific to a version, they should be removed from config_options or package ID


if Version(self.version) == "4.0.1" or Version(self.version) == "4.0.2":
tc.variables["BTCPP_MANUAL_SELECTOR"] = False

tc.cache_variables["CMAKE_POLICY_DEFAULT_CMP0077"] = "NEW"
Copy link
Contributor

Choose a reason for hiding this comment

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

This can be dropped if the conan required version is bump to 1.54.0 :)

Copy link
Author

Choose a reason for hiding this comment

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

You're right

replace_in_file(self,
path_bt_factory,
"#define BT_FACTORY_H",
"#define BT_FACTORY_H\n#define BEHAVIORTREE_VERSION 0x%02d%02d%03d" % (int(str(ver.major)), int(str(ver.minor)), int(str(ver.patch))))
Copy link
Contributor

Choose a reason for hiding this comment

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

Why is this required?

Copy link
Author

@bariscelik bariscelik May 1, 2023

Choose a reason for hiding this comment

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

The library doesn't include any version information anywhere. I wanted to provide a version to the developer. Because there are some deps which can't be used at compilation time without version info.

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.

Did a quick pass, few questions to understand what you are doing + some suggestions to help clean up the recipe more

Thansk for taking the time to work on this ❤️

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@conan-center-bot

This comment has been minimized.

@stale
Copy link

stale bot commented Jun 18, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Jun 18, 2023
@memsharded memsharded self-assigned this Jul 8, 2023
@stale stale bot removed the stale label Jul 8, 2023
Copy link
Member

@memsharded memsharded left a comment

Choose a reason for hiding this comment

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

Hi @bariscelik @facontidavide

Sorry this was not followed up, the activity and backlog in ConanCenter is huge, 5k PR per year, and it is challenging to manage everything. I am assigning it to myself to try to help to get it to the finish line.

@bariscelik, the CLA needs to be signed again, it was reset and it needs to be signed again, sorry for the inconvenience

"4.0.1":
- patch_file: "patches/4.0.1-0001-remove-fpic.patch"
- patch_file: "patches/4.0.1-0002-find-zmq.patch"
Copy link
Member

Choose a reason for hiding this comment

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

I am a bit confused about this change, how it is possible to remove patches that were there in the past for an already packaged version?

Comment on lines 23 to 25
+find_package(lexy REQUIRED CONFIG)
+find_package(minitrace REQUIRED CONFIG)
+find_package(tinyxml2 REQUIRED CONFIG)
Copy link
Member

Choose a reason for hiding this comment

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

The problem is that if the behaviortree library uses these dependencies internally, vendored, or something like that (it seems so https://github.com/BehaviorTree/BehaviorTree.CPP/tree/master/3rdparty), and the behaviortree library is used together with these vendored libraries, there could easily be linking errors, right? In principle, vendored libraries are not allowed in ConanCenter.

I'd like to understand a bit better about this.

@conan-center-bot
Copy link
Collaborator

Conan v1 pipeline ❌

Sorry, the system is under maintenance and it doesn't accept builds right now.
Please, check https://status.conan.io to obtain more information.
Thanks for your understanding and help with the Conan Center Index!


Conan v2 pipeline ❌

Note: Conan v2 builds may be required once they are on the v2 ready list

The v2 pipeline failed. Please, review the errors and note this will be required for pull requests to be merged in the near future.

See details:

Sorry, the system is under maintenance and it doesn't accept builds right now.
Please, check https://status.conan.io to obtain more information.
Thanks for your understanding and help with the Conan Center Index!

@stale
Copy link

stale bot commented Oct 15, 2023

This pull request has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@stale stale bot added the stale label Oct 15, 2023
Copy link
Contributor

This pull request has been automatically closed because it has not had recent activity. Thank you for your contributions.

@github-actions github-actions bot closed this Feb 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants