-
Notifications
You must be signed in to change notification settings - Fork 0
/
RELEASE_NOTES
489 lines (430 loc) · 14.4 KB
/
RELEASE_NOTES
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
App Engine Go SDK - Release Notes
Changes that are not backward compatible
are marked with an exclamation mark ("!").
Version 1.9.18 - February 2015
==============================
This release is based on Go 1.4.1.
appengine/datastore:
- Support []*S with nil elements as a destination for GetMulti.
appengine/remote_api:
- Allow all services through server-side interface.
Version 1.9.17 - November 2014
==============================
No changes.
Version 1.9.16 - November 2014
==============================
No changes.
Version 1.9.15 - November 2014
==============================
appengine/search:
- Add Fields and Expressions to SearchOptions struct.
- Add Derived to Field struct.
Version 1.9.14 - October 2014
=============================
No changes.
Version 1.9.13 - October 2014
=============================
appengine/log:
- Allow specifying modules in Query.Versions; add Record.ModuleID.
appengine/search:
- Add SortOptions and SortExpression structs.
Version 1.9.12 - September 2014
===============================
No changes.
Version 1.9.11 - September 2014
===============================
appengine/aetest:
- Add aetest.Instance to allow a single dev API server to be used with
multiple contexts.
- Add aetest.Login and aetest.Logout which work on *http.Request objects.
appengine/datastore:
- Add ByteString type to allow short indexable byte slices.
! Values in entities created by other runtimes with types db.ByteString
(python) or datastore.ShortBlob (Java) will load in PropertyLoadSaver as
ByteString; previously these loaded as string. This has no effect on code
not using PropertyLoadSaver.
Version 1.9.10 - August 2014
============================
No changes.
Version 1.9.9 - August 2014
===========================
No changes.
Version 1.9.8 - July 2014
=========================
appengine/blobstore:
- Add BlobInfo.MD5 and BlobInfo.ObjectName fields.
appengine/search:
- Add DocumentMetadata type.
- Add FieldMetadataLoadSaver interface.
Version 1.9.7 - July 2014
=========================
appengine/search:
- Add Field.Language support for text and HTML fields.
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:
! Remove aetest.Options.User and add aetest.Context.Login
and aetest.Context.Logout.
Version 1.9.2 - April 2014
==========================
appengine:
- Add GeoPoint type.
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:
- Add Record.InstanceID.
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:
- Add SetContext method.
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:
- New package.
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:
! Remove package.
appengine/search:
- Add namespace support.
appengine/taskqueue:
- Add ErrTaskAlreadyAdded var.
Version 1.8.4 - September 2013
==============================
appengine/search:
- New package.
Version 1.8.3 - August 2013
===========================
appengine:
- Add IsTimeoutError function.
appengine/cloudsql:
- New package for CloudSQL support.
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:
- Add Delete function.
appengine/log:
- Expose AppEngineRelease.
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:
- Support multitenancy.
appengine/memcache:
- Support multitenancy.
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:
- Add Flush function.
appengine/socket:
- New package.
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:
- New package.
appengine/log:
- Deprecate Record.APIMCycles.
appengine/memcache:
- Add Codec methods SetMulti, AddMulti, CompareAndSwap, CompareAndSwapMulti.
appengine/remote_api:
- New package.
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:
- Add QueueStats function.
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:
- Support HTML 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's type 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:
- New package.
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:
- New package.
appengine/xmpp:
- New package.
Other:
- Support backends.
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:
- New package.
appengine/urlfetch:
- Respect fetch deadline.
Version 1.5.4 - September 2011
==============================
appengine/blobstore:
- Fix time units in Stat.
appengine/mail:
- Support attachments.
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.
Version 1.5.2 - July 2011
=========================
This release changed to api_version 2, based on Go release.r58.1.
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.
Version 1.5.1 - June 2011
=========================
appengine:
! Replace Context's Logf method with Debugf/Infof/Warningf/Errorf/Criticalf.
appengine/capability:
- New package.
appengine/datastore:
- Add batch operations.
- Add transactions.
appengine/delay:
- New package.
appengine/memcache:
- Add GetStats function.
appengine/taskqueue:
- Add "Delay" field to Task.
- Give leased tasks a method of "PULL".
! Return the fully-populated equivalent Task from Add.
appengine/urlfetch:
! Remove error types.
Other:
- Set the RemoteAddr field of http.Request correctly in the dev_appserver.
Version 1.5.0 - May 2011
========================
Initial release. Viva il gopher!
This introduced api_version 1, based on Go release.r57.2.