10.12.1 2 3 Catch socket timeouts and clear dead connection 4 https://github.com/httplib2/httplib2/issues/18 5 https://github.com/httplib2/httplib2/pull/111 6 7 Officially support Python 3.7 (package metadata) 8 https://github.com/httplib2/httplib2/issues/123 9 100.12.0 11 12 Drop support for Python 3.3 13 14 ca_certs from environment HTTPLIB2_CA_CERTS or certifi 15 https://github.com/httplib2/httplib2/pull/117 16 17 PROXY_TYPE_HTTP with non-empty user/pass raised TypeError: bytes required 18 https://github.com/httplib2/httplib2/pull/115 19 20 Revert http:443->https workaround 21 https://github.com/httplib2/httplib2/issues/112 22 23 eliminate connection pool read race 24 https://github.com/httplib2/httplib2/pull/110 25 26 cache: stronger safename 27 https://github.com/httplib2/httplib2/pull/101 28 290.11.3 30 31 No changes, just reupload of 0.11.2 after fixing automatic release conditions in Travis. 32 330.11.2 34 35 proxy: py3 NameError basestring 36 https://github.com/httplib2/httplib2/pull/100 37 380.11.1 39 40 Fix HTTP(S)ConnectionWithTimeout AttributeError proxy_info 41 https://github.com/httplib2/httplib2/pull/97 42 430.11.0 44 45 Add DigiCert Global Root G2 serial 033af1e6a711a9a0bb2864b11d09fae5 46 https://github.com/httplib2/httplib2/pull/91 47 48 python3 proxy support 49 https://github.com/httplib2/httplib2/pull/90 50 51 If no_proxy environment value ends with comma then proxy is not used 52 https://github.com/httplib2/httplib2/issues/11 53 54 fix UnicodeDecodeError using socks5 proxy 55 https://github.com/httplib2/httplib2/pull/64 56 57 Respect NO_PROXY env var in proxy_info_from_url 58 https://github.com/httplib2/httplib2/pull/58 59 60 NO_PROXY=bar was matching foobar (suffix without dot delimiter) 61 New behavior matches curl/wget: 62 - no_proxy=foo.bar will only skip proxy for exact hostname match 63 - no_proxy=.wild.card will skip proxy for any.subdomains.wild.card 64 https://github.com/httplib2/httplib2/issues/94 65 66 Bugfix for Content-Encoding: deflate 67 https://stackoverflow.com/a/22311297 68 690.10.3 70 71 Fix certificate validation on Python<=2.7.8 without ssl.CertificateError 72 https://github.com/httplib2/httplib2/issues/45 73 740.10.2 75 76 Just a reupload of 0.10.1, which was broken for Python3 77 because wheel distribution doesn't play well with our 2/3 split code base. 78 https://github.com/httplib2/httplib2/issues/43 79 800.10.1 81 82 This is the first release by new httplib2 team. See post by Joe 83 https://bitworking.org/news/2016/03/an_update_on_httplib2 84 85 Remove VeriSign Class 3 CA from trusted certs 86 https://googleonlinesecurity.blogspot.com/2015/12/proactive-measures-in-digital.html 87 88 Add IdenTrust DST Root CA X3 89 https://github.com/httplib2/httplib2/pull/26 90 91 Support for specifying the SSL protocol version (Python v2) 92 https://github.com/jcgregorio/httplib2/issues/329 93 94 On App Engine use urlfetch's default deadline if None is passed. 95 96 Fix TypeError on AppEngine “__init__() got an unexpected keyword argument 'ssl_version’” 97 https://github.com/httplib2/httplib2/pull/12 98 99 Send SNI data for SSL connections on Python 2.7.9+ 100 Verify the server hostname if certificate validation is enabled 101 https://github.com/httplib2/httplib2/pull/13 102 103 Add proxy_headers argument to ProxyInfo constructor 104 https://github.com/httplib2/httplib2/pull/21 105 106 Make disable_ssl_certificate_validation work with Python 3.5. 107 https://github.com/httplib2/httplib2/pull/15 108 109 Fix socket error handling 110 https://github.com/httplib2/httplib2/commit/eb7468561714a5b700d5a3d8fa1a8794de02b9ef 111 https://github.com/httplib2/httplib2/commit/e7f6e622047107e701ee70e7ec586717d97b0cbb 112 1130.9.2 114 115 Fixes in this release: 116 117 https://github.com/jcgregorio/httplib2/pull/313 118 119 Fix incorrect ResponseNotReady exceptions, retry on transient errors. 120 1210.9.1 122 123 Fixes in this release: 124 125 https://github.com/jcgregorio/httplib2/pull/296 126 127 There was a problem with headers when a binary string is passed (like 128 b'Authorization'). 129 130 https://github.com/jcgregorio/httplib2/pull/276 131 132 Default to doing DNS resolution through a proxy server if present. 133 1340.9 135 Heartbleed 136 1370.8 138 More fixes for the App Engine support. 139 140 Added a new feature that allows you to supply your own provider for the 141 CA_CERTS file. Just create a module named ca_certs_locater that has a method 142 get() that returns the file location of the CA_CERTS file. 143 144 Lots of clean up of the code formatting to make it more consistent. 145 1460.7.7 147 More fixes for App Engine, now less likely to swallow important exceptions. 148 Adding proxy_info_from_* methods to Python3. Reviewed in https://codereview.appspot.com/6588078/. 149 Added GeoTrust cert 150 Make httplib2.Http() instances pickleable. Reviewed in https://codereview.appspot.com/6506074/ 151 152 The following issues have been fixed: 153 154 229 python3 httplib2 clobbers multiple headers of same key 155 230 Expose meaningful exception for App Engine URLFetch ResponseTooLargeError 156 231 Expose App Engine URLFetch DeadlineExceededError for debugging purposes 157 1580.7.6 159 Fixes for App Engine 2.7. 160 1610.7.5 162 Keys are lowercase in a Response object, regardless of how Response object is constructed. 163 Add control so that Authorization: headers aren't forwarded on a 3xx response by default. 164 Set the reason correctly when running on App Engine. Patch from Alain Vongsouvanh. Reviewed in http://codereview.appspot.com/6422051/ 165 Fix proxy socks for SSL connections. Fixes issue #199. 166 You can now set httplib2.RETRIES to the number of retries before a request 167 is considered to fail It is set to a default of 2 to mimic the traditional 168 behavior of httplib2. 169 170 The following issues have been addressed: 171 172 223 HEAD requests fail calling the close() method of ResponseDict instance. 173 222 Can't disable cert validation in appengine 174 204 Credentials can leak in HTTP redirects 175 210 Different API between Python 2 and Python 3 version breaks wsgi_intercept 176 214 ValueError on malformated cache entries 177 204 Credentials can leak in HTTP redirects 178 179 1800.7.3 181 ProxyInfo objects now can construct themselves from environment 182 variables commonly-used in Unix environments. By default, the Http 183 class will construct a ProxyInfo instance based on these environment 184 variables. To achieve the previous behavior, where environment 185 variables are ignored, pass proxy_info=None to Http(). 186 187 The following issues have been addressed: 188 189 Issue 159: automatic detection of proxy configuration. 190 Issue 179: Allow unicode in proxy hostname. 191 Issue 194: Added support for setuptools. 192 Fixes for HTTP CONNECT proxies. 193 1940.7.1 195 Fix failure to install cacerts.txt for 2.x installs. 196 1970.7.0 198 The two major changes in this release are SSL Certificate 199 checking and App Engine support. By default the certificates 200 of an HTTPS connection are checked, but that can be disabled 201 via disable_ssl_certificate_validation. The second change 202 is that on App Engine there is a new connection object 203 that utilizes the urlfetch capabilities on App Engine, including 204 setting timeouts and validating certificates. 205 206 The following issues have been addressed: 207 208 Fixes issue 72. Always lowercase authorization header. 209 Fix issue 47. Redirects that become a GET should not have a body. 210 Fixes issue 19. Set Content-location on redirected HEAD requests 211 Fixes issue 139. Redirect with a GET on 302 regardless of the originating method. 212 Fixes issue 138. Handle unicode in headers when writing and retrieving cache entries. Who says headers have to be ASCII! 213 Add certificate validation. Work initially started by Christoph Kern. 214 Set a version number. Fixes issue # 135. 215 Sync to latest version of socks.py 216 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 217 Uses a custom httplib shim on App Engine to wrap urlfetch, as opposed 218 Add default support for optimistic concurrency on PATCH requests 219 Fixes issue 126. IPv6 under various conditions would fail. 220 Fixes issue 131. Handle socket.timeout's that occur during send. 221 proxy support: degrade gracefully when socket.socket is unavailable 222 223 2240.6.0 225 226 The following issues have been addressed: 227 228 #51 - Failure to handle server legitimately closing connection before request body is fully sent 229 #77 - Duplicated caching test 230 #65 - Transform _normalize_headers into a method of Http class 231 #45 - Vary header 232 #73 - All files in Mercurial are executable 233 #81 - Have a useful .hgignore 234 #78 - Add release tags to the Mercurial repository 235 #67 - HEAD requests cause next request to be retried 236 237 Mostly bug fixes, the big enhancement is the addition of proper Vary: header 238 handling. Thanks to Chris Dent for that change. 239 240 The other big change is the build process for distributions so that both python2 and python3 241 are included in the same .tar.gz/.zip file. 242 2430.5.0 244 245 Added Python 3 support 246 247 Fixed the following bugs: 248 249 #12 - Cache-Control: only-if-cached incorrectly does request if item not in cache 250 #39 - Deprecation warnings in Python 2.6 251 #54 - Http.request fails accessing Google account via http proxy 252 #56 - Block on response.read() for HEAD requests. 253 #57 - Timeout ignore for Python 2.6 254 #58 - Fixed parsing of Cache-Control: header to make it more robust 255 256 Also fixed a deprecation warning that appeared between Python 3.0 and 3.1. 257 2580.4.0 259 260 Added support for proxies if the Socksipy module is installed. 261 262 Fixed bug with some HEAD responses having content-length set to 263 zero incorrectly. 264 265 Fixed most except's to catch a specific exception. 266 267 Added 'connection_type' parameter to Http.request(). 268 269 The default for 'force_exception_to_status_code' was changed to False. Defaulting 270 to True was causing quite a bit of confusion. 271 272 2730.3.0 274 Calling Http.request() with a relative URI, as opposed to an absolute URI, 275 will now throw a specific exception. 276 277 Http() now has an additional optional parameter for the socket timeout. 278 279 Exceptions can now be forced into responses. That is, instead of 280 throwing an exception, a good httlib2.Response object is returned 281 that describe the error with an appropriate status code. 282 283 Many improvements to the file cache: 284 285 1. The names in the cache are now much less 286 opaque, which should help with debugging. 287 288 2. The disk cache is now Apache mod_asis compatible. 289 290 3. A Content-Location: header is supplied and stored in the 291 cache which points to the original requested URI. 292 293 User supplied If-* headers now override httplib2 supplied 294 versions. 295 296 IRIs are now fully supported. Note that they MUST be passed in 297 as unicode objects. 298 299 Http.add_credentials() now takes an optional domain to restrict 300 the credentials to being only used on that domain. 301 302 Added Http.add_certificate() which allows setting 303 a key and cert for SSL connections. 304 305 Many other bugs fixed. 306 307 3080.2.0 309 Added support for Google Auth. 310 311 Added experimental support for HMACDigest. 312 313 Added support for a pluggable caching system. Now supports 314 the old system of using the file system and now memcached. 315 316 Added httplib2.debuglevel which turns on debugging. 317 318 Change Response._previous to Response.previous. 319 320 Added Http.follow_all_redirects which forces 321 httplib2 to follow all redirects, as opposed to 322 following only the safe redirects. This makes the 323 GData protocol easier to use. 324 325 All known bugs fixed to date. 326 3270.1.1 328 329 Fixed several bugs raised by James Antill: 330 1. HEAD didn't get an Accept: header added like GET. 331 2. HEAD requests did not use the cache. 332 3. GET requests with Range: headers would erroneously return a full cached response. 333 4. Subsequent requests to resources that had timed out would raise an exception. 334 And one feature request for 'method' to default to GET. 335 336 Xavier Verges Farrero supplied what I needed to make the 337 library work with Python 2.3. 338 339 I added distutils based setup.py. 340 3410.1 Rev 86 342 343 Initial Release 344 345