Go SDK Release Notes
Version 1.9.6 - June 2014
appengine/datastore:
- Support entity values whose underlying type is []byte.
appengine/search: - Implement IDsOnly and Limit options for List and Search.
Version 1.9.5 - May 2014
appengine/datastore:
- Add Query.EventualConsistency method for ancestor queries.
- Change GeoPoint storage to be consistent with other runtimes.
- Data stored before this release will have Lat and Lng reversed.
Version 1.9.4 - April 2014
appengine/datastore:
- Add Key.Namespace method.
Version 1.9.3 - April 2014
appengine/datastore:
- Support appengine.GeoPoint as an entity property type.
appengine/aetest: - Removed aetest.Options.User and add aetest.Context.Login and aetest.Context.Logout.
Version 1.9.2 - April 2014
appengine:
appengine/search: - Support appengine.GeoPoint as a document field type.
- Add FieldLoadSaver interface and FieldList type.
Version 1.9.1 - March 2014
This release is based on Go 1.2.1.
appengine/log:
Version 1.9.0 - February 2014
This release is based on Go 1.2.
appengine/module:
- Add SetNumInstances, Versions, DefaultVersion, Start and Stop functions.
Version 1.8.9 - January 2014
appengine/remote_api:
- Add NewRemoteContext function.
Version 1.8.8 - November 2013
appengine/mail:
- Add Attachment.ContentID field.
Version 1.8.7 - November 2013
appengine/socket:
Other: - Support goapp serve and goapp deploy.
Version 1.8.6 - October 2013
appengine:
- Add ModuleName and ModuleHostname functions.
appengine/aetest: - New package for testing with a local api_server.py.
appengine/module: appengine/search: - Add Index.List method and ListOptions.StartID field.
- Add Iterator.Count method.
Other:
- Support "goapp build", "goapp install", and "goapp test".
Version 1.8.5 - September 2013
appengine:
- Add PublicCertificates function.
appengine/conversion: appengine/search: appengine/taskqueue: - Add ErrTaskAlreadyAdded var.
Version 1.8.4 - September 2013
appengine/search:
Version 1.8.3 - August 2013
appengine:
- Add IsTimeoutError function.
appengine/cloudsql: - New package for CloudSQL support.
appengine/datastore: - Reject datastore keys, property names, or property string values that are not valid UTF-8.
Version 1.8.2 - July 2013
appengine:
- Add Timeout function for overriding the default API RPC timeout.
appengine/datastore: - Support Kindless queries.
Version 1.8.1 - June 2013
This release is based on Go 1.1.
appengine/blobstore:
- Add StorageBucket to UploadURLOptions struct.
appengine/datastore: - Allow Property.Value to be the nil interface value, for compatibility with datastore entities created by other languages.
- Support Projection and Distinct Projection queries.
appengine/memcache: - Stop populating Expiration field of fetched items.
Version 1.8.0 - May 2013
appengine/blobstore:
- Add BlobKeyForFile function.
appengine/mail: - Add SendToAdmins function.
appengine/taskqueue: - Permit "" as an alias for the default queue throughout.
- Deprecate the maxTasks argument of QueueStats; it is now ignored.
Version 1.7.7 - April 2013
appengine/file:
appengine/log: Version 1.7.6 - March 2013
appengine/datastore:
- Support nested and embedded structs.
dev_appserver: - Update to version 2. Amongst other things, it can now serve concurrent HTTP requests.
Version 1.7.5 - February 2013
appengine:
- Add Namespace function for multitenancy support.
- Make Context's Call method take appengine_internal.ProtoMessage arguments. This is an internal-only method, so should not affect correct applications, but will permit wrapping Context's Call method.
appengine/conversion: - Remove this package from the SDK following the decommissioning of the API in 1.7.4.
appengine/datastore: appengine/memcache: appengine/taskqueue: - Add DeleteMulti function.
- Support multitenancy.
appengine/xmpp: - Add GetPresenceMulti function.
Version 1.7.4 - December 2012
appengine/log:
- Add Query.RequestIDs field.
appengine/socket: - Support dialing IPv6 addresses.
- Implement LocalAddr and RemoteAddr methods.
Other:
- Respect $GOPATH for dev_appserver and appcfg update.
Version 1.7.3 - October 2012
appengine:
- Add AccessToken, ServiceAccount and SignBytes functions.
appengine/log:
- Remove the deprecated Record.APIMCycles field.
appengine/memcache:
appengine/socket:
Version 1.7.2 - September 2012
No changes.
Version 1.7.1 - August 2012
appengine:
- Add RequestID function.
- Make Context's Call method take proto.Message arguments. This is an internal-only method, so should not affect correct applications.
appengine/datastore:
- Mark noindex string fields as Text so that the Datastore Viewer can display them.
- Make GetAll not return early when encountering ErrFieldMismatch.
appengine/image:
appengine/log:
- Deprecate Record.APIMCycles.
appengine/memcache:
- Add Codec methods SetMulti, AddMulti, CompareAndSwap, CompareAndSwapMulti.
appengine/remote_api:
appengine/runtime:
- Add RunInBackground function.
`appengine/user:
- Add OAuth user support.
- Add Admin to User struct.
appengine/xmpp:
- Add RawXML support.
- Add presence support.
Version 1.7.0 - June 2012
appengine/datastore:
- Allow storage of time.Time values from before January 1, 1970, including the zero time.Time value.
appengine/delay:
- Fix handling of nil arguments.
appengine/file:
- New package for Google Cloud Storage.
appengine/taskqueue:
Version 1.6.6 - May 2012
appengine/delay:
- Add Task method for finer control over execution.
appengine/mail:
- Add support for setting mail headers.
appengine/taskqueue:
- Observe Task.ETA field when adding a task to a push queue.
- Enforce that a Task's Delay and ETA fields are mutually exclusive.
Version 1.6.5 - April 2012
No changes.
Version 1.6.4 - March 2012
This release is based on Go 1.
appengine:
- Remove the AppID method on Context.
- Add MultiError type.
- Add InstanceID, Datacenter and ServerSoftware functions.
appengine/datastore:
- Add cursors.
- Add AllocateIDs function.
- Allow (*datastore.Key)(nil) as a storable value.
- Allow GetMulti, PutMulti and GetAll to take PropertyLoadSavers, not just structs. Their slice argument can now be a []T, not just a []interface{}.
- Allow Iterator.Next to take a nil destination for all queries, not just keys-only queries.
- Make queries immutable. Query methods like Filter and Order return a new value instead of modifying the receiver. Use an assignment such as q = q.Offset(1) instead of a bare statement like q.Offset(1).
- Change the meaning of Query.Limit(0) from "unlimited" to "no results" and change the meaning of Query.Limit(-1) from being an error to "unlimited". Unlimited is still the default behavior.
- Remove datastore.Time in favour of time.Time.
- Remove the deprecated Map type. Use a PropertyList instead.
- Rename Eq method of Key to Equal.
appengine/log:
- Convert to using time.Duration and time.Time throughout.
appengine/mail:
appengine/memcache:
- Change Item.Expiration's type from int32 seconds to time.Duration. (Code may still compile, but will likely be wrong, expiring items immediately, interpreting seconds as nanoseconds)
- Make functions uniformly return error, using appengine.MultiError for batch operations.
appengine/taskqueue:
- Rename LeaseTasks, LeaseTasksByTag and ModifyTaskLease to Lease, LeaseByTag and ModifyLease respectively.
- Convert to using time.Duration and time.Time throughout.
appengine/urlfetch:
- Change Transport.DeadlineSeconds from float64 to time.Duration, and rename it to Deadline.
appengine/user:
- Rename Id field of User struct to ID.
appengine/xmpp:
- Remove ChatHandler, and rename RegisterChatHandler to Handle.
- Remove SendMessageError. Use appengine.MultiError instead.
Version 1.6.3 - February 2012
No changes.
Version 1.6.2 - January 2012
appengine/taskqueue:
- Add AddMulti function for bulk task adding.
Version 1.6.1 - December 2011
appengine/conversion:
appengine/delay:
- Fix calling delayed variadic functions.
Other:
- Explicitly break http.DefaultClient to make dev and prod consistent.
Version 1.6.0 - November 2011
This release is based on Go release.r60.3.
appengine:
- Add backend identity functions: BackendInstance, BackendHostname.
appengine/blobstore:
- Make ParseURL return url.Values instead of map[string][]string.
appengine/datastore:
- Add `datastore:"name,options"` struct field tags.
- Add Property, PropertyList and PropertyLoadSaver types.
- Deprecate Map. Use a PropertyList instead.
- Remove the Key field from ErrFieldMismatch.
appengine/memcache:
- Add Increment and IncrementExisting functions.
appengine/runtime:
appengine/xmpp:
Other:
Version 1.5.5 - October 2011
This release changed to api_version 3, based on Go release.r60.2.
appengine/blobstore:
- Add an options parameter to UploadURL for controlling maximum upload size.
appengine/datastore:
- Add an appengine.Context argument to the NewKey and NewIncompleteKey functions.
- Add an options parameter to RunInTransaction to allow cross-group transactions.
- Add a parent argument to the NewIncompleteKey function.
- Allow long slice fields. The total length of all indexed properties may now be up to 5000 elements.
appengine/log:
appengine/urlfetch:
Version 1.5.4 - September 2011
appengine/blobstore:
appengine/mail:
Other:
- Report duplicate package names better in go-app-builder.
Version 1.5.3 - August 2011
appengine:
- Add app identity functions: AppID, VersionID, DefaultVersionHostname.
appengine/datastore:
- Fix construction of incomplete keys with parents.
appengine/delay:
- Check argument types at Call time.
- Retry delayed functions if they return a non-nil os.Error.
Other:
- Report package dependency cycles in go-app-builder.
1.5.2 - 21 July 2011
appengine/datastore:
- Add Python-compatible key encoding/decoding.
- Add ancestor queries.
- Allow GetAll to take a slice of Maps.
- Fix handling of incomplete keys with parents during Put and PutMulti.
- Make Key work with the gob and json packages.
appengine/memcache:
- Add Delete and DeleteMulti functions.
1.5.1 - 20 June 2011
appengine:
- Replace Context's Logf method with Debugf/Infof/Warningf/Errorf/Criticalf.
appengine/capability:
appengine/datastore:
- Add batch operations.
- Add transactions.
appengine/delay:
appengine/memcache:
appengine/taskqueue:
- Add Delay field to Task.
- Give leased tasks a method of PULL.
- Return the fully-populated equivalent Task from Add.
appengine/urlfetch:
Other:
- Set the RemoteAddr field of http.Request correctly in the dev_appserver.