| 0.18.1 | |
| explicit build-backend workaround for pip build isolation bug | |
| "AttributeError: 'module' object has no attribute '__legacy__'" on pip install | |
| https://github.com/httplib2/httplib2/issues/169 | |
| 0.18.0 | |
| IMPORTANT security vulnerability CWE-93 CRLF injection | |
| Force %xx quote of space, CR, LF characters in uri. | |
| Special thanks to Recar https://github.com/Ciyfly for discrete notification. | |
| https://cwe.mitre.org/data/definitions/93.html | |
| 0.17.4 | |
| Ship test suite in source dist | |
| https://github.com/httplib2/httplib2/pull/168 | |
| 0.17.3 | |
| IronPython2.7: relative import iri2uri fixes ImportError | |
| https://github.com/httplib2/httplib2/pull/163 | |
| 0.17.2 | |
| python3 + debug + IPv6 disabled: https raised | |
| "IndexError: Replacement index 1 out of range for positional args tuple" | |
| https://github.com/httplib2/httplib2/issues/161 | |
| 0.17.1 | |
| python3: no_proxy was not checked with https | |
| https://github.com/httplib2/httplib2/issues/160 | |
| 0.17.0 | |
| feature: Http().redirect_codes set, works after follow(_all)_redirects check | |
| This allows one line workaround for old gcloud library that uses 308 | |
| response without redirect semantics. | |
| https://github.com/httplib2/httplib2/issues/156 | |
| 0.16.0 | |
| IMPORTANT cache invalidation change, fix 307 keep method, add 308 Redirects | |
| https://github.com/httplib2/httplib2/issues/151 | |
| proxy: username/password as str compatible with pysocks | |
| https://github.com/httplib2/httplib2/issues/154 | |
| 0.15.0 | |
| python2: regression in connect() error handling | |
| https://github.com/httplib2/httplib2/pull/150 | |
| add support for password protected certificate files | |
| https://github.com/httplib2/httplib2/pull/143 | |
| feature: Http.close() to clean persistent connections and sensitive data | |
| https://github.com/httplib2/httplib2/pull/149 | |
| 0.14.0 | |
| Python3: PROXY_TYPE_SOCKS5 with str user/pass raised TypeError | |
| https://github.com/httplib2/httplib2/pull/145 | |
| 0.13.1 | |
| Python3: Use no_proxy | |
| https://github.com/httplib2/httplib2/pull/140 | |
| 0.13.0 | |
| Allow setting TLS max/min versions | |
| https://github.com/httplib2/httplib2/pull/138 | |
| 0.12.3 | |
| No changes to library. Distribute py3 wheels. | |
| 0.12.1 | |
| Catch socket timeouts and clear dead connection | |
| https://github.com/httplib2/httplib2/issues/18 | |
| https://github.com/httplib2/httplib2/pull/111 | |
| Officially support Python 3.7 (package metadata) | |
| https://github.com/httplib2/httplib2/issues/123 | |
| 0.12.0 | |
| Drop support for Python 3.3 | |
| ca_certs from environment HTTPLIB2_CA_CERTS or certifi | |
| https://github.com/httplib2/httplib2/pull/117 | |
| PROXY_TYPE_HTTP with non-empty user/pass raised TypeError: bytes required | |
| https://github.com/httplib2/httplib2/pull/115 | |
| Revert http:443->https workaround | |
| https://github.com/httplib2/httplib2/issues/112 | |
| eliminate connection pool read race | |
| https://github.com/httplib2/httplib2/pull/110 | |
| cache: stronger safename | |
| https://github.com/httplib2/httplib2/pull/101 | |
| 0.11.3 | |
| No changes, just reupload of 0.11.2 after fixing automatic release conditions in Travis. | |
| 0.11.2 | |
| proxy: py3 NameError basestring | |
| https://github.com/httplib2/httplib2/pull/100 | |
| 0.11.1 | |
| Fix HTTP(S)ConnectionWithTimeout AttributeError proxy_info | |
| https://github.com/httplib2/httplib2/pull/97 | |
| 0.11.0 | |
| Add DigiCert Global Root G2 serial 033af1e6a711a9a0bb2864b11d09fae5 | |
| https://github.com/httplib2/httplib2/pull/91 | |
| python3 proxy support | |
| https://github.com/httplib2/httplib2/pull/90 | |
| If no_proxy environment value ends with comma then proxy is not used | |
| https://github.com/httplib2/httplib2/issues/11 | |
| fix UnicodeDecodeError using socks5 proxy | |
| https://github.com/httplib2/httplib2/pull/64 | |
| Respect NO_PROXY env var in proxy_info_from_url | |
| https://github.com/httplib2/httplib2/pull/58 | |
| NO_PROXY=bar was matching foobar (suffix without dot delimiter) | |
| New behavior matches curl/wget: | |
| - no_proxy=foo.bar will only skip proxy for exact hostname match | |
| - no_proxy=.wild.card will skip proxy for any.subdomains.wild.card | |
| https://github.com/httplib2/httplib2/issues/94 | |
| Bugfix for Content-Encoding: deflate | |
| https://stackoverflow.com/a/22311297 | |
| 0.10.3 | |
| Fix certificate validation on Python<=2.7.8 without ssl.CertificateError | |
| https://github.com/httplib2/httplib2/issues/45 | |
| 0.10.2 | |
| Just a reupload of 0.10.1, which was broken for Python3 | |
| because wheel distribution doesn't play well with our 2/3 split code base. | |
| https://github.com/httplib2/httplib2/issues/43 | |
| 0.10.1 | |
| This is the first release by new httplib2 team. See post by Joe | |
| https://bitworking.org/news/2016/03/an_update_on_httplib2 | |
| Remove VeriSign Class 3 CA from trusted certs | |
| https://googleonlinesecurity.blogspot.com/2015/12/proactive-measures-in-digital.html | |
| Add IdenTrust DST Root CA X3 | |
| https://github.com/httplib2/httplib2/pull/26 | |
| Support for specifying the SSL protocol version (Python v2) | |
| https://github.com/jcgregorio/httplib2/issues/329 | |
| On App Engine use urlfetch's default deadline if None is passed. | |
| Fix TypeError on AppEngine “__init__() got an unexpected keyword argument 'ssl_version’” | |
| https://github.com/httplib2/httplib2/pull/12 | |
| Send SNI data for SSL connections on Python 2.7.9+ | |
| Verify the server hostname if certificate validation is enabled | |
| https://github.com/httplib2/httplib2/pull/13 | |
| Add proxy_headers argument to ProxyInfo constructor | |
| https://github.com/httplib2/httplib2/pull/21 | |
| Make disable_ssl_certificate_validation work with Python 3.5. | |
| https://github.com/httplib2/httplib2/pull/15 | |
| Fix socket error handling | |
| https://github.com/httplib2/httplib2/commit/eb7468561714a5b700d5a3d8fa1a8794de02b9ef | |
| https://github.com/httplib2/httplib2/commit/e7f6e622047107e701ee70e7ec586717d97b0cbb | |
| 0.9.2 | |
| Fixes in this release: | |
| https://github.com/jcgregorio/httplib2/pull/313 | |
| Fix incorrect ResponseNotReady exceptions, retry on transient errors. | |
| 0.9.1 | |
| Fixes in this release: | |
| https://github.com/jcgregorio/httplib2/pull/296 | |
| There was a problem with headers when a binary string is passed (like | |
| b'Authorization'). | |
| https://github.com/jcgregorio/httplib2/pull/276 | |
| Default to doing DNS resolution through a proxy server if present. | |
| 0.9 | |
| Heartbleed | |
| 0.8 | |
| More fixes for the App Engine support. | |
| Added a new feature that allows you to supply your own provider for the | |
| CA_CERTS file. Just create a module named ca_certs_locater that has a method | |
| get() that returns the file location of the CA_CERTS file. | |
| Lots of clean up of the code formatting to make it more consistent. | |
| 0.7.7 | |
| More fixes for App Engine, now less likely to swallow important exceptions. | |
| Adding proxy_info_from_* methods to Python3. Reviewed in https://codereview.appspot.com/6588078/. | |
| Added GeoTrust cert | |
| Make httplib2.Http() instances pickleable. Reviewed in https://codereview.appspot.com/6506074/ | |
| The following issues have been fixed: | |
| 229 python3 httplib2 clobbers multiple headers of same key | |
| 230 Expose meaningful exception for App Engine URLFetch ResponseTooLargeError | |
| 231 Expose App Engine URLFetch DeadlineExceededError for debugging purposes | |
| 0.7.6 | |
| Fixes for App Engine 2.7. | |
| 0.7.5 | |
| Keys are lowercase in a Response object, regardless of how Response object is constructed. | |
| Add control so that Authorization: headers aren't forwarded on a 3xx response by default. | |
| Set the reason correctly when running on App Engine. Patch from Alain Vongsouvanh. Reviewed in http://codereview.appspot.com/6422051/ | |
| Fix proxy socks for SSL connections. Fixes issue #199. | |
| You can now set httplib2.RETRIES to the number of retries before a request | |
| is considered to fail It is set to a default of 2 to mimic the traditional | |
| behavior of httplib2. | |
| The following issues have been addressed: | |
| 223 HEAD requests fail calling the close() method of ResponseDict instance. | |
| 222 Can't disable cert validation in appengine | |
| 204 Credentials can leak in HTTP redirects | |
| 210 Different API between Python 2 and Python 3 version breaks wsgi_intercept | |
| 214 ValueError on malformated cache entries | |
| 204 Credentials can leak in HTTP redirects | |
| 0.7.3 | |
| ProxyInfo objects now can construct themselves from environment | |
| variables commonly-used in Unix environments. By default, the Http | |
| class will construct a ProxyInfo instance based on these environment | |
| variables. To achieve the previous behavior, where environment | |
| variables are ignored, pass proxy_info=None to Http(). | |
| The following issues have been addressed: | |
| Issue 159: automatic detection of proxy configuration. | |
| Issue 179: Allow unicode in proxy hostname. | |
| Issue 194: Added support for setuptools. | |
| Fixes for HTTP CONNECT proxies. | |
| 0.7.1 | |
| Fix failure to install cacerts.txt for 2.x installs. | |
| 0.7.0 | |
| The two major changes in this release are SSL Certificate | |
| checking and App Engine support. By default the certificates | |
| of an HTTPS connection are checked, but that can be disabled | |
| via disable_ssl_certificate_validation. The second change | |
| is that on App Engine there is a new connection object | |
| that utilizes the urlfetch capabilities on App Engine, including | |
| setting timeouts and validating certificates. | |
| The following issues have been addressed: | |
| Fixes issue 72. Always lowercase authorization header. | |
| Fix issue 47. Redirects that become a GET should not have a body. | |
| Fixes issue 19. Set Content-location on redirected HEAD requests | |
| Fixes issue 139. Redirect with a GET on 302 regardless of the originating method. | |
| Fixes issue 138. Handle unicode in headers when writing and retrieving cache entries. Who says headers have to be ASCII! | |
| Add certificate validation. Work initially started by Christoph Kern. | |
| Set a version number. Fixes issue # 135. | |
| Sync to latest version of socks.py | |
| Add gzip to the user-agent, in case we are making a request to an app engine project: http://code.google.com/appengine/kb/general.html#compression | |
| Uses a custom httplib shim on App Engine to wrap urlfetch, as opposed | |
| Add default support for optimistic concurrency on PATCH requests | |
| Fixes issue 126. IPv6 under various conditions would fail. | |
| Fixes issue 131. Handle socket.timeout's that occur during send. | |
| proxy support: degrade gracefully when socket.socket is unavailable | |
| 0.6.0 | |
| The following issues have been addressed: | |
| #51 - Failure to handle server legitimately closing connection before request body is fully sent | |
| #77 - Duplicated caching test | |
| #65 - Transform _normalize_headers into a method of Http class | |
| #45 - Vary header | |
| #73 - All files in Mercurial are executable | |
| #81 - Have a useful .hgignore | |
| #78 - Add release tags to the Mercurial repository | |
| #67 - HEAD requests cause next request to be retried | |
| Mostly bug fixes, the big enhancement is the addition of proper Vary: header | |
| handling. Thanks to Chris Dent for that change. | |
| The other big change is the build process for distributions so that both python2 and python3 | |
| are included in the same .tar.gz/.zip file. | |
| 0.5.0 | |
| Added Python 3 support | |
| Fixed the following bugs: | |
| #12 - Cache-Control: only-if-cached incorrectly does request if item not in cache | |
| #39 - Deprecation warnings in Python 2.6 | |
| #54 - Http.request fails accessing Google account via http proxy | |
| #56 - Block on response.read() for HEAD requests. | |
| #57 - Timeout ignore for Python 2.6 | |
| #58 - Fixed parsing of Cache-Control: header to make it more robust | |
| Also fixed a deprecation warning that appeared between Python 3.0 and 3.1. | |
| 0.4.0 | |
| Added support for proxies if the Socksipy module is installed. | |
| Fixed bug with some HEAD responses having content-length set to | |
| zero incorrectly. | |
| Fixed most except's to catch a specific exception. | |
| Added 'connection_type' parameter to Http.request(). | |
| The default for 'force_exception_to_status_code' was changed to False. Defaulting | |
| to True was causing quite a bit of confusion. | |
| 0.3.0 | |
| Calling Http.request() with a relative URI, as opposed to an absolute URI, | |
| will now throw a specific exception. | |
| Http() now has an additional optional parameter for the socket timeout. | |
| Exceptions can now be forced into responses. That is, instead of | |
| throwing an exception, a good httlib2.Response object is returned | |
| that describe the error with an appropriate status code. | |
| Many improvements to the file cache: | |
| 1. The names in the cache are now much less | |
| opaque, which should help with debugging. | |
| 2. The disk cache is now Apache mod_asis compatible. | |
| 3. A Content-Location: header is supplied and stored in the | |
| cache which points to the original requested URI. | |
| User supplied If-* headers now override httplib2 supplied | |
| versions. | |
| IRIs are now fully supported. Note that they MUST be passed in | |
| as unicode objects. | |
| Http.add_credentials() now takes an optional domain to restrict | |
| the credentials to being only used on that domain. | |
| Added Http.add_certificate() which allows setting | |
| a key and cert for SSL connections. | |
| Many other bugs fixed. | |
| 0.2.0 | |
| Added support for Google Auth. | |
| Added experimental support for HMACDigest. | |
| Added support for a pluggable caching system. Now supports | |
| the old system of using the file system and now memcached. | |
| Added httplib2.debuglevel which turns on debugging. | |
| Change Response._previous to Response.previous. | |
| Added Http.follow_all_redirects which forces | |
| httplib2 to follow all redirects, as opposed to | |
| following only the safe redirects. This makes the | |
| GData protocol easier to use. | |
| All known bugs fixed to date. | |
| 0.1.1 | |
| Fixed several bugs raised by James Antill: | |
| 1. HEAD didn't get an Accept: header added like GET. | |
| 2. HEAD requests did not use the cache. | |
| 3. GET requests with Range: headers would erroneously return a full cached response. | |
| 4. Subsequent requests to resources that had timed out would raise an exception. | |
| And one feature request for 'method' to default to GET. | |
| Xavier Verges Farrero supplied what I needed to make the | |
| library work with Python 2.3. | |
| I added distutils based setup.py. | |
| 0.1 Rev 86 | |
| Initial Release | |