| Copyright 2008 Google Inc. |
| All rights reserved. |
| |
| App Engine Python SDK - Release Notes |
| |
| Version 1.2.2 - April 22, 2009 |
| ============================== |
| |
| - New quota API which returns the CPU usage of the current request. |
| from google.appengine.api import quota |
| cpu_usage_so_far = quota.get_request_cpu_usage() |
| - Urlfetch fetch now has support for user configurable deadlines. |
| http://code.google.com/p/googleappengine/issues/detail?id=79 |
| - Urlfetch in the SDK allows the Accept-Encoding header to match App Engine. |
| http://code.google.com/p/googleappengine/issues/detail?id=1071 |
| - urllib now supports HTTPS in addition to HTTP |
| http://code.google.com/p/googleappengine/issues/detail?id=1156 |
| - Datastore indexes on single properties can now be disabled by setting |
| indexed=False on the property constructor. |
| - Datastore now supports Key-only queries, using either SELECT __key__ or |
| or db.Query(Model, keys_only=True) |
| - Fixed issues with Datastore IN filters and sorting: sort order is now |
| correct, and can be used with __key__. |
| http://code.google.com/p/googleappengine/issues/detail?id=1100 |
| http://code.google.com/p/googleappengine/issues/detail?id=1016 |
| - Cron supports additional time specification formats. |
| http://code.google.com/p/googleappengine/issues/detail?id=1261 |
| - Fixed an issue in the dev_appserver admin console datastore viewer |
| (/_ah/admin/datastore) with sorting columns containing None types. |
| http://code.google.com/p/googleappengine/issues/detail?id=1007 |
| - Bulk Loader improvements: New appcfg download_data command. |
| Better backoff support and debugging output for long requests. |
| - New --vhost flag on appcfg.py request_logs command to select logs for |
| a particular host. |
| - Python _ast module is now available for import |
| http://code.google.com/p/googleappengine/issues/detail?id=779 |
| - Fixed issue with the color argument of the Images API composite method. |
| |
| |
| Version 1.2.1 - April 13, 2009 |
| ============================= |
| |
| - Stable, unique IDs for User objects. The Users service now |
| provides a unique user_id for each user that stays the same even |
| if a user changes her email address. |
| http://code.google.com/p/googleappengine/issues/detail?id=1019 |
| - The Images API now supports compositing images and calculating |
| a color histogram for an image. |
| - New allowed mail attachment types: ics, vcf |
| http://code.google.com/p/googleappengine/issues/detail?id=494 |
| - Urlfetch requests can now set the User-Agent header. |
| http://code.google.com/p/googleappengine/issues/detail?id=342 |
| - An App Engine-specific version of the Python PyCrypto cryptography |
| library is now available. Learn more at |
| http://code.google.com/appengine/docs/python/tools/libraries.html |
| - The bulk loader configuration format has changed.to allow non-CSV |
| input. This change is not backwards compatible, so you will need to |
| update your code. |
| An early release of the bulk downloader is also now available in |
| bulkloader.py. Learn more about these changes at: |
| http://code.google.com/appengine/docs/python/tools/uploadingdata.html |
| - Fixed parsing of unicode GQL queries. |
| http://code.google.com/p/googleappengine/issues/detail?id=1105 |
| - Fixed dev_appserver security restrictions for os.path |
| http://code.google.com/p/googleappengine/issues/detail?id=1068 |
| - Fixed Reply-To header set in emails sent from dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=1017 |
| |
| |
| Version 1.2.0 - March 24, 2009 |
| ============================== |
| - Cron support. Appcfg.py will upload the schedule to App Engine. |
| The dev_appserver console at /_ah/admin describes your schedule but does |
| not automatically run scheduled jobs. Learn more at |
| http://code.google.com/appengine/docs/python/config/cron.html |
| - New allow_skipped_files flag in dev_appserver to allow it to read files |
| which are not available in App Engine. |
| http://code.google.com/p/googleappengine/issues/detail?id=550 |
| - New upload_data command in appcfg to run the bulk uploader. |
| http://code.google.com/appengine/docs/python/tools/uploadingdata.html |
| |
| Version 1.1.9 - February 2, 2009 |
| ================================ |
| |
| - HTTP Request and Response limit raised to 10MB from 1MB. |
| Note that API call limits remain at 1MB. |
| http://code.google.com/p/googleappengine/issues/detail?id=78 |
| - urllib and urllib2 now available, implemented using urlfetch. |
| Also adds additional stubs which may enable other modules. |
| http://code.google.com/p/googleappengine/issues/detail?id=61 |
| http://code.google.com/p/googleappengine/issues/detail?id=68 |
| http://code.google.com/p/googleappengine/issues/detail?id=572 |
| http://code.google.com/p/googleappengine/issues/detail?id=821 |
| - Early release of a new data bulk upload tool, bulkloader.py |
| http://code.google.com/appengine/docs/python/tools/uploadingdata.html |
| - New remote_api for datastore at google.appengine.ext.remote_api |
| - Single property descending indexes are automatically generated. |
| - Added db.Query support for IN and != operators. |
| http://code.google.com/p/googleappengine/issues/detail?id=751 |
| - Fixed issue where gql date/time parsing could not handle Unicode strings. |
| - Fixed issue with db model instance key() returning the wrong key for |
| unsaved instances with parent as key |
| http://code.google.com/p/googleappengine/issues/detail?id=883 |
| - New run_in_transaction_custom_retries method for datastore. |
| - Fixed issue with relative dev_appserver datastore and history paths. |
| http://code.google.com/p/googleappengine/issues/detail?id=845 |
| - Static files and skipped files are not readable in dev_appserver, to match |
| the behavior on App Engine. |
| http://code.google.com/p/googleappengine/issues/detail?id=550 |
| - Images API allows multiple transforms of the same type in one request. A |
| limit of 10 total transforms per request has been added. |
| - PIL import will work with both PIL.Image and Image. |
| http://code.google.com/p/googleappengine/issues/detail?id=929 |
| - Fixed an issue with sending email in dev_appserver when the application |
| code changed. |
| http://code.google.com/p/googleappengine/issues/detail?id=182 |
| - Memcache counters (incr/decr) do nothing on non positive integers to match |
| the behavior on App Engine. |
| http://code.google.com/p/googleappengine/issues/detail?id=918 |
| |
| Version 1.1.8 - January 7, 2008 |
| ================================= |
| - Skip_files RegexStr validator allows lists to for regex-ors. |
| http://code.google.com/p/googleappengine/issues/detail?id=81 |
| - sys.path and sys.argv are no longer reset for each request. |
| http://code.google.com/p/googleappengine/issues/detail?id=772 |
| - New ByteString data type for the datastore. Indexed non-text short-blob. |
| - UserProperty now takes auto_current_user and auto_current_user_add |
| attributes. |
| - Support for polymorphic models and queries. |
| - db.Model.order() now supports __key__. |
| http://code.google.com/p/googleappengine/issues/detail?id=884 |
| - Urlfetch no longer sets content-length: 0 when there is no body. |
| http://code.google.com/p/googleappengine/issues/detail?id=817 |
| - Get height and width of an image via the Images API. |
| http://code.google.com/p/googleappengine/issues/detail?id=435 |
| - Limit auto-Bcc of email sender to the case where the email sender is the |
| currently-logged-in user. |
| - Adds limit of 100 order/filters on datastore query size to the SDK. |
| - Fix unicode support for the bulkloader |
| http://code.google.com/p/googleappengine/issues/detail?id=157 |
| - Bulkload.py from the appengine/tools directory to the appengine/ directory |
| - Modify webapp to use logging.exception instead of logging.error. |
| - Additional fixes to SDK sanitizing response headers to match production. |
| http://code.google.com/p/googleappengine/issues/detail?id=198 |
| |
| Version 1.1.7 - November 20, 2008 |
| ================================= |
| - Fixed an issue with urlfetch response headers. |
| http://code.google.com/p/googleappengine/issues/detail?id=877 |
| |
| Version 1.1.6 - November 17, 2008 |
| ================================= |
| |
| - Datastore now supports filtering and sorting on the __key__ special |
| property, which evaluates to each entity's key. |
| - Fixed a bug where it was possible to append None to ListProperty. |
| - Datastore appengine.ext.db models allow deletion by key without |
| instantiating a model instance. |
| - Datastore models allow access to key name before put() if key_name given. |
| - Datastore fetch max results and max query offset match production limits. |
| - Fixed an issue in production where query fails with NeedIndexError when |
| a model has two ancestor indexes. |
| http://code.google.com/p/googleappengine/issues/detail?id=423 |
| - Allow trailing whitespace in PropertyValueFromString for datetime. |
| - Fixed to_xml on models with binary data in a BlobProperty: they now |
| are base64 encoded. |
| Note: This changes XML serialization. |
| http://code.google.com/p/googleappengine/issues/detail?id=430 |
| - Fixed an issue with setting expando attributes. |
| http://code.google.com/p/googleappengine/issues/detail?id=431 |
| - Fixed an issue where TypeError was raised instead of NeedIndexError for |
| "merge join" queries, i.e. queries with only equals filters and no ancestor |
| or sort orders, that still need an index. |
| http://code.google.com/p/googleappengine/issues/detail?id=749 |
| - URLFetch in the SDK now has the same 5 second timeout to match production. |
| - URLFetch response headers are combined |
| http://code.google.com/p/googleappengine/issues/detail?id=412 |
| - URLFetch now uses original method when following a redirect. |
| http://code.google.com/p/googleappengine/issues/detail?id=363 |
| - URLFetch logs a warning when using a non standard port. |
| http://code.google.com/p/googleappengine/issues/detail?id=436 |
| - URLFetch allows integers as values in request headers. |
| - Enforce response size and API request size limits to match production. |
| http://code.google.com/p/googleappengine/issues/detail?id=447 |
| - SDK sanitizes response headers to match production |
| http://code.google.com/p/googleappengine/issues/detail?id=198 |
| - Login URLs now require login in the SDK to match production. |
| http://code.google.com/p/googleappengine/issues/detail?id=53 |
| - Fixed an issue with long URLs in HTTP 302 redirect responses. |
| http://code.google.com/p/googleappengine/issues/detail?id=407 |
| - Fixed an issue with regular expressions in static_files in app.yaml |
| http://code.google.com/p/googleappengine/issues/detail?id=711 |
| - SDK only allows "C" locale to match production. |
| http://code.google.com/p/googleappengine/issues/detail?id=356 |
| - Support the bufsize positional arg in open()/file(). |
| - lstat is aliased to stat. |
| - appcfg handles index building errors more gracefully. |
| - Fixed an issue with symlinks in the path to the Python core libraries. |
| |
| |
| Version 1.1.5 - September 29, 2008 |
| ================================== |
| |
| - Additional fixes for file paths on Windows and OSX. |
| - Sped up the datastore stub. |
| - Allow different types in list properties in datastore.Entity and Expando. |
| - Add add_multi and replace_multi to memcache API. |
| http://code.google.com/appengine/docs/memcache/clientclass.html#Client_add_multi |
| http://code.google.com/appengine/docs/memcache/clientclass.html#Client_replace_multi |
| - Ignore errors from the API proxy when calling memcache read methods. |
| - Set the webapp Request charset property more accurately from CONTENT_TYPE. |
| - Fixed an issue in the development console with schema caching. |
| - Fixed an issue with StringListProperty not returning a class |
| http://code.google.com/p/googleappengine/issues/detail?id=415 |
| - Fixed an issue in the development console where quotes couldn't be used |
| within fields. |
| - Fixed an issue with TimeProperty("0:0") (midnight). |
| http://code.google.com/p/googleappengine/issues/detail?id=279 |
| |
| Version 1.1.4 - September 26, 2008 |
| ================================== |
| |
| - Fixed issue with incorrectly escaping static_files paths on Windows. |
| - Workaround -inf not being supported on Windows in Datastore. |
| |
| Version 1.1.3 - September 8, 2008 |
| ================================= |
| |
| - Added support for zipimport. |
| http://code.google.com/p/googleappengine/issues/detail?id=70 |
| http://code.google.com/p/googleappengine/issues/detail?id=161 |
| - Added zipserve module for serving static content from a zip file. |
| See google/appengine/ext/zipserve/__init__.py for more information. |
| - Added a memcache viewer to the development console. |
| http://code.google.com/appengine/docs/thedevwebserver.html#The_Development_Console |
| - Added new follow_redirects flag to the URLFetch service. |
| http://code.google.com/p/googleappengine/issues/detail?id=404 |
| - Fixed caching headers for static content. |
| - Fixed an issue with incorrectly escaping paths on Windows. |
| - Fixed an issue with the current directory while running applications. |
| |
| Version 1.1.2 - August 20, 2008 |
| =============================== |
| |
| - Batch puts across Datastore entity groups. |
| - Transaction retries reduced from 10 to 3. |
| - Fixed certain transaction failures being silent. |
| - Added support for indexes with a single repeated property. |
| |
| Version 1.1.1 - July 21, 2008 |
| ============================= |
| |
| - Fixed DELETE for URLFetch on dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=566 |
| - Fixed PATH_INFO to be un-escaped version of the path. |
| http://code.google.com/p/googleappengine/issues/detail?id=267 |
| http://code.google.com/p/googleappengine/issues/detail?id=457 |
| - Fixed order function testing for property on Expando class. |
| - Support all mail attachment mime-types under Windows. |
| - Added support for date and time objects to GQL. |
| http://code.google.com/p/googleappengine/issues/detail?id=318 |
| - Fixed memcache KeyError problem. |
| http://code.google.com/p/googleappengine/issues/detail?id=417 |
| - Default URLFetch POST content-type is x-www-form-urlencoded. |
| - Fixed problems where global variables would be set to None |
| when a request raised an exception or returned an error |
| response. |
| - Added support for GIFs and JPEG using PIL. |
| - Added support for type conversion of literals to GQL. |
| - Added support for pickling Expando instances. |
| http://code.google.com/p/googleappengine/issues/detail?id=545 |
| - Added APPLICATION_ID environment variable to runtime. |
| - Added support for key_name to djangoforms. |
| - Added ability to put multiple transaction groups in one request |
| outside of transactions. |
| - Added support for downloading request logs using appcfg. |
| http://code.google.com/p/googleappengine/issues/detail?id=76 |
| - Fixed DateProperty not supporting values before 1970 and beyond |
| Jan. 19, 2038. |
| http://code.google.com/p/googleappengine/issues/detail?id=352 |
| - Set cap of 5000 indexed properties per entity. |
| - GoogleAppEngineLauncher now has context menus in the main project |
| window. |
| - UI improvements to GoogleAppEngineLauncher preferences window. |
| - Fixed GoogleAppEngineLauncher broken symlink for bulk_uploadclient. |
| |
| Version 1.1.0 - May 28, 2008 |
| ============================ |
| |
| - Added an API for image manipulation. |
| http://code.google.com/p/googleappengine/issues/detail?id=38 |
| - Added memcache API. |
| - Fixed URLFetch for URLs with query strings. |
| http://code.google.com/p/googleappengine/issues/detail?id=341 |
| http://code.google.com/p/googleappengine/issues/detail?id=346 |
| http://code.google.com/p/googleappengine/issues/detail?id=369 |
| - Added support for multiple values for the same filter string. |
| - Fixed URLFetch's referrer to now set itself to the application's |
| host-name. |
| - Added --show_mail_body flag to dev_appserver.py. |
| - Added support for IN and != to GQL. |
| - Fixed URLFetch to accept strings as well as constant integers. |
| http://code.google.com/p/googleappengine/issues/detail?id=234 |
| - Added CURRENT_VERSION_ID environment variable. |
| - Fixed uploading issues affecting @googlemail.com developers. |
| http://code.google.com/p/googleappengine/issues/detail?id=119 |
| - Fixed Datastore API to allow the assignment of [] to non-dynamic |
| DB attributes. |
| http://code.google.com/p/googleappengine/issues/detail?id=276 |
| http://code.google.com/p/googleappengine/issues/detail?id=254 |
| - Fixed NeedIndexError to include the index that the query needed. |
| |
| Version 1.0.2 - May 15, 2008 |
| ============================ |
| |
| - Fixed UTC timezone issue on Windows. |
| http://code.google.com/p/googleappengine/issues/detail?id=131 |
| - Fixed webapp template cache bug. |
| http://code.google.com/p/googleappengine/issues/detail?id=273 |
| - URLFetch service redirect behavior now matches deployed behavior. |
| http://code.google.com/p/googleappengine/issues/detail?id=84 |
| - Better handling of bad HOMEDRIVE parameters on Windows. |
| http://code.google.com/p/googleappengine/issues/detail?id=27 |
| - Fixed HTTP response header termination. |
| http://code.google.com/p/googleappengine/issues/detail?id=209 |
| - Fixed behavior with source files that have Windows line-endings or |
| missing line-endings. |
| http://code.google.com/p/googleappengine/issues/detail?id=237 |
| http://code.google.com/p/googleappengine/issues/detail?id=258 |
| - Fixed C-Extension module loading issues. |
| http://code.google.com/p/googleappengine/issues/detail?id=95 |
| http://code.google.com/p/googleappengine/issues/detail?id=83 |
| - Fixed Windows DLL extension loading issues. |
| http://code.google.com/p/googleappengine/issues/detail?id=222 |
| - Added missing os.uname function. |
| http://code.google.com/p/googleappengine/issues/detail?id=186 |
| - Windows installer can now over-install. |
| http://code.google.com/p/googleappengine/issues/detail?id=241 |
| - Windows installer now allows installation even if it can't find Python. |
| http://code.google.com/p/googleappengine/issues/detail?id=5 |
| - Fixed skip_files exception. |
| http://code.google.com/p/googleappengine/issues/detail?id=80 |
| - Better error handling for cookie-file related problems. |
| - User platform, SDK version, and Python version are now supplied to |
| server-side on deployment; also supplied on dev_appserver start-up |
| if the "nag" is enabled. |
| |
| |
| Version 1.0.1 - April 14, 2008 |
| ============================== |
| |
| - Fixed app.yaml static_dir attribute on Windows. |
| - Fixed uploading large files on OSX. |
| - Fixed recursion issue in webapp template rendering cache. |
| - Fixed MacPorts installation. |