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