1v1.7.12
2  Version 1.7.12
3
4  Bugfix release
5
6  Implementation Changes
7  - Look for field 'detail' in error message. ([#739](https://github.com/googleapis/google-api-python-client/pull/739))
8  - Exclude 308s from httplib2 redirect codes list ([#813](https://github.com/googleapis/google-api-python-client/pull/813))
9
10  Documentation
11  - Remove oauth2client from docs ([#738](https://github.com/googleapis/google-api-python-client/pull/738))
12  - Fix typo. ([#745](https://github.com/googleapis/google-api-python-client/pull/745))
13  - Remove compatibility badges. ([#746](https://github.com/googleapis/google-api-python-client/pull/746))
14  - Fix TypeError: search_analytics_api_sample.py #732 ([#742](https://github.com/googleapis/google-api-python-client/pull/742))
15  - Correct response access ([#750](https://github.com/googleapis/google-api-python-client/pull/750))
16  - Fix link to API explorer ([#760](https://github.com/googleapis/google-api-python-client/pull/760))
17  - Fix argument typo in oauth2 code example ([#763](https://github.com/googleapis/google-api-python-client/pull/763))
18  - Recommend install with virtualenv ([#768](https://github.com/googleapis/google-api-python-client/pull/768))
19  - Fix capitalization in docs/README.md ([#770](https://github.com/googleapis/google-api-python-client/pull/770))
20
21  - Remove compatibility badges ([#796](https://github.com/googleapis/google-api-python-client/pull/796))
22  - Remove mentions of pycrypto ([#799](https://github.com/googleapis/google-api-python-client/pull/799))
23  - Fix typo in model.py
24  - Add note about Google Ads llibrary ([#814](https://github.com/googleapis/google-api-python-client/pull/814))
25
26
27  Internal / Testing Changes
28  - Blacken ([#772](https://github.com/googleapis/google-api-python-client/pull/722))
29  - Move kokoro configs ([#832](https://github.com/googleapis/google-api-python-client/pull/832))
30
31v1.7.11
32  Version 1.7.11
33
34  Bugfix release
35
36  Implementation Changes
37  - Pass library and Python version in x-goog-api-client header ([#734](https://github.com/googleapis/google-api-python-client/pull/734))
38
39  Documentation
40  - Fix typo in filename used in 'docs/auth.md' ([#736](https://github.com/googleapis/google-api-python-client/pull/736))
41
42
43v1.7.10
44  Version 1.7.10
45
46  Bugfix release
47
48  Implementation Changes
49  - Decode service to utf-8 ([#723](https://github.com/googleapis/google-api-python-client/pull/723))
50  - Use print() function in both Python2 and Python 3 ([#722](https://github.com/googleapis/google-api-python-client/pull/722))
51  - Make http.MediaFileUpload close its file descriptor ([#600](https://github.com/googleapis/google-api-python-client/pull/600))
52  - Never make 'body' required ([#718](https://github.com/googleapis/google-api-python-client/pull/718))
53
54  Documentation
55  - Add compatability check badges to README ([#691](https://github.com/googleapis/google-api-python-client/pull/691))
56  - Regenerate docs ([#696](https://github.com/googleapis/google-api-python-client/pull/696), [#700](https://github.com/googleapis/google-api-python-client/pull/700))
57  - Create index file for dynamically generated docs ([#702](https://github.com/googleapis/google-api-python-client/pull/702))
58  - Add docs folder with guides from developers.google.com ([#706](https://github.com/googleapis/google-api-python-client/pull/706), [#710](https://github.com/googleapis/google-api-python-client/pull/710))
59
60  Internal / Testing Changes
61  - Fix http.py, lint errors, unit test ([#724](https://github.com/googleapis/google-api-python-client/pull/724))
62  - tox.ini: Look for Python syntax errors and undefined names ([#721](https://github.com/googleapis/google-api-python-client/pull/721))
63
64
65v1.7.9
66  Version 1.7.9
67
68  Bugfix release
69  - Remove Django Samples. ([#657](https://github.com/googleapis/google-api-python-client/pull/657))
70  - Call request_orig with kwargs ([#658](https://github.com/googleapis/google-api-python-client/pull/658))
71
72v1.7.8
73  Version 1.7.8
74
75  Bugfix release
76  - Convert '$' in method name to '_' ([#616](https://github.com/googleapis/google-api-python-client/pull/616))
77  - Alias unitest2 import as unittest in test__auth.py ([#613](https://github.com/googleapis/google-api-python-client/pull/613))
78
79v1.7.7
80  Version 1.7.7
81
82    Bugfix release
83    - Change xrange to range ([#601](https://github.com/google/google-api-python-client/pull/601))
84    - Typo in http.py exception message. ([#602](https://github.com/google/google-api-python-client/pull/602))
85
86    - Announce deprecation of Python 2.7 ([#603](https://github.com/google/google-api-python-client/pull/603))
87    - Updates documentation for stopping channel subscriptions ([#598](https://github.com/google/google-api-python-client/pull/598))
88    - Adding example for searchAppearance ([#414](https://github.com/google/google-api-python-client/pull/414))
89
90    - Add badges ([#455](https://github.com/google/google-api-python-client/pull/455))
91
92v1.7.6
93  Version 1.7.6
94
95  Bugfix release
96
97  - Add client-side limit for batch requests (#585)
98
99v1.7.5
100  Version 1.7.5
101
102  Bugfix release
103
104  - Fix the client to respect the passed in developerKey and credentials
105
106v1.7.4
107  Version 1.7.4
108
109  Bugfix release
110
111  - Catch ServerNotFoundError to retry the request (#532)
112
113v1.7.3
114  Version 1.7.3
115
116  Bugfix release
117
118  - Make apiclient.sample_tools gracefully fail to import (#525).
119
120
121v1.7.2
122  Version 1.7.2
123
124  Bugfix release
125
126  - Remove unnecessary check in apiclient/__ini__.py (#522).
127
128v1.7.1
129  Version 1.7.1
130
131  Bugfix release
132
133  - Remove unnecessary check in setup.py (#518).
134
135v1.7.0
136  Version 1.7.0
137
138  This release drops the hard requirement on oauth2client and installs
139  google-auth by default instead. oauth2client is still supported but will
140  need to be explicitly installed.
141
142  - Drop oauth2client dependency (#499)
143  - Include tests in source distribution (#514)
144
145v1.6.7
146  Version 1.6.7
147
148  Bugfix release
149
150  **Note**: The next release of this library will no longer directly depend on
151    oauth2client. If you need to use oauth2client, you'll need to explicitly
152    install it.
153
154  - Make body optional for requests with no parameters. (#446)
155  - Fix retying on socket.timeout. (#495)
156  - Match travis matrix with tox testenv. (#498)
157  - Remove oauth2client._helpers dependency. (#493)
158  - Remove unused keyring test dependency. (#496)
159  - discovery.py: remove unused oauth2client import. (#492)
160  - Update README to reference GCP API client libraries. (#490)
161
162v1.6.6
163  Version 1.6.6
164
165  Bugfix release
166
167  - Warn when constructing BatchHttpRequest using the legacy batch URI (#488)
168  - Increase the default media chunksize to 100MB. (#482)
169  - Remove unnecessary parsing of mime headers in HttpRequest.__init__ (#467)
170
171v1.6.5
172  Version 1.6.5
173
174  Bugfix release
175
176  - Proactively refresh credentials when applying and treat a missing
177    `access_token` as invalid. Note: This change reveals surprising behavior
178    between default credentials and batches. If you allow
179    `googleapiclient.discovery.build` to use default credentials *and* specify
180    different credentials by providing `batch.execut()` with an explicit `http`
181    argument, your individual requests will use the default credentials and
182    *not* the credentials specified to the batch http. To avoid this, tell
183    `build` explicitly not to use default credentials by specifying
184    `build(..., http=httplib2.Http()`. (#469)
185  - Remove mutual exclusivity check for developerKey and credentials (#465)
186  - Handle unknown media length. (#406)
187  - Handle variant error format gracefully. (#459)
188  - Avoid testing against Django >= 2.0.0 on Python 2. (#460)
189
190v1.6.4
191  Version 1.6.4
192
193  Bugfix release
194
195  - Warn when google-auth credentials are used but google-auth-httplib2 isn't available. (#443)
196
197v1.6.3
198  Version 1.6.3
199
200  Bugfix release
201
202  - Add notification of maintenance mode to README. (#410)
203  - Fix generation of methods with abnormal page token conventions. (#338)
204  - Raise ValueError is credentials and developerKey are both specified. (#358)
205  - Re-generate documentation. (#364, #373, #401)
206  - Fix method signature documentation for multiline required parameters. (#374)
207  - Fix ZeroDivisionError in MediaDownloadProgress.progress. (#377)
208  - Fix dead link to WebTest in README. (#378)
209  - Fix details missing in googleapiclient.errors.HttpError. (#412)
210  - Don't treat httplib2.Credentials as oauth credentials. (#425)
211  - Various fixes to the Django sample. (#413)
212
213v1.6.2
214  Version 1.6.2
215
216  Bugfix release
217
218  - Fixed a bug where application default credentials would still be used even
219    when a developerKey was specified. (#347)
220  - Official support for Python 3.5 and 3.6. (#341)
221
222v1.6.1
223  Version 1.6.1
224
225  Bugfix release
226
227  - Fixed a bug where using google-auth with scoped credentials would fail. (#328)
228
229v1.6.0
230  Version 1.6.0
231
232  Release to drop support for Python 2.6 and add support for google-auth.
233
234  - Support for Python 2.6 has been dropped. (#319)
235  - The credentials argument to discovery.build and discovery.build_from_document
236    can be either oauth2client credentials or google-auth credentials. (#319)
237  - discovery.build and discovery.build_from_document now unambiguously use the
238    http argument to make all requests, including the request for the discovery
239    document. (#319)
240  - The http and credentials arguments to discovery.build and
241    discovery.build_from_document are now mutually exclusive, eliminating a
242    buggy edge case. (#319)
243  - If neither http or credentials is specified to discovery.build and
244    discovery.build_from_document, then Application Default Credentials will
245    be used. The library prefers google-auth for this if it is available, but
246    can also use oauth2client's implementation. (#319)
247  - Fixed resumable upload failure when receiving a 308 response. (#312)
248  - Clarified the support versions of Python 3. (#316)
249
250v1.5.5
251  Version 1.5.5
252
253  Bugfix release
254
255  - Allow explicit MIME type specification with media_mime_type keyword argument.
256  - Fix unprintable representation of BatchError with default constructor. (#165)
257  - Refresh all discovery docs, not just the preferred ones. (#298)
258  - Update minimum httplib2 dependency to >=0.9.2.
259
260v1.5.4
261  Version 1.5.4
262
263  Bugfix release
264
265  - Properly handle errors when the API returns a mapping or sequence. (#289)
266  - Upgrade to unified uritemplate 3.0.0. (#293)
267  - Allow oauth2client 4.0.0, with the caveat that file-based discovery
268    caching is disabled.
269
270v1.5.3
271  Version 1.5.3
272
273  Bugfix release
274
275  - Fixed import error with oauth2client >= 3.0.0. (#270)
276
277v1.5.2
278  Version 1.5.2
279
280  Bugfix release
281
282  - Allow using oauth2client >= 1.5.0, < 4.0.0. (#265)
283  - Fix project_id argument description. (#257)
284  - Retry chunk uploaded on rate limit exceeded errors. (#255)
285  - Obtain access token if necessary in BatchHttpRequest.execute(). (#232)
286  - Warn when running tests using HttpMock without having a cache. (#261)
287
288v1.5.1
289  Version 1.5.1
290
291  Bugfix release
292
293  - Allow using versions of oauth2client < 2.0.0. (#197)
294  - Check both current and new API discovery URL. (#202)
295  - Retry http requests on connection errors and timeouts. (#218)
296  - Retry http requests on rate limit responses. (#201)
297  - Import guards for ssl (for Google App Engine). (#220)
298  - Use named loggers instead of the root logger. (#206)
299  - New search console example. (#212)
300
301v1.5.0
302  Version 1.5.0
303
304  Release to support oauth2client >= 2.0.0.
305
306  - Fix file stream recognition in Python 3 (#141)
307  - Fix non-resumable binary uploads in Python 3 (#147)
308  - Default to 'octet-stream' if mimetype detection fails (#157)
309  - Handle SSL errors with retries (#160)
310  - Fix incompatibility with oauth2client v2.0.0 (#182)
311
312v1.4.2
313  Version 1.4.2
314
315  Add automatic caching for the discovery docs.
316
317v1.4.1
318  Version 1.4.1
319
320  Add the googleapiclient.discovery.Resource.new_batch_http_request method.
321
322v1.4.0
323  Version 1.4.0
324
325  Python 3 support.
326
327v1.3.2
328  Version 1.3.2
329
330  Small bugfix release.
331
332  - Fix an infinite loop for downloading small files.
333  - Fix a unicode error in error encoding.
334  - Better handling of `content-length` in media requests.
335  - Add support for methodPath entries containing colon.
336
337v1.3.1
338  Version 1.3.1
339
340  Quick release for a fix around aliasing in v1.3.
341
342v1.3
343  Version 1.3
344
345  Add support for the Google Application Default Credentials.
346  Require python 2.6 as a minimum version.
347  Update several API samples.
348  Finish splitting out oauth2client repo and update tests.
349  Various doc cleanup and bugfixes.
350
351  Two important notes:
352    * We've added `googleapiclient` as the primary suggested import
353      name, and kept `apiclient` as an alias, in order to have a more
354      appropriate import name. At some point, we will remove `apiclient`
355      as an alias.
356    * Due to an issue around in-place upgrades for Python packages,
357      it's not possible to do an upgrade from version 1.2 to 1.3. Instead,
358      setup.py attempts to detect this and prevents it. Simply remove
359      the previous version and reinstall to fix this.
360
361v1.2
362  Version 1.2
363
364  The use of the gflags library is now deprecated, and is no longer a
365    dependency. If you are still using the oauth2client.tools.run() function
366    then include gflags as a dependency of your application or switch to
367    oauth2client.tools.run_flow.
368  Samples have been updated to use the new apiclient.sample_tools, and no
369    longer use gflags.
370  Added support for the experimental Object Change Notification, as found in
371    the Cloud Storage API.
372  The oauth2client App Engine decorators are now threadsafe.
373
374  - Use the following redirects feature of httplib2 where it returns the
375    ultimate URL after a series of redirects to avoid multiple hops for every
376    resumable media upload request.
377  - Updated AdSense Management API samples to V1.3
378  - Add option to automatically retry requests.
379  - Ability to list registered keys in multistore_file.
380  - User-agent must contain (gzip).
381  - The 'method' parameter for httplib2 is not positional. This would cause
382    spurious warnings in the logging.
383  - Making OAuth2Decorator more extensible. Fixes Issue 256.
384  - Update AdExchange Buyer API examples to version v1.2.
385
386
387v1.1
388  Version 1.1
389
390  Add PEM support to SignedJWTAssertionCredentials (used to only support
391  PKCS12 formatted keys). Note that if you use PEM formatted keys you can use
392  PyCrypto 2.6 or later instead of OpenSSL.
393
394  Allow deserialized discovery docs to be passed to build_from_document().
395
396  - Make ResumableUploadError derive from HttpError.
397  - Many changes to move all the closures in apiclient.discovery into real
398  -  classes and objects.
399  - Make from_json behavior inheritable.
400  - Expose the full token response in OAuth2Client and OAuth2Decorator.
401  - Handle reasons that are None.
402  - Added support for NDB based storing of oauth2client objects.
403  - Update grant_type for AssertionCredentials.
404  - Adding a .revoke() to Credentials. Closes issue 98.
405  - Modify oauth2client.multistore_file to store and retrieve credentials
406    using an arbitrary key.
407  - Don't accept 403 challenges by default for auth challenges.
408  - Set httplib2.RETRIES to 1.
409  - Consolidate handling of scopes.
410  - Upgrade to httplib2 version 0.8.
411  - Allow setting the response_type in OAuth2WebServerFlow.
412  - Ensure that dataWrapper feature is checked before using the 'data' value.
413  - HMAC verification does not use a constant time algorithm.
414
415v1.0
416 Version 1.0
417
418  - Changes to the code for running tests and building releases.
419
420v1.0c3
421 Version 1.0 Release Candidate 3
422
423  - In samples and oauth2 decorator, escape untrusted content before displaying it.
424  - Do not allow credentials files to be symlinks.
425  - Add XSRF protection to oauth2decorator callback 'state'.
426  - Handle uploading chunked media by stream.
427  - Handle passing streams directly to httplib2.
428  - Add support for Google Compute Engine service accounts.
429  - Flows no longer need to be saved between uses.
430  - Change GET to POST if URI is too long. Fixes issue #96.
431  - Add a keyring based Storage.
432  - More robust picking up JSON error responses.
433  - Make batch errors align with normal errors.
434  - Add a Google Compute sample.
435  - Token refresh to work with 'old' GData API
436  - Loading of client_secrets JSON file backed by a cache.
437  - Switch to new discovery path parameters.
438  - Add support for additionalProperties when printing schema'd objects.
439  - Fix media upload parameter names. Reviewed in http://codereview.appspot.com/6374062/
440  - oauth2client support for URL-encoded format of exchange token response (e.g.  Facebook)
441  - Build cleaner and easier to read docs for dynamic surfaces.
442
443v1.0c2
444 Version 1.0 Release Candidate 2
445
446  - Parameter values of None should be treated as missing. Fixes issue #144.
447  - Distribute the samples separately from the library source. Fixes issue #155.
448  - Move all remaining samples over to client_secrets.json. Fixes issue #156.
449  - Make locked_file.py understand win32file primitives for better awesomeness.
450
451v1.0c1
452 Version 1.0 Release Candidate 1
453
454 - Documentation for the library has switched to epydoc:
455     http://google-api-python-client.googlecode.com/hg/docs/epy/index.html
456 - Many improvements for media support:
457   * Added media download support, including resumable downloads.
458   * Better handling of streams that report their size as 0.
459   * Update Media Upload to include io.Base and also fix some bugs.
460 - OAuth bug fixes and improvements.
461   * Remove OAuth 1.0 support.
462   * Added credentials_from_code and credentials_from_clientsecrets_and_code.
463   * Make oauth2client support Windows-friendly locking.
464   * Fix bug in StorageByKeyName.
465   * Fix None handling in Django fields. Reviewed in http://codereview.appspot.com/6298084/. Fixes issue #128.
466 - Add epydoc generated docs. Reviewed in http://codereview.appspot.com/6305043/
467 - Move to PEP386 compliant version numbers.
468 - New and updated samples
469   * Ad Exchange Buyer API v1 code samples.
470   * Automatically generate Samples wiki page from README files.
471   * Update Google Prediction samples.
472   * Add a Tasks sample that demonstrates Service accounts.
473   * new analytics api samples. Reviewed here: http://codereview.appspot.com/5494058/
474 - Convert all inline samples to the Farm API for consistency.
475
476v1.0beta8
477 - Updated meda upload support.
478 - Many fixes for batch requests.
479 - Better handling for requests that don't require a body.
480 - Fix issues with Google App Engine Python 2.7 runtime.
481 - Better support for proxies.
482 - All Storages now have a .delete() method.
483 - Important changes which might break your code:
484    * apiclient.anyjson has moved to oauth2client.anyjson.
485    * Some calls, for example, taskqueue().lease() used to require a parameter
486      named body. In this new release only methods that really need to send a body
487      require a body parameter, and so you may get errors about an unknown
488      'body' parameter in your call. The solution is to remove the unneeded
489      body={} parameter.
490
491v1.0beta7
492 - Support for batch requests.  http://code.google.com/p/google-api-python-client/wiki/Batch
493 - Support for media upload.  http://code.google.com/p/google-api-python-client/wiki/MediaUpload
494 - Better handling for APIs that return something other than JSON.
495 - Major cleanup and consolidation of the samples.
496 - Bug fixes and other enhancements:
497   72  Defect  Appengine OAuth2Decorator: Convert redirect address to string
498   22  Defect  Better error handling for unknown service name or version
499   48  Defect  StorageByKeyName().get() has side effects
500   50  Defect  Need sample client code for Admin Audit API
501   28  Defect  better comments for app engine sample   Nov 9
502   63  Enhancement Let OAuth2Decorator take a list of scope
503