From 973b37885bf54115130a886390523b2b70b049b9 Mon Sep 17 00:00:00 2001 From: Doug Hellmann Date: Thu, 11 Dec 2014 16:55:26 -0500 Subject: [PATCH] Add developer script to build wheels Add a script developers can use to build wheels of the global requirements to speed up package installation time on their local systems. Change-Id: I978def344719380989b2454da04c1ae139df18bf --- tools/build_wheels.sh | 50 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100755 tools/build_wheels.sh diff --git a/tools/build_wheels.sh b/tools/build_wheels.sh new file mode 100755 index 0000000000..0b9e49dceb --- /dev/null +++ b/tools/build_wheels.sh @@ -0,0 +1,50 @@ +#!/bin/bash +# +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. +# +# Generate wheels for all of the requirements, ignoring any packages +# that won't build wheels so we get as many as possible. This is meant +# to be used on a development box combined with devpi and a wheelhouse +# configuration setting for pip, such as described in +# https://www.berrange.com/posts/2014/11/14/faster-rebuilds-for-python-virtualenv-trees/ +# +# Usage: +# +# install pip for the version(s) of python you want +# +# use each of those versions of pip to install the wheel package +# pip2.7 install wheel +# pip3.3 install wheel +# pip3.4 install wheel +# +# run this script, passing those versions on the command line: +# +# ./tools/build_wheels.sh 2.7 3.3 3.4 + +versions="$*" + +if [ -z "$versions" ] +then + echo "ERROR: Usage: $0 " 1>&2 + echo "Example: $0 2.7 3.3 3.4" 1>&2 + exit 1 +fi + +grep -v '^#' global-requirements.txt | while read req +do + echo "Building $req" + for v in $versions + do + pip${v} wheel "$req" + done +done