1429 Commits

Author SHA1 Message Date
kennethreitz d4b8c2aeda Undo sub_env for pip install, it was a terrible idea (#467)
* fixed the bug for pypy-5.8.0

* update changelog

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* blacklist for old apps

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* only blacklist pythonhome/path

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* updated changelog

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* be more agressive with blacklisting

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* sub_env was a terrible idea

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* changelog update

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
v115
2017-09-05 11:11:59 -04:00
kennethreitz f86e8079b6 Blacklist for old apps (#466)
* fixed the bug for pypy-5.8.0

* update changelog

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* blacklist for old apps

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* only blacklist pythonhome/path

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* updated changelog

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
v114
2017-09-05 10:44:08 -04:00
kennethreitz 36c6f5e388 Update README.md (#464) 2017-09-05 10:02:19 -04:00
kennethreitz 91a65b2984 Update README.md (#463) 2017-09-05 09:59:35 -04:00
kennethreitz 3010070d55 Update README.md (#462)
* Update README.md

* Update README.md

* Update README.md
2017-09-05 09:58:32 -04:00
Ed Morley fedae5ceda Tests: Make assertCaptured test failures easier to debug (#461)
Previously the contents of the file being searched was not output,
making it hard to know how to fix a test so that it would pass.

Before:
```
$ make test-heroku-16
...
testCffi
ASSERT:Expected </tmp/shunit.ayVGAO/tmp/output.6gMs/stdout> to contain <ZZZZZZZ>
testPylibmc
```

After:
```
$ make test-heroku-16
...
testCffi
ASSERT:Expected </tmp/shunit.FXWeuI/tmp/output.7Vfx/stdout> to contain <ZZZZZZZ>
 !     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-3.6.2
-----> Installing pip
-----> Installing requirements with pip
       Collecting cffi (from -r /tmp/testBoLG0/requirements.txt (line 1))
         Downloading cffi-1.10.0-cp36-cp36m-manylinux1_x86_64.whl (406kB)
       Collecting pycparser (from cffi->-r /tmp/testBoLG0/requirements.txt (line 1))
         Downloading pycparser-2.18.tar.gz (245kB)
       Installing collected packages: pycparser, cffi
         Running setup.py install for pycparser: started
           Running setup.py install for pycparser: finished with status 'done'
       Successfully installed cffi-1.10.0 pycparser-2.18

testPylibmc
```
2017-09-05 09:43:17 -04:00
Ed Morley 4212e06309 NLTK support: Fix passing of multiple corpora identifiers (#460)
* NLTK support: Update test to use multiple corpora

So that the incorrect handling of multiple IDs seen in #444 would
have been caught.

Also switches to some of the smaller corpora, to reduce time spent
downloading during tests (see sizes on http://www.nltk.org/nltk_data/).

* NLTK support: Fix passing of multiple corpora identifiers

As part of fixing the shellcheck warnigns in #438, double quotes had
been placed around `$nltk_packages` passed to the `nltk.downloader`,
which causes multiple identifiers to be treated as though it were just
one identifier that contains spaces.

The docs for the shellcheck warning in question recommend using arrays
if the intended behaviour really is to split on spaces:
https://github.com/koalaman/shellcheck/wiki/SC2086#exceptions

As such, `readarray` has been used, which is present in bash >=4.
The `[*]` array form is used in the log message, to prevent shellcheck
warning SC2145, whereas `[@]` is used when passed to `nltk.downloader`
to ensure the array elements are unpacked as required.

Note: Both before and after this fix, using anything but unix line
endings in `nltk.txt` will also cause breakage.
2017-09-05 09:32:04 -04:00
kennethreitz fd360bda14 Update local commits (#459)
* fixed the bug for pypy-5.8.0

* update changelog

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-31 13:41:45 -04:00
kennethreitz 4723abb896 Pipenv Updates (#458)
* fixed the bug for pypy-5.8.0

* update pipenv support

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-31 13:18:26 -04:00
kennethreitz 155b5eecb9 Grep bug fix (#456)
* fixed the bug for pypy-5.8.0

* changelog entry

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* use std-lib sub-env

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* let's see if this cleans things up

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* try v7 of stdlib

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* use new sub_env

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* set_env

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* set_default_env

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* v8 of stdlib

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* v112

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* oops (merge bug)

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* final merge error resolve

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* final final fix for merge conflict

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-28 13:41:32 -04:00
kennethreitz 845635d667 Changelog (#454)
* fixed the bug for pypy-5.8.0

* changelog entry

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-24 17:28:25 -04:00
Samuel Spencer 0c26eae214 Allow environment variables during pip install, fixes #416 (#417)
* Allow environment variables during pip install, fixes #416

* shift sub-env command, fix typo

* bash check thingy fixed
2017-08-12 02:55:15 -04:00
Jeremy Morrell 325a3165e4 Remove leading zeros from WEB_CONCURRENCY (#446)
* Remove leading zeros from `WEB_CONCURRENCY`

* fix DYNO_RAM (from node buildpack)

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-10 14:42:45 -04:00
Ed Morley bf378916af Speed up the multi-stage Travis run (#443)
Reduces the impact on Travis runtime caused by #438, by:
* Making the shellcheck job run on the container infra (`sudo: false`)
  which has faster boot times.
* Running the heroku-16 and cedar-14 stack tests in parallel, since
  previously they were separate stages (which are run in series by
  design).

Reduces Travis end-to-end time from ~10 minutes to ~6 minutes.
2017-08-10 14:29:15 -04:00
Ed Morley c029e44dc8 Improve UX when clearing cache due to the stack changing (#442)
* Test that the cache is invalidated when the stack changes

* Improve UX when clearing cache due to the stack changing

Now outputs a message informing that the cache was cleared, and
clears the cache first to avoid a redundant message about removing
an old Python version.
2017-08-07 21:23:23 -04:00
kennethreitz f74d4db8c5 Shellcheck Compliance (#438)
* fixed the bug for pypy-5.8.0

* enable shellcheck in makefile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* make compile script shellcheck compatible

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* let's see what this says

* fix pip installation

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck detect script

* shellcheck release

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck test-compile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck warnings/utils

* updated makefile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck collectstatic

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck cryptography

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck eggpath fixes

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck gdal

* shellcheck goes-libs

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck mercurial

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* nltk shellcheck

* shellcheck pip-install

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck pip-uninstall

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck pipenv

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck pylibmc

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* shellcheck python

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* update makefile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* final update to makefile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* fix tests

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* actually fix the tests

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* update pipenv-python-version

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* requested fixes

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* update spellcheck sources

* attempted fix for shell globbing

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* further attempted fix

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* switch nltk styling

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* no more need for temp app for installing pip

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* attempt at staged build for shellcheck

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* attempted fix of travis file

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* reorder travis file

* add shellcheck to install

* make things clearer in travis file

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* better travis file

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* attempt at better travis file

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* better travis file

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-03 17:36:23 -04:00
kennethreitz 2512694df9 Geos tests (#437)
* fixed the bug for pypy-5.8.0

* cleanup makefile

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* allow builds to happen when capitalization is used

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* restore behavior

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>

* make makefile default to heroku-16

* test geos libraries

Signed-off-by: Kenneth Reitz <me@kennethreitz.org>
2017-08-02 19:59:44 -04:00
Johannes Hoppe f289984061 Update GDAL version to 1.11.5 (#432)
* Update GDAL version to 1.11.5

Update GDAL to latest bugfix release, see
http://trac.osgeo.org/gdal/wiki/Release/1.11.5-News

* Use pushd and popd in favor of cd
2017-08-01 14:33:23 -04:00
kennethreitz 1d37749ec1 fixed the bug for pypy-5.8.0 (#431) 2017-07-31 19:27:48 -04:00
Josh Friend da13bf1f3d Add pypy2-5.8.0 (#430) 2017-07-31 18:46:43 -04:00
Ed Morley 78767e7199 Exclude Python's test suite from generated Python archives (#425)
This copies the official Docker Python images approach of stripping
the Python test suite after building from source.

For Python 3.6.2 this reduces the output from 184MB to 121MB and
removes the following directories:
```
.heroku/python/lib/python3.6/tkinter/test
.heroku/python/lib/python3.6/ctypes/test
.heroku/python/lib/python3.6/unittest/test
.heroku/python/lib/python3.6/distutils/tests
.heroku/python/lib/python3.6/sqlite3/test
.heroku/python/lib/python3.6/lib2to3/tests
.heroku/python/lib/python3.6/test
```

For Python 2.7.13 this reduces the output from 127MB to 91MB and
removes the following directories:
```
.heroku/python/lib/python2.7/ctypes/test
.heroku/python/lib/python2.7/unittest/test
.heroku/python/lib/python2.7/distutils/tests
.heroku/python/lib/python2.7/bsddb/test
.heroku/python/lib/python2.7/lib-tk/test
.heroku/python/lib/python2.7/sqlite3/test
.heroku/python/lib/python2.7/lib2to3/tests
.heroku/python/lib/python2.7/json/tests
.heroku/python/lib/python2.7/email/test
.heroku/python/lib/python2.7/test
```

Fixes #424.
2017-07-17 13:00:47 -04:00
kennethreitz 194932889d Python 3.6.2 (#423)
* pypy3-5.8.0

* updated cpython to 3.6.2

* update README to reflect new Python version
v110
2017-07-17 12:35:26 -04:00
Josh Friend 4293ec5564 Add CPython 3.6.2 (#422) 2017-07-17 11:48:05 -04:00
kennethreitz 57baab9f68 Update README.md (#415) 2017-06-20 10:43:51 -07:00
kennethreitz a7c20eea42 Python 3 default for buildpack (#409)
* update default python to 3.6.1

* v110

* nltk python2
v109
2017-06-20 09:14:01 -07:00
kennethreitz 0a4cc2c476 pypy3-5.8.0 (#414) 2017-06-15 15:54:40 -04:00
Ed Morley cbb718bb8b Fix pip uninstall by moving it prior to pip install (#413)
The pip-uninstall step stopped working when it was moved to after
the pip-install step in f27a84e.

This regression was temporarily fixed by part of #397, however that
PR was reverted in #404.

Adds a test to hopefully catch any future regressions :-)

Fixes #393.
2017-06-14 17:15:52 -04:00
kennethreitz db95cdd3f3 new pylibmc test (#408) v108 2017-06-05 13:47:48 -04:00
kennethreitz 04f3ddbc86 updates (#407)
* silently use sp-grep

* history

* update license
2017-06-05 13:34:15 -04:00
kennethreitz f06f5676e8 silently use sp-grep (#406) 2017-06-05 13:31:57 -04:00
kennethreitz c8c8995d70 Next version (#405)
* python 3.5.3

* v108

* new setuptools version

* removed unneeded variable
v107
2017-06-03 17:51:44 -04:00
kennethreitz 4ee3baaded Revert "Don't install packages that could mess packaging up" (#404)
* Revert "Fix pyyaml (#402)"

This reverts commit ff94908505.

* Revert "Don't install packages that could mess packaging up (#397)"

This reverts commit 5496c02f9f.
2017-06-03 17:36:19 -04:00
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
v106
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