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

Make CastXML the default instead of GccXML #133

Closed
wants to merge 1 commit into from
Closed

Make CastXML the default instead of GccXML #133

wants to merge 1 commit into from

Conversation

MatthijsBurgh
Copy link
Contributor

As discussed in #132

I don't know if this also should be merged into master.

@MatthijsBurgh
Copy link
Contributor Author

@doudou

@doudou
Copy link
Contributor

doudou commented Jan 14, 2021

Looks good. I'm not in charge of the orocos-toolchain branches ... could you either change this PR merge base to master or create a new PR ? I'd like to have the review of other rock developers.

@MatthijsBurgh MatthijsBurgh changed the base branch from toolchain-2.9 to master January 14, 2021 12:37
@MatthijsBurgh MatthijsBurgh changed the base branch from master to toolchain-2.9 January 14, 2021 12:38
@MatthijsBurgh
Copy link
Contributor Author

Who in maintainer of the toolchain branches? I would like this change in the toolchain-2.9 branch.

@meyerj
Copy link
Member

meyerj commented Jan 25, 2021

Who in maintainer of the toolchain branches? I would like this change in the toolchain-2.9 branch.

I tried to keep them up-to-date in the past, but without actually using typelib (or orogen) myself in the last years. I also do not know about gccxml vs. castxml.

Ideally the extra branches would not even be needed. The only non-trivial differences are in manifest.xml and package.xml, and related to the old problem that the same filename is used by AutoProj and ROS tools like rosdep. The latter still prefers manifest.xml (dry) over package.xml (wet) if it exists, and handles <depend package="..."> (other ROS packages) and <rosdep name="..."> (packages provided via apt, pip, gems etc.) differently. That is unfortunate, the author of the package should not have to care and it depends on the build environment, which is probably why the difference has been removed for package.xml in REP-0127 (latest specification is REP-0149). Additionally, AutoProj introduced useful new features like <depend_optional>, but which are not understood by ROS tools and cause errors. And last but not least, all the keys need to be either packages with a package.xml file that can be added to the workspace and built from source, or listed in the rosdep database maintained at https://github.com/ros/rosdistro/tree/master/rosdep.

So overall some coordination is required for every dependency update, to not break the build for either AutoProj or for ROS/catkin users.

The version numbers are indeed not so important, especially when building from source. But the version has to be increased for each new release into ROS - provided that this is still desirable. The last release of typelib was into ROS indigo back in 2015 (orocos-gbp/typelib-release). In any case the version numbers and release cycles should IMHO not be coupled to RTT or Orocos Toolchain anymore (and hence no toolchain-2.x branches). So please choose whatever you prefer for typelib and other packages you maintain (orocos-toolchain/orogen#140 (comment)).

Other changes (master...toolchain-2.9) are actually trivial and could be either reverted or applied to the master branch?

  • install package.xml in CMakeLists.txt and update the outdated maintainer email address [email protected] (replaced by [email protected], which currently forwards to [email protected])
  • rosbuild Makefile is obsolete and has been removed (5e8b7c8)
  • fixes needed for linking to pthread and Boost_THREAD_LIBRARIES (40cd3a8)?
  • some arch detection patch required for macOS back then, likely obsolete (6339de6)?

See also orocos-toolchain/orogen#140 and orocos-toolchain/rtt#321. It would be very nice if we can find a solution for those kind of problems in the future, but I do not see how this can be done without deprecating manifest.xml in favor of autoproj.xml and package.xml (orocos-toolchain/rtt#321 (comment)), and keeping both up-to-date? If there is anything I can do (other than merging the two approved pull requests above), please let me know.

@meyerj
Copy link
Member

meyerj commented Jan 25, 2021

I merged the latest master including #134 into toolchain-2.9 in 69476e5. This branch is up-to-date with tue-robotics:toolchain-2.9 now (from this PR), but additionally includes the patch from #131:
tue-robotics:toolchain-2.9..orocos-toolchain:toolchain-2.9

If that version works for you @MatthijsBurgh, I suggest to close this issue.

I will open a new pull request from toolchain-2.9 into master to discuss which of the patches could be merged and which should be discarded (#133 (comment)).

@MatthijsBurgh
Copy link
Contributor Author

@meyerj thanks!

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.

None yet

3 participants