-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
pip install: Fetch platform-independent data #15774
Comments
To make sure that we all understand this ticket -- the victory condition here is that a user of Is that accurate? |
The exact implementation details still need to be worked out but that is my understanding |
This comment has been minimized.
This comment has been minimized.
Relates to #13942 and #15024 somewhat, and #9498 and #11913 more directly. Another comment (channeling Russ) -- something like https://pytorch.org/tutorials/beginner/basics/data_tutorial.html may be the best solution here. Either that library directly, or some Drake-compatible simpler implementation. |
https://packages.ubuntu.com/source/bionic/ros-resource-retriever might be useful. |
For better issue search, here's the list of mesh file paths that are excluded from the wheel:
drake/tools/wheel/image/build-wheel.sh Lines 99 to 107 in 4a0ece6
|
I'm running into this issue when trying to load models (@jwnimmer-tri redirected me to here from my stackoverflow question. I'd be happy to help with making a PR for this issue if it's not actively being worked on. |
@SwappyG thanks for your interest! This feature will require a relatively large chain of multiple pull requests (some of which will be quite intricate), as well as corresponding changes to Drake's release process and binary distribution architecture. I don't say that to discourage you, rather to say that it will be a somewhat involved process, and therefore a somewhat difficult starting place for a first-time contributor, especially with the overall software design for this feature not yet finalized. My thought here is that I'm going to work on writing up a software design for how this is all supposed to work. I'll probably also need to hack together a prototype to show that the design is practical. I'll post those ideas into the ticket here, at which point anyone interested is welcome to help push it forward. |
Here's my thinking towards a design... Background:
Proposal: (1) Step away from the Add (2) Add the (3) Stop incorporating any of the (4) In source builds, the (5) In pre-compiled builds, the (6) Maybe docker images could have the (7) We could have a "prefetch" post-install script that any user could run from any install mechanism, to download the models and place them somewhere the package map would find them by default, with no ongoing downloading. (8) Some users might balk at the idea of Drake hitting the internet by default. The download will at least need to have an opt-out config setting; possibly it needs to be opt-in. Possibly we could obey the default environment variable for proxying ( Miscellany: (a) Drake already build-depends on (b) I'm not sure whether the package map URL should refer to a base url (where we could grab files one by one) or an archive (that we'd download all at once and then decompress). (c) Should the downloads rely on https to certify the file, or a sha256 (or 512) checksum, or both? (d) We need a careful mechanism to keep the (e) Anything in |
@jwnimmer-tri I think I understand most of the proposal. Making the models repo into a package xml + changing URIs to point to that seems like the lowest risk task for a first-time contribution. Does that seem accurate? (1), and maybe (2), (5) and (7) seem like something I could help with, though I don't know too much about certifying files as mentioned in (c). |
Related to the discussion above, I had at least one very reasonable question about this from a student: "I'd be happy to just download the model repo separately into a subdirectory of Drake (e.g. after a pip install). Why do you make it so hard to just grab the files? Your bazel script puts them everywhere." |
The https://drake.mit.edu/from_binary.html downloads have all of the model files, in their expected relative locations. |
For my reference: See Per pypa/packaging-problems#64, it seems like there is not any way to populate the cache at install-time, only upon first use. |
A few thoughts from f2f chat today:
=> #19079 |
Working towards #1183
Follow up to #15628
The text was updated successfully, but these errors were encountered: