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

[workspace] Better hide ccd and fcl externals #18678

Merged

Conversation

jwnimmer-tri
Copy link
Collaborator

@jwnimmer-tri jwnimmer-tri commented Jan 27, 2023

Fix ccd BUILD file to disallow things like #include "polytope.h" which previously resolved to its src directory.

Remove unnecessary fcl version rules; use strict genrule checking.

Towards #17231.


This change is Reviewable

Fix ccd BUILD file to disallow things like `#include "polytope.h"`
of private headers, which previously resolved to its `src` directory.

Remove unnecessary maintenance of fcl version numbers; zeros are fine.

Opt-in fcl to use use strict genrule checking per our current habits,
so it will fail-fast in case anything is surprising when upgrading.

Switch fcl to use vendor_cxx infrastructure to wrap a hidden namespace
around all of its C++ code.
@jwnimmer-tri
Copy link
Collaborator Author

+@SeanCurtis-TRI for feature review, please.

I'm hoping the build system changes are clear enough for a general developer audience. The comments in the drake/tools/workspace/vendor_cxx.bzl macro might help. We can always bring in @rpoyner-tri for build system review if it's too complicated, though.

Copy link
Contributor

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

As a representative of the "general developer audience", I think I can say that the build machinations could be followed but not vetted. I was able to tell myself a story about everything I saw that placed it all in a coherent narrative, but I couldn't generate it on my own and doubt that I could make assertions about correctness. There are enough voodoo bazel rules being used with semantics that aren't clear from the invocation.

So, in conclusion, I think the general developer audience could follow this. But they couldn't validate nor generate it.

:LGTM:

Reviewed 19 of 23 files at r1, 4 of 4 files at r2, all commit messages.
Reviewable status: needs at least two assigned reviewers (waiting on @jwnimmer-tri)

Copy link
Collaborator Author

@jwnimmer-tri jwnimmer-tri left a comment

Choose a reason for hiding this comment

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

I suppose the most important thing is if a developer gets a build error, how able would they be to fix it on their own? Like if they forgot a DRAKE_NO_EXPORT and saw an attribute error. Ah well, I guess we'll find out.

+@sammy-tri for platform review per schedule, please.

Reviewable status: LGTM missing from assignee sammy-tri(platform) (waiting on @sammy-tri)

Copy link
Contributor

@SeanCurtis-TRI SeanCurtis-TRI left a comment

Choose a reason for hiding this comment

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

Yep. I subscribe to the "we'll find out" as we go. It'll be educational. And, quite simply, it's not like fcl is widely referenced.

Reviewable status: LGTM missing from assignee sammy-tri(platform) (waiting on @sammy-tri)

Copy link
Contributor

@sammy-tri sammy-tri left a comment

Choose a reason for hiding this comment

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

:lgtm:

Reviewed 19 of 23 files at r1, 4 of 4 files at r2, all commit messages.
Reviewable status: :shipit: complete! all discussions resolved, LGTM from assignees sammy-tri(platform),SeanCurtis-TRI(platform) (waiting on @jwnimmer-tri)

@sammy-tri sammy-tri merged commit 9ab1d2a into RobotLocomotion:master Feb 6, 2023
marcoag pushed a commit to marcoag/drake that referenced this pull request Mar 8, 2023
@jwnimmer-tri jwnimmer-tri deleted the workspace-finish-fcl-hidden branch March 10, 2023 16:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
priority: low release notes: none This pull request should not be mentioned in the release notes
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants