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

Resolve ODR issues with manipulation_station example #9826

Merged

Conversation

RussTedrake
Copy link
Contributor

@RussTedrake RussTedrake commented Oct 27, 2018

by including manipulation_station targets, and their dependencies, in libdrake.so.
we consider this a temporary, and very imperfect, solution until in-tree examples can produce their own bindings w/o going through libdrake.so. (see #9648)


This change is Reviewable

Copy link
Contributor Author

@RussTedrake RussTedrake left a comment

Choose a reason for hiding this comment

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

+@jwnimmer-tri and +@EricCousineau-TRI for feature/platform review.

Reviewable status: all discussions resolved, platform LGTM missing

@jwnimmer-tri
Copy link
Collaborator

When I posed a comment in #9820 suggesting this patch, my intention was for you to use it on your feature branch so that the docker images for the MIT class would not be so brittle.

This PR installs drake_cc_library code from both examples/manipulation_station and examples/kuka_iiwa_arm. I am OK doing that, under the umbrella of the TODO in the PR -- we want to install these components, somehow, but maybe haven't found the best formulation for doing so yet. So we'll take a step in that direction, and continue to refactor and improve it.

However, this PR also installs dev code for end-user consumption (geometry/dev, sensors/dev); the current install does not have any kind of dev code in it. I am not sure that I want to bless that. I would have to personally think about or debate it more in any case, and even then I'm not sure that we should do it without additionally building consensus within the platform reviews and/or kitware team for the proposal.

@RussTedrake
Copy link
Contributor Author

I know that's what you were proposing and that this is more aggressive.

Installing the example is actually not a hard requirement for me right now. For class, we are distributing content via docker, and in the docker instance we can/are building drake from source.

What I do need is to be able to write python code for this example in drake's source tree. This is the only mechanism that has been offered for that so far. I agree that depending on scenegraph dev is not ideal, but I think that is the situation that we are in right now and we need to support it.

@EricCousineau-TRI
Copy link
Contributor

I'm personally fine with this as an interim, pending the longer-term solutions from #9645 and #9646, as it is simplest clean working state for consuming the manipulation station Python bits.

I do agree with @jwnimmer-tri that we should get consensus from @jamiesnape and the platform team on policies (be they temporary or long term) on downstream consumption / installation of //examples and dev/ before we merge this PR in.

I'd say we make a documentation PR with backstory in the comment, ask for full-team platform review, land the doc PR, then review / merge this PR?

@jwnimmer-tri
Copy link
Collaborator

jwnimmer-tri commented Oct 27, 2018

I'm working on a PR that removes the dev blacklist for libdrake.so. Instead of a global blacklist on dev, we should use visibility = [] on a case-by-case basis for what is public vs not. That turns it from a debate about global policy to a debate about specific packages one by one, which should in any case be more fruitful. I agree that a PR such as mine (or perhaps the one you propose) should precede this PR.

@jwnimmer-tri
Copy link
Collaborator

I wrote:

... the current install does not have any kind of dev code in it. I am not sure that I want to bless that.

On reflection, I am okay with blessing it.

In working through #9830, I've convinced myself that our build system naming heuristics should not be what governs whether dev code gets installed. PR #9647 made the decision to provide geometry/dev as a set of public APIs that external users should start experimenting with. The build system should not artificially get in the way of that.

Copy link
Collaborator

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

:lgtm: once #9830 is accepted and merged first.

Reviewed 3 of 3 files at r1.
Reviewable status: all discussions resolved, LGTM missing from assignee ericcousineau-tri, platform LGTM from [jwnimmer-tri]

@jwnimmer-tri
Copy link
Collaborator

(Ready for merge/rebase now.)

@RussTedrake RussTedrake force-pushed the manipulation_station_odr branch from dcbd312 to 82cf018 Compare October 28, 2018 00:25
@RussTedrake
Copy link
Contributor Author

rebased.

Copy link
Collaborator

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

Reviewed 2 of 2 files at r2.
Reviewable status: all discussions resolved, LGTM missing from assignee ericcousineau-tri, platform LGTM from [jwnimmer-tri]

Copy link
Contributor

@EricCousineau-TRI EricCousineau-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 1 of 3 files at r1, 2 of 2 files at r2.
Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]


bindings/pydrake/examples/BUILD.bazel, line 65 at r2 (raw file):

    name = "manipulation_station_py",
    cc_deps = [
        "//bindings/pydrake:documentation_pybind",

FYI Merge conflict on this file: bindings/pydrake/examples/BUILD.bazel
Needs another rebase :(

Copy link
Contributor

@jamiesnape jamiesnape 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 1 of 3 files at r1, 2 of 2 files at r2.
Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]

@RussTedrake RussTedrake force-pushed the manipulation_station_odr branch from 82cf018 to f742774 Compare October 29, 2018 15:29
Copy link
Contributor Author

@RussTedrake RussTedrake left a comment

Choose a reason for hiding this comment

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

Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]


bindings/pydrake/examples/BUILD.bazel, line 65 at r2 (raw file):

Previously, EricCousineau-TRI (Eric Cousineau) wrote…

FYI Merge conflict on this file: bindings/pydrake/examples/BUILD.bazel
Needs another rebase :(

done (again).

@RussTedrake RussTedrake force-pushed the manipulation_station_odr branch from f742774 to 1d3d789 Compare October 29, 2018 15:31
Copy link
Collaborator

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

Reviewed 2 of 2 files at r3.
Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]

Copy link
Contributor

@EricCousineau-TRI EricCousineau-TRI left a comment

Choose a reason for hiding this comment

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

Reviewed 2 of 2 files at r3.
Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]

@jwnimmer-tri
Copy link
Collaborator

There is a linter error due to the merge.

by including manipulation_station targets, and their dependencies, in libdrake.so.
we consider this a temporary, and very imperfect, solution until in-tree examples can produce their own bindings w/o going through libdrake.so.  (see RobotLocomotion#9648)
@RussTedrake RussTedrake force-pushed the manipulation_station_odr branch from 1d3d789 to 135340e Compare October 29, 2018 19:09
Copy link
Collaborator

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

Reviewed 1 of 1 files at r4.
Reviewable status: :shipit: complete! all discussions resolved, platform LGTM from [jwnimmer-tri, ericcousineau-tri]

@jwnimmer-tri jwnimmer-tri merged commit f69bfcc into RobotLocomotion:master Oct 29, 2018
@RussTedrake RussTedrake deleted the manipulation_station_odr branch October 30, 2018 01:21
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.

4 participants