May 4th, 2012
· The gdata.youtube.service class now explicitly sets the GData-Version: 1 header, and is updated to use the correct ClientLogin URL.
· Adding support for OAuth2 revoke endpoint.
· Make Resource and ResourceFeed "Batch" compatible.
· Forgot to add camelcase alias for batch in issue 5970062.
· Adding support for performance data in Content API for Shopping (fixes Issue 5976061).
· Added support for custom attributes in Content API for Shopping (fixes Issue 5970070).
· Changed dest attrs in Content API to iterable, added validate_dest and fixed qname on app:control (fixes Issue 5976046).
· Added camel case names to content API client public methods (fixes Issue 5970062).
· Added support for Content for API errors on single and batch requests (fixes Issue 5971061).
· Added support for start-token in Content API for Shopping (closes Issue 5980044).
· Change gdata.docs.client.DocsClient.DeleteResource to use the entry instead of the link.
· Allow for random kwargs in atom.client.AtomClient.request method.
· Changing Shipping to list element in Content API for Shopping.
· Fixing behavior in atom.http_core.Uri._get_query_string for query parameters with no parameter value (closes Issue 5938047).
· Fixed batch function issues in content api for shopping client.
· Updated GetFeed methods in the Email Settings API to return typed feeds
· Namespace for channel element (in contentforshopping) was promoted from scp to sc.
· Fixed release date year.
· Fixing bug in recent change to the Email Settings API client library (rev. 194d0fd21fdd) + some typos
· Updating the Email Settings API to return instances of the correct classes when retrieving settings
· Added a sample to create a group and update its settings using the Groups Provisioning and Groups Settings APIs.
· Added docs:description element to docs resources.
· Fixed error in docs sample.
· Added scopes for all Admin APIs in apps tag
· Added a sample for Email Audit API demonstrating CRUD operations on email monitors
· Fixed small doc errors, made tax a list element
· Fix issues 590/591: Contact's gender XML element was wrong.
· Added a sample marketplace application
· Sample to delete obsolete suspended users
· Sample to retrieve user's profile and contacts using 2LO
· Fixing issue 587.Wrong URL used for batch ACL changes.
· Added a sample to list all the members of a group
· Adding access_type=offline to OAuth 2.0 authorize URL.
· Check document list entries have a content before trying to download them.
· Added tag 2.0.16 for changeset c67f3c6398ba
· Updated hgignore
· Updated MANIFEST.in
· Use a generated MANIFEST from MANIFEST.in
· Updated release notes.
· Fixed recording test, sometimes outside the US, google.com tries to redirect
· Updated pydocs
· Bumped version string
· Fixed doc generation script for my environment.
· Added a sample to search users with a given pattern and and move them to an organization
April 10th, 2012
· Add sample for Docs List API to delete ACL.
· Added support for label deletion in the Email Settings API client library
· Added a sample for Email Settings create label and filters with exponential back-off
· Added sample for enabling pop settings using Email Settings API
· Fixed typo in analytics sample.
· Fixed ACL batching URI in Docs.
· Updated RetrieveAllUsers and RetrieveAllAliases to return all pages instead of one.
· Removing force=True from some ACL requests in DocsClient
· Added RetrieveGroups method and updated RetrieveAllGroups and RetrieveAllMembers method
· Added a quick start sample for user provisioning
· Added a client for organization unit provisioning
· Added client architecture for group provisioning
· Added a new sample for multidonain provisioning. Demonstrates all the functions available.
· Added test for RetrieveAllUserAliases and changed OAuth scopes for Apps
· Added client architecture for provisioning api and tests for client
· Added support for batch requests to update spreadsheet cells.
· Added GetAcl alias for get_acl in DocsClient
· Added new ACL and get by ID methods to DocsClient.
· Added some conditional imports for tlslite.
· Updates to category handling for Documents list API
· Added a function to retrieve all the aliases for a given user email.
· Fixed #553
March 8th, 2011Bug Fixes:
· edirect on some gsessionids
· Remove support for deprecated Maps Data API.
· Bug in samples/analytics/data_feed_demo.py (using segments)
· String exception in service.py
· http proxy url containing properly formatted user-name and password not accepted
· Turn on SSL for Codesearch, Photos, Project Hosting, Analytics, Contacts, Marketplace Licensing, and Docs.
· Add batch default URL to the Contacts API and clean the sample code. (issue4000058)
· Added support for Content API for Shopping
· Added Calendar V2 API support
· Add Google Marketplace Licensing API to the Gdata Python Client
· Added patch from Alexandre Vivien that fixes calendar resource email support that somehow went missing in a previous release.
December 21st, 2010
· Issue 315: Correctly constructs queries based on categories for Blogger APIs.
· Issue 323: YouTubeUserQuery constructor passes incorrect overridden parameter to base class.
· Accept proxy username and password in http(s)_proxy environment variables.
· Adding support for specifying URI to v3 docs client.
· Adding tests for revisions for arbitrary file types in Documents List API.
· Google Base, added bucket node to attributes.
· Adding ContainsSampledData XML Element to Analytics Data Feed and updating samples
November 13th, 2010
· Issue 437: PATCH request generates incorrect Content-Type
· Issue 428: get_blog_name() does not correctly handle blog URLs containing hyphens
· Issue 443: Packages should contain gdata.apps.audit in setup.py
· Issue 430: Lots of memory usage when uploading big video files
· Issue 423: gdata.contacts.client.ContactsClient.get_profiles_feed() broken
· Turn on SSL be default for the spreadsheet API
· Added support for new Analytics feeds
· All V3 code and development has been out of this project and into http://code.google.com/p/google-api-python-client/
· Added partial support for the YouTube API in v2
June 10th, 2010
· Add check for liveness of proxy in live tests. Also add in upload-diffs.py to make using codereview.appspot.com easier.
· Patch from Alexandre Vivien adds the ResourceEmail attribute to CalendarResourceEntry
· Adding new single page methods to apps.groups.service. Thanks Jeremy Selier!
· Cleanup in service GetWithRetries. Thanks Will Charles!
· Adding much more test coverage for calendar_resource.client.
· Fixing Calendar Resource get_resource to use correct feed URI generator. Thanks to Alexandre Vivien for reporting.
· Adds support for Blogger Pages. Thanks Wiktor Gwore
March 6th, 2010
· Fixed URL related bug in gdata.calendar.service. You can now edit and delete against https URLs.
· Removed hard coded Python version from gdata.contacts. Resolves issue 347.
February 27th, 2010
· Added support for resumable uploads with a sample that shows it's use with Google Docs. Thanks Eric!
· Added the publish element and copy() method to the DocsClient. Thanks Eric!
· Added support for the JSON-C data format recently released for the YouTube API.
· Fixed import bug when using cryptomath with Python2.4 and lower.
· Modified gdata.gauth to be usable under Python2.3.
· Fixed errors which affect RetrieveAllEmailLists RetrieveEmailLists RetrieveAllRecipients RetrieveAllNicknames RetrieveNicknames RetrieveAllUsers in gdata.apps.service. Resolves issue 340 . Thanks Aprotim!
· Fixed issues with contacts client returning a raw get and not a ContactEntry and a few auth_tokens are not being passed into the HTTP request. Resolves issue 332 . Thanks vinces!
· Fixed issue parsing worksheet feed, entry was the wrong type, corrected to WorksheetEntry. Resolves issue 343. Thanks Igor!
· Fixed typo in gdata.spreadsheets.client (auth_service). Resolves issue 342. Thanks to Igor once again!
· Fixed bug in Google Apps APIs UpdateSSOSettings.
· The gdata.data.LinkFinder now looks in both the link and feed_link members for an ACL link. Resolves issue 339.
· Removed client side check on video type in YouTube service. Rely on the server to provide an error if the format is not supported. Resolves issue 338.
· Improved documentation for SpreadsheetsService's UpdateRow method to explain the use case it addresses and recomment alternatives.
· Changed projecthosting to use the host member with relative URLs.
· Added a get_headers function to be used in Python2.2 and 2.3 since httplib.HTTPResponse does not have getheaders in those versions of Python. Resolves issue 335.
· Added a client smoke test to check version and auth related class members which all gdata.x.client's should have.
· Updated the docs service_test.py to run as part of run_all_tests.py.
November 26th, 2009
· added new gdata.contacts.client (and data) which uses version 3.0 of the contacts API. Thanks Vince!
· added new gdata.docs.client which uses version 3.0 of the Documents List API. Thanks Eric!
· added new v2 modules for the Analytics API (gdata.analytics.client). Thanks Nick!
· added conditional get using etags on get_entry. Thanks Eric!
· fixed bug in how Calendar redirect headers are handled when using this library in an App Engine app.
· added new Calendar XML elements to the gdata.calendar module. Thanks Michael Ballbach!
· added v2 data model classes for finance, notebook, webmastertools, ACLs, opensearch and youtube.
· fixed issues with contacts.service when editing profiles. Thanks Julian!
· fixed bug in GDClient's get_next method.
· improved usability in Python2.3, though tests do not run the src modules should be Python2.3 compatible.
October 16th, 2009
· Added support for the project hosting issue tracker API. Thanks Joe LaPenna!
· Added a get-with-retries method to the v1 service for use with the Google Apps API to automatically retry. Thanks Takashi Matsuo!
· Revised Google Sites client to use text input when creating a page. Thanks Eric!
· Changed demo calendar in the Google Calendar API example. Thanks Trevor!
August 22nd, 2009Additions:
· Added GDATA_INCLUDE compiler conditionals to specify which service's code
· should be built.
· Added service method to authenticate without fetching a feed or entry.
· Added convenience method for creating CCR elements from NSXMLElements.
· Added CCR extension support to Health register entry.
· Added GDataAuthenticationFetcher, which can be used to create a fetcher
· for Google ClientLogin authentication, depending only on GDataHTTPFetcher.
· Batch fetches now always disable shouldIgnoreUnknownXML so that the results
· in the batch feed can be used for updates.
· The shouldIgnoreXML flag is now settable in individual tickets.
· Setting the name of a Google Base attribute also now sets the XML element
· local name.
July 24th, 2009Additions:
· Added support for Google Analytics API
· Added support for Google Maps Data API
· Added classes for Blogger Data API
· Added support for Spreadsheets API version 3 with table and record feeds
· Added support for Contacts API version 3
· Added new classes for Webmaster Tools API
· Added Geo accessor to Calendar API event entries
· Added Calendar settings feed
· Added YouTube CaptionTrack feed
· Added Health example app
· Added batch call to Docs API
· Added "next" link and category accessors to Health profile entries
· Added album creation to photos sample app
· Added removeChild method to GDataXMLElement
Added query convenience method addCategoryFilterWithScheme:term: and filter methods addCategoryWithScheme:term: and addExcludeCategoryWithScheme:term:
· Added spam and aspectRatio elements to YouTube API
· Added a nodesForXPath: method that allows explicit namespace declarations, and provided access to the default namespace in XPath expressions
· Fetch callbacks now have a single selector rather than separate success and failure methods
· Most service-specific fetch calls have been removed; clients should use the fetch calls in GDataServiceGoogle and GDataServiceGoogleBase
· Tightened URL encoding rules so portions of feed URLs are more strictly percent-encoded
· Docs sample app now downloads docs by exporting as text files
· Photos API now makes version 2 API requests
· Renamed newSubscriptionVideosFeedLink to recentSubscriptionVideosFeedLink to make the static analyzer happier
· Changed arguments and return types to use NSInteger/NSUInteger, and updated print format strings to ensure fixed-size int specification
· Fixed compile on gcc 3.3.
· Removed NSTask invocation for prettyprinting logs in the iPhone simulator
· Avoid a crash on authentication errors when the failure callback is nil.
· Removed inappropriate override header on POSTs
· Fixed initialization code path that could create a duplicate entry in a single-entry feed
March 12th, 2009Additions:
· Added Google Health classes
· Added YouTube user event activity classes
· Added Calendar guest elements and inlinecomments query parameter
· Contacts sample updated to optionally fetch only the MyContacts group.
· Calendar now defaults to service version 2.1, which slightly changes responses and response codes from 2.0.
· Release builds on iPhone now compile out the elaborate descriptions for each GDataObject. Developers can set GDATA_SIMPLE_DESCRIPTIONS in their projects to control this behavior.
· Release builds on iPhone now compile out the http logging code.
· Developers can set STRIP_GDATA_FETCH_LOGGING in their projects to control this behavior.
· The GDataXMLNode xml shim now registers the topmost namespaces for XPath resolution.
· Various internal refactoring for improved code readability and maintainability.
· For parsing performance, unknown elements and attributes are now removed from GDataObjects by comparing only object pointers, not the underlying XML.
· For parsing performance, GDataObject extension declarations are cached rather than duplicated in each object.
· To reduce memory usage, GDataObject extensions are stored in arrays only when there is more than one instance of an extension class.
· To reduce memory usage, GDataXMLNode now caches all generated NSStrings, and returns nil instead of empty arrays on getters. This may deviate from NSXML semantics of returning empty arrays.
· GDataOrganization setters now filter out empty string org names and titles.
· Fixed leak in -keepChildXMLElementsForElement.
· GDataXMLNode now consistently returns cached copies of child elements and attributes rather than duplicate copies.
· Fixed possibiilty of If-modified-since header being added to http deletes.
January 31st, 2009Additions:
· Added -setShouldServiceFeedsIgnoreUnknowns to service classes, allowing for faster feed parsing on iPhone by ignoring unexpected XML, but requiring that entries from such feeds must be individually fetched by the client before being updated.
· Added GDataServerError, representing error responses from services supporting structured errors. On feed and entry fetch errors, a GDataServerErrorGroup will be available from the NSError object's userInfo dictionary with the key kGDataStructuredErrorsKey.
· Added explanatory server error text as NSLocalizedFailureReasonErrorKey to server-generated NSErrors so that logged errors are more useful.
· Added Optional group to project common sources to more easily identify non-service specific sources which may be omitted. ACL classes are now optional. Media classes are now required only for YouTube and Photos classes.
· Added service document query parameter and classes for introspection of feed capabilities.
· Added query parameters prettyprint, protocolVersion, language.
· Updated YouTube, DocList, and Spreadsheet APIs for GData v2, and Spreadsheet and Contacts samples for v2 API changes.
· Added support for using GDataHTTPFetcher with a single failure selector rather than separate status and network error selectors.
· Added GDataTargetNamespace.h (and a tool to generate it) to allow plug-ins to use the library with less risk of class name collision
· Added -responseHeaders getter for GDataHTTPFetcher.
· Added -fetchDocEntryWithURL for fetching a single doc entry.
· Added -entryForGPhotoID for finding a photo or album with the given ID.
· Added -entryForSystemGroupID for finding a contact group with the given system group ID.
· Added feed method for finding feed entries of a single kind.
· Updated DocsSample with more folder support.
· Fetcher logging now uses xmllint to prettyprint XML for better readability in Safari.
· Added setNamespaces: to GDataXMLNode.
· Added openAccess element to books volume entry.
· Added new Docs query parameters and new category label constants.
· Builds for iPhone and requiring 10.5 and higher now take advantage of fast enumeration.
· Added realm attribute to GDataExtendedProperty element.
· Added timesCleaned read-only property to calendar entries, added privateCopy property to calendar event entries, and removed unsupported "contributor" access role.
· Added -userAgentStringForString to GDataUtilities, and moved.
· MIMETypeForFileAtPath to GDataUtilities.
· Moved some classes from common sources to Calendar folder.
· Added methods to fetch individual calendar, photo, and spreadsheet entries.
· Fixed query generation for URLs that already contain some parameters.
· Fixed GDataXMLElement's elementsForLocalName:URI: to find child elements with prefixes dependent on their own namespace declarations.
· Fixed finance portfolio description method (thanks dujunfly).
· Fixed books volume entry embeddability and viewability accessors.
· Renamed photos server and query classes, and changed photos feed domain.
· Removed some header files for unit test sources.
· Added a log message to indicate when an explicit user-agent is not provided.
· Fixed localhost cookie handling under 10.5.6
October 24th, 2008Additions:
· Services and tickets now support properties to make it easier to pass parameters to service callback methods. Tickets inherit a copy of the properties set in the service instance. Added Google Finance, Webmaster Tools, and Google Books classes.
· Picasa Web class, method, and constant names changed to Google Photos
· Added support for contact groups and extended properties, and a method to generate contact feed URLs for projections. Added methods to remove contact properties. (thanks stevec) Added a service method to fetch a contact entry given its URL.
· Added GDataXMLNode, a shim layer used for GDATA_IPHONE builds
· GDataObject extension mechanism now supports extensions for attributes as well as for elements. GDataObject base class now handles parsing, generation, copying, and comparison of local attributes. Added namespace utilities to GDataObject: completeNamespaces, which returns a union of an objects declared namespaces with those of its parents, and pruneInheritedNamespaces, which removes an objects namespaces if they are also declared by its parents.
· Added "strict" parameter to GDataQuery.
· Made changes to support 64-bit builds on Leopard.
· Added service support for Google AuthSub tokens.
· Added service methods for fetching ACL feeds and entries.
· Added a convenience routine for setting an entry's batch ID from a string.
· Added YouTube "most_popular" feed ID, and query parameters for location and language restriction. Moved array category method objectsWithValue:forKeyPath: to GDataUtilities
· Added property methods to GDataHTTPFetcher. These are convenient alternatives to storing an NSDictionary in the userData. Added support for OpenSearch 1.1 elements in feeds.
· Added deleteEntry methods to service classes, and changed deleteResorceURL methods to require an ETag. Replaced Obj-C categories on NSArray (such as -editLink) with methods of GDataObject classes to reduce the number of utility category names in global namespace. Added more document type entry classes, and added more upload document types to docs sample application. Added folder document support to DocList APIs. Added -setShouldUploadDataOnly setting to entry base class, allowing clients to upload media data to servers without the XML of the GDataObject.
· Moved common attribute and element text parsing to GDataObject base class, substantially reducing code in many classes derived from GDataObject.
· Improved namespaced attribute support in GDataObject.
· Improved parsing performance.
· Fixed two ivar leaks in GDataServiceBase
· GDataObject request generation refactored into its own routine in GDataServiceBase, allowing for authenticated non-XML requests.
· No longer testing isPrimary in isEqual method in email, postal address, organization, IM, and phone elements.
· Fixed typo in YouTube sample which passed password as client ID (thanks wshao99)
· Contact feed class now registered so it can be found for XML feeds with the proper category.
· Extended property elements now explcitly declare that they have no default namespace (xmlns="") to avoid child elements from being interpreted as atom elements.
· Fixed ContactsSample to check the photo edit link to determine if the photo has changed on the server
· HTTP logging now uses NSDateFormatter rather than NSCalendarDate.
· Escaping of links now done in http logging.
· Replaced NSDecimalSeparator use with NSLocale in parsing NSDecimalNumber.
· Fixed a potential GDataHTTPFetcher crash on failed http authentication.
· Properly encode slug header on uploads, per Atom RFC 5023
· Reduced some potential leaks on 10.4 due to NSURLConnection bugs.
· Fixed string leaks in GDataXMLNode (thanks ct)
· Fixed some inner GDataObject data structures being improperly copied as immutable
September 30th, 2008
· Added YouTube and Contacts support and sample applications.
· Each client service now has a unique header which can be included by client applications instead of the full header, such as #import "GData/GDataCalendar.h" rather than #import "GData/GData.h".
· Run loop modes can be specified for services and http fetchers, allowing networking during modal dialogs.
· Added GDataImplicitValueConstruct as base class for elements with no children or attribues.
· Added GDATA_DEFINES header, GDATA_FOUNDATION_ONLY and GDATA_IPHONE conditional compilation tests.
· Added kUseRegisteredEntryClass constant instead of nil for specifying dynamic lookup of entry objects by "kind" category in classForEntries method.
· Added rel attribute and URL accessor to GDataFeedLink, and related Link category on NSArray in GDataLink.
· Added routine to generate URLs for Picasa Web Albums contact feeds.
· Added AreBoolsEqual() utility function.
· Added GDataUtilities class for general-purpose utility methods.
· Google Docs sample now does authenticated document downloads.
· Fixed potential crash when a previously-issued auth token becomes invalid.
· Fixed leak of category list in feed base class (thanks riggle).
· Framework now built as garbage collection-compatible.
· Unit test failures during garbage collection fixed.
· Copy methods on GDataObjects now do deep copies.
· Added missing constant kGDataBatchOperationQuery (thanks riggle).
· Non-whitespace control characters are now removed from all attribute values and element text (thanks riggle).
· Render pre-11th century dates with a leading zero (thanks riggle).
· Renamed "initExtensionDeclarations" as "addExtensionDeclarations" and similar.
· Unified itemsForDescription mechanism into the GDataObject base class.
· Unit tests now invoke stringValue whenever needed so they can be omitted from key-value test paths.
· Added "charset=UTF-8" to the XML header and "Content-Transfer-Encoding=binary" to binary header inside input stream MIME documents.
· GDataFeedBase now specifies that entry class should be looked up dynamically rather than assuming they are of the class GDataEntryBase.
· Removed the deprecated, never-used gd:contactSection support.