Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update _appengine_environ.py #1471

Closed
wants to merge 53 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
53 commits
Select commit Hold shift + click to select a range
00093d6
Update _appengine_environ.py
wittfabian Nov 3, 2018
6b17c92
Update _appengine_environ.py
wittfabian Nov 6, 2018
2717054
Update _appengine_environ.py
wittfabian Nov 7, 2018
a9f55e1
Update _appengine_environ.py
wittfabian Nov 7, 2018
e0b2433
Merge pull request #1 from urllib3/master
wittfabian Nov 22, 2018
0c6d7ad
Use APPENGINE_RUNTIME in is_appengine
wittfabian Nov 25, 2018
00b0be0
Update _appengine_environ.py
wittfabian Nov 26, 2018
5521a8e
fixed syntax error
wittfabian Nov 27, 2018
dab99a6
Merge pull request #2 from urllib3/master
wittfabian Mar 20, 2019
edfd345
Improve CI stability for timeouts and branch coverage (#1554)
pquentin Mar 23, 2019
46331f9
Encode field names using HTML5 by default instead of RFC 2231 (#1492)
Robbt Mar 23, 2019
c427daf
Remove mercurial files (#1558)
pquentin Mar 27, 2019
1ebcbc2
Apply changes from 1.24.2 release to master (#1566)
sethmlarson Apr 19, 2019
1d3e60e
Update urllib3.contrib.socks documentation (#1567)
sethmlarson Apr 19, 2019
5d52370
Use rfc3986.validator.Validator for parse_url (#1531)
sethmlarson Apr 21, 2019
bbeeae2
Apply lowercasing before IDNA-encoding (#1569)
sethmlarson Apr 22, 2019
c3157af
Release 1.25 (#1568)
sethmlarson Apr 22, 2019
0144514
Restore dev version (#1570)
sethmlarson Apr 22, 2019
ecb1c7a
Add compatibility with Google's 'Brotli' package (#1572)
elprans Apr 22, 2019
1e46888
Add integration tests for Google's Brotli package (#1573)
sethmlarson Apr 23, 2019
d7ece60
Change deploy stage to have it's own job and not run unit tests (#1574)
sethmlarson Apr 23, 2019
ff8f721
Upgrade rfc3986 to v1.3.1 (#1578)
sethmlarson Apr 24, 2019
64e413f
Add first-class support for Brotli package (#1579)
sethmlarson Apr 24, 2019
85e7798
Release 1.25.1 (#1581)
sethmlarson Apr 24, 2019
2001292
Switch to Nox (#1580)
theacodes Apr 24, 2019
dae790c
Don't require branch = master for tag pushes (#1584)
sethmlarson Apr 25, 2019
a0d2bfd
is_ipaddress shouldn't detect IPvFuture addresses (#1583)
sethmlarson Apr 25, 2019
35b4caa
use import for is_appengine check
wittfabian Apr 25, 2019
057e455
Merge remote-tracking branch 'origin/master'
wittfabian Apr 25, 2019
685914d
Update _appengine_environ.py
wittfabian Nov 3, 2018
eb94d9f
Update _appengine_environ.py
wittfabian Nov 6, 2018
0e92902
Update _appengine_environ.py
wittfabian Nov 7, 2018
35ed29f
Update _appengine_environ.py
wittfabian Nov 7, 2018
875f07e
Use APPENGINE_RUNTIME in is_appengine
wittfabian Nov 25, 2018
678f64e
Update _appengine_environ.py
wittfabian Nov 26, 2018
53a62f1
fixed syntax error
wittfabian Nov 27, 2018
6daeb6c
use import for is_appengine check
wittfabian Apr 25, 2019
d98e631
Merge branch 'master' of https://github.com/wittfabian/urllib3
wittfabian Apr 25, 2019
a74c9cf
Percent-encode invalid characters with request target (#1586)
sethmlarson Apr 28, 2019
49eea80
Release 1.25.2 (#1588)
sethmlarson Apr 29, 2019
fb706cb
Update _appengine_environ.py
wittfabian Nov 3, 2018
602fe61
Update _appengine_environ.py
wittfabian Nov 6, 2018
7dc72c5
Update _appengine_environ.py
wittfabian Nov 7, 2018
febec12
Update _appengine_environ.py
wittfabian Nov 7, 2018
3bc64d7
Use APPENGINE_RUNTIME in is_appengine
wittfabian Nov 25, 2018
5f4361e
Update _appengine_environ.py
wittfabian Nov 26, 2018
ef821ef
fixed syntax error
wittfabian Nov 27, 2018
3328ebd
use import for is_appengine check
wittfabian Apr 25, 2019
48abb93
Update _appengine_environ.py
wittfabian Nov 3, 2018
806f172
Update _appengine_environ.py
wittfabian Nov 6, 2018
7b40462
Update _appengine_environ.py
wittfabian Nov 7, 2018
7d66edc
rebase
wittfabian May 2, 2019
cdf9aa5
Merge remote-tracking branch 'origin/master'
wittfabian May 2, 2019
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
7 changes: 0 additions & 7 deletions .hgignore

This file was deleted.

4 changes: 0 additions & 4 deletions .hgtags

This file was deleted.

109 changes: 47 additions & 62 deletions .travis.yml
@@ -1,6 +1,7 @@
language: python
sudo: false
stage: test
dist: xenial

before_install:
- env
Expand All @@ -25,68 +26,69 @@ notifications:

env:
global:
- GAE_SDK_PATH=${HOME}/.cache/google_appengine
- PYTHONWARNINGS=always::DeprecationWarning

- PYPI_USERNAME=urllib3
# PYPI_PASSWORD is set in Travis control panel.

matrix:
- TOXENV=flake8-py3
- TOXENV=gae
- TOXENV=docs

matrix:
include:
# Lint & documentation.
- python: 3.6
env: NOX_SESSION=lint
- python: 3.6
env: NOX_SESSION=docs

# Unit tests
- python: 2.7
env: TOXENV=py27
- python: 2.7
env: TOXENV=py27-nobrotli
env: NOX_SESSION=test-2.7
- python: 3.4
env: TOXENV=py34
env: NOX_SESSION=test-3.4
- python: 3.5
env: TOXENV=py35
env: NOX_SESSION=test-3.5
- python: 3.6
env: TOXENV=py36
- python: 3.7
env: TOXENV=py37
dist: xenial
sudo: required
env: NOX_SESSION=test-3.6
- python: 3.7
env: TOXENV=py37-nobrotli
dist: xenial
sudo: required
env: NOX_SESSION=test-3.7
- python: 3.8-dev
env: TOXENV=py38
dist: xenial
sudo: required
env: NOX_SESSION=test-3.8
- python: pypy2.7-6.0
env: NOX_SESSION=test-pypy
- python: pypy3.5-6.0
env: NOX_SESSION=test-pypy

- python: pypy-5.4
env: TOXENV=pypy
# Extras
- python: 2.7
env: NOX_SESSION=app_engine GAE_SDK_PATH=${HOME}/.cache/google_appengine
- python: 2.7
env: NOX_SESSION=google_brotli-2
- python: 3.7
env: NOX_SESSION=google_brotli-3

# OS X unit tests.
- language: generic
os: osx
env: TOXENV=py27
env: NOX_SESSION=test-2.7
- language: generic
os: osx
env: TOXENV=py34
env: NOX_SESSION=test-3.4
- language: generic
os: osx
env: TOXENV=py35
env: NOX_SESSION=test-3.5
- language: generic
os: osx
env: TOXENV=py36
env: NOX_SESSION=test-3.6
- language: generic
os: osx
env: TOXENV=py37
env: NOX_SESSION=test-3.7

# Downstream integration tests.
- python: 2.7
env: DOWNSTREAM=requests
stage: integration

- python: 3.7
env: DOWNSTREAM=requests
dist: xenial
sudo: required
stage: integration

- python: 2.7
Expand All @@ -95,42 +97,25 @@ matrix:

- python: 3.7
env: DOWNSTREAM=botocore
dist: xenial
sudo: required
stage: integration

- python: 3.7
stage: deploy
script:
- ./_travis/deploy.sh

allow_failures:
- python: pypy-5.4
- python: pypy3.5-6.0
- python: pypy2.7-6.0

stages:
- test
- name: test
if: tag IS blank

# Run integration tests for release candidates
- name: integration
if: type = pull_request AND head_branch =~ ^release-[\d.]+$

deploy:
- provider: script
script: bash _travis/deploy.sh
skip_cleanup: true
on:
branch: master
repo: urllib3/urllib3
tags: true
python: 3.7

- provider: releases
api_key:
secure: ... # GitHub access token
name: "$TRAVIS_TAG"
body: "Release $TRAVIS_TAG"
draft: true
skip_cleanup: true
file_glob: true
file: dist/*
overwrite: true
on:
branch: master
repo: urllib3/urllib3
tags: true
python: 3.7
if: type = pull_request AND head_branch =~ ^release-[\d.]+$ AND tag IS blank

# Deploy on any tags
- name: deploy
if: tag IS present AND tag =~ /^(\d+\.\d+(?:.\d+)?)$/ AND repo = urllib3/urllib3
48 changes: 36 additions & 12 deletions CHANGES.rst
@@ -1,36 +1,60 @@
Changes
=======

dev (master)
------------
1.25.2 (2019-04-28)
-------------------

* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue #1483)
* Change ``is_ipaddress`` to not detect IPvFuture addresses. (Pull #1583)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull #1487)
* Change ``parse_url`` to percent-encode invalid characters within the
path, query, and target components. (Pull #1586)


1.25.1 (2019-04-24)
-------------------

* Add support for Google's ``Brotli`` package. (Pull #1572, Pull #1579)

* Upgrade bundled rfc3986 to v1.3.1 (Pull #1578)

* Remove Authorization header regardless of case when redirecting to cross-site. (Issue #1510)

1.25 (2019-04-22)
-----------------

* Require and validate certificates by default when using HTTPS (Pull #1507)

* Upgraded ``urllib3.utils.parse_url()`` to be RFC 3986 compliant. (Pull #1487)

* Added support for ``key_password`` for ``HTTPSConnectionPool`` to use
encrypted ``key_file`` without creating your own ``SSLContext`` object. (Pull #1489)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull #1496)

* Switched the default multipart header encoder from RFC 2231 to HTML 5 working draft. (Issue #303, PR #1492)

* Fixed issue where OpenSSL would block if an encrypted client private key was
given and no password was given. Instead an ``SSLError`` is raised. (Pull #1489)

* Require and validate certificates by default when using HTTPS (Pull #1507)

* Added support for Brotli content encoding. It is enabled automatically if
``brotlipy`` package is installed which can be requested with
``urllib3[brotli]`` extra. (Pull #1532)

* Add TLSv1.3 support to CPython, pyOpenSSL, and SecureTransport ``SSLContext``
implementations. (Pull #1496)

* Drop ciphers using DSS key exchange from default TLS cipher suites.
Improve default ciphers when using SecureTransport. (Pull #1496)

* Add support for IPv6 addresses in subjectAltName section of certificates. (Issue #1269)
* Implemented a more efficient ``HTTPResponse.__iter__()`` method. (Issue #1483)


1.24.2 (2019-04-17)
-------------------

* ... [Short description of non-trivial change.] (Issue #)
* Don't load system certificates by default when any other ``ca_certs``, ``ca_certs_dir`` or
``ssl_context`` parameters are specified.

* Remove Authorization header regardless of case when redirecting to cross-site. (Issue #1510)

* Add support for IPv6 addresses in subjectAltName section of certificates. (Issue #1269)


1.24.1 (2018-11-02)
Expand Down
9 changes: 9 additions & 0 deletions _travis/downstream/requests-requirements.txt
@@ -0,0 +1,9 @@
pytest-mock
pysocks
httpbin

# kennethreitz/requests#5049
pytest<4.1

# kennethreitz/requests#5004
pytest-httpbin==0.3.0
9 changes: 3 additions & 6 deletions _travis/downstream/requests.sh
Expand Up @@ -7,15 +7,12 @@ case "${1}" in
git clone --depth 1 https://github.com/kennethreitz/requests
cd requests
git rev-parse HEAD
python -m pip install --upgrade pipenv
pipenv install --dev --skip-lock

# See: kennethreitz/requests/5004
python -m pip install pytest-httpbin==0.3.0
python -m pip install -r ${TRAVIS_BUILD_DIR}/_travis/downstream/requests-requirements.txt
python -m pip install .
;;
run)
cd requests
pipenv run py.test -n 8 --boxed
pytest tests/
;;
*)
exit 1
Expand Down
60 changes: 46 additions & 14 deletions _travis/install.sh
Expand Up @@ -2,32 +2,64 @@

set -exo pipefail

if [[ "$(uname -s)" == 'Darwin' ]]; then
case "${TOXENV}" in
py27) MACPYTHON=2.7.15 ;;
py34) MACPYTHON=3.4.4 ;;
py35) MACPYTHON=3.5.4 ;;
py36) MACPYTHON=3.6.7 ;;
py37) MACPYTHON=3.7.1 ;;
esac

MINOR=$(echo $MACPYTHON | cut -d. -f1,2)
install_mac_python() {
local FULL=$1
local MINOR=$(echo $FULL | cut -d. -f1,2)
local PYTHON_EXE=/Library/Frameworks/Python.framework/Versions/${MINOR}/bin/python${MINOR}

# Already installed.
if [[ -f "${PYTHON_EXE}" ]]; then
return 0;
fi

curl -Lo macpython.pkg https://www.python.org/ftp/python/${MACPYTHON}/python-${MACPYTHON}-macosx10.6.pkg
curl -Lo macpython.pkg https://www.python.org/ftp/python/${FULL}/python-${FULL}-macosx10.6.pkg
sudo installer -pkg macpython.pkg -target /
ls /Library/Frameworks/Python.framework/Versions/$MINOR/bin/
PYTHON_EXE=/Library/Frameworks/Python.framework/Versions/$MINOR/bin/python$MINOR

# The pip in older MacPython releases doesn't support a new enough TLS
curl https://bootstrap.pypa.io/get-pip.py | sudo $PYTHON_EXE
$PYTHON_EXE -m pip install virtualenv
}


if [[ "$(uname -s)" == 'Darwin' ]]; then
# Mac OS setup.
case "${NOX_SESSION}" in
test-2.7) MACPYTHON=2.7.15 ;;
test-3.4) MACPYTHON=3.4.4 ;;
test-3.5) MACPYTHON=3.5.4 ;;
test-3.6) MACPYTHON=3.6.7 ;;
test-3.7) MACPYTHON=3.7.1 ;;
esac

# Install additional versions as needed.
install_mac_python $MACPYTHON

# Always install 3.6 for Nox
install_mac_python "3.6.7"

# Enable TLS 1.3 on macOS
sudo defaults write /Library/Preferences/com.apple.networkd tcp_connect_enable_tls13 1

# Install Nox
python3.6 -m pip install nox

else
python -m pip install virtualenv
# Linux Setup
# Even when testing on Python 2, we need Python 3 for Nox. This detects if
# we're in one of the Travis Python 2 sessions and sets up the Python 3 install
# for Nox.
if ! python3 -m pip --version; then
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
sudo python3 get-pip.py
sudo python3 -m pip install nox
else
# We're not in "dual Python" mode, so we can just install Nox normally.
python3 -m pip install nox
fi
fi

if [[ "${TOXENV}" == "gae" ]]; then
if [[ "${NOX_SESSION}" == "app_engine" ]]; then
python -m pip install gcp-devrel-py-tools
gcp-devrel-py-tools download-appengine-sdk "$(dirname ${GAE_SDK_PATH})"
fi
12 changes: 8 additions & 4 deletions _travis/run.sh
Expand Up @@ -2,13 +2,17 @@

set -exo pipefail

if [[ "$(uname -s)" == "Darwin" && "$TOXENV" == "py27" ]]; then
if [[ "$(uname -s)" == "Darwin" && "$NOX_SESSION" == "tests-2.7" ]]; then
export PATH="/Library/Frameworks/Python.framework/Versions/2.7/bin":$PATH
fi

if [ -n "${TOXENV}" ]; then
python -m pip install tox
tox
if [ -n "${NOX_SESSION}" ]; then
if [[ "$(uname -s)" == 'Darwin' ]]; then
# Explicitly use Python 3.6 on MacOS, otherwise it won't find Nox properly.
python3.6 -m nox -s "${NOX_SESSION}"
else
nox -s "${NOX_SESSION}"
fi
else
downstream_script="${TRAVIS_BUILD_DIR}/_travis/downstream/${DOWNSTREAM}.sh"
if [ ! -x "$downstream_script" ]; then
Expand Down
8 changes: 5 additions & 3 deletions _travis/upload_coverage.sh
Expand Up @@ -2,6 +2,8 @@

set -exo pipefail

source .tox/${TOXENV}/bin/activate
pip install codecov
codecov --env TRAVIS_OS_NAME,TOXENV
if [[ -e .coverage ]]; then
source .tox/${TOXENV}/bin/activate
pip install codecov
codecov --env TRAVIS_OS_NAME,TOXENV
fi