1 Copyright 2008 Google Inc.
4 App Engine SDK - Release Notes
6 Version 1.2.0 - March 24, 2009
7 ==============================
8 - Cron support. Appcfg.py will upload the schedule to App Engine.
9 The dev_appserver console at /_ah/admin describes your schedule but does
10 not automatically run scheduled jobs. Learn more at
11 http://code.google.com/appengine/docs/python/config/cron.html
12 - New allow_skipped_files flag in dev_appserver to allow it to read files
13 which are not available in App Engine.
14 http://code.google.com/p/googleappengine/issues/detail?id=550
16 Version 1.1.9 - February 2, 2009
17 ================================
19 - HTTP Request and Response limit raised to 10MB from 1MB.
20 Note that API call limits remain at 1MB.
21 http://code.google.com/p/googleappengine/issues/detail?id=78
22 - urllib and urllib2 now available, implemented using urlfetch.
23 Also adds additional stubs which may enable other modules.
24 http://code.google.com/p/googleappengine/issues/detail?id=61
25 http://code.google.com/p/googleappengine/issues/detail?id=68
26 http://code.google.com/p/googleappengine/issues/detail?id=572
27 http://code.google.com/p/googleappengine/issues/detail?id=821
28 - Early release of a new data bulk upload tool, bulkloader.py
29 http://code.google.com/appengine/docs/python/tools/uploadingdata.html
30 - New remote_api for datastore at google.appengine.ext.remote_api
31 - Single property descending indexes are automatically generated.
32 - Added db.Query support for IN and != operators.
33 http://code.google.com/p/googleappengine/issues/detail?id=751
34 - Fixed issue where gql date/time parsing could not handle Unicode strings.
35 - Fixed issue with db model instance key() returning the wrong key for
36 unsaved instances with parent as key
37 http://code.google.com/p/googleappengine/issues/detail?id=883
38 - New run_in_transaction_custom_retries method for datastore.
39 - Fixed issue with relative dev_appserver datastore and history paths.
40 http://code.google.com/p/googleappengine/issues/detail?id=845
41 - Static files and skipped files are not readable in dev_appserver, to match
42 the behavior on App Engine.
43 http://code.google.com/p/googleappengine/issues/detail?id=550
44 - Images API allows multiple transforms of the same type in one request. A
45 limit of 10 total transforms per request has been added.
46 - PIL import will work with both PIL.Image and Image.
47 http://code.google.com/p/googleappengine/issues/detail?id=929
48 - Fixed an issue with sending email in dev_appserver when the application
50 http://code.google.com/p/googleappengine/issues/detail?id=182
51 - Memcache counters (incr/decr) do nothing on non positive integers to match
52 the behavior on App Engine.
53 http://code.google.com/p/googleappengine/issues/detail?id=918
55 Version 1.1.8 - January 7, 2008
56 =================================
57 - Skip_files RegexStr validator allows lists to for regex-ors.
58 http://code.google.com/p/googleappengine/issues/detail?id=81
59 - sys.path and sys.argv are no longer reset for each request.
60 http://code.google.com/p/googleappengine/issues/detail?id=772
61 - New ByteString data type for the datastore. Indexed non-text short-blob.
62 - UserProperty now takes auto_current_user and auto_current_user_add
64 - Support for polymorphic models and queries.
65 - db.Model.order() now supports __key__.
66 http://code.google.com/p/googleappengine/issues/detail?id=884
67 - Urlfetch no longer sets content-length: 0 when there is no body.
68 http://code.google.com/p/googleappengine/issues/detail?id=817
69 - Get height and width of an image via the Images API.
70 http://code.google.com/p/googleappengine/issues/detail?id=435
71 - Limit auto-Bcc of email sender to the case where the email sender is the
72 currently-logged-in user.
73 - Adds limit of 100 order/filters on datastore query size to the SDK.
74 - Fix unicode support for the bulkloader
75 http://code.google.com/p/googleappengine/issues/detail?id=157
76 - Bulkload.py from the appengine/tools directory to the appengine/ directory
77 - Modify webapp to use logging.exception instead of logging.error.
78 - Additional fixes to SDK sanitizing response headers to match production.
79 http://code.google.com/p/googleappengine/issues/detail?id=198
81 Version 1.1.7 - November 20, 2008
82 =================================
83 - Fixed an issue with urlfetch response headers.
84 http://code.google.com/p/googleappengine/issues/detail?id=877
86 Version 1.1.6 - November 17, 2008
87 =================================
89 - Datastore now supports filtering and sorting on the __key__ special
90 property, which evaluates to each entity's key.
91 - Fixed a bug where it was possible to append None to ListProperty.
92 - Datastore appengine.ext.db models allow deletion by key without
93 instantiating a model instance.
94 - Datastore models allow access to key name before put() if key_name given.
95 - Datastore fetch max results and max query offset match production limits.
96 - Fixed an issue in production where query fails with NeedIndexError when
97 a model has two ancestor indexes.
98 http://code.google.com/p/googleappengine/issues/detail?id=423
99 - Allow trailing whitespace in PropertyValueFromString for datetime.
100 - Fixed to_xml on models with binary data in a BlobProperty: they now
102 Note: This changes XML serialization.
103 http://code.google.com/p/googleappengine/issues/detail?id=430
104 - Fixed an issue with setting expando attributes.
105 http://code.google.com/p/googleappengine/issues/detail?id=431
106 - Fixed an issue where TypeError was raised instead of NeedIndexError for
107 "merge join" queries, i.e. queries with only equals filters and no ancestor
108 or sort orders, that still need an index.
109 http://code.google.com/p/googleappengine/issues/detail?id=749
110 - URLFetch in the SDK now has the same 5 second timeout to match production.
111 - URLFetch response headers are combined
112 http://code.google.com/p/googleappengine/issues/detail?id=412
113 - URLFetch now uses original method when following a redirect.
114 http://code.google.com/p/googleappengine/issues/detail?id=363
115 - URLFetch logs a warning when using a non standard port.
116 http://code.google.com/p/googleappengine/issues/detail?id=436
117 - URLFetch allows integers as values in request headers.
118 - Enforce response size and API request size limits to match production.
119 http://code.google.com/p/googleappengine/issues/detail?id=447
120 - SDK sanitizes response headers to match production
121 http://code.google.com/p/googleappengine/issues/detail?id=198
122 - Login URLs now require login in the SDK to match production.
123 http://code.google.com/p/googleappengine/issues/detail?id=53
124 - Fixed an issue with long URLs in HTTP 302 redirect responses.
125 http://code.google.com/p/googleappengine/issues/detail?id=407
126 - Fixed an issue with regular expressions in static_files in app.yaml
127 http://code.google.com/p/googleappengine/issues/detail?id=711
128 - SDK only allows "C" locale to match production.
129 http://code.google.com/p/googleappengine/issues/detail?id=356
130 - Support the bufsize positional arg in open()/file().
131 - lstat is aliased to stat.
132 - appcfg handles index building errors more gracefully.
133 - Fixed an issue with symlinks in the path to the Python core libraries.
136 Version 1.1.5 - September 29, 2008
137 ==================================
139 - Additional fixes for file paths on Windows and OSX.
140 - Sped up the datastore stub.
141 - Allow different types in list properties in datastore.Entity and Expando.
142 - Add add_multi and replace_multi to memcache API.
143 http://code.google.com/appengine/docs/memcache/clientclass.html#Client_add_multi
144 http://code.google.com/appengine/docs/memcache/clientclass.html#Client_replace_multi
145 - Ignore errors from the API proxy when calling memcache read methods.
146 - Set the webapp Request charset property more accurately from CONTENT_TYPE.
147 - Fixed an issue in the development console with schema caching.
148 - Fixed an issue with StringListProperty not returning a class
149 http://code.google.com/p/googleappengine/issues/detail?id=415
150 - Fixed an issue in the development console where quotes couldn't be used
152 - Fixed an issue with TimeProperty("0:0") (midnight).
153 http://code.google.com/p/googleappengine/issues/detail?id=279
155 Version 1.1.4 - September 26, 2008
156 ==================================
158 - Fixed issue with incorrectly escaping static_files paths on Windows.
159 - Workaround -inf not being supported on Windows in Datastore.
161 Version 1.1.3 - September 8, 2008
162 =================================
164 - Added support for zipimport.
165 http://code.google.com/p/googleappengine/issues/detail?id=70
166 http://code.google.com/p/googleappengine/issues/detail?id=161
167 - Added zipserve module for serving static content from a zip file.
168 See google/appengine/ext/zipserve/__init__.py for more information.
169 - Added a memcache viewer to the development console.
170 http://code.google.com/appengine/docs/thedevwebserver.html#The_Development_Console
171 - Added new follow_redirects flag to the URLFetch service.
172 http://code.google.com/p/googleappengine/issues/detail?id=404
173 - Fixed caching headers for static content.
174 - Fixed an issue with incorrectly escaping paths on Windows.
175 - Fixed an issue with the current directory while running applications.
177 Version 1.1.2 - August 20, 2008
178 ===============================
180 - Batch puts across Datastore entity groups.
181 - Transaction retries reduced from 10 to 3.
182 - Fixed certain transaction failures being silent.
183 - Added support for indexes with a single repeated property.
185 Version 1.1.1 - July 21, 2008
186 =============================
188 - Fixed DELETE for URLFetch on dev_appserver.
189 http://code.google.com/p/googleappengine/issues/detail?id=566
190 - Fixed PATH_INFO to be un-escaped version of the path.
191 http://code.google.com/p/googleappengine/issues/detail?id=267
192 http://code.google.com/p/googleappengine/issues/detail?id=457
193 - Fixed order function testing for property on Expando class.
194 - Support all mail attachment mime-types under Windows.
195 - Added support for date and time objects to GQL.
196 http://code.google.com/p/googleappengine/issues/detail?id=318
197 - Fixed memcache KeyError problem.
198 http://code.google.com/p/googleappengine/issues/detail?id=417
199 - Default URLFetch POST content-type is x-www-form-urlencoded.
200 - Fixed problems where global variables would be set to None
201 when a request raised an exception or returned an error
203 - Added support for GIFs and JPEG using PIL.
204 - Added support for type conversion of literals to GQL.
205 - Added support for pickling Expando instances.
206 http://code.google.com/p/googleappengine/issues/detail?id=545
207 - Added APPLICATION_ID environment variable to runtime.
208 - Added support for key_name to djangoforms.
209 - Added ability to put multiple transaction groups in one request
210 outside of transactions.
211 - Added support for downloading request logs using appcfg.
212 http://code.google.com/p/googleappengine/issues/detail?id=76
213 - Fixed DateProperty not supporting values before 1970 and beyond
215 http://code.google.com/p/googleappengine/issues/detail?id=352
216 - Set cap of 5000 indexed properties per entity.
217 - GoogleAppEngineLauncher now has context menus in the main project
219 - UI improvements to GoogleAppEngineLauncher preferences window.
220 - Fixed GoogleAppEngineLauncher broken symlink for bulk_uploadclient.
222 Version 1.1.0 - May 28, 2008
223 ============================
225 - Added an API for image manipulation.
226 http://code.google.com/p/googleappengine/issues/detail?id=38
227 - Added memcache API.
228 - Fixed URLFetch for URLs with query strings.
229 http://code.google.com/p/googleappengine/issues/detail?id=341
230 http://code.google.com/p/googleappengine/issues/detail?id=346
231 http://code.google.com/p/googleappengine/issues/detail?id=369
232 - Added support for multiple values for the same filter string.
233 - Fixed URLFetch's referrer to now set itself to the application's
235 - Added --show_mail_body flag to dev_appserver.py.
236 - Added support for IN and != to GQL.
237 - Fixed URLFetch to accept strings as well as constant integers.
238 http://code.google.com/p/googleappengine/issues/detail?id=234
239 - Added CURRENT_VERSION_ID environment variable.
240 - Fixed uploading issues affecting @googlemail.com developers.
241 http://code.google.com/p/googleappengine/issues/detail?id=119
242 - Fixed Datastore API to allow the assignment of [] to non-dynamic
244 http://code.google.com/p/googleappengine/issues/detail?id=276
245 http://code.google.com/p/googleappengine/issues/detail?id=254
246 - Fixed NeedIndexError to include the index that the query needed.
248 Version 1.0.2 - May 15, 2008
249 ============================
251 - Fixed UTC timezone issue on Windows.
252 http://code.google.com/p/googleappengine/issues/detail?id=131
253 - Fixed webapp template cache bug.
254 http://code.google.com/p/googleappengine/issues/detail?id=273
255 - URLFetch service redirect behavior now matches deployed behavior.
256 http://code.google.com/p/googleappengine/issues/detail?id=84
257 - Better handling of bad HOMEDRIVE parameters on Windows.
258 http://code.google.com/p/googleappengine/issues/detail?id=27
259 - Fixed HTTP response header termination.
260 http://code.google.com/p/googleappengine/issues/detail?id=209
261 - Fixed behavior with source files that have Windows line-endings or
262 missing line-endings.
263 http://code.google.com/p/googleappengine/issues/detail?id=237
264 http://code.google.com/p/googleappengine/issues/detail?id=258
265 - Fixed C-Extension module loading issues.
266 http://code.google.com/p/googleappengine/issues/detail?id=95
267 http://code.google.com/p/googleappengine/issues/detail?id=83
268 - Fixed Windows DLL extension loading issues.
269 http://code.google.com/p/googleappengine/issues/detail?id=222
270 - Added missing os.uname function.
271 http://code.google.com/p/googleappengine/issues/detail?id=186
272 - Windows installer can now over-install.
273 http://code.google.com/p/googleappengine/issues/detail?id=241
274 - Windows installer now allows installation even if it can't find Python.
275 http://code.google.com/p/googleappengine/issues/detail?id=5
276 - Fixed skip_files exception.
277 http://code.google.com/p/googleappengine/issues/detail?id=80
278 - Better error handling for cookie-file related problems.
279 - User platform, SDK version, and Python version are now supplied to
280 server-side on deployment; also supplied on dev_appserver start-up
281 if the "nag" is enabled.
284 Version 1.0.1 - April 14, 2008
285 ==============================
287 - Fixed app.yaml static_dir attribute on Windows.
288 - Fixed uploading large files on OSX.
289 - Fixed recursion issue in webapp template rendering cache.
290 - Fixed MacPorts installation.