-
Notifications
You must be signed in to change notification settings - Fork 45
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
Fork of Drake's install_prereqs.sh package list is overly brittle #61
Comments
Yes, already noted, but thanks for making it an issue. |
One option would be to have drake-external-examples's setup try to curl Drake's from GitHub. Could even get fancy with branch logic if you wanted. #!/usr/bin/env bash
set -o errexit
set -o pipefail
DRAKE_BRANCH="${1:-master}"
PLATFORM="ubuntu/16.04"
DRAKE_INSTALL_PREREQS_URL="https://raw.githubusercontent.com/RobotLocomotion/drake/${DRAKE_BRANCH}/setup/${PLATFORM}/install_prereqs.sh"
if [[ ! $(which curl > /dev/null 2>&1) ]]; then
apt-get update && apt-get install -y curl
fi
echo "Fetching Drake prereqs script."
curl "$DRAKE_INSTALL_PREREQS_URL" > drake-install-prereqs.sh
bash drake-install-prereqs.sh It's just a mock-up, not comprehensive or robust, but one possible option. |
I was thinking of having some install script installed by Drake so it can be used within and without. It probably would be a subset of what a Drake bazel workspace needs as well. |
I believe the present solution was just a temporary copy/paste from jamie to get CI on board. |
Yes, we are going to install a version of the install_prereqs.sh script with the binary packages, which contains the subset of packages needed by users of those packages. |
Given the re-breakage to be fixed by #142, perhaps we slate this to be worked on in early Dec? |
I broke drake-external-examples master again because of this via https://reviewable.io/reviews/RobotLocomotion/drake/12680. Drake's package list of source dependencies changed, but I failed to copy that change into this repository. |
Another hiccup in #177. |
This came up again with changes in RobotLocomotion/drake#15618 |
I've been calling drake's installed install_prereqs transitively from the underactuated / manipulation install_prereqs for a long time. Am I to understand that everyone agrees this is simple to do here, but just nobody has taken the time to do it? |
That is probably true. I've added this issue to the Build & Release project board now. The only reason I say "probably" here is that we not only want to make the CI jobs here run more smoothly, but also we want to make sure this example repository is what we actually want to recommend to end-users. As we develop any patch towards this issue, we'll want to make sure to keep that second use case in mind. For example, in Anzu, we do not transitively call Drake's install_prereqs. Instead, we pin Drake and pin its prereq packages, and update the two in lockstep on purpose. This can help because the For the "use Drake via a binary release" variants in this repository, transitively calling the binary's install_prereqs is probably best. For "rebuild Drake from source", it might be more subtle (or not). |
As I was most of the way through reading your third paragraph, I was indeed thinking "those sound like Drake bugs". :-) |
@alesgenova this issue might be good for you to look at |
We should finish #219 before starting this one. |
To re-iterate the above, the following examples should shell out to
For the apt-based examples, we should only need to
Let's fix the above ones before we dive into the from-source examples. |
Dunno if it helps / hurts, but as an interim we recently started doing a kind-of hacky "boostrappy Bazel" approach for |
https://github.com/RobotLocomotion/drake-external-examples/blob/master/scripts/setup/linux/ubuntu/xenial/install_prereqs duplicates Drake's list of dependencies. This is a maintenance burden. We need to find a way to allow for everyday dependency changes to Drake without PR'ing to two separate places.
Conceivably, more intricate changes such as bumping Bazel, or changing the compiler, could have duplicated logic. But "Add system libfoo-dev" should not require a separate PR here.
The text was updated successfully, but these errors were encountered: