@@ -28,13 +28,15 @@ via `Travis-CI cron jobs
28
28
builds
29
29
<https://www.appveyor.com/docs/build-configuration/#scheduled-builds> `.
30
30
31
- Builds from the ``master `` branch upload to a Rackspace container for
32
- pre-releases at
33
- https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com
31
+ At the time of writing, we currently only do weekly builds for Linux/MacOS
32
+ (Travis CI), and not for Windows (Appveyor).
34
33
35
- Builds from the release branches upload to a Rackspace container for releases
36
- at
37
- https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com
34
+ Weekly wheel builds are uploaded to:
35
+ https://anaconda.org/scipy-wheels-nightly/scipy/files
36
+
37
+ When a PR is merged into ``master `` branch or one of the release feature
38
+ branches, the wheel artifacts are uploaded to a staging area:
39
+ https://anaconda.org/multibuild-wheels-staging/scipy/files
38
40
39
41
Pull requests should usually be submitted to the ``master `` branch.
40
42
@@ -49,19 +51,18 @@ The wheel-building repository:
49
51
(Manylinux1 _). ``delocate `` and ``auditwheel `` copy the required dynamic
50
52
libraries into the wheel and relinks the extension modules against the
51
53
copied libraries;
52
- * uploads the built wheels to a Rackspace container - see "Using the
53
- repository" above. The containers were kindly donated by Rackspace to
54
- scikit-learn) .
54
+ * uploads the built wheels to a Anaconda Cloud container - see "Using the
55
+ repository" above. The containers were kindly given expanded storage by
56
+ the Anaconda team .
55
57
56
58
The resulting wheels are therefore self-contained and do not need any external
57
59
dynamic libraries apart from those provided as standard by OSX / Linux as
58
60
defined by the manylinux1 standard.
59
61
60
- The ``.travis.yml `` file in this repository has a line containing the API key
61
- for the Rackspace container encrypted with an RSA key that is unique to the
62
- repository - see https://docs.travis-ci.com/user/encryption-keys. This
63
- encrypted key gives the travis build permission to upload to the Rackspace
64
- containers we use to house the uploads.
62
+ Both Appveyor and Travis CI are using secret/encrypted keys to provide
63
+ Anaconda Cloud upload credentials for merged PRs and weekly builds. The keys
64
+ are provided by Anaconda Cloud, and can be pasted direclty into the settings
65
+ for secret keys for Travis CI and Appveyor.
65
66
66
67
Triggering a build
67
68
==================
@@ -104,62 +105,22 @@ of an unexpected build/test issue.
104
105
Uploading the built wheels to pypi
105
106
==================================
106
107
107
- * pre-releases container visible at
108
- https://7933911d6844c6c53a7d-47bd50c35cd79bd838daf386af554a83.ssl.cf2.rackcdn.com
109
- * release container visible at
110
- https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com
108
+ * all pre-release wheel assets are stored in the Anaconda Cloud staging area:
109
+ https://anaconda.org/multibuild-wheels-staging/scipy/files
111
110
112
- Be careful, these links point to containers on a distributed content delivery
113
- network. It can take up to 15 minutes for the new wheel file to get updated
114
- into the containers at the links above.
111
+ Note that some other wheels are also stored here--those from any merged PRs
112
+ to the wheels repo (``master `` or release feature branch).
115
113
116
114
When the wheels are updated, you can download them to your machine manually,
117
- and then upload them manually to pypi, or by using twine _. You can also use a
118
- script for doing this, housed at :
119
- https://github.com/MacPython/terryfy/blob/master/wheel-uploader
120
-
121
- For the ``wheel-uploader `` script, you'll need twine and `beautiful soup 4
122
- <bs4> `_.
123
-
124
- You will typically have a directory on your machine where you store wheels,
125
- called a `wheelhouse `. The typical call for `wheel-uploader ` would then
126
- be something like::
127
-
128
- VERSION=0.18.0
129
- CDN_URL=https://3f23b170c54c2533c070-1c8a9b3114517dc5fe17b7c3f8c63a43.ssl.cf2.rackcdn.com
130
- wheel-uploader -u $CDN_URL -s -v -w ~/wheelhouse -t all scipy $VERSION
131
-
132
- where:
133
-
134
- * ``-u `` gives the URL from which to fetch the wheels, here the https address,
135
- for some extra security;
136
- * ``-s `` causes twine to sign the wheels with your GPG key;
137
- * ``-v `` means give verbose messages;
138
- * ``-w ~/wheelhouse `` means download the wheels from to the local directory
139
- ``~/wheelhouse ``.
140
-
141
- ``scipy `` is the root name of the wheel(s) to download / upload, and
142
- ``0.18.0 `` is the version to download / upload.
143
-
144
- In order to upload the wheels, you will need something like this
145
- in your ``~/.pypirc `` file::
146
-
147
- [distutils]
148
- index-servers =
149
- pypi
115
+ or use a ``download-wheels.py `` tool in the main SciPy repo, like this:
150
116
151
- [pypi]
152
- username:your_user_name
153
- password:your_password
117
+ ``python tools/download-wheels.py 1.5.0rc1 -w $REPO_ROOT/release/installers/ ``
154
118
155
- So, in this case, `wheel-uploader ` will download all wheels starting with
156
- `scipy-0.18.0- ` from the URL in ``$CDN_URL `` above to ``~/wheelhouse ``, then
157
- upload them to PyPI.
119
+ and then upload them manually to pypi, or by using twine _.
158
120
159
121
Of course, you will need permissions to upload to PyPI, for this to work.
160
122
161
123
.. _manylinux1 : https://www.python.org/dev/peps/pep-0513
162
124
.. _twine : https://pypi.python.org/pypi/twine
163
- .. _bs4 : https://pypi.python.org/pypi/beautifulsoup4
164
125
.. _delocate : https://pypi.python.org/pypi/delocate
165
126
.. _auditwheel : https://pypi.python.org/pypi/auditwheel
0 commit comments