Compare commits

...

578 Commits

Author SHA1 Message Date
kennethreitz ff94908505 Fix pyyaml (#402)
* Revert "use pkg_resources to check for distributions (#395)"

This reverts commit 9b185f99d5.

* use sp-grep for django detection

* sp-grep

* fix setuptools script
2017-06-02 15:23:05 -04:00
kennethreitz 5496c02f9f Don't install packages that could mess packaging up (#397)
* updated changelog

* remove setuptools sanity check

* update changelog

* pip-clean

* changelog note

* refactor codebase to improve package name detection

* fix version string

* cleanup

* add messaging, improve execution

* do uninstall first
2017-05-30 20:03:57 -04:00
Ed Morley 8d6d14b671 Update to bob-builder v0.0.13 (#399)
The recent fixes on bob-builder master have now been released.
2017-05-30 19:50:05 -04:00
kennethreitz 98dc586a99 Setuptools (#396)
* updated changelog

* remove setuptools sanity check
2017-05-30 11:36:10 -04:00
David Lord 9b185f99d5 use pkg_resources to check for distributions (#395)
more accurate than parsing requirements.txt
fixes #359
2017-05-30 11:05:33 -04:00
kennethreitz e8a79bbda5 fix for heroku ci (#392)
* attempted fix

* added a comment

* fixes

* improved changelog
2017-05-26 07:22:52 -07:00
Ed Morley e621ff4d5e Improve the workflow for generating binaries for Heroku-16 (#387)
* Updates bob-builder to a version that clears out the previous
  build directory, which prevents the stale files seen in #379.
* Adds a `buildenv-heroku-16` Make command to simplify the
  building and use of the Heroku-16 binary build environment.
* Sets `S3_BUCKET` and `S3_PREFIX` in the Docker image, to save
  having to do so manually each time.
* Removes the duplication of the bob-builder dependency between
  `Dockerfile` and `requirements.txt`.
* Disables the pip version check during Docker build, to avoid the
  noisy stderr warning about Ubuntu 16.04 pip being older (v8.1.1).
* Adds a `.dockerignore` to speed up the Docker build, by reducing
  the build context transferred to the daemon from 60MB to 2MB.
* Applies some Dockerfile best practices like disabling/removing
  cached files (since layer invalidation makes caching pointless).
2017-05-25 11:55:57 -07:00
Ed Morley 7a579e4eb7 Make assertCapturedSuccess display stdout if stderr was empty (#390)
In cases where there is no stderr there was previously no output,
which made it hard to find the cause. The assertion messages have
also been adjusted to remove the repetition (shunit2 already outputs
expected vs actual itself).

Before:
```
testPipenv
ASSERT:Expected captured exit code to be 0; was <2> expected:<0> but was:<2>
testPipenvVersion
```

After:
```
testPipenv
ASSERT:Captured exit code - expected:<0> but was:<2>
 !     Warning: Your application is missing a Procfile. This file tells Heroku how to run your application.
 !     Learn more: https://devcenter.heroku.com/articles/procfile
-----> Installing python-2.7.13
-----> Installing pip
-----> Generating 'requirements.txt' with pipenv

testPipenvVersion
```

Fixes #389.
2017-05-25 11:46:09 -07:00
kennethreitz a1ed1d7b42 Faster pipenv (#385)
* skip pip install for pipenv

* better

* improvements

* indent

* chmod +x

* export

* skip uninstall too

* pip freeze

* Revert "skip uninstall too"

This reverts commit faac96f62004f78c3d27a92cd865954fc7a3a53d.

* better comments

* redirect stderr to stdout
2017-05-25 10:55:01 -07:00
kennethreitz 9157111d44 Update README.md (#384) 2017-05-11 15:02:16 -04:00
Kaelan Thijs Fouwels 48f67ac5a6 Add runtime for python3 version of pypy 3.7.1 (#383) 2017-05-11 12:57:47 -04:00
kennethreitz f6d63ea53d chmod formula (#382) 2017-05-11 12:42:47 -04:00
Josh Friend 668219ae59 Add PyPy-5.7.1 (#370) 2017-05-11 12:10:13 -04:00
Ed Morley 18c404f72d Restore the build cache prior to running bin/pre_compile (#372)
So that any changes made to `.heroku/` within pre_compile (such as
installing additional libraries required for the later pip install) are
not clobbered by the cache being copied over afterwards.

Fixes #320.
2017-05-05 15:54:59 -04:00
kennethreitz 84f2fb5396 update python.gunicorn.sh to WEB_CONCURRENCY.sh (#373)
* update python.gunicorn.sh to WEB_CONCURRENCY.sh

* don't remove WEB_CONCURRENCY for prefixed 0s

* split gunicorn functionality into its own file

* cleanup comments

* fix var ordering

* add retry to curl

* use proper url for buildpack stdlib
2017-05-05 14:28:00 -04:00
kennethreitz d39b8c19b2 basics of metrics (#374)
* basics of metrics

* pin to stdlib v2

* measure python installation size

* lots of additional metrics

* add old output methods

* $

* empty commit
2017-05-03 14:15:03 -04:00
kennethreitz 9a24c9d17d don't unset DYNO (we're running on Heroku) (#371)
* don't unset DYNO (we're running on Heroku)

Fixes #280

* blacklist STACK env var for subshells
2017-04-25 10:27:57 -04:00
kennethreitz 29abb059b6 Merge branch 'master' of github.com:heroku/heroku-buildpack-python 2017-03-23 18:22:15 -04:00
kennethreitz eb056bc58d python-3.6.1 2017-03-23 18:22:07 -04:00
kennethreitz 70a152bd46 oops 2017-03-23 18:19:45 -04:00
kennethreitz 0b580d997e python 3.6.1 2017-03-23 18:16:40 -04:00
kennethreitz 9f63582a23 new pypy 2017-03-23 16:12:53 -04:00
kennethreitz 5f33811357 link needed 2017-03-23 16:05:42 -04:00
kennethreitz 3bd0a0e7cc no longer needed 2017-03-23 16:03:00 -04:00
kennethreitz b7c3cdb607 pypy-5.7.0 2017-03-23 15:57:32 -04:00
kennethreitz 3a89a84399 updated changelog 2017-03-17 17:37:25 -04:00
kennethreitz 59a70d2c63 link to nltk documentation 2017-03-17 15:02:20 -04:00
kennethreitz 26ed6daeaa remove bpwatch 2017-03-17 14:12:18 -04:00
kennethreitz cafd418220 remove bunk file 2017-03-16 13:23:39 -04:00
kennethreitz dded42350f added NOTICE file 2017-03-16 13:23:34 -04:00
kennethreitz 65648fb7a8 fix tests 2017-03-16 12:44:36 -04:00
kennethreitz 45b0d18532 fix tests further 2017-03-16 12:29:07 -04:00
kennethreitz 8f258ae0b8 remove pipstrip 2017-03-16 12:16:59 -04:00
kennethreitz b80f7a953f fix tests 2017-03-16 12:13:00 -04:00
kennethreitz f27a84e015 change the step order 2017-03-16 00:02:33 -04:00
kennethreitz 5794bacbbf cleanup 2017-03-16 00:00:55 -04:00
kennethreitz e29b60dcfd cleanups 2017-03-15 23:59:52 -04:00
kennethreitz 7c95b156ce fix syntax error 2017-03-15 23:59:21 -04:00
kennethreitz e05346e8c1 fixes to buildpack 2017-03-15 23:58:47 -04:00
kennethreitz 9deea01360 fix 2017-03-15 23:57:24 -04:00
kennethreitz c19f0f83ee fix build 2017-03-15 23:54:59 -04:00
kennethreitz 8b88d655c4 remove venv support 2017-03-15 16:48:05 -04:00
kennethreitz 0e8c0077ff remove legacy behavior 2017-03-15 16:47:24 -04:00
kennethreitz cfda557b31 updated makefile 2017-03-14 13:40:01 -04:00
kennethreitz 44c2b75b8d fix runtime-fixer 2017-03-14 13:36:29 -04:00
kennethreitz c3849fb6d3 improvements 2017-03-14 13:36:14 -04:00
kennethreitz 5608ed9f3c fix build 2017-03-14 13:21:40 -04:00
kennethreitz e9108858fc v100 2017-03-14 11:59:39 -04:00
kennethreitz c85f5d015c no debug 2017-03-14 11:43:40 -04:00
kennethreitz 321543d4ae debug 2017-03-14 11:42:02 -04:00
kennethreitz 8bd209de13 further fix test 2017-03-14 11:28:50 -04:00
kennethreitz 58e9c84347 fix tests 2017-03-14 11:27:18 -04:00
kennethreitz dcfff15151 cleanups 2017-03-14 11:23:28 -04:00
kennethreitz 9426dc8668 fix test 2017-03-14 10:54:38 -04:00
kennethreitz cdbeb6419e 2.7.11 2017-03-14 10:50:55 -04:00
kennethreitz 858113cf76 tests for newlines 2017-03-14 10:49:49 -04:00
kennethreitz a547da0b52 oops 2017-03-14 10:47:26 -04:00
kennethreitz df52fd46e5 whitespace stripper for runtime.txt 2017-03-14 10:45:59 -04:00
kennethreitz 2e37a96984 more cleanups 2017-03-14 10:00:59 -04:00
kennethreitz 12c3b8cb1d remove legacy code 2017-03-14 09:59:53 -04:00
kennethreitz 0fadebf7d8 more tests 2017-03-10 12:37:11 -05:00
kennethreitz 33ccaa9e45 bash not sh 2017-03-10 12:00:44 -05:00
kennethreitz 6b5ec50ab9 new travis matrix 2017-03-10 11:58:38 -05:00
kennethreitz 63810f29d3 passing tests 2017-03-10 11:43:11 -05:00
kennethreitz 0de749a6a2 updated tests 2017-03-10 11:22:07 -05:00
kennethreitz 2df1131d3c remove bpwatch 2017-03-10 11:21:57 -05:00
kennethreitz af0795264b heroku-16 2017-03-10 11:21:47 -05:00
kennethreitz 327daa5f32 no need for SETUPTOOLS_VERSION anymore 2017-03-08 16:58:39 -05:00
kennethreitz 09b7e44841 fix tests 2017-03-08 16:57:33 -05:00
kennethreitz e26a0f04d9 improvements 2017-03-08 09:01:24 -05:00
kennethreitz c92f379f78 improve 2017-03-08 08:58:07 -05:00
kennethreitz 893bdec066 updated setuptools 2017-03-08 08:44:32 -05:00
kennethreitz 607dcfda07 no pipenv test (for now) 2017-03-08 08:31:09 -05:00
kennethreitz 26a0b9678f no version checking yet 2017-03-07 12:09:09 -05:00
Kenneth Reitz e58e5d2b74 more tests 2017-03-07 11:58:53 -05:00
Kenneth Reitz 6faa5a4efc Merge remote-tracking branch 'origin/master' 2017-03-07 11:39:35 -05:00
kennethreitz 2881d65e4e Update pipenv 2017-03-03 09:27:42 -08:00
kennethreitz 1696e7cee6 v100! 2017-03-02 22:13:35 -08:00
kennethreitz 35b89386ed Squashed commit of the following:
commit 1b6199c182a8cf453247ae2a19b7f1db71664dda
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 22:10:46 2017 -0800

    remove toml.py

commit e9215a30f111008b97ac50584a077b77585fda4a
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:58:59 2017 -0800

    fuck

commit d1f40a51aa01a7f2771cbac32543e9df021939a1
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:58:06 2017 -0800

    frost mirror

commit 0f1ec08f8fd88d9b7ebe5b17ad3cf75a7e2859dd
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:45:40 2017 -0800

    hmmmm

commit 9e2e857371029f3e9569a6cbfb71e5162a991339
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:44:30 2017 -0800

    hmmm

commit 892ba8bfcda54db993a10546970ccfe17c3fe51d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:37:46 2017 -0800

    that

commit 61f80e7f5e380e8d6237adc1589a075f2974139b
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:36:41 2017 -0800

    this

commit 18a6f91ef5ff4410de43c562fffee99a0fb45da0
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:35:32 2017 -0800

    this

commit 163acc77e59cd34ec09a0d9836bbc20448e857ad
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:31:53 2017 -0800

    this

commit 4af63049cd1f6ced6daf1da43b15ef98ade84497
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 21:30:52 2017 -0800

    this

commit 43bde00a088a3a5b0db3d6361b24a679e5690e8e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 14:59:04 2017 -0800

    olive garden

commit 24305ba1b2938f3d373d0c8d158c2137eb709c82
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Thu Mar 2 14:57:52 2017 -0800

    change

commit dff928b2299679ebdee08f4e82b8815b7cbbf419
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:55:22 2017 -0800

    hmmm

commit e3bc14ff9085c2a0e5939693bc71930c4e299f27
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:45:29 2017 -0800

    pipstrip

commit 8dd06e437bb8b519d434805aa923adfd20fb0086
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:37:43 2017 -0800

    changes

commit 3abaaa9b9fb9b3fdd3cbd9dc2ade25f282555a65
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:33:59 2017 -0800

    changes

commit 61aeea92418f934ac79e189cde69bcb9e74413fe
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:28:15 2017 -0800

    changes

commit 9219f38ac9f56c55e0030f55dbfdd5f55ae050de
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:27:37 2017 -0800

    changes

commit 390f40102b946a17f58697db42edc3d6d06f6581
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:26:31 2017 -0800

    changes

commit bdb0710e4554764f66a753c28f260af564ef6d6a
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:25:24 2017 -0800

    changes

commit 3af273e7ed56a5fdec6f5986f27b4ca5312861e1
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:24:15 2017 -0800

    changes

commit 250632c245bcba9bb331e6ad7b6d1afd5ddc34c5
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:23:06 2017 -0800

    changes

commit 5c9a637a75aaf20087e80114607cc15f00b39ff3
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:16:47 2017 -0800

    toml.py

commit f672922a7bc09e9d7a2c559bb6be1e718703c459
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:15:26 2017 -0800

    vendor dir

commit 67d44200454510c3a625257909f7e708778359ec
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:14:45 2017 -0800

    change

commit 12dc70d7d91ce57944e221591cf3bf3bef0e0a0c
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:12:57 2017 -0800

    changes

commit 25673345579e8f1d7394b9ba60682f97be63273b
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:12:28 2017 -0800

    this

commit a4a5a6d006197158a511677d3aae25183531ff3e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:07:19 2017 -0800

    changes

commit 49c2c9ab901aaa4cd9c8c168f5b388b032708e51
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:05:03 2017 -0800

    changes

commit 2d3223d95968408889d79f722df7628b9e4533c8
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:04:24 2017 -0800

    changes

commit 6334b0f62afcbb3bc91bb706d30e6dd9aadfe447
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 19:02:35 2017 -0800

    detect python version

commit df606fa0aeed0754e659cce41fa28a88c471c756
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:56:08 2017 -0800

    hide stderr

commit 7ac261f62ee6c38e709a1560baadc181494b97db
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:53:37 2017 -0800

    update

commit f8530d252c2b386fb9f65a991d94380d3eccfdfd
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:51:46 2017 -0800

    lock

commit 7a1e10034a591890aa16c6e34ba5cb3d6b90a7b7
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:50:53 2017 -0800

    just generate requriements file

commit d78630ff858394cbae8397e1d060a3cc2437943f
Merge: 766b0c6 66f5a66
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:49:04 2017 -0800

    Merge branch 'master' into pipenv

commit 766b0c66e742790dc45df73e021302cf18601947
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:47:42 2017 -0800

    semicolon wrong

commit a9017bce79a4075ed1682041ca19c54092be71bb
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:41:54 2017 -0800

    run pipenv

commit 651c3aa90e45aa9f7509b127e4a21110907974cf
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:41:45 2017 -0800

    detect on pipfile

commit 6d9f553e24b82e756dd4c02063da035025144c9b
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:41:37 2017 -0800

    pipenv step

commit 51c6ef3060ac707bcb0361ccbbcfca50035a4360
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Wed Mar 1 18:41:26 2017 -0800

    new vendors
2017-03-02 22:11:03 -08:00
kennethreitz 3634eb1dbf Merge branch 'master' of https://git.heroku.com/python-builder-cedar-14 2017-02-23 11:18:14 -05:00
kennethreitz 66f5a66740 update geos to geos 3.4.3 2017-02-23 11:15:39 -05:00
kennethreitz 6e2a504fc1 v99 2017-02-23 11:14:47 -05:00
kennethreitz 124aff5ea6 cleanup 2017-02-23 11:14:47 -05:00
Denis Cornehl c44ab4cd03 Don't compile static versions of geo-libraries (#339)
python uses dynamic linking, and the static libraries use 200 MB of disk
space in the dynos.
2017-02-23 11:14:31 -05:00
kennethreitz 677dfeec11 cleanup 2017-02-15 13:49:59 -05:00
kennethreitz c77a1877d3 v98 2017-02-15 13:49:08 -05:00
kennethreitz 1c51f5d84e NLTK support 2017-02-15 13:44:31 -05:00
kennethreitz 6922a82536 Update README.md 2017-02-01 15:12:21 -05:00
kennethreitz 9cc5bf1a85 Update README.md 2017-02-01 15:11:25 -05:00
kennethreitz 012cb8a4df Added more tests 2017-02-01 15:09:49 -05:00
kennethreitz fab60ae6ab more tests 2017-01-24 23:16:36 -05:00
kennethreitz cd52da6155 tell travis to run the tests 2017-01-24 23:16:36 -05:00
David Zülke acd9347930 Handle and produce leading 0 in WEB_CONCURRENCY (#355)
The Node buildpack now exports a leading zero in its numbers. This lets us detect that it (or another buildpack) set the value, and overwrite it accordingly.

Fixes the issue where adding the node buildpack to a Python app would cause only one gunicorn worker to be spawned for a 1X dyno, and not two.

We also need to again produce leading zeroes in the value, so that e.g. the PHP buildpack can do the same on boot.
2017-01-23 01:29:02 -05:00
kennethreitz d7e2f0fb08 v97 2017-01-02 11:50:49 -05:00
kennethreitz a3ed9c7155 Fix egg-links
commit cb2c57dcffe856ad547ad8fbd1907815713dc4a7
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:44:39 2017 -0500

    no files were found

commit 38f861f6c6dbb2825c6551f220e610bea619c27f
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:37:35 2017 -0500

    uninstall

commit db1db5d2a0ad364d646d378ccff62b9aa0257efd
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:36:41 2017 -0500

    pip cleanup

commit 2e16f233849f683ad9c9d00bad51c2dd5da11c18
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:35:13 2017 -0500

    uninstall

commit 078e43d2926b77a40f21026969ee930aa7ad0fee
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:31:39 2017 -0500

    fix

commit eff318eaf37161f0c496e130688b27d596b9cd7a
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:30:09 2017 -0500

    wfwef

commit d8955b452190b1b6a40049c94df564144c4607dc
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:28:30 2017 -0500

    oops

commit 0e83a0ae238bdea06ce0d184c8139b598f71745e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:24:28 2017 -0500

    find

commit b9cb901ecb9d9075020f5c63e5faee04aade1ad7
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:23:04 2017 -0500

    don't

commit 3fd1a448e244a7c3f877ae75cd8672ef42a3f550
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:22:29 2017 -0500

    output

commit 884c6a40ee14365fccd4c9a34fb7733a833303a4
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:17:47 2017 -0500

    delete egg links

commit 9a16a8676abbd34b9ae0de3de4d52b4d358b2e35
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 11:14:18 2017 -0500

    remove egg-links

commit d45d9e977adc8ad7c5c18a27f1dfb20eb286bb5d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:35:24 2017 -0500

    no echo

commit 5cfb64387db1c69fff57ac9afa0c996a34a4362d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:33:58 2017 -0500

    debug

commit ac143097e9ee0a23464d16e2c6d414437046132e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:26:27 2017 -0500

    no print 0

commit 72adfe2e4abd975f5df5350f06f93d1309ff4ed1
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:25:27 2017 -0500

    cat other one

commit e51e83ca3ec9a6710add90424f80f9bc7c3d5bf3
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:23:52 2017 -0500

    echo

commit def0231dd068fe4a854074bf42409ef373ac0977
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Jan 2 10:20:31 2017 -0500

    cat the files
2017-01-02 11:48:45 -05:00
matsulib 8db1f07fba Update README.md (#354) 2016-12-30 20:17:21 -05:00
kennethreitz 17081d0328 Squashed commit of the following:
commit b611ff0cd6ed05ff27a42b6c2da656441056cfba
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Fri Dec 23 23:11:51 2016 -0500

    remove debugging statements

commit d1ab87748b
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Fri Dec 23 23:05:46 2016 -0500

    ln -s

commit 6844d1252d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Fri Dec 23 22:55:41 2016 -0500

    further debug

commit 1346c29089
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Fri Dec 23 22:54:42 2016 -0500

    debug

commit 3bc1b5e697
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Fri Dec 23 22:53:23 2016 -0500

    say when installing pip or setuptools
2016-12-23 23:24:34 -05:00
kennethreitz d1ab87748b ln -s 2016-12-23 23:05:46 -05:00
kennethreitz 6844d1252d further debug 2016-12-23 22:55:41 -05:00
kennethreitz 1346c29089 debug 2016-12-23 22:54:42 -05:00
kennethreitz 3bc1b5e697 say when installing pip or setuptools 2016-12-23 22:53:23 -05:00
kennethreitz 9a6fa0478a Python 3.6.0 2016-12-23 12:51:20 -05:00
Jason Dusek 573ded6d41 Idempotency in symlink creation (#349) 2016-12-21 23:23:35 -05:00
kennethreitz b4ec35433a v96 2016-12-21 01:58:54 -05:00
kennethreitz cf1148f0a8 keep things in place 2016-12-20 14:04:17 -05:00
kennethreitz a0649b1e50 move things around for collectstatic 2016-12-20 14:03:12 -05:00
kennethreitz 2f2fd24421 v95 2016-12-20 13:48:47 -05:00
kennethreitz f754ae16bb capture stderr 2016-12-20 13:47:25 -05:00
kennethreitz cef1be80a5 silence find output 2016-12-20 13:41:06 -05:00
kennethreitz c0571d86bf don't fail 2016-12-20 13:39:26 -05:00
kennethreitz d82eddca03 support for pypy 2016-12-20 13:35:44 -05:00
kennethreitz 119e8145c3 move .src up for collectstatic 2016-12-20 12:09:51 -05:00
kennethreitz 99dae0f671 v92 2016-12-19 22:16:11 -05:00
kennethreitz f54dfff8a9 fix permission denied 2016-12-19 22:12:57 -05:00
kennethreitz c9760ae0ee fix deep-cp 2016-12-19 22:09:51 -05:00
kennethreitz 98ff1670b3 cleanup 2016-12-19 22:05:28 -05:00
kennethreitz bdd466f838 cleanup pip install steps, caching src 2016-12-19 22:04:51 -05:00
kennethreitz 324ebc9223 attempted fix 2016-12-19 18:03:13 -05:00
kennethreitz 42ec6d8701 remove extra stuff 2016-12-19 17:59:02 -05:00
kennethreitz 19513067bb Merge branch 'dash-e'
# Conflicts:
#	bin/compile
2016-12-19 17:58:02 -05:00
kennethreitz 753c912ecc changelog 2016-12-19 17:53:01 -05:00
kennethreitz 4e8c469ec7 deep copy 2016-12-19 17:50:31 -05:00
kennethreitz 852723f867 find all *.pth files for sed replacement 2016-12-19 16:58:31 -05:00
David Zuelke 94514a8179 fix egg links containing refs to /tmp 2016-12-19 22:52:46 +01:00
kennethreitz 7d57744c0a v90 2016-12-19 16:49:24 -05:00
kennethreitz a41ddf6bd1 skip set if no path-links are found 2016-12-19 16:48:30 -05:00
kennethreitz 197b7bae3f Merge branch 'egg-links' 2016-12-19 16:45:16 -05:00
kennethreitz f468739cfb v89 2016-12-19 16:45:04 -05:00
kennethreitz 555d5bd2be cp the cache 2016-12-19 16:42:33 -05:00
kennethreitz 0a4d32c8a5 cache src 2016-12-19 16:39:34 -05:00
kennethreitz 1a1cedfc21 symlink eggs 2016-12-19 16:37:03 -05:00
kennethreitz d35ee2c14c Squashed commit of the following:
commit 554a8bbae6
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:26:18 2016 -0500

    comment out debugging line

commit 6572ad3d44
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:21:03 2016 -0500

    test

commit 35cabaeebc
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:09:21 2016 -0500

    try .

commit 300285a92d
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:05:22 2016 -0500

    find

commit 7a6f1eb010
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 16:02:24 2016 -0500

    find

commit 66d754978e
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:55:04 2016 -0500

    fix xargs

commit 9c222a9350
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:53:04 2016 -0500

    copy src

commit 7f4273f47f
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:45:20 2016 -0500

    new replace script

commit dd707c21e3
Author: Kenneth Reitz <me@kennethreitz.org>
Date:   Mon Dec 19 15:40:35 2016 -0500

    re-write egg-links
2016-12-19 16:31:29 -05:00
kennethreitz 554a8bbae6 comment out debugging line 2016-12-19 16:26:18 -05:00
kennethreitz 6572ad3d44 test 2016-12-19 16:21:03 -05:00
kennethreitz 35cabaeebc try . 2016-12-19 16:09:21 -05:00
kennethreitz 300285a92d find 2016-12-19 16:05:22 -05:00
kennethreitz 7a6f1eb010 find 2016-12-19 16:02:24 -05:00
kennethreitz 66d754978e fix xargs 2016-12-19 15:55:04 -05:00
kennethreitz 9c222a9350 copy src 2016-12-19 15:53:04 -05:00
kennethreitz 7f4273f47f new replace script 2016-12-19 15:45:20 -05:00
kennethreitz dd707c21e3 re-write egg-links 2016-12-19 15:40:35 -05:00
kennethreitz 7833743f96 don't change to /app 2016-12-19 15:19:32 -05:00
kennethreitz 5a9155e311 build dir for pip 2016-12-19 15:04:57 -05:00
kennethreitz 857c47ad66 /app for pip 2016-12-19 15:02:14 -05:00
kennethreitz 87cf6073dc add note about /app/.heroku/src 2016-12-18 13:58:22 -05:00
kennethreitz 36dd089808 cleanup indentation 2016-12-18 13:57:30 -05:00
kennethreitz c58f52e06e remove purging of old virtualenvs
since old stacks aren't supported
2016-12-18 13:56:16 -05:00
kennethreitz 265a95d3b6 v88 2016-12-18 13:53:09 -05:00
kennethreitz 290c1377fb Revert "see if symlink works now"
This reverts commit 8e42040d01.
2016-12-18 13:51:03 -05:00
kennethreitz 8e42040d01 see if symlink works now 2016-12-18 13:48:48 -05:00
kennethreitz d8755e6791 be specific in pip install directory 2016-12-18 13:44:10 -05:00
kennethreitz 364a1fafd9 -e fixings 2016-12-18 13:31:22 -05:00
kennethreitz 251b7f7960 copy the -e directory instead of symlinking 2016-12-18 13:26:47 -05:00
kennethreitz 6d491f9f2b fix for -e 2016-12-18 13:16:49 -05:00
kennethreitz 7cfbce82fd remove bunk autoconf 2016-12-17 21:15:28 -05:00
kennethreitz d520ca4291 new pypys 2016-12-17 19:21:39 -05:00
kennethreitz bf252422fc attempted fix for pypy 2016-12-17 19:12:18 -05:00
kennethreitz d7874d583b move v87 notes 2016-12-17 18:59:44 -05:00
kennethreitz d32dc82e1c v87 2016-12-17 18:58:58 -05:00
kennethreitz bd048d50b5 update default python to 2.7.13 2016-12-17 18:58:51 -05:00
kennethreitz 26b2eeee20 update setuptools to v31.1.0 2016-12-17 18:58:32 -05:00
kennethreitz e527457ba3 Merge branch 'master' of heroku.com:python-builder-cedar-14 2016-12-17 18:48:19 -05:00
kennethreitz 1b7bd02bf2 Merge branch 'master' into docker-builds 2016-12-16 20:25:00 -05:00
kennethreitz de9b0b9383 v86 2016-12-16 20:24:07 -05:00
David Zülke 991f4126d7 Greatly simplify code copying (#340)
* drop duplicate mkdir for .heroku

* simplify linking and moving of python and source

* steps/python needs its own symlink setup

* fix symlink destinations for vendor and venv

* always symlink python
2016-12-16 17:13:57 -08:00
kennethreitz 076a457ad9 changes 2016-12-16 11:08:49 -05:00
kennethreitz 264f74d159 skip binaries for heroku-16 2016-12-15 16:10:37 -05:00
kennethreitz 9f89c4e744 bob-builder==0.0.5 2016-12-15 13:52:53 -05:00
kennethreitz 8d2788094b python-2.7.13 with UCS-4 2016-12-15 13:20:51 -05:00
kennethreitz e2f4fd442a dockerfile for bob-builder 2016-12-14 16:00:32 -05:00
kennethreitz 1bccc03b30 Update CHANGELOG.md 2016-11-18 15:45:17 -05:00
kennethreitz adac27fa9c Merge pull request #334 from cclauss/patch-3
Upgrade to pip-9.0.1 and setuptools-28.8.0
2016-11-15 09:39:41 -05:00
kennethreitz d1c30fd24b updated pip and setuptools 2016-11-15 09:39:29 -05:00
kennethreitz a1cfa41cb2 Merge pull request #328 from joshfriend/pypy-5.4
Add PyPy2 v5.6.0
2016-11-14 14:26:48 -05:00
cclauss 57e9bb0054 Upgrade to pip-9.0.1 and setuptools-28.8.0
This would REQUIRE that the latest versions are placed into:
https://github.com/heroku/heroku-buildpack-python/tree/master/vendor

https://pypi.python.org/pypi/pip
https://pypi.python.org/pypi/setuptools
2016-11-13 10:48:32 +01:00
Josh Friend 8e34179b1c Fix pypy2 v5.3.1 download url 2016-11-12 15:45:28 -05:00
Josh Friend c03cb26961 Add pypy2 v5.4.1 2016-11-12 15:45:28 -05:00
kennethreitz 127ff904d6 update changelog 2016-11-08 19:18:05 -05:00
kennethreitz 6c53bd1cd6 fix typo 2016-11-08 13:10:00 -05:00
kennethreitz d8307c29ba fix for requirements.txt 2016-11-02 14:24:20 -04:00
kennethreitz f526673903 no debug statement 2016-11-02 14:08:28 -04:00
kennethreitz 85f10b7d59 Merge branch 'ci' 2016-11-02 14:08:04 -04:00
kennethreitz bbbadc83e4 is /app 2016-11-02 14:06:50 -04:00
kennethreitz 9c2b033042 proper debug 2016-11-02 14:04:39 -04:00
kennethreitz e427d5111e debug 2016-11-02 14:00:07 -04:00
kennethreitz ab724138c1 another approach 2016-11-02 13:59:33 -04:00
kennethreitz e36b580615 Merge remote-tracking branch 'origin/master' 2016-11-02 13:54:53 -04:00
kennethreitz f8a1761165 export path fix 2016-11-02 11:20:09 -04:00
kennethreitz 521bb00247 export functionality 2016-11-01 13:18:53 -04:00
kennethreitz 5cd4245412 Skip copying the code if we're already in the right spot 2016-11-01 12:45:27 -04:00
kennethreitz 40daa84ccc syntax sugar and test-requirements.txt 2016-11-01 12:41:17 -04:00
kennethreitz f0ea766900 basic test-compile script 2016-11-01 12:35:25 -04:00
kennethreitz 89125df805 remove deprecated test script 2016-11-01 12:33:55 -04:00
kennethreitz 83ee7d90d7 update python3 2016-10-26 13:51:31 -04:00
kennethreitz bb87f5ed56 remove deprecated runtimes 2016-10-26 13:51:21 -04:00
kennethreitz 424e1c351d Merge branch 'master' of https://git.staging.herokudev.com/python-builder-cedar-16 2016-10-26 13:46:35 -04:00
kennethreitz 83bde7ccea Update README.md 2016-10-26 13:46:10 -04:00
kennethreitz 7fab8ce2c2 Update README.md 2016-10-26 13:44:50 -04:00
kennethreitz d4326fad0f Update README.md 2016-10-26 13:31:33 -04:00
kennethreitz a0d4da00e6 update pypy 2016-10-26 13:16:25 -04:00
kennethreitz f72c34a5dd Merge branch 'master' of https://git.staging.herokudev.com/python-builder-cedar-16 2016-10-26 12:29:59 -04:00
kennethreitz 2bc41d20b8 dummy change 2016-10-26 12:27:46 -04:00
kennethreitz 3cce589cec newline 2016-10-05 14:49:57 -04:00
kennethreitz 70758edd49 dummy procfile entry 2016-09-28 14:51:59 -04:00
kennethreitz ba7a9cd565 Update CHANGELOG.md 2016-09-16 14:23:20 -04:00
kennethreitz 37a7afbe2d Merge pull request #329 from jambonrose/add-argon2-to-cryptography-step
Add argon2 to crypotgraphy step
2016-09-16 14:22:36 -04:00
Andrew Pinkham b0138c26e6 Add argon2 to crypotgraphy step
- Add argon2-cffi
- Add django[argon2] option from Django docs:
  https://docs.djangoproject.com/en/1.10/topics/auth/passwords/#argon2-usage
2016-09-16 10:57:09 -04:00
kennethreitz d653377faf fix history 2016-08-24 16:11:23 -04:00
kennethreitz 0b87419166 changelog entry 2016-08-19 09:02:59 -04:00
kennethreitz d832b7425e update pypy formula 2016-08-19 09:02:59 -04:00
kennethreitz 2991dce623 pypi workaround 2016-08-19 09:02:59 -04:00
kennethreitz 28b67dd208 update pypy formula 2016-08-19 08:57:19 -04:00
kennethreitz 24f73fbc2d pypi workaround 2016-08-19 08:54:24 -04:00
Troels Thomsen ffd0bb57ee Revert "Merge branch 'apt'"
This reverts commit 75870dd412, reversing
changes made to 0cf2e2849d.
2016-08-17 11:19:11 +02:00
kennethreitz 75870dd412 Merge branch 'apt' 2016-08-17 02:07:01 -04:00
kennethreitz 831d73e302 cleanup debugging 2016-08-17 02:06:36 -04:00
kennethreitz 0cf2e2849d updated setuptools vendor 2016-08-17 02:01:39 -04:00
kennethreitz 6ba8d47927 Merge pull request #323 from cclauss/patch-2
Update setuptools
2016-08-17 02:01:16 -04:00
kennethreitz af940b5390 v81 2016-08-17 02:00:49 -04:00
kennethreitz 819bc2da5b Merge pull request #326 from tvuotila/hotfix/preserve-environment-variables
Preserve environment variables
2016-08-17 01:59:55 -04:00
Tero Vuotila 2dad2e73f3 Preserve environment variables
Preserve LIBRARY_PATH and LD_LIBRARY_PATH.
Related heroku/heroku-buildpack-python#287
2016-08-16 10:34:49 +03:00
cclauss e550b32ea8 setuptools v25.2.0 2016-08-13 09:28:17 +02:00
cclauss 6af8d81086 Update setuptools
Update setuptools from 23.x.x to 25.x.x.
2016-08-09 18:42:46 +02:00
kennethreitz 0ed4089cb9 Merge pull request #308 from edmorley/fix-pip8-support
Switch pip-pop back to using pip 8
2016-08-02 20:54:16 -04:00
kennethreitz f09191ec8b Merge pull request #319 from edmorley/library-vendoring-cleanup
Fixes to the library vendoring's 'already exists' checks
2016-08-02 20:04:28 -04:00
Ed Morley aef7b65b95 Don't skip the geo-libs vendoring step if only gdalserver present
Since if someone previously had `GDAL` in their requirements file, they
would already have the gdalserver binary present from `bin/steps/gdal`
but be missing the proj and geos vendor files. By checking for `proj`
instead, we ensure that the vendoring isn't incorrectly skipped in this
case.
2016-08-02 14:28:24 +01:00
Ed Morley 5438aab121 Make libffi vendoring check for existing directory in correct location
For both the cedar and cedar-14 stacks, the libffi directory is named
`libffi-3.1` not `libffi-3.1.1`, so the existing library wouldn't be
detected, causing it to be re-downloaded during every compile.
2016-08-02 14:28:19 +01:00
Ed Morley a259143c0b Avoid repetition of vendor library environment variable setting
Since we need to set it regardless of whether the vendored library
existed previously or not.
2016-08-02 14:13:20 +01:00
Ed Morley 0896d6a0c4 Fix files without blank newline 2016-08-02 14:12:31 +01:00
Ed Morley 39f2efe296 Remove vendored pip since pip-pop is now compatible with pip v8
This means pip-pop will use the buildpack-installed pip 8, which doesn't
fail when encountering requirements files that use the new hash syntax.

Fixes #302.
2016-07-11 10:48:49 +01:00
Ed Morley d047f26ad4 Import upstream pip-pop fix for pip 8 support
Is the fix from kennethreitz/pip-pop#12.
2016-07-11 10:48:49 +01:00
kennethreitz 998f996a32 proper setuptools version 2016-06-28 14:44:45 -04:00
kennethreitz c620980e5a Merge pull request #313 from cclauss/Python-3.5.2
Add Python 2.7.12, Python 3.5.2, Pypy 5.3.1, Pip 8.1.2, Setuptools 23.1.0 and remove release candidate
2016-06-28 14:43:10 -04:00
cclauss 2983fcfbea Update README.md to current versions of Python 2, Python 3, Pypy, and Requests 2016-06-28 11:27:53 +02:00
cclauss e3511e7202 Update and rename pypy-5.3.0 to pypy-5.3.1 2016-06-28 11:17:37 +02:00
cclauss 692f040618 Update default Python plus Pip and Setuptools
* $ curl
https://pypi.python.org/packages/e7/a8/7556133689add8d1a54c0b14aeff0acb0
3c64707ce100ecd53934da1aa13/pip-8.1.2.tar.gz -o pip-8.1.2.tar.gz
* $ curl
https://pypi.python.org/packages/9f/7c/0a33c528164f1b7ff8cf0684cf88c2e73
3c8ae0119ceca4a3955c7fc059d/setuptools-23.1.0.tar.gz -o
setuptools-23.1.0.tar.gz
* $ ls
* $ rm pip-8.1.1.tar.gz
* $ rm setuptools-20.4.tar.gz
2016-06-28 10:56:09 +02:00
cclauss 8645a965aa Add Python 2.7.12 and remove the release candidate 2016-06-28 09:07:38 +02:00
cclauss 3a483865e8 Python 3.5.2
https://www.python.org/downloads/release/python-352/
2016-06-27 06:36:44 +02:00
kennethreitz 6ea6a0ccaf debug 2016-06-24 15:51:28 -04:00
kennethreitz 6bc94eaf6e dont unset library path 2016-06-24 15:46:27 -04:00
kennethreitz 49e409cb64 try soft links 2016-06-24 15:42:55 -04:00
kennethreitz 2693de45c7 attempt to ln 2016-06-24 15:40:57 -04:00
kennethreitz 88f711b6e7 before sanitization 2016-06-24 15:24:31 -04:00
kennethreitz a7976fc177 Merge remote-tracking branch 'origin/master' 2016-06-24 15:18:09 -04:00
cclauss 8a837a23e7 Back to rc11 2016-06-20 23:56:41 +02:00
cclauss f37597ad9d Runtimes: Added pypy-5.3.0, mv python-2.7.11rc1 python-2.7.12rc1
Runtimes:
* Added pypy-5.3.0
* Moved python-2.7.11rc1 to python-2.7.12rc1
2016-06-16 19:32:22 +02:00
kennethreitz 928a664544 yes 2016-06-15 04:35:28 -04:00
kennethreitz 9fb715ef1c no 2016-06-15 04:33:01 -04:00
kennethreitz 3cff2e39fe Merge pull request #298 from whit537/preen-pip-grep
clean up pip-grep in the `not silent` case
2016-06-10 12:58:57 -07:00
kennethreitz 653a5be104 Merge pull request #297 from whit537/comment
remove Pylibmc reference in cryptography comment
2016-06-10 12:56:34 -07:00
kennethreitz 67ade52e95 Merge pull request #304 from tt/use-travis
Use Travis
2016-06-10 12:40:27 -07:00
Troels Thomsen ab3e365ff6 Show build status in readme 2016-05-25 10:37:34 +02:00
Troels Thomsen 902672e934 Add Travis configuration 2016-05-25 10:37:25 +02:00
Troels Thomsen 6207b3506b Rename readme file 2016-05-25 10:37:03 +02:00
kennethreitz 5446d448fd Merge pull request #301 from alex/patch-1
Added another package that relies on cffi
2016-05-13 13:25:49 -04:00
Alex Gaynor 366def6c16 Added another package that relies on cffi 2016-05-13 13:17:03 -04:00
Chad Whitacre a84fc7a248 clean up pip-pop in the not silent case
The extraneous `format` call is harmless in itself, but it's possible for `requirement.req` to be `None` here, which results in `AttributeError: 'NoneType' object has no attribute 'project_name'`.
2016-05-10 07:31:25 -04:00
Chad Whitacre e4aa40216b remove Pylibmc reference in cryptography comment 2016-05-10 07:12:55 -04:00
kennethreitz 87d03e62d7 Merge branch 'master' of heroku.com:python-builder-cedar-14 2016-05-05 16:32:09 -04:00
kennethreitz 92b4f5e8aa pypy v5.1.0 v5.1.1 2016-05-05 16:31:25 -04:00
kennethreitz 19cd447b83 Merge pull request #296 from edmorley/libffi-PyNaCl
Add PyNaCl to the list of packages that trigger libffi bootstrapping
2016-04-21 16:26:03 -04:00
Ed Morley 570182b6b7 Add PyNaCl to the list of packages that trigger libffi bootstrapping
To reduce confusion for users who have not explicitly listed cffi as a
dependency.

Fixes #142.
2016-04-21 10:37:45 +01:00
kennethreitz 0a6ed0de43 v80 2016-04-05 17:10:49 -04:00
kennethreitz 0b7a1fc14e use older pip for pip-pop 2016-03-31 18:08:49 -04:00
kennethreitz 2c69e3b98f setuptools v20.4 2016-03-30 18:20:04 -04:00
kennethreitz 86f43fa02a v79 2016-03-22 19:41:02 -04:00
kennethreitz 03b95247c3 chmod +x (grr) 2016-03-22 19:39:48 -04:00
kennethreitz 0e8a11b836 Update Readme.md 2016-03-22 19:36:40 -04:00
kennethreitz 4c9de740d2 chmod +x (grr) 2016-03-22 19:26:58 -04:00
kennethreitz 9b45baa41c pypy-5.0.0 2016-03-22 19:22:49 -04:00
kennethreitz ecfaeb2fd2 Merge pull request #288 from joshfriend/pypy
Add PyPy 5.0.1
2016-03-22 19:21:56 -04:00
kennethreitz cef0b1703a Merge pull request #287 from ABASystems/master
Keep pre-existing environment variables.
2016-03-22 19:19:37 -04:00
Josh Friend 18317ef606 Add pypy-5.0.1 2016-03-21 08:28:25 -04:00
Luke Hodkinson 4896396a51 Removing debugging calls. 2016-03-21 18:29:07 +11:00
Luke Hodkinson be4f207aac Print out all the information as we install. 2016-03-21 18:19:49 +11:00
Luke Hodkinson af15be61b8 Don't stomp on pre-existing environment values, in particular the
`PKG_CONFIG_PATH` variable.
2016-03-21 17:26:51 +11:00
kennethreitz 39d64c5fd1 updated changelog 2016-03-17 23:41:14 -04:00
kennethreitz 645cf5e338 updated stuptools 2016-03-17 23:41:09 -04:00
kennethreitz 7430c48b72 pip v8.1.1 2016-03-17 23:18:54 -04:00
kennethreitz 783d9e4b12 no shared for python-3.5.1 2016-03-15 14:22:31 -04:00
kennethreitz eab957c8c9 BUILD_WITH_GEO_LIBRARIES 2016-03-11 14:58:33 -05:00
kennethreitz 6e80c391a8 Merge pull request #284 from edmorley/update-pip-setuptools
Update pip and setuptools
2016-03-11 14:53:37 -05:00
kennethreitz 58bae65a28 Merge pull request #285 from heroku/mattgraham-patch-2
Update buildpack image to align with marketing
2016-03-11 14:53:22 -05:00
Matt Graham 70d8c7a625 Update Readme.md 2016-03-11 14:15:41 -05:00
Ed Morley 66611ca21a Update setuptools to 20.2.2
https://pythonhosted.org/setuptools/history.html
https://bitbucket.org/pypa/setuptools/branches/compare/20.2.2%0D19.6

The release on PyPI isn't signed, though the MD5 of this archive matches
that on the PyPI package page:

$ md5sum setuptools-20.2.2.tar.gz
bf37191cb4c1472fb61e6f933d2006b1 *setuptools-20.2.2.tar.gz
2016-03-08 14:34:29 +00:00
Ed Morley 20fe371ac7 Update pip to 8.1.0
https://pip.pypa.io/en/stable/news/
https://github.com/pypa/pip/compare/8.0.2...8.1.0

Archive verified via:
https://pypi.python.org/packages/source/p/pip/pip-8.1.0.tar.gz.asc

And Donald's key from:
https://pypi.python.org/security

$ gpg --verify pip-8.1.0.tar.gz.asc pip-8.1.0.tar.gz
gpg: Signature made Sat, Mar  5, 2016  4:57:30 PM GMT using RSA key ID 3372DCFA
gpg: Good signature from "Donald Stufft (dstufft) <donald@stufft.io>"
gpg:                 aka "Donald Stufft (dstufft) <donald@python.org>"
...
Primary key fingerprint: 7C6B 7C5D 5E2B 6356 A926  F04F 6E3C BCE9 3372 DCFA
2016-03-08 14:34:28 +00:00
Ed Morley d23143b801 Update changelog for unreleased changes since v77
https://github.com/heroku/heroku-buildpack-python/compare/v77...c98615cdd00f7525e98524a40a59cf18d7f7a0b6
2016-03-08 14:34:18 +00:00
kennethreitz c98615cdd0 pygdal 2016-03-04 14:37:21 -05:00
kennethreitz 0749a04773 flexible caps for gdal 2016-03-04 14:18:25 -05:00
kennethreitz a4f072714d vendored geos and proj steps for GDAL 2016-03-04 14:14:41 -05:00
kennethreitz 427ec9e431 first attempt at geos build 2016-03-02 18:55:33 -05:00
kennethreitz 168939d14f first attempt at proj build 2016-03-02 18:55:33 -05:00
kennethreitz 58ecbd8a73 updated gdal version 2016-03-02 18:55:33 -05:00
kennethreitz 10eb361975 remove bunk libffi file 2016-03-02 18:55:33 -05:00
kennethreitz 1242d71382 Merge pull request #281 from edmorley/typos-and-cleanup
Correct typos and non-canonical/HTTPS URLs
2016-02-29 14:02:48 -05:00
Ed Morley 6ef93693c5 Use the shorthand buildpack notation in the README example
https://devcenter.heroku.com/articles/buildpacks#officially-supported-buildpacks
2016-02-29 18:30:47 +00:00
Ed Morley 69b8b25322 Use the canonical (and HTTPS) URLs for devcenter and pip
To save the 301s.
2016-02-29 18:28:23 +00:00
Ed Morley b706cd13f7 Fix README and script comment typos 2016-02-29 18:00:46 +00:00
kennethreitz 724e51b5c7 2016 2016-02-25 15:13:33 -05:00
kennethreitz 7b4835a98e Fix CACHED_PYTHON_STACK workflow; update default stack to cedar-14 2016-02-25 14:45:50 -05:00
kennethreitz 477773b331 Merge pull request #278 from jambonrose/issue_277
Fix #277 - Install libffi with django[bcrypt] req.
2016-02-23 11:28:50 -05:00
Andrew Pinkham c98c481f24 Fix #277 - Install libffi with django[bcrypt] req.
This ensures that libffi, required by bcrypt, is installed when Django
is installed with the bcrypt dependency declared as an extra
(django[bcrypt] or Django[bcrypt]).
2016-02-23 09:59:49 -05:00
kennethreitz 462fe074f9 Update Readme.md 2016-02-19 16:03:46 -05:00
kennethreitz 70bfc5eab3 Update Readme.md 2016-02-19 16:02:03 -05:00
kennethreitz a4d2592438 Update Readme.md 2016-02-19 16:01:39 -05:00
kennethreitz 8306f84236 Update Readme.md 2016-02-19 16:01:10 -05:00
kennethreitz 6952a2e728 Update Readme.md 2016-02-19 15:59:06 -05:00
kennethreitz 7142c747f4 Update Readme.md 2016-02-19 15:55:58 -05:00
kennethreitz 11db8e126a Update Readme.md 2016-02-19 15:54:33 -05:00
kennethreitz 6f1fce3cdb Update Readme.md 2016-02-19 15:54:03 -05:00
kennethreitz b2e12f9ec8 Update Readme.md 2016-02-19 15:52:59 -05:00
kennethreitz 44f8e393d6 Update Readme.md 2016-02-19 15:49:13 -05:00
kennethreitz b8cbc64d20 Update Readme.md 2016-02-19 15:46:56 -05:00
kennethreitz 5d51be5679 Update Readme.md 2016-02-19 15:43:01 -05:00
kennethreitz d550b8cd15 Update Readme.md 2016-02-19 15:42:18 -05:00
kennethreitz 25b28af19d Update Readme.md 2016-02-19 15:39:05 -05:00
kennethreitz dbe2cdac37 Update Readme.md 2016-02-19 15:38:31 -05:00
kennethreitz 767af30453 Update Readme.md 2016-02-19 15:27:02 -05:00
kennethreitz df02e34a5b Merge pull request #276 from heroku/mattgraham-patch-1
Correct buildpack featured image
2016-02-17 17:02:58 -05:00
Matt Graham 26c918863e Fix for Issue #275
Closes #275
2016-02-17 11:28:06 -05:00
kennethreitz 1c458cee2e Merge pull request #274 from alex/patch-1
Fixed some broken comments
2016-02-16 08:25:01 -05:00
Alex Gaynor 433570c27b Fixed some broken comments 2016-02-16 08:17:11 -05:00
kennethreitz 30cb4ecef3 Update Readme.md 2016-02-12 19:43:33 -05:00
kennethreitz 84e2a51337 support for FORWARDED_ALLOW_IPS='*' 2016-02-12 18:36:10 -05:00
kennethreitz f1c2bc39d2 Update Readme.md 2016-02-10 22:42:17 -05:00
kennethreitz ad53dc61f0 Improvements to warnings and minor bugfix. 2016-02-10 15:51:46 -05:00
kennethreitz 8598296756 updated changelog 2016-02-08 23:34:04 -05:00
kennethreitz f5ef10326e nicer warnings 2016-02-08 23:31:23 -05:00
kennethreitz 16ec3c8325 cleanup pip freeze 2016-02-08 23:28:13 -05:00
kennethreitz 49676e12af . 2016-02-08 23:12:59 -05:00
kennethreitz 0aa123995b cleanup cleanup 2016-02-08 23:09:47 -05:00
kennethreitz cd4d811d4f wait 2016-02-08 22:52:09 -05:00
kennethreitz 76ebf9279b maybe this will help 2016-02-08 22:25:28 -05:00
kennethreitz 3c3e621040 Revert "Revert "Revert "debug"""
This reverts commit 72710696a0.
2016-02-08 22:12:29 -05:00
kennethreitz 40e91ffa67 debug 2016-02-08 22:10:52 -05:00
kennethreitz 72710696a0 Revert "Revert "debug""
This reverts commit d27228999d.
2016-02-08 22:08:50 -05:00
kennethreitz d27228999d Revert "debug"
This reverts commit a4e8ba3cdf.
2016-02-08 22:00:23 -05:00
kennethreitz a4e8ba3cdf debug 2016-02-08 21:59:55 -05:00
kennethreitz e27b5656fd InsecurePlatformWarning 2016-02-08 21:38:14 -05:00
kennethreitz f132d3198a remove debug 2016-02-08 21:33:22 -05:00
kennethreitz 6afd6bbce9 debug 2016-02-08 21:29:40 -05:00
kennethreitz 6fa14b55d3 let's try this 2016-02-08 21:18:23 -05:00
kennethreitz 8f4eb44d36 capture stderr of pip-install too 2016-02-08 21:12:41 -05:00
kennethreitz 67f4c4238a further output improvement 2016-02-08 21:07:07 -05:00
kennethreitz ffb89feb0d improvements to buildpack output 2016-02-08 20:59:03 -05:00
kennethreitz 45b00e32a7 warn for pip's SNIMissingWarning 2016-02-08 20:53:04 -05:00
kennethreitz 90edd88b22 cleanup collectstatic stuff, before release 2016-02-08 20:30:39 -05:00
kennethreitz 2533cc68c1 correct date on changelog 2016-02-08 19:46:00 -05:00
kennethreitz a11a765b93 v76 2016-02-08 19:36:03 -05:00
kennethreitz 6505f98bae cleanup 2016-02-05 01:07:05 -05:00
kennethreitz eb3e7851f7 compile comments 2016-02-05 01:04:31 -05:00
kennethreitz 78b6142d18 suppress ManifestStaticFilesStorage
Thanks, #11
2016-02-05 00:06:38 -05:00
kennethreitz af58f322e2 Merge branch 'master' of github.com:heroku/heroku-buildpack-python 2016-02-05 00:05:01 -05:00
kennethreitz e4bcc68c9a make collectstatic less spammy for ManifestStaticFilesStorage
From issue #11
2016-02-05 00:04:08 -05:00
kennethreitz 9a024b8595 Update Readme.md 2016-02-05 00:01:36 -05:00
kennethreitz 581177b219 Merge pull request #273 from heroku/collectstatic
Collectstatic revamp
2016-02-04 23:59:52 -05:00
kennethreitz 669f0b0e2a unset extra environment variables 2016-02-04 23:56:29 -05:00
kennethreitz e5ac89c4df indent env output 2016-02-04 23:56:18 -05:00
kennethreitz 1e8ad56b0f sed debug 2016-02-04 23:43:30 -05:00
kennethreitz b6607f0f42 debug 2016-02-04 23:37:44 -05:00
kennethreitz 8615bf5272 debug 2016-02-04 23:36:19 -05:00
kennethreitz 7f475977b5 debugging 2016-02-04 23:35:13 -05:00
kennethreitz 53eee452eb --traceback 2016-02-04 23:33:59 -05:00
kennethreitz 031c9d576f cleanup output 2016-02-04 23:32:45 -05:00
kennethreitz b0568b5f90 PIPESTATUS 2016-02-04 23:25:41 -05:00
kennethreitz 359a3b0d61 collectstatic improvements. 2016-02-04 23:20:40 -05:00
kennethreitz d46e0efc16 sub-env now has a few python variables, just in case. 2016-02-04 23:05:56 -05:00
kennethreitz b97a104ad6 better messaging 2016-02-04 23:05:38 -05:00
kennethreitz a2ee94a8fb first pass at new collectstatic logic 2016-02-04 22:02:24 -05:00
kennethreitz 3b35c2c296 Merge pull request #262 from cclauss/pypy-4.0.1
pypy 4.0.1
2016-01-26 18:50:22 -05:00
kennethreitz 97834d305a v75 2016-01-26 16:57:54 -05:00
kennethreitz 86a53e6479 also exclude wheel from uninstalls 2016-01-26 16:52:11 -05:00
kennethreitz 8c746e3e17 no more --allow-all-external 2016-01-26 16:51:59 -05:00
kennethreitz b1d1a7cca5 update pip/setuptools 2016-01-26 16:51:44 -05:00
kennethreitz f172a83d48 Update release 2016-01-18 13:48:20 -05:00
kennethreitz 4346b41c70 v74 2015-12-29 18:32:08 -05:00
kennethreitz 195ed4ae15 warn for lack of procfile 2015-12-29 18:24:38 -05:00
cclauss e4fee65430 Remove readme changes 2015-12-18 00:59:56 +01:00
kennethreitz 4f10a7e14a Merge pull request #266 from cclauss/patch-2
Update readme to Python 2.7.11 and 3.5.1
2015-12-17 14:26:20 -06:00
kennethreitz a637ec3d11 v72 2015-12-07 16:26:18 -05:00
kennethreitz 1dd7be4250 2.7.11 2015-12-07 16:25:26 -05:00
kennethreitz c2b9121436 New Pythons! 2015-12-07 16:12:24 -05:00
cclauss 567120b4bc Update Readme.md 2015-12-07 07:18:50 +01:00
cclauss b61a395cd0 Update to Python 2.7.11 2015-12-06 02:11:06 +01:00
kennethreitz 2a3962aea7 Python-2.7.11rc1 2015-12-04 17:16:59 -05:00
kennethreitz 364ddc98b7 update setuptools 2015-12-04 17:16:41 -05:00
kennethreitz d93d283be2 v72 2015-12-03 14:57:53 -05:00
kennethreitz 42141c2bf9 v71 2015-12-03 14:57:03 -05:00
kennethreitz d82c898509 remove exit 2015-12-03 14:01:51 -05:00
kennethreitz 6545d71b46 remove debugging statements 2015-12-03 14:01:51 -05:00
kennethreitz 93b707eae5 let's try pipestatus 2015-12-03 14:01:51 -05:00
kennethreitz 8d358218f8 change order 2015-12-03 14:01:51 -05:00
kennethreitz b84b168be8 easier to debug 2015-12-03 14:01:51 -05:00
kennethreitz 35c810e46d debugging 2015-12-03 14:01:51 -05:00
kennethreitz e1ea2f9354 appears to be working now :D 2015-12-03 14:01:51 -05:00
kennethreitz 7db6ea33ac try another approach 2015-12-03 14:01:51 -05:00
kennethreitz a53826a673 try something else 2015-12-03 14:01:51 -05:00
kennethreitz b7ecb49a96 debugging step 2015-12-03 14:01:51 -05:00
kennethreitz 911140b3ac cleanup whitespace 2015-12-03 14:01:51 -05:00
kennethreitz f1c4efb464 distribute warning 2015-12-03 14:01:51 -05:00
kennethreitz 5a979874ad scipy-included 2015-12-03 14:01:51 -05:00
kennethreitz a32ca25520 pretty error message 2015-12-03 14:01:51 -05:00
kennethreitz e304089c3e grep it 2015-12-03 14:01:51 -05:00
kennethreitz 5d8932e5ee remove debugging 2015-12-03 14:01:51 -05:00
kennethreitz 7770ab8ff2 debugging 2015-12-03 14:01:51 -05:00
kennethreitz 277294817a show-warnings 2015-12-03 14:01:51 -05:00
kennethreitz 25b17d51c3 this isn't python 2015-12-03 14:01:51 -05:00
kennethreitz ac103519f8 cleanup cleanup
everybody everywhere
2015-12-03 14:01:51 -05:00
kennethreitz e8b8af045f new warnings file 2015-12-03 14:01:51 -05:00
kennethreitz 0bb6d6e2bd emit a warning 2015-12-03 14:01:51 -05:00
kennethreitz 0184dcac24 let's try exiting one 2015-12-03 14:01:51 -05:00
kennethreitz 558e748e9e trying something else 2015-12-03 14:01:51 -05:00
kennethreitz dec86fbc2e explicitly error out on bad pip install 2015-12-03 14:01:51 -05:00
kennethreitz ddc310084b add loging to pip-install 2015-12-03 14:01:51 -05:00
cclauss 2a6053ec2c pypy-4.0.1
http://morepypy.blogspot.com
2015-11-29 16:23:12 +01:00
cclauss 86e0e29a41 Merge remote-tracking branch 'heroku/master' into pypy-4.0.1 2015-11-29 16:19:36 +01:00
kennethreitz bc754f402b Merge pull request #260 from craigkerstiens/plan-agnostic-database-selection
Update heroku-postgresql to be plan agnostic
2015-11-23 13:07:51 -06:00
Craig Kerstiens ea5bc23a76 Update heroku-postgresql to be plan agnostic
This will result in selecting the lowest level plan for the add-on as opposed to a hard coded one which may change.
2015-11-19 12:05:36 -08:00
kennethreitz 46ecf15337 Merge pull request #259 from heroku/nsamsami-readme-note
Updated Readme
2015-11-18 13:53:35 -06:00
Nahid Samsami d020d20bde Changed "the buildpack" to "this buildpack" 2015-11-17 16:46:26 -08:00
Nahid Samsami 01ff4269f2 Updated Readme
Included a note that the build pack supports running Django and Flask apps.
2015-11-12 17:12:52 -08:00
kennethreitz f507bb0c05 bugfix for python customer 2015-10-29 15:48:16 -04:00
kennethreitz 9179b3cac0 v70 changelog 2015-10-29 11:57:59 -04:00
kennethreitz 5be33758ed Merge branch 'cache' 2015-10-29 11:56:36 -04:00
kennethreitz 41a44272d2 pypy-4.0.0 2015-10-29 11:53:24 -04:00
kennethreitz 6b3f63252f cleanup 2015-10-27 12:50:17 -04:00
kennethreitz c9acc4154b / 2015-10-27 12:23:15 -04:00
kennethreitz d5fed79e86 update to caching mechanism pt 2 2015-10-27 12:22:40 -04:00
kennethreitz 05edd6b065 update to caching mechanism 2015-10-27 12:15:53 -04:00
kennethreitz d96914ab2e restore master's compile script 2015-10-15 11:40:55 -04:00
kennethreitz 4c4e192317 Merge branch 'master' into cache 2015-10-15 10:48:58 -04:00
kennethreitz 2963d2520b update changelog 2015-10-15 10:34:24 -04:00
kennethreitz 85686805a7 Merge branch 'master' into merge 2015-10-15 10:33:12 -04:00
kennethreitz eef41088b1 mkdir-p 2015-10-13 11:23:34 -04:00
kennethreitz f7387427c8 changes 2015-10-13 11:12:55 -04:00
kennethreitz 23e1164c93 try removing .heroku 2015-10-13 11:09:39 -04:00
kennethreitz fd4ab23f50 debug 2015-10-13 11:03:49 -04:00
kennethreitz c78bf77055 allow them to fail 2015-10-13 11:02:17 -04:00
kennethreitz 5e212e4db8 CACHED_DIR 2015-10-13 11:01:51 -04:00
kennethreitz 9f666cee79 explicit is better than implicit 2015-10-13 10:57:51 -04:00
kennethreitz 69e9368c2d further don't error out 2015-10-13 10:48:50 -04:00
kennethreitz 4513dd7522 don't error out on directories that may not exist 2015-10-13 10:47:09 -04:00
kennethreitz 8b3e99adb3 manual cache population 2015-10-13 10:42:57 -04:00
kennethreitz c5972cdb74 .heroku 2015-10-13 10:37:00 -04:00
kennethreitz 7b9bc848ee starting over 2015-10-13 10:33:55 -04:00
kennethreitz 921a4c31a8 back to deep mv 2015-10-13 10:31:39 -04:00
kennethreitz 67063fc34f fix 2015-10-13 10:27:03 -04:00
kennethreitz 21dd1782fa whitelisting 2015-10-13 10:25:49 -04:00
kennethreitz beb8c70585 cleanup 2015-10-13 10:17:29 -04:00
kennethreitz b46cc0c6da ignore cleanup the cache 2015-10-13 10:16:10 -04:00
kennethreitz 74af94132a try hardcoding it in 2015-10-13 10:14:54 -04:00
kennethreitz 24cc273800 whitelist cache 2015-10-13 10:13:23 -04:00
kennethreitz c0fbb0723a attempt to whitelist cache entries for python buildpack 2015-10-13 10:13:09 -04:00
kennethreitz 6ab397db10 whitelist 2015-10-13 10:03:50 -04:00
kennethreitz d8623ae454 whitelist approach 2015-10-13 10:02:34 -04:00
kennethreitz e6d395fa27 ls /app/.heroku 2015-10-13 09:57:13 -04:00
kennethreitz e77090b6b8 copy them to the cache dir 2015-10-13 09:55:48 -04:00
kennethreitz c61f907079 echo 2015-10-13 09:53:47 -04:00
kennethreitz bd90eecd8c fix bug in cache_dir 2015-10-13 09:49:49 -04:00
kennethreitz 44b2ef0c4e an attempt at fixing caching 2015-10-13 09:47:28 -04:00
kennethreitz 38d73effc1 an attempt at fixing caching 2015-10-13 09:47:14 -04:00
kennethreitz 6f6b75bb1f Update CHANGELOG.md 2015-10-12 16:23:00 -04:00
kennethreitz cd90c7d1d8 v68 2015-10-12 10:39:07 -04:00
kennethreitz ce3c68538d no .heroku/venv 2015-10-12 10:36:34 -04:00
kennethreitz b6adf5223b changelog cleanup 2015-10-12 09:52:18 -04:00
kennethreitz 0818d5428f v67 2015-10-12 09:51:56 -04:00
kennethreitz 1d8afb452e legacy venv location 2015-10-12 09:47:52 -04:00
Owen Jacobson 1c82d820c9 Be more conservative to what we cache 2015-10-09 15:28:24 -04:00
kennethreitz 7cf8712d3c v66 2015-10-09 10:36:36 -04:00
kennethreitz 2b62692ab2 Merge branch 'preserve-ORIG_BUILD_DIR' of https://github.com/tommyvn/heroku-buildpack-python into multi 2015-10-09 09:40:03 -04:00
kennethreitz 9188d94723 v65 2015-10-08 13:34:48 -04:00
kennethreitz 2ba3e06f4e Revert "Merge pull request #253 from ojacobson/preserve-original-build-dir"
This reverts commit 1e5ff1f8c9, reversing
changes made to 83538ca6ec.
2015-10-08 13:16:52 -04:00
kennethreitz 6d78f7e3ed v64 2015-10-08 12:17:26 -04:00
kennethreitz 1e5ff1f8c9 Merge pull request #253 from ojacobson/preserve-original-build-dir
Preserve original build directory (including previously-installed programs) when moving app to /app during build.
2015-10-08 12:12:26 -04:00
kennethreitz 83538ca6ec Merge pull request #250 from cclauss/python-3.5.0-and-pypy-2.6.1
Python 3.5.0 and Pypy 2.6.1
2015-10-08 11:10:45 -04:00
kennethreitz 619bd638b0 correct setuptools 2015-10-08 10:08:24 -04:00
kennethreitz 5c359ba0fa Merge remote-tracking branch 'origin/master' 2015-10-08 10:04:04 -04:00
kennethreitz 27f019105e new setuptools and pip 2015-10-08 10:03:08 -04:00
kennethreitz eb572b5ab4 python 3.5.0 2015-10-08 09:43:15 -04:00
Owen Jacobson 67c3d38a03 Preserve original build directory (including previously-installed programs) when moving app to /app during build.
This means that binaries installed in $BUILD_DIR/.heroku/node (let's say) will
remain available during build, at the paths previous buildpacks established.
2015-10-07 18:47:24 -04:00
cclauss 8f4ca7f624 Python 3.5.0 and Pypy 2.6.1
Added python-3.5.0
Added pypy-2.6.1
Updated Readme.md
2015-09-22 12:12:19 +02:00
Matt Graham ce3bdb37ba Merge pull request #241 from heroku/readme-image
--------- Forwarded message ----------
From: M.-A. Lemburg <mal@python.org>
Date: Wed, Aug 12, 2015 at 1:41 AM
Subject: Re: [psf-trademarks] Question on usage of Python logo
To: Craig Kerstiens <craig@heroku.com>, psf-trademarks@python.org


Hi Craig,

we are happy to approve your use of the logo.

Thanks,
--
Marc-Andre Lemburg
Director
Python Software Foundation
http://www.python.org/psf/

On 27.07.2015 20:32, Craig Kerstiens wrote:...
2015-08-13 15:40:16 -04:00
Tom van Neerijnen a91e9c2fc1 export BUILD_DIR and friends after context change
Anything using theses exported variables should be using them in the new
context rather than the old
2015-08-12 11:43:39 +01:00
Tom van Neerijnen da96cdf21e set *PROFILE_PATH after context change
PROFILE_PATH and WEBCONCURRENCY_PROFILE_PATH must land in the new build context and
so should be set after the new context is created
2015-08-12 11:33:06 +01:00
Tom van Neerijnen 0b2e4e9b22 preserve ORIG_BUILD_DIR during the build process
using the apt buildpack in combination with the multi buildpack exports some
paths out of ORIG_BUILD_DIR. By copying instead of moving this should allow
building of python modules that have dependancies on any packages installed
into ORIG_BUILD_DIR.
2015-08-12 10:53:51 +01:00
kennethreitz 129ce5f0df changelog entry 2015-08-07 14:44:56 -04:00
kennethreitz 25f7421573 setuptools v18.1 2015-08-07 14:43:21 -04:00
Matt Graham 8c654b658c merge master 2015-07-31 16:58:44 -04:00
Matt Graham ed3691a0aa python banner image 2015-07-31 16:44:23 -04:00
kennethreitz ded2c5156a Merge pull request #239 from heroku/revert-238-mattgraham-patch-1
Revert "Update Readme.md"
2015-07-28 09:43:52 -04:00
Craig Kerstiens 7c3a6303d1 Revert "Update Readme.md" 2015-07-27 13:42:31 -07:00
kennethreitz 591ed6b150 Merge pull request #238 from heroku/mattgraham-patch-1
Update Readme.md
2015-07-27 16:37:59 -04:00
Matt Graham c1c4f50ef6 Update Readme.md 2015-07-27 14:30:36 -04:00
Matt Graham 2b29e7efeb Update Readme.md 2015-07-24 15:35:53 -04:00
kennethreitz 9f089b18e6 Rename Changelog.md to CHANGELOG.md 2015-07-16 11:52:26 -04:00
kennethreitz 9a1e43b8f2 Update Changelog.md 2015-07-16 11:31:41 -04:00
kennethreitz ac1ba4271c Update Changelog.md 2015-07-16 11:26:33 -04:00
kennethreitz af77d9baf8 Update Changelog.md 2015-07-16 11:25:05 -04:00
kennethreitz 706e6bab4f Update Changelog.md 2015-07-16 11:22:34 -04:00
kennethreitz b6fff224dd Update Changelog.md 2015-07-16 11:22:07 -04:00
kennethreitz 61d3d9580d Merge pull request #235 from jpadilla/master
Update pip to 7.1.0
2015-07-07 14:51:47 -04:00
José Padilla 69b88cb075 Update pip to 7.1.0 2015-07-02 18:15:11 -04:00
kennethreitz a00133892d v61 2015-06-30 08:06:24 -04:00
kennethreitz 5eb337b80d fix ix dyno ulimit 2015-06-30 08:06:19 -04:00
kennethreitz d6212b46ce new setuptools 2015-06-29 14:41:15 -04:00
kennethreitz 3558766ae8 support for ix dynos 2015-06-25 06:34:44 -04:00
kennethreitz 34f4dc43d6 Merge pull request #226 from msabramo/xtrace
Set xtrace if $BUILDPACK_XTRACE set
2015-06-21 13:06:55 -04:00
kennethreitz 0024336558 Merge pull request #232 from jpadilla/master
Update pip to v7.0.3 and setuptools to v17.0
2015-06-21 13:06:28 -04:00
José Padilla c60c5321df Update setuptools to v17.0 2015-06-05 09:16:38 -04:00
José Padilla 0ba69875f5 Remove vendor/pip-7.0.1.tar.gz 2015-06-05 09:16:27 -04:00
José Padilla c8812c7e15 Update pip to v7.0.3 2015-06-04 22:11:20 -04:00
kennethreitz 7d4093795b pypy 2.6.0 2015-06-05 07:44:35 +08:00
kennethreitz 628ad0cb8b requests[security]
fixes #231
2015-06-05 07:43:40 +08:00
Marc Abramowitz 77ddd7c8a6 Set xtrace if $BUILDPACK_XTRACE set
For debugging or for folks who are curious about how the buildpack
works.
2015-05-30 10:00:24 -07:00
kennethreitz c53d54f203 changelog 2015-05-27 16:55:38 -07:00
kennethreitz ed6fe287c4 proper setuptools version 2015-05-27 16:12:59 -07:00
kennethreitz 4f5a88a05a --disable-pip-version-check 2015-05-27 16:08:44 -07:00
kennethreitz 347c0eba81 updated pip and setuptools 2015-05-27 16:07:03 -07:00
kennethreitz 14b482603e Python v2.7.10 2015-05-27 16:04:25 -07:00
kennethreitz 58ce002d35 python 2.7.10 2015-05-27 13:12:43 -07:00
kennethreitz 7fd3a047fd GDAL 2015-05-14 08:42:56 +02:00
kennethreitz 26b4bfbab6 gdal fix 2015-05-14 08:38:11 +02:00
kennethreitz 9e00de4e56 improvements to gdal step 2015-05-14 08:28:32 +02:00
kennethreitz afa8a0f75f pre-compiled gdal step 2015-05-14 08:27:16 +02:00
kennethreitz 52b8ae82b8 gdal is a vendor library 2015-05-14 08:03:36 +02:00
kennethreitz e6c339ebae first attempt at gdal build 2015-05-13 16:41:26 +02:00
kennethreitz 3ea0735768 orig_build_dir 2015-05-05 18:33:49 -07:00
kennethreitz 54b930bba3 Merge remote-tracking branch 'origin/master' 2015-05-05 18:26:20 -07:00
kennethreitz bf202224b7 buildpack cleanup 2015-05-05 18:25:12 -07:00
kennethreitz cead16eb57 remove debugging env 2015-05-05 18:21:10 -07:00
kennethreitz 5c91c81968 skip steps if $DOCKER_BUILD is present 2015-05-05 18:16:58 -07:00
kennethreitz 42594a47c1 Revert "remove old anvil cruft"
This reverts commit 0a78bd001e.
2015-05-05 18:11:10 -07:00
kennethreitz 9d20adca1a env 2015-05-05 18:09:45 -07:00
kennethreitz 181c09cfb7 cleanup / debug 2015-05-05 18:08:31 -07:00
kennethreitz 770947d6e6 Merge pull request #220 from crizCraig/patch-1
Typo in buildpack command. `heroku buildpack:set` -> `heroku buildpacks:...
2015-05-05 17:54:32 -07:00
kennethreitz 0a78bd001e remove old anvil cruft 2015-05-05 15:09:45 -07:00
Craig Quiter 5a1ece3955 Typo in buildpack command. heroku buildpack:set -> heroku buildpacks:set 2015-05-04 12:44:41 -07:00
kennethreitz 8266b99d1e don't uninstall pip or setuptools 2015-05-04 11:59:42 -07:00
kennethreitz e27470778c update pip-pop 2015-05-04 11:52:34 -07:00
kennethreitz 8ef4a006e0 make tools 2015-05-04 11:30:04 -07:00
kennethreitz 4fdaf14ded new pip, new setuptools 2015-05-04 11:09:15 -07:00
kennethreitz f1da8d4b5c Merge pull request #217 from heroku/pyOpenSSL
Detect pyOpenSSL
2015-04-24 15:09:29 -04:00
Steven F eb9689c0a2 Detect pyOpenSSL
Some people use pyOpenSSL (it is the literal name, e.g.: https://pypi.python.org/pypi/pyOpenSSL)
2015-04-24 06:03:43 +00:00
kennethreitz 6fe7c6bde0 Merge pull request #215 from ryanwitt/patch-1
correct usage comment
2015-04-21 17:18:36 -04:00
Ryan Witt a1b372ac66 correct usage comment 2015-04-21 13:22:17 -04:00
kennethreitz ddead6457a Merge pull request #213 from heroku/watsonian-update-readme
Update README to reflect new buildpack:set usage
2015-04-17 08:38:25 -04:00
Joel Watson 92b4385890 Update README to reflect new buildpack:set usage. 2015-04-15 15:45:09 -05:00
kennethreitz 7074d5cb50 Merge remote-tracking branch 'origin/master' 2015-04-02 14:35:16 -04:00
kennethreitz 2b1f1182c3 Merge pull request #211 from ollanta/ollanta/prefer-shallow-managepy
Prefer a 'manage.py' that exists higher up in the directory hierarchy
2015-04-02 14:34:53 -04:00
Ollanta 38fc8f4fe7 Prefer a 'manage.py' that exists higher up in the directory hierarchy 2015-04-02 14:53:52 +02:00
kennethreitz a203495532 pypy v2.5.1 2015-04-01 14:48:02 -04:00
kennethreitz 33a69d7f52 Merge remote-tracking branch 'origin/master' 2015-04-01 14:06:57 -04:00
kennethreitz fe3f12c430 Merge pull request #208 from cyx/master
Upgrade pip and make netrc github work
2015-03-26 13:16:55 -04:00
Cyril David aeb1a297d3 Patch to allow netrc buildpack[1] to work.
[1]: https://github.com/timshadel/heroku-buildpack-github-netrc
2015-03-23 05:47:01 -07:00
kennethreitz 4c1972c0b9 Merge pull request #206 from cclauss/patch-11
Update Readme.md to python-2.7.9 and python-3.4.3
2015-03-20 11:26:23 -07:00
kennethreitz 74f0f319dc pypy 2.5.0 2015-03-19 13:42:03 -07:00
Cyril David 683bba59d7 Update to 6.0.8 2015-03-18 21:15:43 -07:00
cclauss f890cdb889 Update Readme.md to python-2.7.9 and python-3.4.3 2015-03-19 02:42:19 +01:00
kennethreitz b3a98641f5 PyOpenSSL capitalization 2015-03-18 12:52:08 -07:00
kennethreitz ecbcfff5cb Merge remote-tracking branch 'origin/master' 2015-03-18 12:48:42 -07:00
kennethreitz 085d295342 Revert "sub-env pip-install"
This reverts commit 3c2839147f.
2015-03-18 12:48:33 -07:00
kennethreitz e842703721 Merge pull request #196 from t-io/master
extend LIBRARY_PATH
2015-03-18 12:47:04 -07:00
kennethreitz c229070c21 don't print that the stack changed. 2015-03-18 12:43:31 -07:00
kennethreitz 67867f1083 add pyopenssl to libffi support 2015-03-17 14:31:01 -07:00
kennethreitz 91b76c4ca9 Python 3.4.3 2015-03-17 10:59:22 -07:00
Thomas Iovine d2b82441fe Update compile 2015-02-05 17:14:48 +01:00
kennethreitz 532b36f5f7 Merge pull request #194 from thruflo/secure-urls
http: update all external links to use secure protocol.
2015-01-15 17:29:59 -05:00
James Arthur abe34011e5 http: update all external links to use secure protocol. 2015-01-14 09:57:40 +00:00
kennethreitz 4b57be0ae1 fix px dyno ram 2015-01-08 14:45:55 -05:00
kennethreitz d8a75c56d0 WEBCONCURRENCY_PROFILE_PATH 2015-01-08 14:35:32 -05:00
kennethreitz 27ce818f3d PX Dynos = 9 workers 2015-01-08 14:32:35 -05:00
kennethreitz f582b2f4fa setuptools v11.3.1 2015-01-08 14:29:43 -05:00
kennethreitz c46a779ea1 python webconcurrency script 2015-01-06 14:08:16 -05:00
kennethreitz 06a7d9e187 further support for latest pip 2015-01-06 13:41:03 -05:00
kennethreitz ca773cf957 support for latest pip 2015-01-06 13:37:32 -05:00
kennethreitz 26b54b690c update pip and setuptools 2015-01-05 17:16:45 -05:00
kennethreitz 871d5b5935 Merge pull request #189 from cclauss/patch-8
Update Readme.md to pypy3-2.4.0
2014-12-25 23:12:46 -05:00
cclauss 0382c31225 Update Readme.md to pypy3-2.4.0 2014-12-25 11:17:47 +01:00
146 changed files with 23260 additions and 1592 deletions
+1
View File
@@ -0,0 +1 @@
.git/
+1
View File
@@ -1,2 +1,3 @@
*.pyc
site
.DS_Store
+9
View File
@@ -0,0 +1,9 @@
language: bash
sudo: required
services:
- docker
# install: docker pull heroku/cedar:14
script: ./tests.sh
env:
- STACK=heroku-16
- STACK=cedar-14
+252
View File
@@ -0,0 +1,252 @@
# Python Buildpack Changelog
# 106
Don't install packages that could mess up packaging.
- The Python buildpack will automatically remove `six`, `pyparsing`, `appdirs`,
`setuptools`, and `distribute` from a `requirements.txt` file now, as these
packages are provided by the Python buildpack.
# 105
Improvements to output messaging.
# 104
General improvements.
- Fix for Heroku CI.
- Use `pkg_resources` to check if a distribution is installed instead of
parsing `requirements.txt`. ([#395][395])
[395]: https://github.com/heroku/heroku-buildpack-python/pull/395
## 103
Bug fixes and improvements.
- Fix for Pipenv.
- Fix for Heroku CI.
- Improve handling of WEB_CONCURRENCY when using multiple buildpacks.
- Adjust environment variables set during the build to more closely match those in the dyno environment (DYNO is now available, STACK is not).
- Restore the build cache prior to running bin/pre_compile.
## 102
Buildpack code cleanup.
- Improved messaging around NLTK.
## 101
Updated setuptools installation method.
- Improved pipenv support.
## 100
Preliminary pipenv support.
## 99
Cleanup.
## 98
Official NLTK support and other improvements.
- Support for `nltk.txt` file for declaring corpora to be downloaded.
- Leading zeros for auto-set WEB_CONCURRENCY.
## 97
Improved egg-link functionality.
## 96
Bugfix.
## 95
Improved output support.
## v94
Improved support for PyPy.
## v93
Improved support for PyPy.
## v92
Improved cache functionality and fix egg-links regression.
## v91
Bugfix, rolled back to v88.
## v90
Bugfix.
## v89
Improved cache functionality and fix egg-links regression.
## v88
Fixed bug with editable pip installations.
## v87
Updated default Python 2.7.13.
- Python 2.7.13 uses UCS-4 build, more compatibile with linux wheels.
- Updated setuptools to v32.1.0.
## v86
Refactor and multi-buildpack compatibility.
## v85
Packaging fix.
## v84
Updated pip and setuptools.
- Updated pip to v9.0.1.
- Updated setuptools to v28.8.0.
## v83
Support for Heroku CI.
- Cffi support for argon2
## v82 (2016-08-22)
Update to library detection mechnisms (pip-pop).
- Updated setuptools to v25.5.0
## v81 (2016-06-28)
Updated default Python to 2.7.11.
- Updated pip to v8.1.2.
- Updated setuptools to v23.1.0.
## v80 (2016-04-05)
Improved pip-pop compatibility with latest pip releases.
## v79 (2016-03-22)
Compatibility improvements with heroku-apt-buildpack.
## v78 (2016-03-18)
Added automatic configuration of Gunicorn's `FORWARDED_ALLOW_IPS` setting.
Improved detection of libffi dependency when using bcrypt via `Django[bcrypt]`.
Improved GDAL support.
- GDAL dependency detection now checks for pygdal and is case-insensitive.
- The vendored GDAL library has been updated to 1.11.1.
- GDAL bootstrapping now also installs the GEOS and Proj.4 libraries.
Updated pip to 8.1.1 and setuptools to 20.3.
## v77 (2016-02-10)
Improvements to warnings and minor bugfix.
## v76 (2016-02-08)
Improved Django collectstatic support.
- `$ python manage.py collectstatic` will only be run if `Django` is present in `requirements.txt`.
- If collectstatic fails, the build fails. Full traceback is provided.
- `$DISABLE_COLLECTSTATIC`: skip collectstatic step completely (not new).
- `$DEBUG_COLLECTSTATIC`: echo environment variables upon collectstatic failure.
- Updated build output style.
- New warning for outdated Python (via pip `InsecurePlatform` warning).
## v75 (2016-01-29)
Updated pip and Setuptools.
## v74 (2015-12-29)
Added warnings for lack of Procfile.
## v72 (2015-12-07)
Updated default Python to 2.7.11.
## v72 (2015-12-03)
Added friendly warnings for common build failures.
## v70 (2015-10-29)
Improved compatibility with multi and node.js buildpacks.
## v69 (2015-10-12)
Revert to v66.
## v68 (2015-10-12)
Fixed .heroku/venv error with modern apps.
## v67 (2015-10-12)
Further improved cache compatibility with multi and node.js buildpacks.
## v66 (2015-10-09)
Improved compatibility with multi and node.js buildpacks.
## v65 (2015-10-08)
Reverted v64.
## v64 (2015-10-08)
Improved compatibility with multi and node.js buildpacks.
## v63 (2015-10-08)
Updated Pip and Setuptools.
- Setuptools updated to v18.3.2
- Pip updated to v7.1.2
## v62 (2015-08-07)
Updated Pip and Setuptools.
- Setuptools updated to v18.1
- Pip updated to v7.1.0
## v61 (2015-06-30)
Updated Pip and Setuptools.
- Setuptools updated to v18.0.1
- Pip updated to v7.0.3
## v60 (2015-05-27)
Default Python is now latest 2.7.10. Updated Pip and Distribute.
- Default Python version is v2.7.10
- Setuptools updated to v16.0
- Pip updated to v7.0.1
-130
View File
@@ -1,130 +0,0 @@
## v14
Features:
* Full removal of Django settings injection for new apps.
* Support for profile.d
* Fresh app detection.
* Update to Virtualenv v1.7.2
* Updated to Pip v1.1 (patched)
Bugfixes:
* Default pip path exists action.
## v13
Bugfixes:
* Fix pip quoting error.
* Only talk about collectstatic in buildpack output when it's configured.
## v12
Bugfixes:
* Catch database setting corner case.
## v11
Bugfixes:
* Cleanup collectstatic output.
## v10
Bugfixes:
* Check for collectstatic validity with --dry-run instead of --help for Django 1.4.
## v9
Bugfixes:
* Unset PYTHONHOME in buildpack for [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
## v8
Features:
* Disable Django collectstatic with `$DISABLE_COLLECTSTATIC` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
Bugfixes:
* Don't disbable injection for new Django apps.
* Inform user of July 1, 2012 deprecation of Django injection.
## v7
Features:
* Full removal of Django setting injection for new apps.
* Automatic execution of collectstatic.
* Suppress collectstatic errors via env SILENCE_COLLECTSTATIC.
* Increase settings.py search depth to 3.
* Search recursively from included requirements.txt files.
## v6 (03/23/2012)
Features:
* Dist packages (setup.py) support.
* Move new virtualenvs to `/app/.heroku/venv`.
* Heavily improved Django app detection, accounting for `Django` in `requirements.txt`.
* Literate [documentation](http://python-buildpack.herokuapp.com).
* Default `$PYTHONHOME`, `$PYTHONPATH`, and `$LANG` configurations.
* Disable Django setting injection with `$DISABLE_INJECTION` + [user_env_compile](http://devcenter.heroku.com/articles/labs-user-env-compile).
* General code refactor and improved messaging.
* Unit tests.
Bugfixes:
* Django 1.4 startproject template layout support.
* Django `manage.py` location can now be independent from `settings.py`.
## v5 (02/01/2012)
Bugfixes:
* Git requirements 100% work.
## v4 (01/20/2012)
Features:
* Updated to virtualenv v1.7 with patched pip v1.2.
* Actually activate created virtualenv within compile process.
* Use distribute instead of deprecated setuptools.
* Automatically destroy and rebuild corrupt virtualenvs.
* Refactor django and pylibmc detection.
Bugfixes:
* Fixed `package==dev` in requirements with patched pip embedded within virtualenv. Patch upstreamed.
* Minor curl/rm flag fixes (thanks, contributors!)
## v3 (12/07/2011)
Bugfixes:
* Better django setup.py injection.
## v2 (11/15/2011)
Features:
* Support for pylibmc and libmemcached +sasl.
Bugfixes:
* Detect when virtualenv is checked in and alert user.
## v1 (10/01/2011)
* Conception.
+13
View File
@@ -0,0 +1,13 @@
FROM heroku/heroku:16-build
WORKDIR /app
ENV WORKSPACE_DIR="/app/builds" \
S3_BUCKET="lang-python" \
S3_PREFIX="heroku-16/"
RUN apt-get update && apt-get install -y python-pip && rm -rf /var/lib/apt/lists/*
COPY requirements.txt /app/
RUN pip install --disable-pip-version-check --no-cache-dir -r /app/requirements.txt
COPY . /app
+1 -1
View File
@@ -1,6 +1,6 @@
MIT License:
Copyright (C) 2013 Heroku, Inc.
Copyright (C) 2016 Heroku, Inc.
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+29 -2
View File
@@ -1,5 +1,32 @@
# These targets are not files
.PHONY: tests
tests:
./bin/test
test: test-cedar-14
test-cedar-14:
@echo "Running tests in docker (cedar-14)..."
@docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=cedar-14" heroku/cedar:14 bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;'
@echo ""
test-heroku-16:
@echo "Running tests in docker (heroku-16)..."
@docker run -v $(shell pwd):/buildpack:ro --rm -it -e "STACK=heroku-16" heroku/heroku:16-build bash -c 'cp -r /buildpack /buildpack_test; cd /buildpack_test/; test/run;'
@echo ""
buildenv-heroku-16:
@echo "Creating build environment (heroku-16)..."
@echo
@docker build --pull -t python-buildenv-heroku-16 .
@echo
@echo "Usage..."
@echo
@echo " $$ export AWS_ACCESS_KEY_ID=foo AWS_SECRET_ACCESS_KEY=bar # Optional unless deploying"
@echo " $$ bob build runtimes/python-2.7.13"
@echo " $$ bob deploy runtimes/python-2.7.13"
@echo
@docker run -it --rm python-buildenv-heroku-16
tools:
git clone https://github.com/kennethreitz/pip-pop.git
mv pip-pop/bin/* vendor/pip-pop/
rm -fr pip-pop
+137
View File
@@ -0,0 +1,137 @@
This buildpack includes some vendorized packages to ease installation.
jq license
----------
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
shunit2 license
---------------
Copyright © 2007 Free Software Foundation, Inc. <http://fsf.org/>
Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
This version of the GNU Lesser General Public License incorporates the terms and conditions of version 3 of the GNU General Public License, supplemented by the additional permissions listed below.
0. Additional Definitions.
As used herein, “this License” refers to version 3 of the GNU Lesser General Public License, and the “GNU GPL” refers to version 3 of the GNU General Public License.
“The Library” refers to a covered work governed by this License, other than an Application or a Combined Work as defined below.
An “Application” is any work that makes use of an interface provided by the Library, but which is not otherwise based on the Library. Defining a subclass of a class defined by the Library is deemed a mode of using an interface provided by the Library.
A “Combined Work” is a work produced by combining or linking an Application with the Library. The particular version of the Library with which the Combined Work was made is also called the “Linked Version”.
The “Minimal Corresponding Source” for a Combined Work means the Corresponding Source for the Combined Work, excluding any source code for portions of the Combined Work that, considered in isolation, are based on the Application, and not on the Linked Version.
The “Corresponding Application Code” for a Combined Work means the object code and/or source code for the Application, including any data and utility programs needed for reproducing the Combined Work from the Application, but excluding the System Libraries of the Combined Work.
1. Exception to Section 3 of the GNU GPL.
You may convey a covered work under sections 3 and 4 of this License without being bound by section 3 of the GNU GPL.
2. Conveying Modified Versions.
If you modify a copy of the Library, and, in your modifications, a facility refers to a function or data to be supplied by an Application that uses the facility (other than as an argument passed when the facility is invoked), then you may convey a copy of the modified version:
a) under this License, provided that you make a good faith effort to ensure that, in the event an Application does not supply the function or data, the facility still operates, and performs whatever part of its purpose remains meaningful, or
b) under the GNU GPL, with none of the additional permissions of this License applicable to that copy.
3. Object Code Incorporating Material from Library Header Files.
The object code form of an Application may incorporate material from a header file that is part of the Library. You may convey such object code under terms of your choice, provided that, if the incorporated material is not limited to numerical parameters, data structure layouts and accessors, or small macros, inline functions and templates (ten or fewer lines in length), you do both of the following:
a) Give prominent notice with each copy of the object code that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the object code with a copy of the GNU GPL and this license document.
4. Combined Works.
You may convey a Combined Work under terms of your choice that, taken together, effectively do not restrict modification of the portions of the Library contained in the Combined Work and reverse engineering for debugging such modifications, if you also do each of the following:
a) Give prominent notice with each copy of the Combined Work that the Library is used in it and that the Library and its use are covered by this License.
b) Accompany the Combined Work with a copy of the GNU GPL and this license document.
c) For a Combined Work that displays copyright notices during execution, include the copyright notice for the Library among these notices, as well as a reference directing the user to the copies of the GNU GPL and this license document.
d) Do one of the following:
0) Convey the Minimal Corresponding Source under the terms of this License, and the Corresponding Application Code in a form suitable for, and under terms that permit, the user to recombine or relink the Application with a modified version of the Linked Version to produce a modified Combined Work, in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.
1) Use a suitable shared library mechanism for linking with the Library. A suitable mechanism is one that (a) uses at run time a copy of the Library already present on the user's computer system, and (b) will operate properly with a modified version of the Library that is interface-compatible with the Linked Version.
e) Provide Installation Information, but only if you would otherwise be required to provide such information under section 6 of the GNU GPL, and only to the extent that such information is necessary to install and execute a modified version of the Combined Work produced by recombining or relinking the Application with a modified version of the Linked Version. (If you use option 4d0, the Installation Information must accompany the Minimal Corresponding Source and Corresponding Application Code. If you use option 4d1, you must provide the Installation Information in the manner specified by section 6 of the GNU GPL for conveying Corresponding Source.)
5. Combined Libraries.
You may place library facilities that are a work based on the Library side by side in a single library together with other library facilities that are not Applications and are not covered by this License, and convey such a combined library under terms of your choice, if you do both of the following:
a) Accompany the combined library with a copy of the same work based on the Library, uncombined with any other library facilities, conveyed under the terms of this License.
b) Give prominent notice with the combined library that part of it is a work based on the Library, and explaining where to find the accompanying uncombined form of the same work.
6. Revised Versions of the GNU Lesser General Public License.
The Free Software Foundation may publish revised and/or new versions of the GNU Lesser General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
Each version is given a distinguishing version number. If the Library as you received it specifies that a certain numbered version of the GNU Lesser General Public License “or any later version” applies to it, you have the option of following the terms and conditions either of that published version or of any later version published by the Free Software Foundation. If the Library as you received it does not specify a version number of the GNU Lesser General Public License, you may choose any version of the GNU Lesser General Public License ever published by the Free Software Foundation.
If the Library as you received it specifies that a proxy can decide whether future versions of the GNU Lesser General Public License shall apply, that proxy's public statement of acceptance of any version is permanent authorization for you to choose that version for the Library.
get-pip.py license
------------------
Copyright (c) 2008-2016 The pip developers (see AUTHORS.txt file)
Permission is hereby granted, free of charge, to any person obtaining
a copy of this software and associated documentation files (the
"Software"), to deal in the Software without restriction, including
without limitation the rights to use, copy, modify, merge, publish,
distribute, sublicense, and/or sell copies of the Software, and to
permit persons to whom the Software is furnished to do so, subject to
the following conditions:
The above copyright notice and this permission notice shall be
included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
pip-pop license
---------------
The MIT License (MIT)
Copyright (c) 2014 Kenneth Reitz.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in
all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
THE SOFTWARE.
+56
View File
@@ -0,0 +1,56 @@
![python](https://cloud.githubusercontent.com/assets/51578/13712821/b68a42ce-e793-11e5-96b0-d8eb978137ba.png)
# Heroku Buildpack: Python
[![Build Status](https://travis-ci.org/heroku/heroku-buildpack-python.svg?branch=master)](https://travis-ci.org/heroku/heroku-buildpack-python)
This is the official [Heroku buildpack](https://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](https://pip.pypa.io/) and other excellent software.
Recommended web frameworks include **Django** and **Flask**. The recommended webserver is **Gunicorn**. There are no restrictions around what software can be used (as long as it's pip-installable). Web processes must bind to `$PORT`, and only the HTTP protocol is permitted for incoming connections.
Some Python packages with obscure C dependencies (e.g. scipy) are [not compatible](https://devcenter.heroku.com/articles/python-c-deps).
See it in Action
----------------
Deploying a Python application couldn't be easier:
$ ls
Procfile requirements.txt web.py
$ heroku create --buildpack heroku/python
$ git push heroku master
...
-----> Python app detected
-----> Installing python-2.7.13
$ pip install -r requirements.txt
Collecting requests (from -r requirements.txt (line 1))
Downloading requests-2.12.4-py2.py3-none-any.whl (576KB)
Installing collected packages: requests
Successfully installed requests-2.12.4
-----> Discovering process types
Procfile declares types -> (none)
A `requirements.txt` file must be present at the root of your application's repository.
You can also specify the latest production release of this buildpack for upcoming builds of an existing application:
$ heroku buildpacks:set heroku/python
Specify a Python Runtime
------------------------
Specific versions of the Python runtime can be specified with a `runtime.txt` file:
$ cat runtime.txt
python-3.6.1
Runtime options include:
- `python-2.7.13`
- `python-3.6.1`
- `pypy-5.7.1` (unsupported, experimental)
- `pypy3-5.5.1` (unsupported, experimental)
-52
View File
@@ -1,52 +0,0 @@
Heroku buildpack: Python
========================
This is a [Heroku buildpack](http://devcenter.heroku.com/articles/buildpacks) for Python apps, powered by [pip](http://www.pip-installer.org/).
Usage
-----
Example usage:
$ ls
Procfile requirements.txt web.py
$ heroku create --buildpack git://github.com/heroku/heroku-buildpack-python.git
$ git push heroku master
...
-----> Python app detected
-----> Installing runtime (python-2.7.8)
-----> Installing dependencies using pip
Downloading/unpacking requests (from -r requirements.txt (line 1))
Installing collected packages: requests
Successfully installed requests
Cleaning up...
-----> Discovering process types
Procfile declares types -> (none)
You can also add it to upcoming builds of an existing application:
$ heroku config:add BUILDPACK_URL=git://github.com/heroku/heroku-buildpack-python.git
The buildpack will detect your app as Python if it has the file `requirements.txt` in the root.
It will use Pip to install your dependencies, vendoring a copy of the Python runtime into your slug.
Specify a Runtime
-----------------
You can also provide arbitrary releases Python with a `runtime.txt` file.
$ cat runtime.txt
python-3.4.2
Runtime options include:
- python-2.7.8
- python-3.4.2
- pypy-2.4.0 (unsupported, experimental)
- pypy3-2.3.1 (unsupported, experimental)
Other [unsupported runtimes](https://github.com/heroku/heroku-buildpack-python/tree/master/builds/runtimes) are available as well.
+149 -117
View File
@@ -1,5 +1,13 @@
#!/usr/bin/env bash
# The Heroku Python Buildpack. This script accepts parameters for a build
# directory, a cache directory, and a directory for app environment variables.
# Warning: there are a few hacks in this script to accommodate excellent builds
# on Heroku. No guarantee for external compatibility is made. However,
# everything should work fine outside of the Heroku environment, if the
# environment is setup correctly.
# Usage:
#
# $ bin/compile <build-dir> <cache-dir> <env-path>
@@ -7,6 +15,12 @@
# Fail fast and fail hard.
set -eo pipefail
# Standard Library.
export BPLOG_PREFIX="buildpack.python"
export BUILDPACK_LOG_FILE=${BUILDPACK_LOG_FILE:-/dev/null}
[ "$BUILDPACK_XTRACE" ] && set -o xtrace
# Prepend proper path for virtualenv hackery. This will be deprecated soon.
export PATH=:/usr/local/bin:$PATH
@@ -17,28 +31,19 @@ BUILD_DIR=$1
CACHE_DIR=$2
ENV_DIR=$3
CACHED_DIRS=".heroku"
# Static configurations for virtualenv caches.
VIRTUALENV_LOC=".heroku/venv"
LEGACY_TRIGGER="lib/python2.7"
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
DEFAULT_PYTHON_VERSION="python-2.7.9"
DEFAULT_PYTHON_STACK="cedar"
# Python defaults
DEFAULT_PYTHON_VERSION="python-2.7.13"
DEFAULT_PYTHON_STACK="cedar-14"
PYTHON_EXE="/app/.heroku/python/bin/python"
PIP_VERSION="1.5.6"
SETUPTOOLS_VERSION="7.0"
PIP_VERSION="9.0.1"
SETUPTOOLS_VERSION="32.1.0"
# Setup bpwatch
export PATH=$PATH:$ROOT_DIR/vendor/bpwatch
LOGPLEX_KEY="t.b90d9d29-5388-4908-9737-b4576af1d4ce"
export BPWATCH_STORE_PATH=$CACHE_DIR/bpwatch.json
BUILDPACK_VERSION=v28
# Common Problem Warnings
export WARNINGS_LOG=$(mktemp)
export RECOMMENDED_PYTHON_VERSION=$DEFAULT_PYTHON_VERSION
# Setup pip-pop (pip-diff)
export PATH=$PATH:$ROOT_DIR/vendor/pip-pop
# Setup vendored tools and pip-pop (pip-diff)
export PATH=$PATH:$ROOT_DIR/vendor/:$ROOT_DIR/vendor/pip-pop
# Support Anvil Build_IDs
[ ! "$SLUG_ID" ] && SLUG_ID="defaultslug"
@@ -46,67 +51,64 @@ export PATH=$PATH:$ROOT_DIR/vendor/pip-pop
[ ! "$STACK" ] && STACK=$DEFAULT_PYTHON_STACK
# Sanitizing environment variables.
unset GIT_DIR PYTHONHOME PYTHONPATH LD_LIBRARY_PATH LIBRARY_PATH
bpwatch init $LOGPLEX_KEY
bpwatch build python $BUILDPACK_VERSION $REQUEST_ID
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
bpwatch start compile
# We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH
unset GIT_DIR PYTHONHOME PYTHONPATH
unset RECEIVE_DATA RUN_KEY BUILD_INFO DEPLOY LOG_TOKEN
unset CYTOKINE_LOG_FILE GEM_PATH
# Syntax sugar.
source $BIN_DIR/utils
# Directory Hacks for path consistiency.
APP_DIR='/app'
TMP_APP_DIR=$CACHE_DIR/tmp_app_dir
# Import collection of warnings.
source $BIN_DIR/warnings
# Copy Anvil app dir to temporary storage...
bpwatch start anvil_appdir_stage
if [ "$SLUG_ID" ]; then
mkdir -p $TMP_APP_DIR
deep-mv $APP_DIR $TMP_APP_DIR
else
deep-rm $APP_DIR
fi
bpwatch stop anvil_appdir_stage
# we need to put a bunch of symlinks in there later
mkdir -p /app/.heroku
# Copy Application code in.
bpwatch start appdir_stage
deep-mv $BUILD_DIR $APP_DIR
bpwatch stop appdir_stage
# Set up outputs under new context
PROFILE_PATH="$BUILD_DIR/.profile.d/python.sh"
EXPORT_PATH="$BIN_DIR/../export"
GUNICORN_PROFILE_PATH="$BUILD_DIR/.profile.d/python.gunicorn.sh"
WEB_CONCURRENCY_PROFILE_PATH="$BUILD_DIR/.profile.d/WEB_CONCURRENCY.sh"
# Set new context.
ORIG_BUILD_DIR=$BUILD_DIR
BUILD_DIR=$APP_DIR
# We'll need to send these statics to other scripts we `source`.
export BUILD_DIR CACHE_DIR BIN_DIR PROFILE_PATH EXPORT_PATH
# Prepend proper path buildpack use.
export PATH=$BUILD_DIR/.heroku/python/bin:$BUILD_DIR/.heroku/vendor/bin:$PATH
# Prepend proper environment variables for Python use.
export PATH=/app/.heroku/python/bin:/app/.heroku/vendor/bin:$PATH
export PYTHONUNBUFFERED=1
export LANG=en_US.UTF-8
export C_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:$BUILD_DIR/.heroku/vendor/include:/app/.heroku/python/include
export LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:$BUILD_DIR/.heroku/vendor/lib:/app/.heroku/python/lib
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:$BUILD_DIR/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config
export C_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:$C_INCLUDE_PATH
export CPLUS_INCLUDE_PATH=/app/.heroku/vendor/include:/app/.heroku/python/include:$CPLUS_INCLUDE_PATH
export LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LIBRARY_PATH
export LD_LIBRARY_PATH=/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH
export PKG_CONFIG_PATH=/app/.heroku/vendor/lib/pkg-config:/app/.heroku/python/lib/pkg-config:$PKG_CONFIG_PATH
# Switch to the repo's context.
cd $BUILD_DIR
# Experimental pre_compile hook.
bpwatch start pre_compile
source $BIN_DIR/steps/hooks/pre_compile
bpwatch stop pre_compile
# If no requirements given, assume `setup.py develop`.
if [ ! -f requirements.txt ]; then
echo "-e ." > requirements.txt
# Warn for lack of Procfile.
if [[ ! -f Procfile ]]; then
puts-warn 'Warning: Your application is missing a Procfile. This file tells Heroku how to run your application.'
puts-warn 'Learn more: https://devcenter.heroku.com/articles/procfile'
fi
# Prepare the cache.
mkdir -p $CACHE_DIR
# Restore old artifacts from the cache.
mkdir -p .heroku
cp -R $CACHE_DIR/.heroku/python .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-stack .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/python-version .heroku/ &> /dev/null || true
cp -R $CACHE_DIR/.heroku/vendor .heroku/ &> /dev/null || true
if [[ -d $CACHE_DIR/.heroku/src ]]; then
cp -R $CACHE_DIR/.heroku/src .heroku/ &> /dev/null || true
fi
# Experimental pre_compile hook.
source $BIN_DIR/steps/hooks/pre_compile
# Sticky runtimes.
if [ -f $CACHE_DIR/.heroku/python-version ]; then
DEFAULT_PYTHON_VERSION=$(cat $CACHE_DIR/.heroku/python-version)
@@ -116,45 +118,43 @@ fi
if [ -f $CACHE_DIR/.heroku/python-stack ]; then
CACHED_PYTHON_STACK=$(cat $CACHE_DIR/.heroku/python-stack)
else
CACHED_PYTHON_STACK=$DEFAULT_PYTHON_STACK
CACHED_PYTHON_STACK=$STACK
fi
# Pipenv Python version support.
source $BIN_DIR/steps/pipenv-python-version
# If no runtime given, assume default version.
if [ ! -f runtime.txt ]; then
echo $DEFAULT_PYTHON_VERSION > runtime.txt
fi
# ### The Cache
mkdir -p $CACHE_DIR
# Purge "old-style" virtualenvs.
bpwatch start clear_old_venvs
[ -d $CACHE_DIR/$LEGACY_TRIGGER ] && rm -fr $CACHE_DIR/.heroku/bin $CACHE_DIR/.heroku/lib $CACHE_DIR/.heroku/include
[ -d $CACHE_DIR/$VIRTUALENV_LOC ] && rm -fr $CACHE_DIR/.heroku/venv $CACHE_DIR/.heroku/src
bpwatch stop clear_old_venvs
# Restore old artifacts from the cache.
bpwatch start restore_cache
for dir in $CACHED_DIRS; do
cp -R $CACHE_DIR/$dir . &> /dev/null || true
done
bpwatch stop restore_cache
set +e
# Create set-aside `.heroku` folder.
mkdir .heroku &> /dev/null
set -e
mkdir -p $(dirname $PROFILE_PATH)
mkdir -p /app/.heroku/src
if [[ $BUILD_DIR != '/app' ]]; then
# python expects to reside in /app, so set up symlinks
# we will not remove these later so subsequent buildpacks can still invoke it
ln -nsf $BUILD_DIR/.heroku/python /app/.heroku/python
ln -nsf $BUILD_DIR/.heroku/vendor /app/.heroku/vendor
# Note: .heroku/src is copied in later.
fi
# Install Python.
let start=$(nowms)
source $BIN_DIR/steps/python
mtime "python.install.time" "${start}"
# Sanity check for setuptools/distribute.
source $BIN_DIR/steps/setuptools
# Pipenv support.
source $BIN_DIR/steps/pipenv
# Uninstall removed dependencies with Pip.
source $BIN_DIR/steps/pip-uninstall
# If no requirements.txt file given, assume `setup.py develop` is intended.
if [ ! -f requirements.txt ] && [ ! -f Pipfile ]; then
echo "-e ." > requirements.txt
fi
# Fix egg-links.
source $BIN_DIR/steps/eggpath-fix
# Mercurial support.
source $BIN_DIR/steps/mercurial
@@ -165,49 +165,81 @@ source $BIN_DIR/steps/pylibmc
# Libffi support.
source $BIN_DIR/steps/cryptography
# Install dependencies with Pip.
sub-env $BIN_DIR/steps/pip-install
# Support for Geo libraries.
sub-env $BIN_DIR/steps/geo-libs
# GDAL support.
source $BIN_DIR/steps/gdal
# Uninstall removed dependencies with Pip.
let start=$(nowms)
source $BIN_DIR/steps/pip-uninstall
mtime "pip.uninstall.time" "${start}"
# Cleanup requirements.txt
source $BIN_DIR/steps/setuptools
# Install dependencies with Pip (where the magic happens).
let start=$(nowms)
source $BIN_DIR/steps/pip-install
mtime "pip.install.time" "${start}"
# Support for NLTK corpora.
let start=$(nowms)
sub-env $BIN_DIR/steps/nltk
mtime "nltk.download.time" "${start}"
# Support for pip install -e.
# In CI, $BUILD_DIR is /app.
if [[ ! "$BUILD_DIR" == "/app" ]]; then
rm -fr $BUILD_DIR/.heroku/src
deep-cp /app/.heroku/src $BUILD_DIR/.heroku/src
fi
# Django collectstatic support.
let start=$(nowms)
sub-env $BIN_DIR/steps/collectstatic
mtime "collectstatic.time" "${start}"
# ### Finalize
#
# Set context environment variables.
# Create .profile script for application runtime environment variables.
set-env PATH '$HOME/.heroku/python/bin:$PATH'
set-env PYTHONUNBUFFERED true
set-env PYTHONHOME /app/.heroku/python
set-env LIBRARY_PATH /app/.heroku/vendor/lib:/app/.heroku/python/lib
set-env LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LIBRARY_PATH'
set-env LD_LIBRARY_PATH '/app/.heroku/vendor/lib:/app/.heroku/python/lib:$LD_LIBRARY_PATH'
set-default-env LANG en_US.UTF-8
set-default-env PYTHONHASHSEED random
set-default-env PYTHONPATH /app/
# Install sane-default script for $WEB_CONCURRENCY and $FORWARDED_ALLOW_IPS.
cp $ROOT_DIR/vendor/WEB_CONCURRENCY.sh $WEB_CONCURRENCY_PROFILE_PATH
cp $ROOT_DIR/vendor/python.gunicorn.sh $GUNICORN_PROFILE_PATH
# Experimental post_compile hook.
bpwatch start post_compile
source $BIN_DIR/steps/hooks/post_compile
bpwatch stop post_compile
source $BIN_DIR/steps/hooks/post_compile
# Fix egg-links, again.
source $BIN_DIR/steps/eggpath-fix2
# Store new artifacts in cache.
bpwatch start dump_cache
for dir in $CACHED_DIRS; do
rm -rf $CACHE_DIR/$dir
cp -R $dir $CACHE_DIR/
done
bpwatch stop dump_cache
# ### Fin.
bpwatch start appdir_commit
deep-mv $BUILD_DIR $ORIG_BUILD_DIR
bpwatch stop appdir_commit
rm -rf $CACHE_DIR/.heroku/python
rm -rf $CACHE_DIR/.heroku/python-version
rm -rf $CACHE_DIR/.heroku/python-stack
rm -rf $CACHE_DIR/.heroku/vendor
rm -rf $CACHE_DIR/.heroku/src
bpwatch start anvil_appdir_commit
if [ "$SLUG_ID" ]; then
deep-mv $TMP_APP_DIR $APP_DIR
fi
mkdir -p $CACHE_DIR/.heroku
cp -R .heroku/python $CACHE_DIR/.heroku/
cp -R .heroku/python-version $CACHE_DIR/.heroku/
cp -R .heroku/python-stack $CACHE_DIR/.heroku/ &> /dev/null || true
cp -R .heroku/vendor $CACHE_DIR/.heroku/ &> /dev/null || true
if [[ -d .heroku/src ]]; then
cp -R .heroku/src $CACHE_DIR/.heroku/ &> /dev/null || true
fi
bpwatch stop anvil_appdir_commit
bpwatch stop compile
# Measure the size of the Python installation.
mmeasure 'python.size' "$(measure-size)"
+2 -2
View File
@@ -4,7 +4,7 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# detector.
#
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
# ## Usage
@@ -15,7 +15,7 @@
BUILD_DIR=$1
# Exit early if app is clearly not Python.
if [ ! -f $BUILD_DIR/requirements.txt ] && [ ! -f $BUILD_DIR/setup.py ]; then
if [ ! -f $BUILD_DIR/requirements.txt ] && [ ! -f $BUILD_DIR/setup.py ] && [ ! -f $BUILD_DIR/Pipfile ]; then
exit 1
fi
+1 -1
View File
@@ -18,6 +18,6 @@ if [[ $MANAGE_FILE ]]; then
cat <<EOF
addons:
heroku-postgresql:hobby-dev
- heroku-postgresql
EOF
fi
+48 -20
View File
@@ -1,36 +1,64 @@
#!/usr/bin/env bash
# Django Collectstatic runner. If you have Django installed, collectstatic will
# automatically be executed as part of the build process. If collectstatic
# fails, your build fails.
# This functionality will only activate if Django is in requirements.txt.
# Runtime arguments:
# - $DISABLE_COLLECTSTATIC: disables this functionality.
# - $DEBUG_COLLECTSTATIC: upon failure, print out environment variables.
source $BIN_DIR/utils
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' | head -1)
# Location of 'manage.py', if it exists.
MANAGE_FILE=$(find . -maxdepth 3 -type f -name 'manage.py' -printf '%d\t%P\n' | sort -nk1 | cut -f2 | head -1)
MANAGE_FILE=${MANAGE_FILE:-fakepath}
# Legacy file-based support for $DISABLE_COLLECTSTATIC
[ -f .heroku/collectstatic_disabled ] && DISABLE_COLLECTSTATIC=1
bpwatch start collectstatic
# Ensure that Django is explicitly specified in requirements.txt
sp-grep django && DJANGO_INSTALLED=1
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ]; then
if [ ! "$DISABLE_COLLECTSTATIC" ] && [ -f "$MANAGE_FILE" ] && [ "$DJANGO_INSTALLED" ]; then
set +e
echo "-----> Preparing static assets"
# Check if collectstatic is configured properly.
python $MANAGE_FILE collectstatic --dry-run --noinput &> /dev/null && RUN_COLLECTSTATIC=true
puts-step "$ python $MANAGE_FILE collectstatic --noinput"
# Compile assets if collectstatic appears to be kosher.
if [ "$RUN_COLLECTSTATIC" ]; then
# Run collectstatic, cleanup some of the noisy output.
python $MANAGE_FILE collectstatic --noinput --traceback 2>&1 | sed '/^Post-processed/d;/^Copying/d;/^$/d' | indent
COLLECTSTATIC_STATUS="${PIPESTATUS[0]}"
echo " Running collectstatic..."
python $MANAGE_FILE collectstatic --noinput 2>&1 | sed '/^Copying/d;/^$/d;/^ /d' | indent
set -e
# Display a warning if collectstatic failed.
[ $COLLECTSTATIC_STATUS -ne 0 ] && {
echo
echo " ! Error while running '$ python $MANAGE_FILE collectstatic --noinput'."
echo " See traceback above for details."
echo
echo " You may need to update application code to resolve this error."
echo " Or, you can disable collectstatic for this application:"
echo
echo " $ heroku config:set DISABLE_COLLECTSTATIC=1"
echo
echo " https://devcenter.heroku.com/articles/django-assets"
# Additionally, dump out the environment, if debug mode is on.
if [ "$DEBUG_COLLECTSTATIC" ]; then
echo
echo "****** Collectstatic environment variables:"
echo
env | indent
fi
# Abort the build.
exit 1
}
[ $? -ne 0 ] && {
echo " ! Error running 'manage.py collectstatic'. More info:"
echo " http://devcenter.heroku.com/articles/django-assets"
}
else
echo " Collectstatic configuration error. To debug, run:"
echo " $ heroku run python $MANAGE_FILE collectstatic --noinput"
fi
echo
fi
bpwatch stop collectstatic
+10 -16
View File
@@ -1,37 +1,31 @@
#!/usr/bin/env bash
# This script serves as the Pylibmc build step of the
# This script serves as the Cryptography build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled cryptography binary.
VENDORED_LIBFFI="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
# The location of the pre-compiled libffi binary.
VENDORED_LIBFFI="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libffi.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar.
source $BIN_DIR/utils
bpwatch start libffi_install
# If a package using cffi exists within requirements, use vendored libffi.
if (pip-grep -s requirements.txt argon2-cffi bcrypt cffi cryptography django[argon2] Django[argon2] django[bcrypt] Django[bcrypt] PyNaCl pyOpenSSL PyOpenSSL requests[security] misaka &> /dev/null) then
# If pylibmc exists within requirements, use vendored cryptography.
if (pip-grep -s requirements.txt bcrypt cffi cryptography &> /dev/null) then
if [ -d ".heroku/vendor/lib/libffi-3.1.1" ]; then
export LIBFFI=$(pwd)/vendor
else
if [ ! -d ".heroku/vendor/lib/libffi-3.1" ]; then
echo "-----> Noticed cffi. Bootstrapping libffi."
mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory.
# Download and extract libffi into target vendor directory.
curl $VENDORED_LIBFFI -s | tar zxv -C .heroku/vendor &> /dev/null
export LIBFFI=$(pwd)/vendor
fi
fi
bpwatch stop libffi_install
export LIBFFI=$(pwd)/vendor
fi
+11
View File
@@ -0,0 +1,11 @@
set +e
# delete any existing egg links, to uninstall exisisting installations.
find .heroku/python/lib/python*/site-packages/ -name "*.egg-link" -delete 2> /dev/null
find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#" &> /dev/null
set -e
set +e
# Support for the above, for PyPy.
find .heroku/python/lib-python/*/site-packages/ -name "*.egg-link" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#/app/#$(pwd)/#" &> /dev/null
find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#/app/#/$(pwd)/#" &> /dev/null
set -e
+9
View File
@@ -0,0 +1,9 @@
set +e
# rewrite build dir in egg links to /app so things are found at runtime
find .heroku/python/lib/python*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#$(pwd)#/app#" &> /dev/null
set -e
set +e
# Support for PyPy
find .heroku/python/lib-python/*/site-packages/ -name "*.pth" -print0 2> /dev/null | xargs -r -0 -n 1 sed -i -e "s#$(pwd)#/app#" &> /dev/null
set -e
Executable
+32
View File
@@ -0,0 +1,32 @@
#!/usr/bin/env bash
# This script serves as the GDAL build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled cryptography binary.
VENDORED_GDAL="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/gdal.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar.
source $BIN_DIR/utils
# If GDAL exists within requirements, use vendored gdal.
if (pip-grep -s requirements.txt GDAL gdal pygdal &> /dev/null) then
if [ ! -f ".heroku/vendor/bin/gdalserver" ]; then
echo "-----> Noticed GDAL. Bootstrapping gdal."
mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory.
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
fi
export GDAL=$(pwd)/vendor
fi
+36
View File
@@ -0,0 +1,36 @@
#!/usr/bin/env bash
# This script serves as the GDAL build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled cryptography binary.
VENDORED_GDAL="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/gdal.tar.gz"
VENDORED_GEOS="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/geos.tar.gz"
VENDORED_PROJ="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/proj.tar.gz"
PKG_CONFIG_PATH="/app/.heroku/vendor/lib/pkgconfig:$PKG_CONFIG_PATH"
# Syntax sugar.
source $BIN_DIR/utils
# If GDAL exists within requirements, use vendored gdal.
if [[ "$BUILD_WITH_GEO_LIBRARIES" ]]; then
if [ ! -f ".heroku/vendor/bin/proj" ]; then
echo "-----> Bootstrapping gdal, geos, proj."
mkdir -p .heroku/vendor
# Download and extract cryptography into target vendor directory.
curl $VENDORED_GDAL -s | tar zxv -C .heroku/vendor &> /dev/null
curl $VENDORED_GEOS -s | tar zxv -C .heroku/vendor &> /dev/null
curl $VENDORED_PROJ -s | tar zxv -C .heroku/vendor &> /dev/null
fi
export GDAL=$(pwd)/vendor
fi
+1 -3
View File
@@ -1,6 +1,4 @@
# Install Mercurial if it appears to be required.
if (grep -Fiq "hg+" requirements.txt) then
bpwatch start mercurial_install
/app/.heroku/python/bin/pip install mercurial | cleanup | indent
bpwatch stop mercurial_install
fi
fi
Executable
+30
View File
@@ -0,0 +1,30 @@
#!/usr/bin/env bash
# This script serves as the NLTK build step of the
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# Syntax sugar.
source $BIN_DIR/utils
# Check that nltk was installed by pip, otherwise obviously not needed
python -m nltk.downloader -h >/dev/null 2>&1
if [ $? -eq 0 ]; then
puts-step "Downloading NLTK corpora..."
nltk_packages_definition="$BUILD_DIR/nltk.txt"
if [ -f "$nltk_packages_definition" ]; then
nltk_packages=$(tr "\n" " " < "$nltk_packages_definition")
puts-step "Downloading NLTK packages: $nltk_packages"
python -m nltk.downloader -d $BUILD_DIR/.heroku/python/nltk_data $nltk_packages | indent
set-env NLTK_DATA "/app/.heroku/python/nltk_data"
else
puts-warn "'nltk.txt' not found, not downloading any corpora"
puts-warn "Learn more: https://devcenter.heroku.com/articles/python-nltk"
fi
fi
+16 -13
View File
@@ -1,20 +1,23 @@
#!/usr/bin/env bash
if [ ! "$SKIP_PIP_INSTALL" ]; then
source $BIN_DIR/utils
# Install dependencies with Pip.
puts-step "Installing requirements with pip"
# Install dependencies with Pip.
puts-step "Installing dependencies with pip"
set +e
/app/.heroku/python/bin/pip install -r $BUILD_DIR/requirements.txt --exists-action=w --src=/app/.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | tee $WARNINGS_LOG | cleanup | indent
PIP_STATUS="${PIPESTATUS[0]}"
set -e
[ ! "$FRESH_PYTHON" ] && bpwatch start pip_install
[ "$FRESH_PYTHON" ] && bpwatch start pip_install_first
show-warnings
/app/.heroku/python/bin/pip install -r requirements.txt --exists-action=w --src=./.heroku/src --allow-all-external | cleanup | indent
if [[ ! $PIP_STATUS -eq 0 ]]; then
exit 1
fi
# Smart Requirements handling
cp requirements.txt .heroku/python/requirements-declared.txt
/app/.heroku/python/bin/pip freeze > .heroku/python/requirements-installed.txt
[ ! "$FRESH_PYTHON" ] && bpwatch stop pip_install
[ "$FRESH_PYTHON" ] && bpwatch stop pip_install_first
# Smart Requirements handling
cp requirements.txt .heroku/python/requirements-declared.txt
/app/.heroku/python/bin/pip freeze --disable-pip-version-check > .heroku/python/requirements-installed.txt
echo
echo
fi
+4 -4
View File
@@ -1,11 +1,11 @@
set +e
# Install dependencies with Pip.
bpwatch start pip_uninstall
if [[ -f .heroku/python/requirements-declared.txt ]]; then
cp .heroku/python/requirements-declared.txt requirements-declared.txt
pip-diff --stale requirements-declared.txt requirements.txt > .heroku/python/requirements-stale.txt
pip-diff --stale requirements-declared.txt requirements.txt --exclude setuptools pip wheel > .heroku/python/requirements-stale.txt
rm -fr requirements-declared.txt
@@ -14,5 +14,5 @@ if [[ -f .heroku/python/requirements-declared.txt ]]; then
/app/.heroku/python/bin/pip uninstall -r .heroku/python/requirements-stale.txt -y --exists-action=w | cleanup | indent
fi
fi
bpwatch stop pip_uninstall
set -e
set -e
+19
View File
@@ -0,0 +1,19 @@
# Pipenv support (Generate requriements.txt with pipenv).
if [[ -f Pipfile ]]; then
if [[ ! -f requirements.txt ]]; then
puts-step "Installing requirements with latest pipenv..."
# Install pipenv.
/app/.heroku/python/bin/pip install pipenv --upgrade &> /dev/null
# Install the dependencies.
/app/.heroku/python/bin/pipenv install --system 2>&1 | indent
# Skip pip install, later.
export SKIP_PIP_INSTALL=1
# Pip freeze, for compatibility.
/app/.heroku/python/bin/pip freeze > requirements.txt
fi
fi
+23
View File
@@ -0,0 +1,23 @@
# Detect Python-version with Pipenv.
if [[ -f $BUILD_DIR/Pipfile.lock ]]; then
if [[ ! -f $BUILD_DIR/runtime.txt ]]; then
if [[ ! -f $BUILD_DIR/Pipfile.lock ]]; then
puts-warn "No 'pipfile.lock' found! We recommend you commit this into your repository."
fi
if [[ -f $BUILD_DIR/Pipfile.lock ]]; then
set +e
PYTHON=$(cat $BUILD_DIR/Pipfile.lock | jq '._meta.requires.python_version' -r)
set -e
if [ "$PYTHON" = 2.7 ]; then
echo "python-2.7.13" > $BUILD_DIR/runtime.txt
fi
if [ "$PYTHON" = 3.6 ]; then
echo "python-3.6.0" > $BUILD_DIR/runtime.txt
fi
fi
fi
fi
+5 -11
View File
@@ -4,33 +4,27 @@
# [**Python Buildpack**](https://github.com/heroku/heroku-buildpack-python)
# compiler.
#
# A [buildpack](http://devcenter.heroku.com/articles/buildpacks) is an
# A [buildpack](https://devcenter.heroku.com/articles/buildpacks) is an
# adapter between a Python application and Heroku's runtime.
#
# This script is invoked by [`bin/compile`](/).
# The location of the pre-compiled libmemcached binary.
VENDORED_MEMCACHED="http://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
VENDORED_MEMCACHED="https://lang-python.s3.amazonaws.com/$STACK/libraries/vendor/libmemcache.tar.gz"
# Syntax sugar.
source $BIN_DIR/utils
bpwatch start pylibmc_install
# If pylibmc exists within requirements, use vendored libmemcached.
if (pip-grep -s requirements.txt pylibmc &> /dev/null) then
if [ -d ".heroku/vendor/lib/sasl2" ]; then
export LIBMEMCACHED=$(pwd)/vendor
else
if [ ! -d ".heroku/vendor/lib/sasl2" ]; then
echo "-----> Noticed pylibmc. Bootstrapping libmemcached."
mkdir -p .heroku/vendor
# Download and extract libmemcached into target vendor directory.
curl $VENDORED_MEMCACHED -s | tar zxv -C .heroku/vendor &> /dev/null
export LIBMEMCACHED=$(pwd)/vendor
fi
fi
bpwatch stop pylibmc_install
export LIBMEMCACHED=$(pwd)/vendor
fi
+12 -29
View File
@@ -1,43 +1,38 @@
set +e
runtime-fixer runtime.txt
PYTHON_VERSION=$(cat runtime.txt)
# Install Python.
if [ -f .heroku/python-version ]; then
if [ ! $(cat .heroku/python-version) = $PYTHON_VERSION ]; then
bpwatch start uninstall_python
puts-step "Found runtime $(cat .heroku/python-version), removing"
puts-step "Found $(cat .heroku/python-version), removing"
rm -fr .heroku/python
bpwatch stop uninstall_python
else
SKIP_INSTALL=1
fi
fi
if [ ! $STACK = $CACHED_PYTHON_STACK ]; then
bpwatch start uninstall_python
puts-step "Stack changed, re-installing runtime"
rm -fr .heroku/python .heroku/python-stack .heroku/vendor
unset SKIP_INSTALL
bpwatch stop uninstall_python
fi
if [ ! "$SKIP_INSTALL" ]; then
bpwatch start install_python
puts-step "Installing runtime ($PYTHON_VERSION)"
puts-step "Installing $PYTHON_VERSION"
# Prepare destination directory.
mkdir -p .heroku/python
curl http://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
curl https://lang-python.s3.amazonaws.com/$STACK/runtimes/$PYTHON_VERSION.tar.gz -s | tar zxv -C .heroku/python &> /dev/null
mcount "version.python.$PYTHON_VERSION"
if [[ $? != 0 ]] ; then
puts-warn "Requested runtime ($PYTHON_VERSION) is not available for this stack ($STACK)."
puts-warn "Aborting. More info: https://devcenter.heroku.com/articles/python-support"
exit 1
fi
bpwatch stop install_python
# Record for future reference.
echo $PYTHON_VERSION > .heroku/python-version
echo $STACK > .heroku/python-stack
@@ -50,29 +45,17 @@ fi
if [ "$FRESH_PYTHON" ] || [[ ! $(pip --version) == *$PIP_VERSION* ]]; then
WORKING_DIR=$(pwd)
bpwatch start prepare_environment
TMPTARDIR=$(mktemp -d)
trap "rm -rf $TMPTARDIR" RETURN
bpwatch start install_setuptools
# Prepare it for the real world
# puts-step "Installing Setuptools ($SETUPTOOLS_VERSION)"
tar zxf $ROOT_DIR/vendor/setuptools-$SETUPTOOLS_VERSION.tar.gz -C $TMPTARDIR
cd $TMPTARDIR/setuptools-$SETUPTOOLS_VERSION/
python setup.py install &> /dev/null
cd $WORKING_DIR
bpwatch stop install_setuptoools
puts-step "Installing pip"
bpwatch start install_pip
# puts-step "Installing Pip ($PIP_VERSION)"
tar zxf $ROOT_DIR/vendor/pip-$PIP_VERSION.tar.gz -C $TMPTARDIR
cd $TMPTARDIR/pip-$PIP_VERSION/
python setup.py install &> /dev/null
cd $WORKING_DIR
# Remove old installations.
rm -fr /app/.heroku/python/lib/python2.7/site-packages/pip-*
rm -fr /app/.heroku/python/lib/python2.7/site-packages/setuptools-*
/app/.heroku/python/bin/python $ROOT_DIR/vendor/get-pip.py &> /dev/null
bpwatch stop install_pip
bpwatch stop prepare_environment
fi
set -e
+4 -4
View File
@@ -3,9 +3,9 @@
# Syntax sugar.
source $BIN_DIR/utils
if (pip-grep -s requirements.txt setuptools distribute &> /dev/null) then
puts-warn 'The package setuptools/distribute is listed in requirements.txt.'
puts-warn 'Please remove to ensure expected behavior. '
puts-step "Removing packaging utilities from requirements.txt."
if [[ -f requirements.txt ]]; then
pip-clean requirements.txt
fi
-106
View File
@@ -1,106 +0,0 @@
#!/usr/bin/env bash
#
# Create a Heroku app with the following buildpack:
# https://github.com/ddollar/buildpack-test
#
# Push this Python buildpack to that Heroku app to
# run the tests.
#
testDetectWithReqs() {
detect "simple-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithEmptyReqs() {
detect "empty-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango16() {
detect "django-1.6-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango15() {
detect "django-1.5-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango14() {
detect "django-1.4-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectDjango13() {
detect "django-1.3-skeleton"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectNotDjangoWithSettings() {
detect "not-django"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithSetupPy() {
detect "distutils"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectWithSetupRequires() {
detect "no-requirements"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectNotPython() {
detect "not-python"
assertNotCaptured "Python"
assertEquals "1" "${RETURN}"
}
testDetectSimpleRuntimePypy2() {
detect "simple-runtime-pypy2"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectSimpleRuntimePython2() {
detect "simple-runtime-python2"
assertCapturedEquals "Python"
assertCapturedSuccess
}
testDetectSimpleRuntimePython3() {
detect "simple-runtime" # should probably be renamed simple-runtime-python3
assertCapturedEquals "Python"
assertCapturedSuccess
}
## utils ########################################
pushd $(dirname 0) >/dev/null
BASE=$(pwd)
popd >/dev/null
source ${BASE}/vendor/test-utils
detect() {
capture ${BASE}/bin/detect ${BASE}/test/$1
}
compile() {
capture ${BASE}/bin/compile ${BASE}/test/$1
}
source ${BASE}/vendor/shunit2
+11
View File
@@ -0,0 +1,11 @@
#!/usr/bin/env bash
# Syntax sugar.
BIN_DIR=$(cd $(dirname $0); pwd) # absolute path
source $BIN_DIR/utils
DISABLE_COLLECTSTATIC=1 "$(dirname ${0:-})/compile" "$1" "$2" "$3"
if [[ -f "$1/requirements-test.txt" ]]; then
/app/.heroku/python/bin/pip install -r "$1/requirements-test.txt" --exists-action=w --src=./.heroku/src --disable-pip-version-check --no-cache-dir 2>&1 | cleanup | indent
fi
+20 -32
View File
@@ -1,5 +1,12 @@
#!/usr/bin/env bash
shopt -s extglob
# The standard library.
if [[ ! -f /tmp/stdlib.sh ]]; then
curl --retry 3 -s https://lang-common.s3.amazonaws.com/buildpack-stdlib/v2/stdlib.sh > /tmp/stdlib.sh
fi
source /tmp/stdlib.sh
if [ $(uname) == Darwin ]; then
sed() { command sed -l "$@"; }
else
@@ -11,9 +18,10 @@ indent() {
sed "s/^/ /"
}
# Clean up pip output
cleanup() {
sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id'
sed -e 's/\.\.\.\+/.../g' | sed -e '/already satisfied/Id' | sed -e '/No files were found to uninstall/Id' | sed -e '/Overwriting/Id' | sed -e '/python executable/Id' | sed -e '/no previously-included files/Id'
}
# Buildpack Steps.
@@ -26,21 +34,6 @@ puts-warn() {
echo " ! $@"
}
# Usage: $ set-env key value
set-env() {
echo "export $1=$2" >> $PROFILE_PATH
}
# Usage: $ set-default-env key value
set-default-env() {
echo "export $1=\${$1:-$2}" >> $PROFILE_PATH
}
# Usage: $ set-default-env key value
un-set-env() {
echo "unset $1" >> $PROFILE_PATH
}
# Does some serious copying.
deep-cp() {
declare source="$1" target="$2"
@@ -57,26 +50,15 @@ deep-cp() {
)
}
# Does some serious moving.
deep-mv() {
deep-cp "$1" "$2"
deep-rm "$1"
}
# Does some serious deleting.
deep-rm() {
# subshell to avoid surprising caller with shopts.
(
shopt -s dotglob
rm -rf "$1"/!(tmp|.|..)
)
}
sub-env() {
WHITELIST=${2:-''}
BLACKLIST=${3:-'^(GIT_DIR|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'}
BLACKLIST=${3:-'^(GIT_DIR|STACK|PYTHONHOME|LD_LIBRARY_PATH|LIBRARY_PATH|PATH)$'}
# Python-specific variables.
export PYHONHOME=$BUILD_DIR/.heroku/python
export PYTHONPATH=$BUILD_DIR/
(
if [ -d "$ENV_DIR" ]; then
@@ -91,3 +73,9 @@ sub-env() {
)
}
# Measure the size of the Python installation.
measure-size() {
echo "$((du -s .heroku/python 2>/dev/null || echo 0) | awk '{print $1}')"
}
Executable
+65
View File
@@ -0,0 +1,65 @@
shopt -s extglob
old-platform() {
if grep -qi 'InsecurePlatformWarning' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! It looks like your application is using an outdated version of Python."
puts-warn "This caused the security warning you saw above during the 'pip install' step."
puts-warn "We recommend '$RECOMMENDED_PYTHON_VERSION', which you can specify in a 'runtime.txt' file."
puts-warn " -- Much Love, Heroku."
mcount 'warnings.python.old'
fi
}
pylibmc-missing() {
if grep -qi 'fatal error: libmemcached/memcached.h: No such file or directory' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! There was a problem with your build related to libmemcache."
puts-warn "The Python library 'pylibmc' must be explicitly specified in 'requirements.txt' in order to build correctly."
puts-warn "Once you do that, everything should work as expected. -- Much Love, Heroku."
mcount 'warnings.libmemcache'
fi
}
scipy-included() {
if grep -qi 'running setup.py install for scipy' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! It looks like you're trying to use scipy on Heroku."
puts-warn "Unfortunately, at this time, we do not directly support this library."
puts-warn "There is, however, a buildpack available that makes it possible to use it on Heroku."
puts-warn "You can learn more here: https://devcenter.heroku.com/articles/python-c-deps"
puts-warn "Sorry for the inconvenience. -- Much Love, Heroku."
mcount 'warnings.scipy'
fi
}
distribute-included() {
if grep -qi 'Running setup.py install for distribute' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! Your requirements.txt file contains the distribute package."
puts-warn "This library is automatically installed by Heroku and shouldn't be in"
puts-warn "Your requirements.txt file. This can cause unexpected behavior."
puts-warn " -- Much Love, Heroku."
mcount 'warnings.distribute'
fi
}
six-included() {
if grep -qi 'Running setup.py install for six' "$WARNINGS_LOG"; then
echo
puts-warn "Hello! Your requirements.txt file contains the six package."
puts-warn "This library is automatically installed by Heroku and shouldn't be in"
puts-warn "Your requirements.txt file. This can cause unexpected behavior."
puts-warn " -- Much Love, Heroku."
mcount 'warnings.six'
fi
}
show-warnings() {
old-platform
pylibmc-missing
scipy-included
distribute-included
six-included
}
+11 -1
View File
@@ -1,5 +1,7 @@
# Python Buildpack Binaries
For Cedar-14 stack
------------------
To get started with it, create an app on Heroku inside a clone of this repository, and set your S3 config vars:
@@ -28,4 +30,12 @@ If this works, run `bob deploy` instead of `bob build` to have the result upload
To speed things up drastically, it'll usually be a good idea to `heroku run bash --size PX` instead.
Enjoy :)
For Heroku-16 stack
-------------------
1. Ensure GNU Make and Docker are installed.
2. From the root of the buildpack repository, run: `make buildenv-heroku-16`
3. Follow the instructions displayed!
Enjoy :)
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
echo "Building autoconf..."
SOURCE_TARBALL='http://ftp.gnu.org/gnu/autoconf/autoconf-2.68.tar.gz'
curl -L $SOURCE_TARBALL | tar xz
cd autoconf-2.68
./configure --prefix=$OUT_PREFIX
make
make install
-23
View File
@@ -1,23 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building libffi..."
SOURCE_TARBALL='http://cl.ly/2s1t1u3v0N0I/download/libffi-3.1.tar'
curl -L $SOURCE_TARBALL | tar x
cd libffi-3.1
./configure --prefix=$OUT_PREFIX --disable-static &&
make
make install
# Cleanup
cd ..
+1 -1
View File
@@ -6,7 +6,7 @@ OUT_PREFIX=$1
echo "Building SQLite..."
SOURCE_TARBALL='http://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
SOURCE_TARBALL='https://www.sqlite.org/sqlite-autoconf-3070900.tar.gz'
curl $SOURCE_TARBALL | tar xz
# jx
Vendored Executable
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/vendor/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building gdal..."
SOURCE_TARBALL='http://download.osgeo.org/gdal/1.11.1/gdal-1.11.1.tar.gz'
curl -L $SOURCE_TARBALL | tar zx
cd gdal-1.11.1
./configure --prefix=$OUT_PREFIX --enable-static=no &&
make
make install
# Cleanup
cd ..
Vendored Executable
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/vendor/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building geos..."
SOURCE_TARBALL='http://download.osgeo.org/geos/geos-3.4.3.tar.bz2'
curl -L $SOURCE_TARBALL | tar xj
cd geos-3.4.3
./configure --prefix=$OUT_PREFIX --enable-static=no &&
make
make install
# Cleanup
cd ..
+5
View File
@@ -3,6 +3,11 @@
OUT_PREFIX=$1
# Skip the build for heroku-16.
if [[ $S3_PREFIX == "heroku-16" ]]; then
exit 0
fi
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
+5
View File
@@ -3,6 +3,11 @@
OUT_PREFIX=$1
# Skip the build for heroku-16.
if [[ $S3_PREFIX == "heroku-16" ]]; then
exit 0
fi
# fail hard
set -o pipefail
# fail harder
Vendored Executable
+23
View File
@@ -0,0 +1,23 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/vendor/
OUT_PREFIX=$1
# Use new path, containing autoconf.
export PATH="/app/.heroku/python/bin/:$PATH"
hash -r
echo "Building gdal..."
SOURCE_TARBALL='http://download.osgeo.org/proj/proj-4.8.0.tar.gz'
curl -L $SOURCE_TARBALL | tar zx
cd proj-4.8.0
./configure --prefix=$OUT_PREFIX --enable-static=no &&
make
make install
# Cleanup
cd ..
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.7-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.7/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.8-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.8/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-12
View File
@@ -1,12 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-1.9-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-1.9/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.2-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.2-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.2.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.2.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite, libraries/libffi
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.3-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.3-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.3.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.3.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
-14
View File
@@ -1,14 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.4.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.4.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.2-linux64.tar.bz2'
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.3.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0.2/* $OUT_PREFIX
cp -R pypy2-v5.3.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.0.1-linux64.tar.bz2'
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.6.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0.1/* $OUT_PREFIX
cp -R pypy2-v5.6.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
+14
View File
@@ -0,0 +1,14 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 and heroku-16 stacks, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.0-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy2-v5.7.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.1-linux64.tar.bz2'
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy2-v5.7.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.1/* $OUT_PREFIX
cp -R pypy2-v5.7.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
@@ -7,8 +7,8 @@
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy-2.0-linux64.tar.bz2'
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3.3-v5.5.0-alpha-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy-2.0/* $OUT_PREFIX
cp -R pypy3-v5.5.0-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
ln $OUT_PREFIX/bin/pypy3 $OUT_PREFIX/bin/python
@@ -2,13 +2,11 @@
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar-14 stack, not cedar.
OUT_PREFIX=$1
echo "Building PyPy..."
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-2.3.1-linux64.tar.bz2'
SOURCE_TARBALL='https://bitbucket.org/pypy/pypy/downloads/pypy3-v5.7.1-linux64.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
cp -R pypy3-2.3.1-linux64/* $OUT_PREFIX
cp -R pypy3-v5.7.1-linux64/* $OUT_PREFIX
ln $OUT_PREFIX/bin/pypy $OUT_PREFIX/bin/python
ln $OUT_PREFIX/bin/pypy3 $OUT_PREFIX/bin/python
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.4/Python-2.4.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.4 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.5/Python-2.4.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.4 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.4.6/Python-2.4.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.4.6 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5/Python-2.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.1/Python-2.5.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.1 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.2/Python-2.5.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.2 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.3/Python-2.5.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.3 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.4/Python-2.5.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.4 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.5/Python-2.5.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.5 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.5 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.5.6/Python-2.5.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.5.6 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar stack, not cedar-14.
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://www.python.org/ftp/python/2.6/Python-2.6.tar.bz2'
curl -L $SOURCE_TARBALL | tar jx
mv Python-2.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-20
View File
@@ -1,20 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
# NOTICE: This formula only works for the cedar stack, not cedar-14.
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.1/Python-2.6.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.2/Python-2.6.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.3/Python-2.6.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.4/Python-2.6.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.5/Python-2.6.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.6/Python-2.6.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.7/Python-2.6.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.7 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.8/Python-2.6.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.8 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-18
View File
@@ -1,18 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
# Protect 2.6 builds from parent Python (causes segfault during build).
unset LANG PYTHONHOME PYTHONPATH
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.6.9/Python-2.6.9.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.6.9 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
@@ -5,11 +5,11 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7/Python-2.7.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.10/Python-2.7.10.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7 src
mv Python-2.7.10 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
@@ -5,11 +5,11 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.1/Python-2.7.1.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.11/Python-2.7.11.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.1 src
mv Python-2.7.11 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
@@ -5,11 +5,11 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.2/Python-2.7.2.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.12/Python-2.7.12.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.2 src
mv Python-2.7.12 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
./configure --prefix=$OUT_PREFIX --with-ensurepip=no
make
make install
@@ -5,11 +5,11 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.3/Python-2.7.3.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.13/Python-2.7.13.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.3 src
mv Python-2.7.13 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
./configure --prefix=$OUT_PREFIX --enable-unicode=ucs4 --with-ensurepip=no
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.5/Python-2.7.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.6/Python-2.7.6.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.6 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.7 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.7/Python-2.7.7.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.7 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.8 src
cd src
./configure --prefix=$OUT_PREFIX
make
make install
-15
View File
@@ -1,15 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.8/Python-2.7.8.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.8 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
+1 -1
View File
@@ -5,7 +5,7 @@
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
SOURCE_TARBALL='https://python.org/ftp/python/2.7.9/Python-2.7.9.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-2.7.9 src
cd src
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.1/Python-3.1.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.2/Python-3.1.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.3/Python-3.1.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.4/Python-3.1.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.1.5/Python-3.1.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.1.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.1/Python-3.2.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.2/Python-3.2.2.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.2 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.3/Python-3.2.3.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.3 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.4/Python-3.2.4.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.4 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.2.5/Python-3.2.5.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.2.5 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.0/Python-3.3.0.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.0 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python
-17
View File
@@ -1,17 +0,0 @@
#!/usr/bin/env bash
# Build Path: /app/.heroku/python/
# Build Deps: libraries/sqlite
OUT_PREFIX=$1
echo "Building Python..."
SOURCE_TARBALL='http://python.org/ftp/python/3.3.1/Python-3.3.1.tgz'
curl -L $SOURCE_TARBALL | tar xz
mv Python-3.3.1 src
cd src
./configure --prefix=$OUT_PREFIX --enable-shared
make
make install
ln $OUT_PREFIX/bin/python3 $OUT_PREFIX/bin/python

Some files were not shown because too many files have changed in this diff Show More