Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
Upstream source code for dependencies
FORTRAN C Assembly C++ TeX Makefile
Branch: master

Merge pull request #5 from charris/set-more-environment-variables

BLD: In environment, change NPY_SEPARATE_COMPILATION and define OSTYPE.
latest commit 9820ec783e
@rgommers rgommers authored
Failed to load latest commit information.
atlas MAINT: update nosse libblas.a by including dsdot.
.gitignore MAINT: add .gitignore
NSIS.tar.gz Install NSIS and scons
Paver-1.2.2.tar.gz update software
README.rst DOC: update Python versions for which we build OS X (dmg) installers.
Vagrantfile add trusty
binutils-2.17.50-20070129-1.tar.gz Version all the tarballs
binutils-2.20-1-mingw32-bin.tar.gz Add binutils
cython_0.20.2-1_i386.deb add cython binary from ubuntu utopic
distribute-0.6.49.tar.gz update software
fabfile.py BLD: In environment, change NPY_SEPARATE_COMPILATION and define OSTYPE.
gcc-core-3.4.5-20051220-1.tar.gz Version all the tarballs
gcc-g++-3.4.5-20051220-1.tar.gz Version all the tarballs
gcc-g77-3.4.5-20051220-1.tar.gz Version all the tarballs
mingw-runtime-3.10.tar.gz Version all the tarballs
msvcr100.dll Add msvcr100.dll
msvcr90.dll Add the correct msvcr90.dll
nose-1.1.2.tar.gz Add nose
nsis-2.46-setup.exe Add nsis-2.46-setup
python-2.6.6.msi Add python-2.6.6.msi
python-2.7.6.msi update software
python-3.2.5.msi update software
python-3.3.5.msi update software
python-3.4.0.msi update software
release-mac105.sh Download docs from source forge
scons-2.3.0.tar.gz update software
setup-wine.sh MAINT: correct path to ATLAS binaries under .wine.
virtualenv-1.8.4.tar.gz Add virtualenv
w32api-3.7.tar.gz Version all the tarballs
waf-1.7.16.tar.bz2 TST: add Waf 1.7.16 archive to facilitate testing of numpy on TravisCI.

README.rst

NumPy Vendor

This builds Linux and Windows release binaries and sources for NumPy using a Vagrant VM. It should be 100% reproducible. You need Vagrant and Fabric.

The NumPy release notes are here:

https://github.com/numpy/numpy/blob/master/doc/HOWTO_RELEASE.rst.txt

But most of it is automated by numpy-vendor, so once the release branch is approved for release, just follow the instructions below.

How To Use

Do:

vagrant up
fab vagrant prepare

Log in and manually inspect the numpy repository, the release branch will be checked out. Do some last minute fixes, checkout a different branch, etc.:

vagrant ssh
cd repos/numpy
# Do any changes that are not in official repositories

First, change/check the following variables in pavement.py depending on the release version:

RELEASE_NOTES = 'doc/release/1.7.0-notes.rst'
LOG_START = 'v1.6.0'
LOG_END = 'maintenance/1.7.x'

Do any other changes. When you are ready to release, do the following changes:

diff --git a/setup.py b/setup.py
index b1f53e3..8b36dbe 100755
--- a/setup.py
+++ b/setup.py
@@ -57,7 +57,7 @@ PLATFORMS           = ["Windows", "Linux", "Solaris", "Mac OS-
 MAJOR               = 1
 MINOR               = 7
 MICRO               = 0
-ISRELEASED          = False
+ISRELEASED          = True
 VERSION             = '%d.%d.%drc1' % (MAJOR, MINOR, MICRO)

 # Return the git revision as a string

And make sure the VERSION variable is set properly. Commit it:

git commit -a -m "REL: Release 1.7.0rc1"

Push this commit into your local github account, not the official repository yet, for example by:

vagrah ssh
cd repos/numpy
git push git@github.com:certik/numpy maintenance/1.7.x:release_test

which will work, because vagrant ssh forwards the ssh keys.

Do the release (build general and windows binaries from the repos/numpy directory in the Vagrant VM):

fab vagrant numpy_release

And the directory release will be created in the current directory from the VM. If you need anything else, just login using vagrant ssh and copy it to /vagrant inside the VM.

If everything worked correctly, get the release commit from your github, tag it:

git tag v1.7.0rc1

and push this commit and tag into the official repository. Finally, upload the binaries.

Expert Usage

If you want to start from scratch, but want to reuse the existing vagrant image, you can keep all the deb packages, but reinstall everything else (NumPy, Wine, ...) from scratch. Do:

fab vagrant remove_userspace
fab vagrant prepare_userspace

This will delete all builds and other possible changes that you made into the vagrant image. This is equivalent to fab vagrant prepare, but faster.

Mac Binaries

First prepare the Mac build box as follows:

  • Install Python 2.7, 3.3 and 3.4 from python.org using the dmg disk image
  • Install setuptools and bdist_mpkg into all these Pythons
  • Install Paver into the default Python

Tip: Add the /Library/Frameworks/Python.framework directory into git and commit after each installation of any package or Python. That way you can easily remove temporary installations.

After Linux and Windows release files are in the release directory, we generate Mac binaries. First we setup the environment:

fab -H mac_host mac_setup

where mac_host is the Mac OS X computer which will be used to build the binaries. The only prerequisite is that the release directory contains the reference.pdf and userguide.pdf files generated by the Vagrant VM in the previous step. You can login manually and do some changes in the numpy directory if needed.

Then generate the binaries by:

fab -H mac_host mac_numpy_release

The Mac binaries will be copied to the release directory locally. To remove temporary files from the Mac, use:

fab -H mac_host mac_remove_userspace

Append the checksums at the end of README.txt in the release directory:

md5sum *.dmg >> README.txt

SourceForge

Upload all the files from the release directory to SourceForge:

http://sourceforge.net/projects/numpy/files/NumPy/

Lookup the last release to see which files need to be uploaded and double check that there are no files missing.

Something went wrong with that request. Please try again.