| Copyright 2013 Google Inc. |
| All rights reserved. |
| |
| App Engine SDK - Release Notes |
| |
| Version 1.9.15 |
| |
| All |
| ============================== |
| - Fixed an issue with Datastore stats not displaying entity counts. |
| https://code.google.com/p/googleappengine/issues/detail?id=9328 |
| |
| Python |
| ============================== |
| - search.GetResponse in the Search API now supports __len__. |
| https://code.google.com/p/googleappengine/issues/detail?id=10340 |
| - The get_access_token() method of the App Identity API now caches access |
| tokens within the instance. |
| - Fixed an issue with Cloud Endpoints where multi-class Python APIs |
| that reused method names could result in incorrect API descriptors. |
| https://code.google.com/p/googleappengine/issues/detail?id=10595 |
| https://code.google.com/p/googleappengine/issues/detail?id=11366 |
| https://code.google.com/p/googleappengine/issues/detail?id=11373 |
| |
| PHP |
| ============================== |
| - Temporary uploaded files are now unlinked (deleted) if not moved. Empty |
| files not written to a temporary directory are removed. |
| http://stackoverflow.com/questions/21571418/google-app-engine-empty-form |
| -upload-field-submission-issue |
| - Fixed an issue with get_define_constraints not returning a Core array. |
| https://code.google.com/p/googleappengine/issues/detail?id=11236 |
| |
| Version 1.9.14 |
| |
| All |
| ============================== |
| - The URL Fetch service will always issue a GET request when it receives |
| and responds to a 302 response; previously it would preserve the original |
| HTTP method. This new behavior is in line with modern conventions (see |
| http://tools.ietf.org/html/rfc7231#section-6.4). You can |
| use the final_url field of the Response object (or a similar object in other |
| APIs, see |
| https://cloud.google.com/appengine/docs/python/urlfetch/responseobjects) |
| to determine if your fetches are being redirected. If this change affects |
| your application, please contact our support team - even if you do not have |
| a support contract at |
| https://support.google.com/cloud/answer/3420056?hl=en&ref_topic=3473162. |
| |
| Version 1.9.13 |
| ============================== |
| - No changes for 1.9.13 |
| |
| |
| Version 1.9.12 |
| |
| Python |
| ============================== |
| - The libxslt library has been updated from v1.1.22 to v1.1.28 |
| - Fixed an issue with NDB where a user gets an error stating "_AugmentedQuery' |
| object has no attribute '_filter_predicate'" when running a query without a |
| filter predicate. |
| |
| PHP |
| ============================== |
| - Fixed an issue where users are unable to read newly created files in Google |
| Cloud Storage. |
| https://code.google.com/p/googleappengine/issues/detail?id=10869 |
| |
| Version 1.9.11 |
| |
| Python |
| ============================== |
| - Fixed an issue with the Search API not returning results in the proper date |
| order. |
| |
| PHP |
| ============================== |
| - PHP has now been updated to 5.4.32. |
| |
| Version 1.9.10 |
| |
| Python |
| ============================== |
| - Asynchronous calls are now supported in the Search API. |
| |
| PHP |
| ============================== |
| - Fixed an issue that causes script routing errors in the dev_appserver when |
| the url regular expression uses subgroups that include a leading slash. |
| https://code.google.com/p/googleappengine/issues/detail?id=11134 |
| |
| Version 1.9.9 |
| |
| All |
| ============================== |
| - TLS is now supported and enabled by default in the dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=497 |
| - Fixed an issue with the Datastore Admin failing to load due to a |
| DeadlineExceededError when retrieving kinds. |
| https://code.google.com/p/googleappengine/issues/detail?id=11145 |
| |
| PHP |
| ============================= |
| - Fixed an issue where form fields submitted with Google Cloud Storage upload |
| may not get encoded correctly. |
| https://code.google.com/p/googleappengine/issues/detail?id=9534 |
| |
| Version 1.9.8 |
| |
| All |
| ============================= |
| - Fixed an issue with Datastore Admin not properly restoring backups if writes |
| are disabled. |
| https://code.google.com/p/googleappengine/issues/detail?id=11090 |
| |
| Python |
| ============================= |
| - Fixed an issue with NDB repeated, nested structures growing exponentially |
| when saving. |
| https://code.google.com/p/googleappengine/issues/detail?id=11082 |
| |
| PHP |
| ============================= |
| - PHP is now updated to 5.4.30. |
| |
| Version 1.9.7 |
| |
| All |
| ============================== |
| - Added memcache historical hit ratio to Admin Console dashboard. |
| - Fixed an issue with sockets connections timing out after 2 minutes. |
| - Fixed an issue with appcfg request_logs not working. |
| https://code.google.com/p/googleappengine/issues/detail?id=10886 |
| |
| Python |
| ============================== |
| - Fixed an issue with the dev_appserver remove_ignored_dirs not working. |
| |
| PHP |
| ============================== |
| - Fixed an issue with the dev_appserver directory separator for DOCUMENT_ROOT, |
| SCRIPT_FILENAME, SCRIPT_NAME, and PHP_SELF not working on Windows. |
| - Fixed an issue with decrement not working in Memcache and Memcached. |
| http://code.google.com/p/googleappengine/issues/detail?id=10964 |
| |
| Version 1.9.6 |
| |
| Python |
| ============================== |
| - Django 1.5.4 has been upgraded to 1.5.8. |
| - Django 1.4.3 has been upgraded to 1.4.13. |
| - Fixed an issue with taskqueue_stub.py _Group.GetQueuesAsDict() raising |
| TypeError intermittently. |
| https://code.google.com/p/googleappengine/issues/detail?id=10131 |
| |
| Version 1.9.5 |
| |
| Python |
| ============================== |
| - STARTTLS support for the dev_appserver is now available. |
| https://code.google.com/p/googleappengine/issues/detail?id=497 |
| - Fixed an issue with the Search API where searching for geo points whose |
| distance from a fixed point is greater than some value returns documents that |
| do not include that field. |
| - Fixed an issue with the Search API where querying for a field that does not |
| exist returns an error instead of returning zero matches on that field. |
| https://code.google.com/p/googleappengine/issues/detail?id=10407 |
| |
| PHP |
| ============================== |
| - Fixed an issue where certain legal Cloud Storage bucket names fail to |
| validate. |
| https://code.google.com/p/googleappengine/issues/detail?id=10745 |
| |
| Version 1.9.4 |
| |
| Python |
| ============================== |
| - Fixed an issue with the Search API where it does not correctly parse |
| expressions that use the subtraction operator without surrounding |
| whitespaces. |
| - Fixed an issue with the devappserver Search API allowing searches for a field |
| with a negated value. |
| - Fixed an issue with the devappserver Search API not handling searches for |
| empty quotes the same way as production. |
| - Fixed an issue with the devappserver Search API not matching documents with |
| atom fields the same way as production. |
| - Fixed an issue with the devappserver Search API allowing expressions that |
| use the snippet operator over a numeric field. |
| - Fixed an issue with the devappserver Search API allowing sorting expressions |
| to use the snippet operator. |
| - Fixed an issue with the devappserver Search API not validating that cursors |
| are from a previous search. |
| - Fixed an issue with the devappserver Search API not parsing queries that use |
| the fuzzy search operator (~). |
| - Fixed an issue with the devappserver Search API not validating the default |
| value for sorting expressions on date fields. |
| - Fixed an issue with the devappserver memcache viewer not displaying items |
| with non-ASCII characters properly. |
| https://code.google.com/p/googleappengine/issues/detail?id=9459 |
| - Fixed an issue with the devappserver allowing arbitrarily large file uploads |
| using HTTP POST requests. It now matches production limits of 32MB. |
| https://code.google.com/p/googleappengine/issues/detail?id=10384 |
| - Fixed an issue with NDB deserialization looping infinitely when nested value |
| is None. |
| https://code.google.com/p/googleappengine/issues/detail?id=10758 |
| |
| PHP |
| ============================== |
| - Fixed an issue with libcurl giving a load error for Mac OS X Snow Leopard |
| clients. |
| https://code.google.com/p/googleappengine/issues/detail?id=10405 |
| - Fixed an issue with making simultaneous mysqli connections to the same |
| CloudSQL instance causing the request to time out. |
| |
| Version 1.9.3 |
| |
| Python |
| ============================== |
| - Fixed an issue with NDB deserialization going into an infinite loop when |
| repeated nested structured properties are None. |
| https://code.google.com/p/googleappengine/issues/detail?id=10758 |
| |
| PHP |
| ============================== |
| - Fixed an issue with the fnmatch() function not being supported in production. |
| https://code.google.com/p/googleappengine/issues/detail?id=10723 |
| |
| Version 1.9.2 |
| |
| All |
| ============================== |
| - We are pleased to announce the availability of Dedicated Memcache service |
| to our customers in the EU. |
| |
| PHP |
| ============================== |
| - Users now have the ability to embed images in emails via the Content-Id |
| attachment header. |
| https://code.google.com/p/googleappengine/issues/detail?id=965 |
| - The Zip module is now included in the SDK. |
| https://code.google.com/p/googleappengine/issues/detail?id=10703 |
| - Fixed an issue with the Google Cloud Storage upload proxy truncating POST |
| field data when it is longer than 80 characters. |
| https://code.google.com/p/googleappengine/issues/detail?id=10355 |
| - Fixed an issue with default max sized uploads no longer handling unlimited |
| size uploads. |
| https://code.google.com/p/googleappengine/issues/detail?id=10727 |
| |
| Version 1.9.1 |
| |
| All |
| ============================== |
| - The Performance Settings section of the Application settings page in the |
| Admin Console, Backends API and all backends related management tools are now |
| deprecated and will be removed in a future release. Users of Backends are |
| recommended to migrate to the App Engine Modules API, which provides a more |
| flexible implementation of the same functionality. These settings are now all |
| configurable via Modules configuration files. |
| See the Modules documentation for more information: |
| https://developers.google.com/appengine/docs/python/modules/ |
| #Python_Configuration |
| |
| PHP |
| ============================== |
| - Fixed an issue with ZendFramework causing App Engine project to crash when |
| using APC caching. |
| https://code.google.com/p/googleappengine/issues/detail?id=9553 |
| - Fixed an issue with URLFetch not sending strings with null characters |
| correctly. |
| https://code.google.com/p/googleappengine/issues/detail?id=10477 |
| - Fixed an issue with uploading files to a Google Cloud Storage failing |
| in 1.9.0. |
| https://code.google.com/p/googleappengine/issues/detail?id=10634 |
| |
| Version 1.9.0 |
| |
| All |
| ============================== |
| - Modules Service API and application management features are now GA. |
| - New App Engine Application Identifiers must now start with a letter, |
| in addition to the existing requirements that the identifier be 6-30 |
| characters which are letters, numbers, and hyphens, and not start or end with |
| a hyphen. |
| |
| Python |
| ============================== |
| - The size limit on the Search API is now computed and enforced on a per-index |
| basis, rather than for the app as a whole. The per-index limit is now 10GB. |
| There is no fixed limit on the number of indexes, or on the total amount of |
| Search API storage an application may use. |
| - Newly created App Engine applications now have a Google Cloud Storage bucket |
| created automatically as part of the same Google Cloud Project. For more |
| information please see: |
| https://developers.google.com/appengine/docs/python/ |
| googlecloudstorageclient/activate#Using_the_default_Gcs_bucket |
| - Users now have the ability to embed images in emails via the Content-Id |
| attachment header. |
| https://code.google.com/p/googleappengine/issues/detail?id=965 |
| https://code.google.com/p/googleappengine/issues/detail?id=10503 |
| - Removed deprecated modules.py methods start_module, start_module_async, |
| stop_module, stop_module_async get_modules_async, get_versions_async, |
| get_default_version_async, get_num_instances_async, and get_hostname_async. |
| - Fixed an issue with NDB backup/restore corrupting certain compressed |
| entities. |
| https://code.google.com/p/googleappengine/issues/detail?id=8599 |
| |
| PHP |
| ============================== |
| - The PHP interpreter has been upgraded from PHP 5.4.19 to PHP 5.4.22. |
| - Autoloading is now available in the SDK so developers will no longer need to |
| explicitly require SDK files. |
| - Expanded php.ini setting google_appengine.allow_include_gs_buckets to allow |
| a path filter to be included for improved security. |
| - Newly created App Engine applications now have a Google Cloud Storage bucket |
| created automatically as part of the same Google Cloud Project. For more |
| information please see: |
| https://developers.google.com/appengine/docs/php/googlestorage/ |
| #before_you_begin |
| - An "E_USER_WARNING" warning message is now triggered if an application moves |
| a user uploaded file to a Google Cloud Storage bucket/path. This is due to |
| the fact that code may be included and lead to a local file inclusion |
| vulnerability. |
| - Added API functions CloudStorageTools::getMetadata() and |
| CloudStorageTools::getContentType() for retrieving the metadata and content |
| type of Google Cloud Storage objects. |
| https://code.google.com/p/googleappengine/issues/detail?id=10182 |
| - Fixed an issue with empty Google Cloud Storage folders not displaying |
| correctly in the Developers Console. New folders are now created using the |
| "/" suffix instead of "_$folder_" so that they are displayed correctly. |
| - Fixed an issue with PHP_SELF and SCRIPT_NAME not being implemented correctly. |
| https://code.google.com/p/googleappengine/issues/detail?id=9989 |
| https://code.google.com/p/googleappengine/issues/detail?id=10478 |
| |
| Version 1.8.9 |
| |
| All |
| ============================== |
| - Renamed appcfg start to appcfg start_module_version and stop to |
| stop_module_version. |
| - Fixed an issue with ID allocation collisions in the Datastore. |
| https://code.google.com/p/googleappengine/issues/detail?id=10134 |
| - Fixed an issue with Cloud Storage calls failing in the dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=10181 |
| https://code.google.com/p/googleappengine/issues/detail?id=10185 |
| - Fixed an issue with the dev_appserver not starting on Windows when using |
| versions of Python earlier than 2.7.2. |
| https://code.google.com/p/googleappengine/issues/detail?id=10363 |
| |
| Python |
| ============================== |
| - Deprecated start_module, start_module_async, stop_module, stop_module_async |
| get_modules_async, get_versions_async, get_default_version_async, |
| get_num_instances_async, get_hostname_async and added start_version, |
| start_version_async, stop_version, stop_version_async as replacements in the |
| Modules API. |
| - Added verbose_name support for ComputedProperty in NDB. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=239 |
| - Fixed an issue with deffered.defer not waiting for async operations. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=238 |
| - Fixed an issue with LocalStructureProperty not handling None value in NDB. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=233 |
| - Fixed an issue NDB not working with sqlite. |
| https://code.google.com/p/googleappengine/issues/detail?id=8381 |
| - Fixed an issue with debug not working with PyDev in 1.8.8. |
| https://code.google.com/p/googleappengine/issues/detail?id=10390 |
| - Fixed an issue with object properties not being retrieved in NDB. |
| https://code.google.com/p/googleappengine/issues/detail?id=10467 |
| |
| PHP |
| ============================= |
| - Renamed startModule, stopModule to startVersion, stopVersion in the Modules |
| API. |
| - Added support for the ftp extension. |
| - Added support for the zip extension. |
| - Added support for the gethostname() function. |
| - A proper "billing required" message is now given when users attempt to use |
| Sockets API on free apps. |
| - Fixed an issue with header keys and values having whitespaces preventing |
| responses from being compressed. |
| - Fixed an issue with content-type and metadata not being updated when renaming |
| Google Cloud Storage objects. |
| - Fixed an issue with Cloud Storage rename requests failing when an object has |
| a space in its name. |
| |
| Version 1.8.8 |
| |
| All |
| ============================== |
| - Dedicated Memcache is now a GA feature. Our deprecation policy applies and |
| customers are encouraged to use this feature in production. |
| - Memcache API calls are tracked by a new metric that estimates resource usage, |
| Memcache Compute Units (MCU's). There is a new quota bucket and |
| dashboard graph corresponding to the metric, as well as an option in the |
| memcache viewer to display top keys by MCU's. |
| - The dev_appserver logs.db format is not backward compatible with 1.8.7. |
| Users that revert to the 1.8.7 dev_appserver after trying 1.8.8 must delete |
| this file. Unless specifically named by the user in the command line, the |
| file is found at /tmp/<app-id>/logs.db. The error seen if this file is not |
| removed is: 'IntegrityError: RequestLogs.module may not be NULL' |
| - Added /_ah/gcs endpoint on the dev_appserver for local emulation of Google |
| Cloud Storage services. |
| https://code.google.com/p/googleappengine/issues/detail?id=10178 |
| - Fixed an issue with users receiving errors when uploading large files to GCS. |
| https://code.google.com/p/googleappengine/issues/detail?id=10101 |
| - Fixed an issue with cloning apps not creating proper service account names. |
| https://code.google.com/p/googleappengine/issues/detail?id=10235 |
| |
| Python |
| ============================== |
| - Fixed an issue with the dev_appserver app id validation for UTF-8 |
| https://code.google.com/p/googleappengine/issues/detail?id=10116 |
| |
| PHP |
| ============================== |
| - The Sockets API is now available for Billing Enabled Applications. |
| - PHP String has been added as a key type in the Admin Console Memcache viewer. |
| - Added CloudStorageTools::getPublicUrl() method for constructing URLs for |
| Google Cloud Storage objects. |
| - Opening GCS objects in text mode is now supported. |
| https://code.google.com/p/googleappengine/issues/detail?id=10177 |
| - A false error is now returned if stream_cast is called on a GCS stream. |
| https://code.google.com/p/googleappengine/issues/detail?id=10202 |
| |
| Version 1.8.7 |
| |
| All |
| ============================== |
| - Cloud Endpoints is now a GA feature. |
| - Memcache configuration changes and mutations (flush, set, etc.) made from the |
| Admin Console are now recorded in the admin console logs. |
| - The max_concurrent_requests setting is now configurable per version/module. |
| http://code.google.com/p/googleappengine/issues/detail?id=7927 |
| - Fixed an issue with Datastore not correctly validating namespaces with |
| greater than 500 characters. |
| |
| Python |
| ============================== |
| - Fixed an issue with NDB not returning the same instance for async gets |
| when using memcache. |
| https://code.google.com/p/googleappengine/issues/detail?id=9976 |
| |
| PHP |
| ============================== |
| - Added support for the mcrypt PHP extension to the PHP interpreter included |
| with the Mac OSX SDK. |
| - Added support for the zlib extension library to the PHP interpreter included |
| with the Mac OSX SDK. |
| - Added support for the PHP gd extension to the PHP interpreter included with |
| the Mac OSX SDK. |
| https://code.google.com/p/googleappengine/issues/detail?id=10156 |
| - Fixed an issue where blank multipart form values are uploaded incorrectly |
| into Google Cloud Storage. |
| - Fixed an issue where PHP applications could not be run locally using the |
| Mac OS X launcher on Mac OS X Lion and earlier. |
| https://code.google.com/p/googleappengine/issues/detail?id=10135 |
| |
| Version 1.8.6 |
| |
| All |
| ============================== |
| - A memcache size chart has been added to admin console's dashboard. Access it |
| via the drop-down above the graph. The chart graphs memcache size over time |
| enabling customers to determine when cache flush events occurred. This is a |
| preview feature. |
| - Fixed an issue with the dev_appserver that allows an invalid Datastore query |
| combination of group by and filter properties. |
| - Fixed an issue with the bulkloader that causes uploads to the dev_appserver |
| to fail. |
| - Fixed an issue affecting validation of the size of Datastore property names. |
| - Fixed an issue with Datastore query validation for strings with exactly 500 |
| characters. |
| https://code.google.com/p/googleappengine/issues/detail?id=10019 |
| |
| Python |
| ============================== |
| - Django 1.5.4 is now available in the Runtime. This is a Preview feature. |
| - app_identity.get_access_token in the App Identity API is now a GA feature. |
| - Geo is now a supported field type in the Search API for the dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=7486 |
| |
| PHP |
| ============================== |
| - php://memory and php://temp I/O streams are now supported. |
| |
| Version 1.8.5 |
| |
| All |
| ============================== |
| - The Search API is now a GA feature. |
| - Fixed an issue with the dev_appserver Datastore where UTF-8 validation did |
| not occur on string values. |
| - Fixed an issue with the Admin Console Datastore Viewer throwing errors when |
| fetching UTF-8 kinds. |
| https://code.google.com/p/googleappengine/issues/detail?id=7570 |
| - Fixed an issue with the Datastore Admin not being able to backup to another |
| app. |
| https://code.google.com/p/googleappengine/issues/detail?id=9808 |
| - Fixed an issue where files that contain an '@' could not be deployed. |
| https://code.google.com/a/google.com/p/google-appengine-php-trusted-tester |
| /issues/detail?id=6 |
| |
| Python |
| ============================== |
| - Developers can now use pdb when debugging python applications in the |
| dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9012 |
| https://code.google.com/p/googleappengine/issues/detail?id=9027 |
| |
| PHP |
| ============================== |
| - Modules are now supported for the PHP Runtime. |
| - The Log Service API is now available. |
| - The PHP interpreter has been upgraded from PHP 5.4.17 to PHP 5.4.19. |
| - The /e modifier for mb_ereg_replace has been disabled. |
| - The PHP interpreter has been switched to the JSON-C library. |
| - The Mac OSX SDK now includes a PHP interpreter, installing PHP separately is |
| no longer required. |
| - The Windows SDK now includes a PHP interpreter, installing PHP separately is |
| no longer required. |
| |
| Version 1.8.4 |
| |
| All |
| ============================== |
| - A Datastore Admin fix in this release improves security by ensuring that |
| scheduled backups can now only be started by a cron or task queue task. |
| Administrators can still start a backup by going to the Datastore Admin |
| in the Admin Console. |
| |
| Python |
| ============================== |
| - Better support is now provided for the _$folder$ magic cloud storage keyword, |
| and the implementation of basic mkdir()/rmdir() functionality via GCS |
| streams. |
| - This release adds the wrappers @transactional_async and @transactonal_tasklet |
| to correct (a) @transactional @tasklet being synchronous despite the |
| decorator, and (b) @tasklet @transactional not running the generator in a |
| transaction. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=195 |
| - Fixed a unicode issue associated with expressions in the Search API. A search |
| with snippeted fields was failing on documents containing unicode characters. |
| - Fixed an issue with the dev_appserver not auto-detecting the lib/ directory |
| in the SDK. |
| https://code.google.com/p/googleappengine/issues/detail?id=8459 |
| https://code.google.com/p/googleappengine/issues/detail?id=9847 |
| - Fixed an issue where Blobstore usage was being charged even though the |
| actual data was being stored in Cloud Storage. All affected developers have |
| been informed and reimbursements are underway. |
| https://code.google.com/p/googleappengine/issues/detail?id=9659 |
| - Fixed an issue that ensures all .py files in google.appengine.api that are |
| available in the SDK are also available in the runtime. |
| https://code.google.com/p/googleappengine/issues/detail?id=9755 |
| - Fixed an issue of warning messages being displayed when running appcfg |
| update (eg. appcfg.py update . --oauth2) from the 1.8.3 Python SDK. The |
| appengine_rpc_httplib2 will work without warnings regardless of which |
| oauth2client library is being used. |
| https://code.google.com/p/googleappengine/issues/detail?id=9807 |
| |
| |
| PHP |
| ============================== |
| - The PHP interpreter was upgraded from PHP 5.4.8 to PHP 5.4.17. |
| - The is_writable() method now supports Google Cloud Storage files and buckets. |
| - You no longer need to specify the PHP runtime on the command line when |
| deploying applications via appcfg.py |
| - Backends are disabled for PHP and are no longer supported with the PHP |
| runtime. |
| - Upload of PHP apps now ignores any pre-compilation errors. This allows |
| precompilation to be disabled on a per-runtime basis, and defaults to |
| disabled for PHP. |
| - Fixed an issue where SYSTEMROOT was not passed to the environment checking |
| script thereby not recognizing the PHP intepreter for Windows in the SDK. |
| https://code.google.com/p/googleappengine/issues/detail?id=9382 |
| |
| Version 1.8.3 |
| |
| Python |
| =============================== |
| - Published a major rewrite of the Search API documentation. Please see: |
| https://developers.google.com/appengine/docs/python/search/ |
| - Interfacing into the Task Queue REST API no longer requires including "s~" |
| at the beginning of the project name. |
| - Fixed an issue with the Mail API, email addresses that contain encoded |
| newlines as specified in rfc2047 are now parsed correctly. |
| - Fixed an issue with channels.send_message failing when a client id has 3 or |
| more dashes. |
| - Fixed an issue with ndb.non_transactional correctly restoring the db |
| library's transactional state. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=232 |
| - Fixed an issue with NDB raising the correct exception when the rollback |
| itself has an exception. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=234 |
| - The NDB model property settings 'default' and 'required' are no longer |
| mutually exclusive. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=236 |
| - Fixed an issue with debugger/breakpoint not working on the dev_appserver. |
| http://code.google.com/p/appengine-devappserver2-experiment/issues/detail? |
| id=28 |
| http://code.google.com/p/googleappengine/issues/detail?id=9012 |
| http://code.google.com/p/googleappengine/issues/detail?id=9027 |
| - Fixed an issue with NDB queries supporting iterate over distinct queries. |
| http://code.google.com/p/googleappengine/issues/detail?id=9591 |
| - Fixed an issue with enabling cloud integration for existing apps. |
| https://code.google.com/p/googleappengine/issues/detail?id=9602 |
| - Fixed an issue with users not being able to view the cron jobs page in the |
| dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9665 |
| - Fixed an issue with the Channel API send_message function not working on the |
| dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9675 |
| - Fixed an issue with Modules get_current_module_name() incorrectly reporting |
| as default when it is not. |
| https://code.google.com/p/googleappengine/issues/detail?id=9687 |
| - Fixed an issue with the Datastore Admin UI failing to load due to the app |
| having too many kinds. |
| https://code.google.com/p/googleappengine/issues/detail?id=9749 |
| - Fixed an issue with the Channel API Testbed not working correctly after |
| upgrading to SDK 1.8.2 |
| https://code.google.com/p/googleappengine/issues/detail?id=9757 |
| |
| PHP |
| =============================== |
| - Users who are whitelisted to use PHP are now able to deploy PHP to any of |
| their apps. |
| - There is now better support for stat() related functions for Google Cloud |
| Storage objects. |
| - Added a read through cache to the GCS client to improve performance. This |
| allows for optimistic caching for write-once, read-many applications and |
| performs on-write invalidation. |
| - Environment variables that are set in app.yaml are now available in the PHP |
| runtime. |
| - You can now pass an array of metadata as part of the Google Cloud Storage |
| upload context. |
| - Apps can now use opendir()/readdir()/rewinddir()/closedir() on Google Cloud |
| Storage buckets. |
| - The PHP Task Queue API now supports adding tasks in bulk via the addTasks() |
| method on the new PushQueue class. |
| - The PHP Task Queue API now supports setting headers on the PushTask class. |
| - Interfacing into the Task Queue REST API no longer requires including "s~" |
| at the beginning of the project name. |
| - Fixed an issue with the Mail API, email addresses that contain encoded |
| newlines as specified in rfc2047 are now parsed correctly. |
| - Fixed an issue with enabling cloud integration for existing apps. |
| https://code.google.com/p/googleappengine/issues/detail?id=9602 |
| |
| Version 1.8.2 |
| |
| Python |
| =============================== |
| - Dedicated memcache is now available to all developers. With |
| dedicated memcache you can purchase in-memory data caching capacity |
| exclusively for your application, cache more data and drive up cache hit |
| rates. This is a Preview feature. For more information please see: |
| https://developers.google.com/appengine/docs/adminconsole/memcache |
| - App Engine Modules is now available to all developers. App Engine Modules |
| allow developers to segment their applications into logical subcomponents. |
| This is a Preview feature. More information on this feature can be found |
| here: |
| https://developers.google.com/appengine/docs/python/modules/ |
| - Push-to-Deploy is now available to all developers. This Preview feature makes |
| it even easier to deploy Python apps. |
| - The Python Interpreter has been upgraded to 2.7.5. |
| - lxml 2.3.5 is now available. |
| - Fixed an issue with the Datastore bulkloader syntax when using the Python 2.5 |
| interpreter. |
| - Fixed an issue with the Channel API's Javascript library; a memory leak |
| occurred when closing channels. |
| https://code.google.com/p/googleappengine/issues/detail?id=9283 |
| - Fixed an issue with App Engine receiving erroneous XMPP presence from |
| Google Hangouts. |
| https://code.google.com/p/googleappengine/issues/detail?id=9498 |
| |
| PHP |
| =============================== |
| - Dedicated memcache is now available to all developers. With |
| dedicated memcache you can purchase in-memory data caching capacity |
| exclusively for your application, cache more data and drive up cache hit |
| rates. This is a Preview feature. For more information please see: |
| https://developers.google.com/appengine/docs/adminconsole/memcache |
| - Push-to-Deploy is now available to all developers. This Preview feature makes |
| it even easier to deploy PHP apps. |
| - appcfg.py no longer requires the -R parameter to deploy PHP applications. |
| - The function libxml_disable_entity_loader() is now disabled by default for |
| security reasons. It can be re-enabled if necessary using the |
| google_app_engine.enable_functions directive in the php.ini file. |
| - Added support for the move_uploaded_file() and rename() methods on files |
| stored on Google Cloud Storage. |
| - Fixed an issue with the dev_appserver on Windows where the PHP interpreter |
| was not passed a required environment variable. |
| https://code.google.com/p/googleappengine/issues/detail?id=9382 |
| - Fixed an issue with the URL Fetch timeout option being ignored. |
| https://code.google.com/p/googleappengine/issues/detail?id=9460 |
| |
| Version 1.8.1 |
| |
| Python |
| =============================== |
| - The Task Queue async API is now a GA feature. The asynchronous methods |
| improve utilization by allowing your app to add, lease and delete multiple |
| tasks in parallel. |
| - Cloud Console projects are now created by default whenever a new App Engine |
| app is created. This is a Preview feature. |
| - In an upcoming release the Experimental Google Cloud Storage API Functions |
| will be decommissioned. This API and its Experimental status is documented at |
| the following link: |
| https://developers.google.com/appengine/docs/python/googlestorage/functions |
| - The Google Cloud Storage library will replace Google Cloud Storage API and is |
| now available as a Preview feature. More information can be found at |
| https://code.google.com/p/appengine-gcs-client/ |
| - Bandwidth between App Engine and Google Cloud Storage is currently free of |
| charge (this may change in the future for certain levels of service). |
| - The Search API has graduated from Experimental to Preview. Apps that have |
| billing enabled can exceed the free quota levels and will be charged for |
| usage above these levels. |
| - Estimated number of search results will only be accurate if it is less than |
| or equal to the number of results requested. By default this can be |
| overridden by setting number_found_accuracy QueryOption in the Search API. |
| - Dates, atoms, and number fields can now be found by searching without a field |
| restriction in the Search API. |
| - A quoted empty string now returns atom fields with empty values for the |
| Search API. |
| - Snippet and count functions are no longer allowed in sort expressions for the |
| Search API. |
| - The Search API now has improved error messages for user errors and internal |
| errors. |
| - App Engine now supports deployment of applications via the Git tool. Once you |
| complete the initial setup steps, you will be ready to deploy apps with the |
| same ease you push code to a git repository using |
| "% git push appengine master". This is a Limited Preview feature. You may |
| request access via the following link: |
| https://docs.google.com/a/google.com/forms/d/ |
| 1aLaAOZb_cXFiVqzLAMvPV9kh0FmvlLRUbwD-LBbLuUI/viewform |
| - The Datastore now assigns scattered auto ids by default. Legacy auto ids |
| are still available via the 'auto_id_policy' option in app.yaml. |
| - The Sockets API now allows client code to call get/set options against |
| sockets. Previously, calls raised "Not Implemented" exceptions. For supported |
| options, calls to getsockopt will return a mock value and calls to setsockopt |
| will be silently ignored. Errors will continue to be raised for unsupported |
| options. The currently supported options are: SO_KEEPALIVE, SO_DEBUG, |
| TCP_NODELAY, SO_LINGER, SO_OOBINLINE, SO_SNDBUF, SO_RCVBUF, and SO_REUSEADDR. |
| - Updated skip_files documentation to reflect the new default. |
| https://developers.google.com/appengine/docs/python/config/ |
| appconfig#Skipping_Files |
| - The ndb library now supports distinct queries. This is a Preview feature. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=229 |
| - Fixed an issue with Google Cloud Storage objects not being compatible across |
| various APIs on the dev_appserver. |
| - Fixed an issue with the namespace not being displayed when a user attempts |
| to select a namespace in the Admin Console. |
| https://code.google.com/p/googleappengine/issues/detail?id=8164 |
| - Fixed an issue in the Admin Console Logs page to correctly display 'Until' |
| instead of 'Since' for logs search criteria. |
| https://code.google.com/p/googleappengine/issues/detail?id=8659 |
| |
| PHP |
| =============================== |
| - Enabled the Mcrypt extension. |
| https://code.google.com/p/googleappengine/issues/detail?id=9332 |
| - Enabled the iconv extension. |
| https://code.google.com/p/googleappengine/issues/detail?id=9340 |
| - Enabled the mbstring extension. |
| https://code.google.com/p/googleappengine/issues/detail?id=9342 |
| - It is now possible to include/require files from Google Cloud Storage using |
| the google_app_engine.allow_include_gs_buckets ini setting. |
| - Basic support for url_stat() with Cloud Storage Streams is now provided. |
| This means that many standard filesystem functions such as is_file(), |
| is_readable(), is_writeable(), filesize(), etc now work with Cloud Storage |
| objects. |
| - Honor the default_stream_context for Google Cloud Storage streams when |
| writing new objects. |
| - Added deleteImageServingUrl() method to the CloudStorageTools class. |
| - The createGsKey() method of CloudStorageTools has been made private. |
| - Fixed a bug where $_SERVER['PHP_SELF'] was including the query string. |
| - App Engine now supports deployment of applications via the Git tool. Once you |
| complete the initial setup steps, you will be ready to deploy apps with the |
| same ease you push code to a git repository using |
| "% git push appengine master". This is a Limited Preview feature. You may |
| request access via the following link: |
| https://docs.google.com/a/google.com/forms/d/ |
| 1aLaAOZb_cXFiVqzLAMvPV9kh0FmvlLRUbwD-LBbLuUI/viewform |
| - Updated skip_files documentation to reflect the new default. |
| https://developers.google.com/appengine/docs/php/config/ |
| appconfig#Skipping_Files |
| - Removed the NotAllowedError, RedirectTooLongError, and UserNotFoundError |
| exception classes from the Users API. Their use is replaced by throwing a |
| UsersException or InvalidArgumentException as appropriate. |
| - Removed the Capability API. |
| - Fixed an issue with Google Cloud Storage objects not being compatible across |
| various APIs on the dev_appserver. |
| |
| Version 1.8.0 |
| =============================== |
| - The Mail API now allows attachments with .zip and .gzip extensions as long as |
| the archives do not contain entries with blacklisted extensions. |
| http://code.google.com/p/googleappengine/issues/detail?id=5933 |
| - New Billing Enabled apps will no longer default to an email quota of 20,000 |
| per day. Instead, apps will need to file a request through the admin console |
| to get email quotas increased. |
| - Admin console dashboard charts and reports for all users have been fully |
| migrated to the new, more reliable backend announced in 1.7.6. |
| - The maximum size of POST requests made through URLfetch has been increased |
| from 5MB to 10MB. |
| - Fixed an issue with the Mail API to prevent sending mail from a Google Apps |
| mail account that has been suspended. |
| https://code.google.com/p/googleappengine/issues/detail?id=6181 |
| - Fixed an issue with the admin handler of the new dev_appserver failing to |
| import appengine_config automatically. |
| |
| Version 1.7.7 |
| =============================== |
| - The Sockets API, which allows applications to make outgoing TCP connections |
| and send/receive UDP packets to the Internet using both IPv4 and IPv6, is now |
| available as an experimental feature for billed apps. |
| - The ftplib module is now restored. It depends on the experimental Sockets |
| API. |
| - Billing enabled apps will no longer be subject to a $2.10 minimum weekly |
| spend. Instead, apps will only be charged for their actual usage. |
| - Matplotlib 1.1.1, an experimental feature, is being deprecated and will be |
| removed in 1.7.8. Please switch to matplotlib 1.2.0. |
| - Fixed an issue where the dev_appserver Datastore auto ids assigned by the |
| scattered id policy were too large to be represented as floating point |
| numbers. |
| - Fixed an issue where the dev_appserver threw an exception on any Search API |
| call that used an index that was originally created as GLOBALLY consistent. |
| - Fixed an issue with NDB not serializing projection entities correctly. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=215 |
| - Fixed an issue with NDB not projecting structured properties correctly. |
| https://code.google.com/p/appengine-ndb-experiment/issues/detail?id=227 |
| - Fixed an issue with task queues failing to resolve backend addresses in |
| the new dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=5105 |
| - Fixed an issue with the Search API allowing multiple documents with no IDs |
| to be in one put request. |
| https://code.google.com/p/googleappengine/issues/detail?id=8553 |
| - Fixed an issue with sort by doc_id not translating correctly causing |
| InvalidRequest errors on the Search API. |
| https://code.google.com/p/googleappengine/issues/detail?id=8958 |
| - Fixed an issue with the Search admin UI where an Internal Server Error |
| was served. |
| https://code.google.com/p/googleappengine/issues/detail?id=9005 |
| - Fixed an issue with Prospective Search failing in the new dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9003 |
| - Fixed an issue with the new dev_appserver failing with ImportError. |
| https://code.google.com/p/googleappengine/issues/detail?id=9008 |
| - Fixed an issue with Sqlite3 being unable to open a database file in the new |
| dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9031 |
| - Fixed an issue with serving urls that contain unicode characters in the new |
| dev_appserver. |
| https://code.google.com/p/googleappengine/issues/detail?id=9040 |
| |
| Version 1.7.6 |
| =============================== |
| - The new and improved development appserver, which was previewed last release, |
| now becomes the default. The old development appserver has been renamed to |
| old_appserver.py and will remain available until the first release after |
| 1 July 2013 when it will be removed from the SDK. For more information, please |
| visit |
| http://developers.google.com/appengine/docs/python/tools/devserver |
| - A Go runtime has been added to the new and improved development appserver. |
| - The Debug log level for the runtime has been enabled. |
| - Improvements to the App Engine billing system will be rolled out gradually to |
| all apps. Fore more information, please visit |
| http://developers.google.com/appengine/docs/billing |
| - The application summary no longer displays the default version of a running |
| application, instead it lists the application as 'RUNNING'. In an upcoming |
| release applications will have multiple logical sub components, each of which |
| will have a default version. This UI update is meant to align with this |
| functionality. |
| - Projection queries are now a fully supported GA feature. |
| - The XMPP API now has multi-JID get_presence. This provides the ability to get |
| the availability of multiple users. |
| - Django 1.4 and Webob 1.2.3 are now promoted to GA. |
| - Apps now have the ability to fopen() files that are declared as static files |
| in app.yaml using the application_readable flag. |
| - The dev_appserver now allocates automatic ids using the 'scattered' id |
| allocation policy by default. For more information, please see "Specifying the |
| Automatic ID Allocation Policy": |
| https://developers.google.com/appengine/docs/python/tools/devserver#Using_the_ |
| Datastore |
| - Admin console dashboard charts and current load/errors reports will be moving |
| to a new, more reliable backend. The change will be gradually rolling to users |
| of admin console over the next few weeks. |
| - New Search API quotas are now displayed in the Admin Console. These quotas are |
| not currently enforced, but will be part of the pricing model for the Search |
| API in a future release. |
| - The experimental Search API's ability to explicitly sort search results by |
| SortExpression.RANK_FIELD_NAME (i.e. _order_id) field in ascending order has |
| been removed. |
| - Globally consistent indexes in the experimental Search API are now deprecated |
| and will be removed in the next release. |
| - Task Queue tasks may now be added and deleted asynchronously. This allows |
| applications to perform common task queue operations without blocking. This is |
| an experimental feature. |
| - In the experimental MapReduce framework, shards that encounter Files API |
| errors will retry three times before the entire job fails. |
| - Google Protocol RPC now supports deserializing and reserializing of unexpected |
| fields. |
| - A new Google Protocol RPC field type for supporting datetime values has been |
| added. For more information, please visit |
| https://developers.google.com/appengine/docs/python/tools/protorpc |
| - Fixed an issue which caused an incorrect server error message when setting the |
| default version on the admin console, though the version was set correctly. |
| - Fixed an issue where get_indexes() didn't correctly populate the namespace |
| when run from the new dev_appserver. |
| - Fixed an issue with the new dev_appserver failing on invalid login cookies. It |
| now uses type="email" for email in the login form. |
| https://code.google.com/p/appengine-devappserver2-experiment/issues/detail? |
| id=36 |
| - Fixed an issue with the new dev_appserver to have fix_sys_path add the |
| necessary libraries to sys.path making it now compatible with the testbed. |
| https://code.google.com/p/appengine-devappserver2-experiment/issues/detail? |
| id=45 |
| |
| Version 1.7.5 |
| =============================== |
| - New instance classes F4_1G and B4_1G are now available. These instances have |
| compute capacity equal to F4/B4 but with a maximum of 1G RAM instead |
| of 512MB. |
| - The Logs API stub now uses sqlite in the dev_appserver. Please note that the |
| --persist_logs flag is still needed in order for logs to be saved. |
| - The deprecated classes and functions AddError, AddResult, |
| ListIndexesResponse, ListResponse, RemoveError, RemoveResult, and |
| list_indexes were removed from the Search API in the SDK. If your app |
| references any of these classes or functions, you must deploy a new version |
| without these references before the next release of App Engine. If you do not |
| do this, your app may stop working in production. |
| - The Conversion API, which was decommissioned last release, has been removed |
| from the SDK. In a future release, the API will be removed from the runtime |
| and any attempt to import the library will raise an exception. Applications |
| in production that import the library should be fixed as soon as possible. |
| - Matplotlib v1.2.0 is now available as an experimental feature. |
| - Django 1.4 has been upgraded to 1.4.3. This is an experimental feature. |
| - We are including a preview of a new and improved version of our development |
| server. The new version is faster, provides more faithful support for |
| complex multi-threaded applications, has better support for Datastore and |
| supports more libraries. Try dev_appserver2.py in the SDK. This is an |
| experimental feature. For more information, please visit |
| http://code.google.com/p/appengine-devappserver2-experiment/ |
| - The Channel API now has the ability to send channel messages from any app |
| version or backend regardless of where the channel was created. |
| http://code.google.com/p/googleappengine/issues/detail?id=5123 |
| - The URL Fetch service now supports PATCH method requests. |
| http://code.google.com/p/googleappengine/issues/detail?id=6316 |
| - The Mail API can now send mail bounce notifications to the app. The |
| notification will be delivered to /_ah/bounce if mail_bounce inbound |
| services are enabled. |
| http://code.google.com/p/googleappengine/issues/detail?id=7451 |
| - The Blobstore service now returns the created filename instead of the blobKey |
| when using Cloud Storage |
| http://code.google.com/p/googleappengine/issues/detail?id=8337 |
| - Fixed an issue with os.urandom throwing an exception in dev_appserver2 when |
| using OS X. |
| http://code.google.com/p/appengine-devappserver2-experiment/issues/ |
| detail?id=23 |
| - Fixed an issue with time.tzset not existing in dev_appserver2 for Windows. |
| https://code.google.com/p/appengine-devappserver2-experiment/issues/ |
| detail?id=26 |
| |
| Version 1.7.4 |
| =============================== |
| - Background threads is now a GA feature. |
| - Traffic Splitting is now a GA feature. |
| - Task Queue Statistics is now a GA feature. |
| - Logs API now has the ability to fetch requests based on a list of |
| request_ids. Currently, this only works in production and is not supported |
| in dev_appserver. |
| - Python Interpreter has been upgraded to 2.7.3. |
| - WebOb 1.2.3 is now available for Python 2.7. Users using the undocumented |
| 1.2.2 should update their app, since that version will be removed in the |
| next release. |
| - DISTINCT for Datastore queries is now available as an experimental feature. |
| - Matplotlib v1.1.1 is now available as an experimental feature. |
| - The decommissioned Conversion API has been removed. |
| - Added a warning that the interactive console will be disabled if a user runs |
| dev_appserver with the --address flag. |
| - JSON properties are now restrictable to list or dictionaries in NDB. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=223 |
| - Users can now set how many columns can be viewed in the Datastore Viewer via |
| a drop-down menu which customizes the number of columns displayed. |
| http://code.google.com/p/googleappengine/issues/detail?id=8158 |
| - Fixed an issue with expandos throwing an error when containing nested |
| expandos in NDB. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=216 |
| - Fixed an issue with properties not being added to structured properties in |
| NDB. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=220 |
| - Fixed an issue with PyCrypto raising an ImportError when installing |
| globally into site-packages. |
| http://code.google.com/p/googleappengine/issues/detail?id=1627 |
| - Fixed an issue with PyCrypto not working with OSX 10.8 or Ubuntu Precise. |
| http://code.google.com/p/googleappengine/issues/detail?id=7925 |
| - Fixed an issue with backends.get_instance returning thread ID instead of |
| integer instance ID in production. |
| http://code.google.com/p/googleappengine/issues/detail?id=8338 |
| - Fixed an issue with Datastore Backup failing when a schema has a very large |
| number of properties. |
| http://code.google.com/p/googleappengine/issues/detail?id=8363 |
| - Fixed an issue with dev_appserver not reloading changed code. |
| http://code.google.com/p/googleappengine/issues/detail?id=8383 |
| - Fixed an issue with custom ordered queries not working using sqlite on the |
| dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=8390 |
| - Fixed an issue with users being unable to change Authentication Type after |
| app creation in the Admin Console. |
| http://code.google.com/p/googleappengine/issues/detail?id=8394 |
| |
| Version 1.7.3 |
| =============================== |
| - Django 1.4 is now supported in Python 2.7 |
| - The file-based implementation of the Datastore stub will be deprecated soon. |
| - A warning message informing users that SQLLite stub will be the default |
| stub soon is now displayed. |
| - Datastore Index stats now report type instead of representation-type. |
| - Rich sort expressions beyond single field names are now supported in the |
| Search API for dev_appserver. |
| - search.MIN_NUMBER_VALUE and search.MAX_NUMBER_VALUE are now public in the |
| Search API. |
| - Globally Consistent Indexes are now deprecated in the Search API. |
| - search.list_indexes() has been deprecated and replaced with |
| search.get_indexes() in the Search API. |
| - Index.list_documents() has been deprecated and replaced with |
| Index.get_range() in the Search API. |
| - Added method Index.get(doc_id) to get a document by its ID in the Search API |
| - Index.add() has been deprecated and renamed to Index.put() in the Search API. |
| - Index.remove() has been deprecated and renamed to Index.delete() in the |
| Search API. |
| - The AddDocumentError and RemoveDocumentError classes, which were already |
| deprecated, have been removed from the Search API. |
| - OperationCode.object_id and OperationCode.document_id, which were already |
| deprecated, have been removed from the Search API. |
| - Users can now change authentication options after app creation |
| http://code.google.com/p/googleappengine/issues/detail?id=483 |
| - Fixed an issue with Datastore backup/restore finalization steps only looking |
| at the default queue in Admin Console. |
| - Fixed an NDB issue with Structured Properties not converting dict properly. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=207 |
| - Fixed an NDB issue where multiple async transactions corrupt old |
| Datastore connections. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=209 |
| - Fixed an NDB issue with fetch() with offset > 1000 returning an empty list. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=210 |
| - Fixed an issue with 2 factor authentication not giving useful error messages. |
| http://code.google.com/p/googleappengine/issues/detail?id=8020 |
| - Fixed an issue in the Search API snippeting breaking if the field contains |
| a single word in dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=8171 |
| - Fixed an issue with PyCrypto AES cipher not running on dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=8188 |
| |
| Version 1.7.2 |
| =============================== |
| - Paid applications can now upload Static files and Code > 1GB. Additional |
| storage will be billed at $0.13/GB per month. Free applications will |
| continue to be provided 1GB of storage at no charge. Free quota will apply |
| per application. |
| - PyCrypto 2.6 is now a GA feature for Python 2.7 |
| - The Conversion API will be decommissioned soon. Developers using this API |
| will receive a warning message. Please find an alternative document |
| conversion/OCR service. |
| - You can now fetch Task Queue Statistics. This allows you to fetch |
| statistics and information about your task queue from within your |
| application. Statistics include information such as the number of tasks |
| in a queue, how many tasks were executed in the last minute and enforced |
| rate. This is an experimental feature. |
| - Added Timezone selection widget in Admin Console Admin Logs. |
| - Added a warning message about caching when modifying or deleting datastore |
| entities. |
| - Added a flush cache button to dev_appserver and Admin Console. |
| - Attempting to update multiple entity groups in a single transaction |
| in Datastore now throws an error suggesting to use XG transactions. |
| - Search API now has a string maximum length limit of 2000 characters. |
| - We now allow a user with multiple google accounts the ability to create an |
| app if they are an SMS verified user. |
| http://code.google.com/p/googleappengine/issues/detail?id=1419 |
| - A more useful error message now displays when a deployment fails |
| due to local date/time settings being improperly set. |
| http://code.google.com/p/googleappengine/issues/detail?id=2033 |
| - Cron Descriptions may now include non-ASCII characters. |
| http://code.google.com/p/googleappengine/issues/detail?id=2641 |
| - App Config Service Delete App Version Call Count quota raised to |
| 10,000/day. |
| http://code.google.com/p/googleappengine/issues/detail?id=2808 |
| - Queries with transactions are now supported in Remote API. |
| http://code.google.com/p/googleappengine/issues/detail?id=3643 |
| - There are now more descriptive error messages for Datastore Admin |
| deadline exceeded errors in stack trace. |
| http://code.google.com/p/googleappengine/issues/detail?id=5413 |
| - Replaced error code “Administrators cannot be removed right now” |
| with a more descriptive message. |
| http://code.google.com/p/googleappengine/issues/detail?id=7080 |
| - Fixed an issue with namespace dropdown in Admin Console appearing blank |
| even though the URL specified namespace is correct. |
| - Fixed an issue where Model.get_by_id() returns none in dev_appserver |
| whereas this is not allowed in production. |
| - Fixed an issue with dev_appserver app_identity.get_default_version_hostname() |
| - Fixed an issue with mail service sendToAdmins() failing when using |
| multi-arg message constructor. |
| - Fixed an issue with dev_appserver for mimetypes.guess_type() |
| - Fixed an issue with runtime failing to use scope with OAuth under certain |
| conditions. |
| - Fixed an issue with AppConfigNotFound error. |
| http://code.google.com/p/googleappengine/issues/detail?id=686 |
| - Fixed an issue with static path with + in dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=888 |
| - Fixed an issue with support for models with large numbers of properties in |
| Admin Console Dataviewer where previously the page would fail to render. |
| http://code.google.com/p/googleappengine/issues/detail?id=937 |
| - Fixed an issue with multi-line string property not editing correctly |
| in Dataviewer. |
| http://code.google.com/p/googleappengine/issues/detail?id=1725 |
| - Fixed an issue with URLFetch mimetools.Message parsing incorrectly. |
| http://code.google.com/p/googleappengine/issues/detail?id=2011 |
| - Fixed an issue with the behavior of Expires header in dev_appserver |
| http://code.google.com/p/googleappengine/issues/detail?id=2106 |
| - Fixed an issue with Content-Disposition header being removed if filename |
| contains utf-8 characters. |
| http://code.google.com/p/googleappengine/issues/detail?id=2212 |
| - Fixed an issue with incoming Mail API where encoded headers failed to |
| decode. |
| http://code.google.com/p/googleappengine/issues/detail?id=2288 |
| - Fixed an issue with non-ascii text displaying incorrect values |
| when posted by URL created by blobstore.create_upload_url() |
| http://code.google.com/p/googleappengine/issues/detail?id=2749 |
| - Fixed an issue with using sendmail in Mail API. |
| http://code.google.com/p/googleappengine/issues/detail?id=3106 |
| - Fixed an issue with appcfg.py cron_info giving the wrong timezone information. |
| http://code.google.com/p/googleappengine/issues/detail?id=3307 |
| - Fixed an issue with Paging link in Datastore viewer not working with # or & |
| http://code.google.com/p/googleappengine/issues/detail?id=3591 |
| - Fixed an issue with rounding errors in crop image transform on dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=3647 |
| - Fixed an issue with TypeError being incorrectly raised when attachment |
| has Character Set and Language Information. |
| http://code.google.com/p/googleappengine/issues/detail?id=3836 |
| - Fixed an issue with Mail API attachments in unicode failing |
| in_check_attachments() |
| http://code.google.com/p/googleappengine/issues/detail?id=3900 |
| - Fixed an issue with ereporter not reporting errors when applications |
| use namespaces. |
| http://code.google.com/p/googleappengine/issues/detail?id=4212 |
| - Fixed an issue with Dataviewer GQL stripping new lines after initial run |
| and a user paginates results. |
| http://code.google.com/p/googleappengine/issues/detail?id=4246 |
| - Fixed an issue with Python Unicode prefix in Datastore viewer. |
| http://code.google.com/p/googleappengine/issues/detail?id=4275 |
| - Fixed an issue with get_serving_url for images giving non-cacheable URLs |
| in dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=4402 |
| - Fixed an issue with fancy_urllib using squid proxy server with |
| authentication. |
| http://code.google.com/p/googleappengine/issues/detail?id=4849 |
| - Fixed an issue with custom admin page not displaying when restricted to |
| only admins. |
| http://code.google.com/p/googleappengine/issues/detail?id=5117 |
| - Fixed an issue with dev_appserver_import_hook.py handling Crypto import |
| accounts. |
| http://code.google.com/p/googleappengine/issues/detail?id=4612 |
| - Fixed an issue with Remote API gzip compression for transmitted data. |
| http://code.google.com/p/googleappengine/issues/detail?id=5298 |
| - Fixed an issue with remote API shell not having pwd in Python Path. |
| http://code.google.com/p/googleappengine/issues/detail?id=5317 |
| - Fixed an issue with Admin Console Logs < 30 minutes not being available. |
| http://code.google.com/p/googleappengine/issues/detail?id=5494 |
| - Fixed an issue with Apps that are using Mail API reporting |
| “No Provider for address type rfc822” error. |
| http://code.google.com/p/googleappengine/issues/detail?id=5769 |
| - Fixed an issue with concurrent write access to Datastore stubs. |
| http://code.google.com/p/googleappengine/issues/detail?id=6058 |
| - Fixed an issue with Viewers being able to prohibit code downloads. |
| http://code.google.com/p/googleappengine/issues/detail?id=6255 |
| - Fixed an issue with billing applications that are disabled. |
| http://code.google.com/p/googleappengine/issues/detail?id=6344 |
| - Fixed an issue with deploying to an existing version |
| when an app has 10 versions. |
| http://code.google.com/p/googleappengine/issues/detail?id=6803 |
| - Fixed an issue with bulkloader “model” class not uploading correctly. |
| http://code.google.com/p/googleappengine/issues/detail?id=6907 |
| - Fixed an issue with TextProperty in Datastore viewer. |
| http://code.google.com/p/googleappengine/issues/detail?id=6997 |
| - Fixed an issue with appcfg.py request_logs failing with ~oauth2 |
| http://code.google.com/p/googleappengine/issues/detail?id=7011 |
| - Fixed an issue with editing a bytestring field in Datastore viewer. |
| http://code.google.com/p/googleappengine/issues/detail?id=7046 |
| - Fixed an issue with dev_appserver clearing after restart. This is a |
| Windows only bug. |
| http://code.google.com/p/googleappengine/issues/detail?id=7244 |
| - Fixed an issue with Cron schedule failing on 1st day of month. |
| http://code.google.com/p/googleappengine/issues/detail?id=7286 |
| - Fixed an issue with gzip compression for application/plist content type. |
| http://code.google.com/p/googleappengine/issues/detail?id=7641 |
| - Fixed an issue with datetime.datetime.fromtimestamp() in python 2.7 |
| http://code.google.com/p/googleappengine/issues/detail?id=7819 |
| - A note about an upcoming change: starting with the 1.7.3 release |
| of App Engine, data statistics will report statistics on property type |
| usage by indexes using the documented property type names ("Integer", |
| "Key", etc, see |
| https://developers.google.com/appengine/docs/python/datastore/stats) |
| rather than the current property representation names ("INT64", |
| "REFERENCE", etc, see http://goo.gl/db5dT). This will affect the |
| __Stat_PropertyType__, __Stat_PropertyType_Kind__, |
| __Stat_PropertyType_PropertyName_Kind__ and their per-namespace equivalents. |
| This will also affect the displayed "Breakdown by Property Type" under the |
| "Datastore Statistics" in your application's console. |
| |
| Version 1.7.1 |
| =============================== |
| - The URLFetch API now supports multiple cookie headers. |
| http://code.google.com/p/googleappengine/issues/detail?id=3379 |
| - You can download 90 days worth of Usage Reports for your application from the |
| Billing History page of the Admin Console. |
| - Task Queue requests now include an X-AppEngine-TaskExecutionCount that counts |
| the number of times a task was run by an instance. |
| - Added support for multiple files to be deleted using the Files API. |
| - Added support to delete files from Google Cloud Storage using the Files API. |
| - Added a REQUEST_LOG_ID to be written in the logs and as an environment |
| variable. This can be used to later identifying that request in the |
| application logs. |
| - The Memcache Viewer now supports namespaces. |
| http://code.google.com/p/googleappengine/issues/detail?id=7245 |
| - The Mail API now supports the following headers for outgoing mail: List-Id, |
| List-Unsubscribe, On-Behalf-Of, Resent-Date, Resent-From, Resent-To. |
| http://code.google.com/p/googleappengine/issues/detail?id=2559 |
| http://code.google.com/p/googleappengine/issues/detail?id=7672 |
| - PyCrypto 2.6. is now supported in the Python 2.7 runtime. |
| http://code.google.com/p/googleappengine/issues/detail?id=7884 |
| - NDB now throws a BadProjectionError when trying to perform a projection query |
| on an unknown or unindexed property. |
| - NDB Tasklets use the namespace from when it was called, not the namespace from |
| when it is performed. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=190 |
| - NDB Properties' string representation size is limited to the max string |
| length for Blob and Text properties. |
| - Appstats provides an interactive shell for observing RPC behavior of calls |
| immediately. |
| - Appstats now contains information about the cost of the RPCs made during the |
| request. |
| - The Images API now supports specifying the default pixel color to fill in for |
| image types that don't support transparent images, such as JPEG. |
| - We've added full asynchronous API support in the Images API. |
| - Added an error to the Images API to indicate when a blob being referenced is |
| not found or not accessible. |
| - Made the Python search limits public in the Search API. |
| - Added namespace support for the Search API in the Python SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=7670 |
| - Added support in the Search API for simple sorting in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=7456 |
| - The Testbed testing framework now supports the Logservice API. |
| - Added support in the Files API to list Google Cloud Storage files. |
| - Improve the MapReduce File API Reader to support multiple files and file |
| formats. |
| - Fixed an issue with the App Engine satisfaction survey in the Admin Console |
| which was released in 1.6.6, which will be re-enabled in this release. |
| - Fixed an issue with Search API websafe cursors not being returned as a |
| websafe value. |
| - Fixed an issue where SearchRequest was returning errors that weren't |
| available as search.Error subclasses. |
| - Fixed an NDB issue where entities over 1000000 bytes where written to |
| memcache, causing failure. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=193 |
| - Fixed NDB AutoBatcher error handling. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=196 |
| - Fixed an issue where Appstats assuming all objects have a __class__ attribute |
| resulted in an error. |
| http://code.google.com/p/googleappengine/issues/detail?id=5668 |
| - Fixed an issue where there was unbalanced string quoting in Appstats |
| formatting. |
| http://code.google.com/p/googleappengine/issues/detail?id=5976 |
| - Fixed an issue where search indexes were not persisted in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=6791 |
| - Fixed an issue where an error in formatter.py in Appstats was being thrown. |
| http://code.google.com/p/googleappengine/issues/detail?id=7034 |
| - Fixed an issue in the SDK where the Search API did not support boolean queries |
| on a field. |
| http://code.google.com/p/googleappengine/issues/detail?id=7247 |
| - Fixed an issue where numeric and date comparators were not supported in the |
| Search API in the Python SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=7247 |
| - Fixed an issue where Appstats didn't show a detailed view of an RPC when using |
| the Python 2.7 runtime. |
| http://code.google.com/p/googleappengine/issues/detail?id=7558 |
| - Fixed a search issue where snippets failed to highlight when a capital letter |
| is used in a search term. |
| http://code.google.com/p/googleappengine/issues/detail?id=7665 |
| - Fixed an issue where the SDK Admin tool couldn't browse search indexes |
| containing unicode characters. |
| http://code.google.com/p/googleappengine/issues/detail?id=7791 |
| - Fixed an issue where traffic splitting by cookie was not working. |
| http://code.google.com/p/googleappengine/issues/detail?id=7813 |
| - Fixed an issue where RequestTooLargeError was being incorrectly thrown using |
| Python 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=7820 |
| - Fixed a memcache race condition. |
| http://code.google.com/p/googleappengine/issues/detail?id=7864 |
| - Fixed a Search issue in the SDK where a query that does not match all search |
| terms resulted in divide-by-zero. |
| http://code.google.com/p/googleappengine/issues/detail?id=7943 |
| |
| Version 1.7.0 |
| =============================== |
| - You can now configure your custom domain to serve HTTPS requests with App |
| Engine. You can choose either an SNI, VIP, or SNI and VIP configuration. SNI |
| costs $9/month for 5 certificates. A VIP costs $99/month. |
| https://developers.google.com/appengine/docs/ssl |
| - Premier customers now have the option to create applications to be served from |
| datacenters located in the European Union. |
| - Developers can configure their HRD app to use Google's PageSpeed Service, |
| which automatically speeds up serving of content for your application. The |
| PageSpeed Service costs $0.39/gigabyte in addition to the normal App Engine |
| bandwidth charges. |
| https://developers.google.com/appengine/docs/adminconsole/performancesettings#pagespeed |
| - The Search API now contains support for storing and searching on GeoPoints. |
| - The total size of all application versions is now limited to 1 GB. In the |
| future, you'll be able to purchase additional storage for your application |
| code. |
| - Logs API calls are now $.12/gigabyte for all data read from the Logs API over |
| the first 100MB. |
| - You can now specify a time frame of up to 1 year for the retention of your |
| application logs. All storage above 1 GB is billed based on the prices for |
| logs storage. |
| - You can now specify HTTP headers on static content for your application. |
| - The HRD Blob Migration tool is now generally available. |
| - After using the datastore backup utility, you can now restore that backup |
| to a new app id. |
| - It will not be possible to create new authorizations for M/S applications to |
| access Cloud SQL instances. |
| - You can now delete a Google Cloud Storage object using blobstore.delete(). |
| - You can now fetch a Google Cloud Storage object using blobstore.fetch(). |
| - You can now store keys for a Google Cloud Storage object in the datastore. |
| - The create_upload_url call now works for Google Cloud Storage objects. |
| - You can now use get_serving_url() and delete_serving_url() for Google |
| Cloud Storage buckets. |
| - Projection queries are now supported in NDB. |
| - In NDB, app and namespace are now keyword arguments to get_by_id(). |
| - Context().call_on_commit() added to NDB for adding a callback to be executed |
| upon successful commit of a transaction. |
| - NDB Context.memcache_* ops now accept unicode. |
| - NDB has added support for storing protorpc.Message objects. |
| - Improved error messaging for multiple repeated=True levels with |
| StructuredProperty in NDB. |
| - PyAMF is now fully launched. |
| - We've increased various Search API limits. New limits are a maximum of 1000 |
| documents returned from search() or list_documents(), a maximum of 1000 |
| indexes returned from list_indexes(), and a maximum offset of 1000 for |
| search() or list_indexes() |
| - Fixed an issue where the Search API did not enforce limits on NumberFields. |
| - Fixed an issue in the SDK where SortExpression did not enforce the |
| presence of a default_value set when required. |
| - Fixed an issue where lxml did not support unicode parsing. |
| http://code.google.com/p/googleappengine/issues/detail?id=7158 |
| - Fixed a javascript syntax error in the Admin Console. |
| http://code.google.com/p/googleappengine/issues/detail?id=7566 |
| - Fixed an issue in SDK admin viewer where a TemplateDoesNotExist error was |
| thrown when clicking on any Full-Text Search index. |
| http://code.google.com/p/googleappengine/issues/detail?id=7598 |
| - Fixed an issue in the Search API tab of the Admin Console where it threw an |
| error displaying non-ascii characters. |
| http://code.google.com/p/googleappengine/issues/detail?id=7601 |
| |
| Version 1.6.6 |
| =============================== |
| - On May 8, 2012 we released an experimental Search API. |
| http://googleappengine.blogspot.com/2012/05/looking-for-search-find-it-on-google.html |
| - The Admin Console now displays the quotas for Search API Calls and Search |
| Stored Data. |
| - The Search API has deprecated the order_id attribute on Document class. It has |
| been replaced with the rank attribute. |
| - The Search API has deprecated the document attribute on ListResponse and |
| replaced it with a result attribute. Also the document_id attribute on |
| OperationResult class is deprecated and replaced with the id attribute. |
| - Fixed an issue where unicode is not consistently handled in the Python Search |
| API. |
| - App creation for apps using the Master/Slave datastore is now restricted to |
| only those users who already own a Master/Slave app. |
| - Apps with billing enabled are now able to configure up to 100 cron jobs. |
| - Admin Console can no longer be included in an <iframe>. To prevent |
| clickjacking attacks on the Admin Console, we are now setting |
| X-Frame-Options: SAMEORIGIN. To read more about clickjacking, please read: |
| https://www.owasp.org/index.php/Clickjacking. |
| - The Admin Console will now periodically prompt administrators to take an |
| optional App Engine satisfaction survey. |
| - You can now use the third party PyAMF library with Python 2.7. This is |
| available as an experimental feature. |
| - For NDB, Rollback has been added to the default list of flow exceptions. |
| http://code.google.com/p/appengine-ndb-experiment/issues/detail?id=179 |
| - Fixed an issue where large datastore backups were unable to be deleted. |
| - Fixed an issue where datastore backups fail due to an ASCII decoding issue. |
| - Fixed an issue where the SDK did not import subpackages correctly when using |
| import hooks. |
| - Fixed an issue where running a projection query on a multi-valued property |
| with an equality filter did not return any results. |
| - Fixed an issue where unicode environment variables were dropped in Appstats |
| when using Python 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=6448 |
| - Fixed an issue where XG transactions did not work with the Remote API. |
| http://code.google.com/p/googleappengine/issues/detail?id=7238 |
| |
| Version 1.6.5 |
| =============================== |
| - You can now perform datastore queries that return a subset of your entity |
| properties with the same performance and cost of a keys-only query. This |
| feature is experimental. |
| - In the High Replication Datastore, there is a new metadata kind, |
| __entity_group__, that has a numeric __version__ property. This property is |
| guaranteed to increase on every change to the entity group. |
| - The Images API now supports manipulating objects hosted on Google Cloud |
| Storage. |
| - In the Images API, the get_serving_url call now optionally allows you to |
| specify if the URL you are generating should be served over https. |
| - In the Task Queue REST API, you can now specify a tag when you insert a task |
| on a Pull Queue. |
| - In the Task Queue API, you can specify a deadline for the lease_tasks call. |
| The default deadline has been increased from 5 seconds to 10 seconds. |
| - You can now use cron to schedule Datastore backups. |
| - The Datastore Admin now has a page that displays information on the status of |
| your Datastore backups and restores. |
| - You can now abort your Datastore backup or restore from the Datastore Admin. |
| - You can now restore a single Datastore Kind from the Datastore Admin from a |
| Datastore backup. |
| - In the Admin Console, you can report production issues with your application |
| directly to Google from the application's pages. Simply click the "Report |
| Production Issues" link, fill out the requested information, and submit. |
| - All user requests have X-AppEngine-Region, X-AppEngine-City, and |
| X-AppEngine-CityLatLong headers which contain location information based on |
| the IP address of the client request. For a full description of these headers, |
| see: |
| https://developers.google.com/appengine/docs/python/runtime#Request_Headers |
| - We have added support for concurrent transactions to @db.transactional and |
| db.run_in_transaction_options() along with other transaction propagation |
| options. |
| - We've introduced an experimental new Mac Installer that only supports Python |
| 2.7. |
| - In your app.yaml file, you can include an env_variables stanza that will set |
| the given environment variables in your application's runtime. |
| - Jinja2 now includes the _debugsupport module. |
| - Fixed an issue with the dev_appserver where it defaulted the HTTP |
| Content-Type of a request to text/plain instead of text/html. |
| - Fixed an issue where the SDK would include some indexes that were not needed |
| in production. |
| - Fixed an issue in the SDK where the SDK admin console would not display utf-8 |
| encoded list property values. |
| http://code.google.com/p/googleappengine/issues/detail?id=7079 |
| |
| Version 1.6.4 |
| =============================== |
| - Billed applications that have specified additional logs retention over 1 GB |
| are now being charged for that storage at $0.24/GB/month (the first gigabyte |
| of logs storage is free). All logs beyond an application's specified storage |
| limit will be deleted. Please examine your Application Settings page to verify |
| you are retaining the desired amount of logs. |
| - Datastore statistics now show the amount of storage used by application |
| indexes. |
| - We have released an experimental utility for migrating your application's |
| blobs at the same time you migrate your datastore data. You can opt-in to |
| blob migration in the Admin Console when you start your migration. |
| - We have updated the experimental Backup/Restore functionality to include |
| the option to backup and restore to Google Cloud Storage. |
| - The NDB datastore API is now generally available. For full release notes |
| on the version 0.9.9 and 1.0.0 fixes that have been integrated into the |
| API see: |
| http://code.google.com/p/appengine-ndb-experiment/source/browse/RELEASE_NOTES?name=sandbox |
| - In the Python 2.7 runtime, Background threads are available as an |
| experimental release when using App Engine backends. |
| - Using the Blobstore API's send_blob() method, your application can serve |
| objects hosted on Google Storage for Developers. |
| - The Admin Console now provides a Memcache viewer that lists Memcache stats and |
| can display Memcache content based on key. |
| - In the Capabilities API stub in the SDK, you can now enable or disable |
| a capability using SetPackagedEnabled. |
| - The Windows installer now prompts to install Python 2.7 instead of |
| Python 2.5. |
| - The Testbed API now supports the Capabilities API. |
| - GQL queries in the Admin Console no longer throw an error when a trailing |
| semi-colon is included. |
| - The Datastore API now includes a NonTransactional decorator to ensure that |
| a function is run outside of a transaction. Existing transactions are paused |
| while the function is executing. |
| - The Datastore Admin tab in the Admin Console now shows entities from every |
| namespace. |
| http://code.google.com/p/googleappengine/issues/detail?id=3962 |
| - Fixed an issue with _strptime when threadsafe was specified. |
| http://code.google.com/p/googleappengine/issues/detail?id=6489 |
| - Fixed an issue where DatastoreFileStub.__del__ fails on tempfile.msktemp. |
| http://code.google.com/p/googleappengine/issues/detail?id=6749 |
| - WebOb 1.1.1 is now included in the SDK, and used by default there when |
| Python 2.7 is specified. |
| http://code.google.com/p/googleappengine/issues/detail?id=7014 |
| - Fixed an issue where the index.yaml file was cleared if your skip_files entry |
| differs from the default skip_files list. |
| http://code.google.com/p/googleappengine/issues/detail?id=7031 |
| |
| Version 1.6.3 |
| =============================== |
| - In the Admin Console, you can use new the Traffic Splitting feature to send a |
| certain percentage of traffic to a non-default application version. The |
| traffic is split by either cookie or IP address. |
| - Emails that are sent from Google Apps domains email addresses where the domain |
| has been set up to use DKIM will be signed: when an email was from a request |
| that originated on that app's domain or any time the email was sent from |
| an app adminstrator, including when that email is sent from a cron job or task |
| queue request. |
| - In the Admin Console, you can now choose how much and how long you'd like to |
| store logs. All apps get 1G for free and eventually will be able to pay for |
| more, while the amount can be increased this release we won't start charging |
| for the additional capacity until the next release at the earliest. |
| - The instances screen in the Admin Console now has a button to shut down |
| a specific instance. |
| - Each application log has a link to the instance that served the request. If |
| the instance is no longer serving requests, a message will be displayed. |
| - The TaskQueue API now supports the ability to tag a Pull Queue task. You may |
| then lease tasks by tag. This feature is experimental. |
| - Using Google Apps wildcard domain mappings, you can access alternate |
| versions of your app via a custom domain. |
| - Push and Pull Queues are now listed separately in the SDK development console. |
| - Developer documentation for the experimental NDB API, the replacement for |
| db.py, is now available. |
| - Appcfg now supports OAuth2. |
| - webapp 2.5.1 is now available in the Python 2.7 runtime. |
| - Django 1.3 is now available in the Python 2.7 runtime. |
| - GQL Query now supports custom type casting for list elements for "IN" filters. |
| - Fixed an issue where StringProperty's validate() didn't check the 500 byte |
| limit. |
| http://code.google.com/p/googleappengine/issues/detail?id=4030 |
| - Fixed an issue where the datastore admin didn't work with Federated Login. |
| http://code.google.com/p/googleappengine/issues/detail?id=4111 |
| - Fixed an issue in the SDK where failing to call _RemoveTxn in the |
| datastore_stub_util caused a memory leak: |
| http://code.google.com/p/googleappengine/issues/detail?id=6157 |
| - Code that inherits from the deferred library's TaskHandler can now define |
| custom handling of exceptions. |
| http://code.google.com/p/googleappengine/issues/detail?id=6478 |
| - Fixed an issue where logging in the SDK was broken in Windows 7 using |
| Python 2.7.2. |
| http://code.google.com/p/googleappengine/issues/detail?id=6756 |
| - Fixed an issue in the SDK where the Conversion API call limited was limited |
| to 1 MB when the production limit is 2 MB. |
| http://code.google.com/p/googleappengine/issues/detail?id=6794 |
| - Fixed an issue so that a deferred task retries like a push queue task when |
| using the SingularTaskFailure exception: |
| http://code.google.com/p/googleappengine/issues/detail?id=6412 |
| |
| |
| Version 1.6.2 |
| =============================== |
| - The Admin Console Datastore Admin has added experimental backup and restore |
| functionality. The job occurs within your application and counts against your |
| application quota, including Instance Hours, Datastore Ops and Datastore |
| Storage. |
| - Developers can now specify how long a channel token will last until it |
| expires, with the default remaining two hours. Channel API quota is now |
| measured both in calls to create a channel and the number of hours of channel |
| time requested. The maximum hours of quota is the maximum number of channel |
| creation calls * 2, so free apps get 200 hours of requested channel token |
| time. |
| - Python Django now work with Cloud SQL without additional configuration. For |
| further information see https://developers.google.com/cloud-sql/. |
| - Task Queue API requests now include a X-Appengine-TaskETA header, that can be |
| used to measure task delivery latency. |
| - The default API deadlines for Blobstore API calls have been raised to 15s for |
| online and 30s for offline requests, up from 5s. |
| - The Images API now allows you to stretch an image without maintaining the |
| aspect ratio. |
| http://code.google.com/p/googleappengine/issues/detail?id=2220 |
| - The Blobstore API now includes the asynchronous function calls |
| create_upload_url_async, delete_async, and fetch_data_async. |
| - Django version 1.3 is now available in the Python 2.5 runtime. |
| - We've added a django_wsgi builtin to allow easier bootstrapping of Django |
| applications. |
| - Mail Quota for App Engine apps that have signed up for billing will only be |
| increased after the first payment for the app is processed. |
| - As announced in 1.6.1, in this release for the experimental Python 2.7 |
| runtime, the mapreduce and datastore_admin builtins are not available to apps |
| deployed to Python 2.7. |
| - Fixed an issue with remote_api where calling fetch_page() with a page size |
| of 301 and chaining the calls through the returned cursor was skipping half |
| of the results. |
| - Fixed an issue where the PIL _imagingmath module was not available in Python |
| 2.7. |
| - Fixed an issue where the SDK did not resize images down to 512 pixels by |
| default, as it does in production. |
| - Fixed an issue with the Images API where valid images were returning a |
| NotImageError. |
| http://code.google.com/p/googleappengine/issues/detail?id=5545 |
| - Fixed an issue where the SDK didn't start when using Python 2.7 and the |
| --backends flag. |
| http://code.google.com/p/googleappengine/issues/detail?id=6187 |
| - Fixed an issue where Jinja2 was not included in the SDK for use with Python |
| 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=6265 |
| - Fixed an issue with the sql datastore stub in Python 2.7 where the sqlite |
| module no longer accepted strings with non-ASCII characters. |
| http://code.google.com/p/googleappengine/issues/detail?id=6290 |
| - Fixed an issue where gzip did not work with Python 2.7 in the dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=6324 |
| - Fixed an issue where urllib2 did not work with Python 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=6567 |
| - Fixed an error in the Datastore Viewer where an error was thrown when viewing |
| an Entity which defines an index with no properties. |
| http://code.google.com/p/googleappengine/issues/detail?id=6600 |
| - Fixed an issue where transactional tasks were not enqueued in the SDK when |
| running in high_replication mode. |
| http://code.google.com/p/googleappengine/issues/detail?id=6669 |
| |
| Version 1.6.1 |
| =============================== |
| - You can now configure Frontend Instance Classes from your Admin Console's |
| application settings page. Three classes are available, with increasing |
| memory, CPU limits, and associated cost. By default, all applications use the |
| basic frontend instance setting of 128MB memory and 600MHz CPU. |
| - We've added new functionality to the Log API that will allow you to read your |
| application's logs programmatically. |
| - We are releasing an experimental Conversion API that will allow you to convert |
| between document types including .doc, .html, .pdf, images using OCR, and |
| more. |
| - The High Replication Datastore migration utility is now available as a GA |
| feature, and is no longer experimental. |
| - The ext.db API query functions (run, fetch, count, get) now accept the keyword |
| arguments: deadline, read_policy, prefetch_size, batch_size, limit, offset, |
| start_cursor, end_cursor, keys_only. It is recommended that developers use |
| Query.run() with a limit or batch_size instead of Query.fetch() when iterating |
| over results. |
| - The ext.db API model functions (get, put, delete, allocate_ids) now directly |
| accept the keyword arguments: deadline, read_policy |
| - The Blobstore API now supports the multiple="true" attribute to the HTML input |
| tag. |
| - Fixed an issue logging unicode objects in the SDK. |
| - Fixed an issue with the dev_appserver where HTTP HEAD always returned |
| content-length: 0. |
| http://code.google.com/p/googleappengine/issues/detail?id=2000 |
| - Fixed an issue in the SDK where importing Crypto.Util.Counter caused an |
| ImportError. |
| http://code.google.com/p/googleappengine/issues/detail?id=4168 |
| - Fixed an issue where the SDK didn't work with virtualenv. |
| http://code.google.com/p/googleappengine/issues/detail?id=4339 |
| - Fixed an issue where cached static files served to IPs on the DoS blacklist |
| consumed bandwidth quota. |
| http://code.google.com/p/googleappengine/issues/detail?id=4607 |
| - Fixed an issue that was causing slow serving of requests in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=6005 |
| - Fixed an issue where the Channel API didn't work in the SDK with Python 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=6267 |
| - Fixed an httplib compatibility issue between Python 2.5 and Python 2.7 in the |
| SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=6271 |
| - Fixed an issue where queries larger than 1MB didn't work with Python 2.7. |
| http://code.google.com/p/googleappengine/issues/detail?id=6282 |
| - Fixed an error in the SDK on first page load for a handler. |
| http://code.google.com/p/googleappengine/issues/detail?id=6302 |
| - Fixed an issue in the SDK that caused slowness due to app's logs being written |
| to the datastore. Set the --persist_logs flag in the SDK if you are using the |
| Logservice API to read logs. |
| http://code.google.com/p/googleappengine/issues/detail?id=6355 |
| - WARNING: Starting with the 1.6.2 release of the experimental Python 2.7 |
| runtime, the mapreduce and datastore_admin builtins will not be supported. |
| |
| Version 1.6.0 |
| =============================== |
| - On November 7th, App Engine will be out of Preview. The new Terms of Service |
| and previously announced pricing changes will be in effect. Additionally, all |
| paid apps are now covered by our SLA. |
| http://code.google.com/appengine/docs/billing.html |
| - Paid apps can now specify the maximum pending latency for instances and the |
| minimum number of idle instances for your application in the Admin Console. |
| - Task Queue storage has been separated in to its own line item. Previously, |
| this was included in Datastore storage. |
| - We have released an experimental utility, available in the Admin Console, to |
| assist in migrating your application to the High Replication datastore. This |
| utility allows you to copy the bulk of your data in the background, while the |
| source application is still serving. You then need a brief read-only period to |
| migrate your application data while you copy the data that has changed from |
| the time the original copy started. |
| - Blobstore, which was previously limited to apps with billing enabled, is now |
| available for all apps. |
| - We have published a new article on Datastore Index Selection and Advanced |
| Search which explains our recent improvements to the query planner that make |
| exploding indexes unnecessary. |
| http://code.google.com/appengine/articles/indexselection.html |
| - Applications can now receive xmpp error stanzas at /_ah/xmpp/error. |
| - In the Admin Console data viewer, you can now filter by namespace from a drop |
| down menu, if applicable. |
| - In the Admin Console's Datastore Statistics, we now offer namespace suggest |
| for filtering stats. |
| - We have released as experimental the full MapReduce framework. |
| - The SDK now supports Python 2.7. |
| - Python 2.7 now supports WebOb 1.1.1, which has some significant bug fixes. |
| Applications that explicitly set the "webob" version to "1.1" in their |
| app.yaml files must update the version to "1.1.1". |
| - The mail_stub.get_sent_messages() call now returns EmailMessage instances. |
| - Fixed an issue when setting an initial_value in memcache.incr unexpectedly |
| returned a string. |
| http://code.google.com/p/googleappengine/issues/detail?id=2012 |
| - Fixed an issue where DoS stats in the Admin Console didn't work for High |
| Replication apps. |
| http://code.google.com/p/googleappengine/issues/detail?id=5237 |
| - WARNING: Starting with 1.6.1 (our next release, NOT this release), URLFetch |
| requests will honor the Accept-Encoding header. If your code sets this header |
| then it must be prepared to receive content of the specified type. For more |
| information please see |
| http://code.google.com/p/googleappengine/issues/detail?id=4978 |
| |
| Version 1.5.5 |
| =============================== |
| - Python 2.7 is now available as an experimental runtime for all applications |
| using the High Replication Datastore. To upload your app to the Python 2.7 |
| runtime, change the runtime argument in your app.yaml to python27. Note that |
| the dev_appserver does NOT work with Python 2.7 - you must deploy your |
| application in order test it. |
| - We have increased the number of files you can upload with your application |
| from 3,000 to 10,000. |
| - We have increased the size limit for a single file uploaded to App Engine from |
| 10MB to 32MB. |
| - We have increased the Frontend request deadline from 30 seconds to 60 seconds. |
| - We have increased the online URLFetch maximum deadline from 10 seconds to 60 |
| seconds. The default deadline remains at 10 seconds. The offline maximum deadline |
| for URLFetch remains at 10 minutes. |
| - We have increased the URLFetch Post payload from 1MB to 5MB. |
| - App Engine now supports Cross Group (XG) transactions with the High |
| Replication Datastore, which allow you to perform transactions across |
| multiple entity groups. |
| http://code.google.com/appengine/docs/python/datastore/transactions.html |
| - We have released an experimental API that can write to Google Storage for |
| Developers directly from App Engine. |
| http://code.google.com/appengine/docs/python/googlestorage/overview.html |
| - We have added a graph to the admin console that displays the number of |
| instances for which you will be billed. |
| - In the XMPP API, get_presence() is deprecated in favor of using the inbound |
| presence handlers documented in |
| http://code.google.com/appengine/docs/python/xmpp/overview.html#Handling_User_Presence. |
| - The Task Queue API 'target' parameter now accepts a new value, |
| taskqueue.DEFAULT_APP_VERSION, which will send the task to the default |
| frontend version, rather than the version or backend where the 'add' method is |
| being called. |
| - In the URLFetch API, make_fetch_call() now returns an RPC object. |
| - Fixed an issue in the Admin Console where the "Run Now" button did not work |
| for tasks with a '-' in the name. |
| - Fixed an issue where the SDK did not decode Base64 encoded blobs. |
| - Fixed an issue to provide a better error message when using the Mail API to |
| send email to an invalid user address. |
| - Fixed an issue in the SDK where a skip_files entry caused an ImportError when |
| the library was located elsewhere in the PYTHONPATH. |
| - Fixed an issue in the SDK index viewer where the arrows indicating whether a |
| query was ascending or descending were not properly rendered. |
| - Fixed an issue where httplib did not support the deadline argument for |
| URLFetch calls. |
| http://code.google.com/p/googleappengine/issues/detail?id=2216 |
| - Fixed an issue where you could not schedule a cron job to run every 100 |
| minutes. |
| http://code.google.com/p/googleappengine/issues/detail?id=5243 |
| - Fixed an issue in the SDK where failed tasks retried immediately instead of |
| waiting for 30 seconds. |
| http://code.google.com/p/googleappengine/issues/detail?id=5587 |
| - Fixed an issue making it possible to modify request headers using the deferred |
| library. |
| http://code.google.com/p/googleappengine/issues/detail?id=5861 |
| |
| Version 1.5.4 |
| =============================== |
| - You can now specify the maximum size for a blob in create_upload_url(). |
| - Zigzag merge join queries will now continue scanning up to the 30 second |
| Datastore query deadline. For zigzag queries that used to generate NeedIndex |
| errors, many will now succeed. A small percentage will now instead timeout. |
| - The SDK datastore viewer in the dev console now displays the number of "Write |
| Ops" for each entity. "Write Ops" are the total number of entity and index |
| writes that were required to create the entity. |
| - Added API functionality for making calls to the Memcache API asynchronously. |
| - Fixed an issue that incorrectly allowed creation of tasks with whitespace in |
| the url. |
| - Fixed the error message for "transaction not found" to be more descriptive. |
| - Fixed an issue where blobstore uploads didn't work in the SDK with the |
| -a 0.0.0.0 flag set. |
| - Fixed an issue where --dry_run was broken for upload_data in bulkload.py. |
| - Fixed an issue where db.Model().to_xml() incorrectly updated auto-updating |
| properties. |
| http://code.google.com/p/googleappengine/issues/detail?id=322 |
| - Fixed an issue where the SDK didn't expand the '~' in a file path. |
| http://code.google.com/p/googleappengine/issues/detail?id=522 |
| - Fixed an issue where is_saved() wasn't valid after db.Model.__init__. |
| http://code.google.com/p/googleappengine/issues/detail?id=844 |
| - Fixed an issue where GQL IN queries with an empty list returned all entities. |
| http://code.google.com/p/googleappengine/issues/detail?id=932 |
| - Fixed an issue where the SDK's sqlite stub did not handle cursors on |
| descending queries correctly. |
| http://code.google.com/p/googleappengine/issues/detail?id=3121 |
| - Fixed a typo in the SDK's Datastore Stats generator message. |
| http://code.google.com/p/googleappengine/issues/detail?id=5425 |
| |
| Version 1.5.3 |
| ============================= |
| - We've removed the limit on the size of blob uploads using the Blobstore API. |
| - You can now send emails with any attachment extension that is not included on |
| the email attachment extension blacklist. |
| - Added a db.get_indexes() method to retrieve an application's indexes and |
| their corresponding states. |
| - The dev_appserver has been updated to understand the reduced index |
| requirements of the 1.5.2 datastore query planner changes. |
| - The Datastore Admin functionality can now be enabled directly in the Admin |
| Console. |
| - Added cas(), the compare-and-set function, to the Memcache API. |
| http://code.google.com/p/googleappengine/issues/detail?id=2139 |
| - Added a set_default_fetch_deadline to the URLFetch API which sets the |
| URLFetch deadline globally. |
| - Added app_identity api with methods to get the application id, default |
| hostname, and service accounts for asserting identity on outbound HTTP calls. |
| http://code.google.com/appengine/docs/python/appidentity/overview.html |
| - Added an improved HRD migration tool that requires a read-only period relative |
| to your datastore write rate (as opposed to your datastore size, which is how |
| the current version behaves). The tool is not yet generally available. If you |
| are interested in being an early adopter please fill out this form: |
| http://goo.gl/3jrXu |
| - Fixed an issue in the Channel API where jsapi was not served with the correct |
| mime type. |
| - Fixed an issue that broke use_library when the Python SDK was located in a |
| directory that contained the word 'django'. |
| - Fixed an issue where blobs could not be uploaded using HTTPS. |
| - Fixed an issue where GQL didn't allow querying for valid kind names |
| containing '.', '-', and ':' by supporting quoted identifiers. |
| http://code.google.com/p/googleappengine/issues/detail?id=2584 |
| |
| Version 1.5.2 |
| ============================= |
| - You can now specify the minimum pending latency for instances and the maximum |
| number of idle instances for your application in the Admin Console. |
| - The datastore now never requires an exploding index. |
| http://code.google.com/appengine/docs/python/datastore/queries.html#Big_Entities_and_Exploding_Indexes |
| - The SDK will now never suggest indexes with the same property repeated, as |
| such indexes are likely to be exploding indexes. |
| - The SDK now supports multiple concurrent transactions. |
| - Datastore stats are now available on a per-namespace basis. |
| - The queue details page in the Admin Console now contains request header |
| details, previous run information, and a task payload viewer. |
| - You can modify the lease on a task leased from a pull queue using the |
| modify_task_lease() method. |
| - Pull Task maximum size has been increased to 1MB. |
| - You can now update the number of available backend instances without needing |
| to first stop the backend using the "backend configure" appcfg.py directive. |
| - You can now set the "References" and "In-Reply-To" headers with the Mail API. |
| http://code.google.com/p/googleappengine/issues/detail?id=2802 |
| - The SDK "application" environment variable will now be prefixed with dev~. |
| The new preferred way of retrieving your app id is to use |
| appidentity.get_application_id(). The --default_partition flag can be used |
| for applications whose code relied on a specific environment variable. |
| - In the Deferred API, defer() now accepts the _target parameter. |
| - Added a to_dict() function to db.py which converts a model to a dictionary. |
| - Added a get_original_metadata() method to the Images API to extract EXIF |
| information from images. |
| http://code.google.com/p/googleappengine/issues/detail?id=4133 |
| - Added an @transactional decorator to db.py for functions that should |
| always be run in a transaction. |
| - Fixed an issue in the SDK where the Deferred API did not work when using |
| the --backends flag. |
| http://code.google.com/p/googleappengine/issues/detail?id=5072 |
| |
| Version 1.5.1 |
| ============================ |
| - ProtoRPC is a new experimental library that provides a simple method for |
| creating a well-defined and easy-to-use web-based RPC service. |
| - The development server's datastore implementation now contains logic that |
| closely replicates the consistency guarantees of the High Replication |
| datastore. To use, run the dev_appserver with the flag --high_replication set |
| to True. |
| - All user request have an X-AppEngine-Country header which contains the |
| ISO-3166-1 alpha-2 country code for the user, based on the IP address of the |
| client request. |
| - The Channel API can now provide user presence, this can be configured by |
| adding channel_presence to the list of inbound services for your application. |
| - The Images API now supports the WebP format. Due to limitations in PIL, the |
| SDK does not support the WebP format. |
| - You can switch the timezone for App Engine logs in the Admin Console. |
| http://code.google.com/p/googleappengine/issues/detail?id=734 |
| - Fixed an issue in the SDK where leased tasks had the POST method. They now |
| have a PULL method. |
| - Fixed an issue where the Channel API didn't work with non-default versions of |
| applications using the High Replication datastore. |
| - When displaying corrupt data in the Admin Console dataviewer, a useful error |
| will be displayed, instead of a 500. |
| http://code.google.com/p/googleappengine/issues/detail?id=4945 |
| |
| Version 1.5.0 |
| ============================== |
| - Support for Backends which allow developers to create infrastructure |
| components that complement the existing dynamic apps that App Engine already |
| provides. Instances of a backend can maintain state, be addressed |
| individually, and are not subject to per-request time limits. They can also be |
| configured to consume more memory and CPU than ordinary dynamic instances. |
| - Task Queues support pull mode, allowing for more control over task queue work |
| rates. To use pull queues, include the 'mode' argument in your queue.yaml. |
| - Pull queues are supported by a REST API, allowing access from outside App |
| Engine. To use the REST API, you must also include a valid ACL section |
| specifying which users can lease tasks from the pull queue. |
| - Task Queue payload limits have been increased. Queues support 100KB per task. |
| Within App Engine, the new limit is 32 MB per batch of tasks. With the REST |
| API the limit is 1 MB per batch. |
| - HTTP request and response sizes have been increased to 32 MB. |
| - We have removed the rate quotas for requests, datastore operations, |
| memcache operations, and image API operations. Resource quotas still apply. |
| - When creating new applications, developers will now see the High Replication |
| Datastore as the default configuration option. Developers that still wish to |
| use the Master/Slave configuration must explicitly choose this option at |
| application creation time. |
| - The Task Queue maximum configurable processing rate has been increased to |
| 500/s. |
| - We have added two restrictions to the Mail API to improve the reliability |
| of the service for all applications. |
| - Emails must be sent from email accounts managed by Google (either Gmail or |
| a domain signed up for Google Apps). |
| - Reduced the number of free recipients per day from 2000 to 100 for new |
| applications. |
| - All application Owners, as listed in the Admin Console, can download the app's |
| code, unless code download is disabled for the application. |
| - Added db.py support for making calls to the datastore asynchronously. |
| Available functions are get_async(), put_async(), delete_async(), |
| allocate_ids_async(). Call get_result on the return value of asynchronous |
| datastore functions to block on the call. |
| - Metadata queries can now get all namespaces, kinds, and properties in a given |
| range. |
| - The Testbed API now supports the Channel API. |
| - Users can provide Django settings to be loaded in webapp's django_setup. |
| - Modified Dashboard latency graphs to indicate they only include dynamic |
| requests. |
| - Fixed an issue where metadata queries did not support unicode characters. |
| - Fixed an issue where HTTP headers could contain new line characters. |
| - A warning message is shown when the Python version used to run the SDK is |
| different than the Python version used in production. |
| - Fixed an issue with Federated Users causing the Admin Console dataviewer to |
| fail. |
| http://code.google.com/p/googleappengine/issues/detail?id=384 |
| - MacOS and Windows style newlines are now supported for logging in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=560 |
| - Fixed an issue where sending mail with smtp_host set did not work. |
| http://code.google.com/p/googleappengine/issues/detail?id=626 |
| - Fixed the file permissions for appinfo_errors.py and appinfo.py in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=725 |
| - Fixed an issue deploying an app with version set to 0. |
| http://code.google.com/p/googleappengine/issues/detail?id=735 |
| - Fixed an issue where the SDK allowed GET or DELETE with a body, which does |
| not work in production. |
| http://code.google.com/p/googleappengine/issues/detail?id=983 |
| - Fixed an issue where URLFetch/urllib did not work with MacOS and |
| Python 2.6.0-2.6.3. |
| http://code.google.com/p/googleappengine/issues/detail?id=985 |
| - Fixed the an issue in the SDK where the mail body was incorrectly generated |
| when the sendmail option was enabled. |
| http://code.google.com/p/googleappengine/issues/detail?id=1061 |
| - Fixed an issue in the SDK dataviewer where editing a ListProperty(db.Category) |
| resulted in a BadValueError. |
| http://code.google.com/p/googleappengine/issues/detail?id=1139 |
| - Fixed an issue in the SDK where the signal module could be imported, as it |
| is not supported. |
| http://code.google.com/p/googleappengine/issues/detail?id=1150 |
| - Improved support for reserving an app id that is a canonicalized version of |
| a user's Gmail address. |
| http://code.google.com/p/googleappengine/issues/detail?id=1196 |
| - Added a more useful error messages for unavailable App Ids. |
| http://code.google.com/p/googleappengine/issues/detail?id=1303 |
| - The SDK now uses hashlib instead of sha. Python 2.4 is no longer supported. |
| http://code.google.com/p/googleappengine/issues/detail?id=1334 |
| - Fixed an issue where images.composite() did not support PNG transparency in |
| the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=1417 |
| - Added better error messages for cron.yaml parsing. |
| http://code.google.com/p/googleappengine/issues/detail?id=1490 |
| - Fixed an issue where uploading an index.yaml file with DOS line endings |
| caused an error. |
| http://code.google.com/p/googleappengine/issues/detail?id=1548 |
| - Fixed an issue where unicode characters in a script caused an error. |
| http://code.google.com/p/googleappengine/issues/detail?id=1675 |
| - Task Queue names can now include the "_" character. |
| http://code.google.com/p/googleappengine/issues/detail?id=1723 |
| - The sender of an email is no longer BCC'd when they are already included in |
| the email. |
| http://code.google.com/p/googleappengine/issues/detail?id=1907 |
| - Fixed an issue where non-string types were interpreted as strings when |
| parsing the index.yaml file. |
| http://code.google.com/p/googleappengine/issues/detail?id=2158 |
| - Image API now supplies image format. |
| http://code.google.com/p/googleappengine/issues/detail?id=2308 |
| - Fixed webapp.request.get_range to work with default=None. |
| http://code.google.com/p/googleappengine/issues/detail?id=2363 |
| - Added a more helpful error message when trying to send email to a malformed |
| address. |
| http://code.google.com/p/googleappengine/issues/detail?id=2386 |
| - The SDK now returns an error if the Content-length header is not included in a |
| post request, matching production. |
| http://code.google.com/p/googleappengine/issues/detail?id=2512 |
| - Fixed an issue using URLFetch to fetch pages where the URL contained unicode. |
| http://code.google.com/p/googleappengine/issues/detail?id=2670 |
| - Fixed an issue where the SDK looked in the wrong folder for the SDK Version |
| file. |
| http://code.google.com/p/googleappengine/issues/detail?id=3050 |
| - Fixed a webapp.Request get() issue where the default was not being properly |
| returned when allow_multiple was set to True. |
| http://code.google.com/p/googleappengine/issues/detail?id=3235 |
| - Fixed an issue where handler.get_url did not work for non-default versions of |
| Django. |
| http://code.google.com/p/googleappengine/issues/detail?id=3300 |
| - Fixed an issue where X-AppEngine-TaskRetryCount did not increment in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=3501 |
| - Applied a user patch that partially fixed an issue where bulkloader resume |
| was not working. |
| http://code.google.com/p/googleappengine/issues/detail?id=3581 |
| - Fixed a logging issue with the SDK BlobImageDispatcher. |
| http://code.google.com/p/googleappengine/issues/detail?id=3606 |
| - ListProperty now supports datetime.time and datetime.date, as documented. |
| http://code.google.com/p/googleappengine/issues/detail?id=3818 |
| - Fixed an issue where the Content-length header was being incorrectly stored as |
| an integer. |
| http://code.google.com/p/googleappengine/issues/detail?id=3875 |
| - Fixed an issue where the Admin Console didn't keep the app version viewed |
| consistent across actions. |
| http://code.google.com/p/googleappengine/issues/detail?id=4023 |
| - Fixed an issue using os.environ in appengine_config.py in the SDK. |
| http://code.google.com/p/googleappengine/issues/detail?id=4209 |
| - Fixed an issue where HTTP requests on the SDK where truncated if a semicolon |
| was included in the request. |
| http://code.google.com/p/googleappengine/issues/detail?id=4241 |
| - Fixed an issue where images.get_serving_url() did not handle blob_info.key() |
| correctly. |
| http://code.google.com/p/googleappengine/issues/detail?id=4346 |
| - Fixed an issue where checking for a new version caused the appcfg download_app |
| command to fail. |
| http://code.google.com/p/googleappengine/issues/detail?id=4553 |
| - Fixed a typo in the Admin Console on the New App page. |
| http://code.google.com/p/googleappengine/issues/detail?id=4620 |
| - Return a better error when a ReferenceProperty fails to resolve. |
| http://code.google.com/p/googleappengine/issues/detail?id=4626 |
| - Fixed an issue where sending mail from an app registered on the HR datastore |
| required the app id be prefaced with s~. |
| http://code.google.com/p/googleappengine/issues/detail?id=4671 |
| - Fixed an issue where URLFetch with urllib over HTTPS didn't work. |
| http://code.google.com/p/googleappengine/issues/detail?id=4824 |
| |
| |
| Version 1.4.3 |
| ================================= |
| - Added Files API that allows writing to and reading from files in blobstore. |
| - You can now specify cron execution for a time interval between a start and end |
| time. |
| - You can now configure the specific application version to which a task queue |
| or cron job will send requests. |
| - The Admin Console Task Queues page now displays a more accurate estimate of |
| queue size for queues containing more than 2000 tasks. |
| - The Prospective Search API (formerly named the Matcher API) is available for |
| use by all applications. This API is still experimental, so applications will |
| be limited to a maximum of 1000 subscriptions. |
| - The Testbed API provides easy configuration of stub libraries for local |
| integration tests. |
| - In the Images API, the quality parameter was added to the resize, rotate, |
| horizontal_flip, vertical_flip, crop and im_feeling_lucky methods. |
| - Fixed an issue where static file serving in the dev_appserver didn't support |
| etags. |
| http://code.google.com/p/googleappengine/issues/detail?id=368 |
| - An error is now raised when the script mapping in the app.yaml file is missing |
| the .py file extension. |
| http://code.google.com/p/googleappengine/issues/detail?id=976 |
| - Fixed an issue where no link was displayed in the Admin Console blobstore |
| viewer for an unnamed blob. |
| - Fixed an issue where the Admin Console data viewer couldn't edit entities |
| with ByteString properties. |
| http://code.google.com/p/googleappengine/issues/detail?id=2367 |
| - Fixed an issue where the Admin Console crashed when using a non-ascii |
| key_name. |
| http://code.google.com/p/googleappengine/issues/detail?id=2451 |
| - Fixed an issue filtering on __key__ while using the --use_sqlite option with |
| the dev_appserver. |
| http://code.google.com/p/googleappengine/issues/detail?id=3232 |
| - The Disable Application admin function has been button-ized. |
| http://code.google.com/p/googleappengine/issues/detail?id=4323 |
| - Fixed an SDK issue where debugging logging wouldn't correctly print URLFetch |
| payloads. |
| http://code.google.com/p/googleappengine/issues/detail?id=783 |
| - Fixed an SDK issue where an incompatible line ending was used on blob upload. |
| http://code.google.com/p/googleappengine/issues/detail?id=3328 |
| - Added more graceful handling of the missing mapreduce.yaml file when the user |
| has enabled the Datastore Admin but is not otherwise using the MapReduce |
| framework. |
| http://code.google.com/p/googleappengine/issues/detail?id=3903 |
| - Fixed an issue where the method webapp_add_wsgi_middleware was no longer |
| recognized. |
| http://code.google.com/p/googleappengine/issues/detail?id=4236 |
| |
| Version 1.4.2 |
| ================================ |
| - The XMPP API was updated to include presence and allow subscriptions. |
| - The Task Queue now supports programmatic deleting of tasks. |
| http://code.google.com/p/googleappengine/issues/detail?id=2588 |
| - The maximum rate per queue at which tasks are processed has been increased to |
| 100 tasks per second. |
| - The maximum number of concurrent requests for a single queue can be specified |
| in the application's queue.yaml. This provides an additional easy-to-use form |
| of rate limiting. The current number of running tasks is also displayed in |
| the Admin Console. |
| - Metadata queries in the Datastore now support cursors. |
| - Admin Console logs viewer now displays time as YYYY-MM-DD HH:MM:SS.mmm. |
| - The Mail API added KML and KMZ files as allowed attachments. |
| - Added support for verifying the server SSL certificate when making a |
| URLFetch request to an HTTPS URL. This will become the default in a future |
| release. |
| - Added a warning when an admin tries to upload a queue.yaml where the number |
| of new queues and the number of disabled queues exceeds 100. |
| - Django 1.2.5 is available via use of the use_library() declaration. This |
| version of Django has also been added to the Python SDK. |
| - Added builtin support for the deferred library. |
| - If Python Precompilation fails, an error will be printed but the app will |
| still be uploaded. |
| - Added a --disable_sdk_update_check command line flag to the dev_appserver. |
| - Fixed an issue where the datastore copy functionality did not work if writes |
| were disabled on the source application. |
| - Fixed an issue where mail from @appid.appspotmail.com did not work when |
| sending mail to app admins. |
| - Fixed an issue where the dev_appserver URLFetch API limit was 16MB. It is now |
| 32 MB to match production. |
| - Fixed a zipimport issue on Windows which was not working due to path |
| separators. |
| http://code.google.com/p/googleappengine/issues/detail?id=2086 |
| - Fixed an issue where the SDK did not enforce the 100 task limit for the Task |
| Queue. |
| http://code.google.com/p/googleappengine/issues/detail?id=3296 |
| - Fixed an issue where Query.order() was broken for properties with the 'name' |
| attribute. |
| http://code.google.com/p/googleappengine/issues/detail?id=3693 |
| - Fixed an unhelpful error message in the Python namespace_manager. |
| http://code.google.com/p/googleappengine/issues/detail?id=3931 |
| |
| |
| Version 1.4.1 |
| ================================ |
| - During application creation, developers can choose between two Datastore |
| configurations: High Replication or Master/Slave. |
| http://code.google.com/appengine/docs/python/datastore/hr/#Selecting_a_Datastore |
| - You can set your application's datastore to read-only mode in the Admin |
| Console. Any writes attempted while the app is set to read-only will throw a |
| CapabilityDisabledError. This feature can be helpful for migrating or copying |
| data between two applications. |
| http://code.google.com/appengine/docs/adminconsole/applicationsettings.html#Disable_Datastore_Writes |
| - The Datastore Admin tool has been updated to allow copying of one app's |
| datastore to another. The destination app must have the Remote API enabled. |
| http://code.google.com/appengine/docs/adminconsole/datastoreadmin.html |
| - The deadline for offline URL Fetch API requests for Python and Java have been |
| increased to a maximum of 10 minutes. The default deadline for offline |
| URL Fetch requests remains the same. |
| - Fixed an issue where an AttributeError was occasionally thrown on a datastore |
| query. |
| http://code.google.com/p/googleappengine/issues/detail?id=4196 |
| |
| Version 1.4.0 |
| ================================ |
| - The Always On feature allows applications to pay and keep 3 instances of their |
| application always running, which can significantly reduce application |
| latency. |
| - Developers can now enable Warmup Requests. By specifying a handler in an |
| app's app.yaml, App Engine will attempt to send a Warmup Request to initialize |
| new instances before a user interacts with it. This can reduce the latency an |
| end-user sees for initializing your application. |
| - The Channel API is now available for all users. |
| - Task Queue has been officially released, and is no longer an experimental |
| feature. The API import paths that use 'labs' have been deprecated. Task queue |
| storage will count towards an application's overall storage quota, and will |
| thus be charged for. |
| - The deadline for Task Queue and Cron requests has been raised to 10 minutes. |
| Datastore and API deadlines within those requests remain unchanged. |
| - For the Task Queue, developers can specify task retry_parameters in their |
| queue.yaml. |
| - Apps that have enabled billing are allowed up to 100 queues with the Task |
| Queue API. |
| - Metadata Queries on the datastore for datastore kinds, namespaces, and entity |
| properties are available. |
| - URLFetch allowed response size has been increased, up to 32 MB. Request size |
| is still limited to 1 MB. |
| - The request and response sizes for the Images API have been increased to |
| 32 MB. |
| - The total size of Memcache batch operations is increased to 32 MB. The 1 MB |
| limit on individual Memcache objects still applies. |
| - The attachment size for outgoing emails has been increased from 1 MB to 10 MB. |
| The size limit for incoming emails is still 10 MB. |
| - Size and quantity limits on datastore batch get/put/delete operations have |
| been removed. Individual entities are still limited to 1 MB, but your app may |
| batch as many entities together for get/put/delete calls as the overall |
| datastore deadline will allow for. |
| - When iterating over query results, the datastore will now asynchronously |
| prefetch results, reducing latency in many cases by 10-15%. |
| - The Admin Console Blacklist page lists the top blacklist rejected visitors. |
| - The automatic image thumbnailing service supports arbitrary crop sizes up to |
| 1600px. |
| - Overall average instance latency in the Admin Console is now a weighted |
| average over QPS per instance. |
| - The developer who uploaded an app version can download that version's code |
| using the appcfg.py download_app command. This feature can be disabled on |
| a per application basis in the admin console, under the 'Permissions' tab. |
| Once disabled, code download for the application CANNOT be re-enabled. |
| - Fixed an issue where custom Admin Console pages did not work for Google |
| Apps for your Domain users. |
| - In the Python runtime, an instance is killed and restarted when a request |
| handler hits DeadlineExceededError. This should fix an issue related to |
| intermittent SystemErrors using Django. |
| http://code.google.com/p/googleappengine/issues/detail?id=772 |
| - Allow Django initialization to be moved to appengine_config.py to avoid |
| Django version conflicts when mixing webapp.template with pure Django. |
| http://code.google.com/p/googleappengine/issues/detail?id=1758 |
| - Fixed an issue with OpenId over SSL. |
| http://code.google.com/p/googleappengine/issues/detail?id=3393 |
| - Fixed an issue on the dev_appserver where login/logout code didn't work using |
| Python 2.6. |
| http://code.google.com/p/googleappengine/issues/detail?id=3566 |
| - Fixed an issue in the dev_appserver where get_serving_url did not work |
| for transparent, cropped PNGs: |
| http://code.google.com/p/googleappengine/issues/detail?id=3887 |
| - Fixed an issue with the DatastoreFileStub. |
| http://code.google.com/p/googleappengine/issues/detail?id=3895 |
| |
| Version 1.3.8 |
| ================================== |
| - Builtin app.yaml handlers are available for common application functions, |
| such as appstats. |
| http://code.google.com/appengine/docs/python/config/appconfig.html#Builtin_Handlers |
| - The Admin Console now provides an experimental tool to delete all entities in |
| the datastore or all entities of a given type. This is available only if |
| enabled using the datastore_admin builtin. Deleting entities will count |
| against application quota. |
| http://code.google.com/appengine/docs/python/datastore/creatinggettinganddeletingdata.html#Deleting_Entities_in_Bulk |
| - You can run task queue tasks immediately from the Admin Console. |
| - You can now specify the quality of JPEG images via the Image API's |
| execute_transforms function. Available in production only. |
| - Support for login of multiple Google accounts within an app, and longer login |
| sessions. For more information see: |
| http://www.google.com/support/accounts/bin/answer.py?answer=181599 |
| - In queue.yaml, the maximum allowed bucket size is now 100. |
| - Precompilation is now enabled by default. To disable, use the |
| --no_precompilation flag when updating your app. |
| - BlobInfo now has an open() method that returns a BlobReader. |
| - BlobReader now accepts a BlobInfo. |
| - Removed limits on zigzag merge-join queries. Therefore the error "The built-in |
| indices are not efficient enough for this query and your data. Please add a |
| composite index for this query." will no longer be thrown in most cases, |
| enabling more types of queries without indexes. |
| - Fixed an issue with task queue tasks not running on the dev_appserver when |
| using Python 2.6. |
| - Fixed an issue on the dev_appserver where auto task running wasn't working for |
| BulkAdd. |
| - Fixed an issue reserving App Ids by owners of similarly-named mails accounts |
| containing periods, multiple cases, and googlemail.com address. |
| http://code.google.com/p/googleappengine/issues/detail?id=1196 |
| - Fixed an issue on the development server where PNGs were being returned as |
| JPEGs. |
| http://code.google.com/p/googleappengine/issues/detail?id=3661 |
| |
| Version 1.3.7 |
| =============================== |
| - Fix an issue where namespace_manager.google_apps_namespace() was not included |
| in the 1.3.6 release. |
| |
| Version 1.3.6 |
| ================================= |
| - Multitenancy is now supported in the datastore, allowing better |
| compartmentalization of user data. |
| - Automatic image thumbnailing is now available in the Images API using |
| get_serving_url(). |
| - Users can now serve custom static error pages for over_quota, dos_api_denial |
| and default cases. |
| - Results of datastore count() queries and offsets for all datastore queries |
| are no longer capped at 1000. |
| - Added a pause queue button to the task queue details page in the Admin |
| Console. |
| - Historical graphs have been added to all of the dashboard graphs in the Admin |
| Console. |
| - Content-range headers are supported on Blobstore downloads. |
| - Remote API now supports the Blobstore API. |
| - New method to allocate datastore ids in a given range: db.allocate_id_range(). |
| - New db method is_in_transaction() determines if a transaction is still open. |
| - Increased several rate limited quotas for free applications. |
| - Fixed an issue in db.py where unindexed property lists for user-specified |
| property names were ignored. |
| - Fixed an issue where the task queue uses local time instead of UTC time to |
| compute job ETA. |
| http://code.google.com/p/googleappengine/issues/detail?id=2508 |
| - Fixed an issue in the SDK with datastore cursors being too large. |
| http://code.google.com/p/googleappengine/issues/detail?id=3152 |
| |
| Version 1.3.5 |
| ================================= |
| - Developers can enable Python pre-compilation to decrease start up time for |
| new application instances. This can be enabled by including the |
| derived_file_type in your app.yaml. |
| - Ability to configure the Task Queue storage limit with the |
| total_storage_limit field in the queue.yaml file. |
| - Task Queues now support up to 50 qps per queue, up from 50 qps per app. |
| - Developers can programmatically access Blobs with BlobReader, a file-like |
| interface for reading blobs. |
| - Bulkloader transform helpers for lists and hierarchical keys were added. |
| - remote_api_shell commands can be sent over HTTPS or HTTP. |
| - Admin Console logs now include information on request time latency. |
| - Db.delete will now accept an iterable, in addition to a list of models or |
| keys. |
| - The datastore now supports end cursors. |
| - Fixed an issue properly handling a query with an offset that returns no |
| results. |
| - Fixed an issue that improperly allowed quad-dotted netmasks as subnet prefixes |
| for the DoS API. |
| - Fixed an issue via user submitted patch in the SDK dataviewer displaying |
| multiline StringProperties. |
| http://code.google.com/p/googleappengine/issues/detail?id=502 |
| |
| Version 1.3.4 |
| ================================= |
| - New bulkloader configuration syntax and wizard for easier import/export with |
| the datastore. |
| - Applications can now be configured to authenticate with OpenID by selecting |
| the OpenID option when creating your application in the admin console. |
| http://code.google.com/p/googleappengine/issues/detail?id=248 |
| http://code.google.com/p/googleappengine/issues/detail?id=56 |
| - New API to allow App Engine apps to act as OAuth service providers. |
| http://code.google.com/p/googleappengine/issues/detail?id=919 |
| - Auto task execution is now enabled in the dev_appserver. To turn this off |
| use the flag --disable_task_running. |
| - Fixed an issue using db.put() with constructor initialized id based keys. |
| http://code.google.com/p/googleappengine/issues/detail?id=3209 |
| |
| Version 1.3.3 |
| ================================= |
| - A new experimental feature allows you to set dev_appserver datastore file |
| stub to use sqlite. To enable, set the flag --use_sqlite=true. |
| - It is now possible to implement properties on db.Expando. |
| - Fixed a datastore issue where an error was thrown when setting a query offset |
| to more than the number of results throws an error. |
| http://code.google.com/p/googleappengine/issues/detail?id=2875 |
| - Fixed issue not allowing ByteString type to be viewed in the Development |
| Console datastore viewer. |
| http://code.google.com/p/googleappengine/issues/detail?id=1176 |
| |
| Version 1.3.2 |
| ================================= |
| - New API to read the contents of uploaded Blobs (fetch_data) |
| http://code.google.com/p/googleappengine/issues/detail?id=2536 |
| - URLFetch now supports accessing ports 80-90, 440-450, and 1024-65535 |
| - Mail API now allows common document formats as attachments |
| http://code.google.com/p/googleappengine/issues/detail?id=494 |
| - The Task Queue API now supports adding multiple tasks in a single call to |
| Queue.add() |
| - Fixed charset handling for inbound emails |
| http://code.google.com/p/googleappengine/issues/detail?id=2326 |
| - Fixed issue with compositing background colors in dev_appserver |
| - New feature in the datastore to specify whether to use strong or eventually |
| consistent reads (the default is strong) |
| - New datastore feature allows setting deadlines for operations |
| - Increased the maximum Task Queue refill rate from 20/s to 50/s |
| - Support for IP blacklisting to prevent denial of service (DoS) attacks |
| - Fix an issue with Mac Launcher in Mac OSX 10.5.5 |
| http://code.google.com/p/googleappengine/issues/detail?id=778 |
| - Fix issue with slow updates when there are many skipped files |
| http://code.google.com/p/googleappengine/issues/detail?id=2492 |
| - Fix issue with cursor not updating when using a GqlQuery |
| http://code.google.com/p/googleappengine/issues/detail?id=2757 |
| |
| Version 1.3.1 |
| ================================ |
| - Datastore Query Cursors |
| http://code.google.com/appengine/docs/python/datastore/queriesandindexes.html#Query_Cursors |
| - Transactional Task Creation |
| - Support for Custom Admin Console pages |
| - New "month" and "synchronized" syntax for Cron configuration |
| http://code.google.com/appengine/docs/java/config/cron.html |
| - Application Stats library now included in with SDK |
| http://code.google.com/appengine/docs/python/tools/appstats.html |
| - Bulk Loader supports bulk downloading all kinds simultaneously |
| - appcfg.py validates SSL certificates for HTTPS on Upload |
| - Support for ETags, If-matches, If-not-matches HTTP Headers, as well as 304 |
| status codes now available on static files (not available on the |
| dev_appserver or Blobstore blobs) |
| http://code.google.com/p/googleappengine/issues/detail?id=575 |
| |
| Version 1.3.0 - December 14, 2009 |
| ================================ |
| - Adds support for the new Blobstore API |
| |
| Version 1.2.8 - October 28, 2009 |
| ================================ |
| - New memcache offset_multi method and batch support in incr and decr. |
| - Urlfetch Response object now contains final_url of 302 redirects. |
| http://code.google.com/p/googleappengine/issues/detail?id=1464 |
| - Additional file extensions permitted when sending mail. |
| http://code.google.com/p/googleappengine/issues/detail?id=494 |
| - Fixed issue decoding messages for incoming mail. |
| http://code.google.com/p/googleappengine/issues/detail?id=2289 |
| - Fixed issue with datastore list properties containing both blob (or text) |
| and non-blob values. |
| - Admin console includes more information about indexes being built. |
| - Fixed Users API usage with remote_api |
| http://code.google.com/p/googleappengine/issues/detail?id=1205 |
| - Fixed issue with IN queries in remote_api |
| http://code.google.com/p/googleappengine/issues/detail?id=1986 |
| - Bulk Loader --dump and --restore now work across app IDs. |
| - Bulk Loader --restore works with numeric IDs. |
| - Bulk Loader exporter maps __key__ property to the entity key. |
| - Fixed issue in Bulk Loader with missing properties on export. |
| http://code.google.com/p/googleappengine/issues/detail?id=2068 |
| - Fixed issue in Bulk Loader with line breaks in data. |
| - Fixed exception in Bulk Loader with certain data ranges. |
| http://code.google.com/p/googleappengine/issues/detail?id=2085 |
| - Added SERVER_SOFTWARE environment variable to runtime. |
| - Over Quota HTTP status code changed from 403 to 503 |
| http://code.google.com/p/googleappengine/issues/detail?id=961 |
| - Task Queue now considers all HTTP 2xx status codes to represent success |
| http://code.google.com/p/googleappengine/issues/detail?id=1779 |
| - Task Queue now supports purging all tasks in a queue from the Admin Console. |
| http://code.google.com/p/googleappengine/issues/detail?id=2159 |
| - Task Queue now supports deleting a non-empty queue from the Admin Console. |
| http://code.google.com/p/googleappengine/issues/detail?id=1740 |
| - New "auth_fail_action: unauthorized" option in app.yaml: when present, a |
| 401 status code will be returned instead of a 302 redirect to the Google |
| Accounts login page for pages with login: required. [Python only for now] |
| |
| |
| Version 1.2.7 - October 14, 2009 |
| ================================ |
| - Changed the 'key' parameter to Model.__init__ to be keyword only. |
| - Fixed taskqueue import in Remote API. |
| http://code.google.com/p/googleappengine/issues/detail?id=2259 |
| |
| |
| Version 1.2.6 - September 17, 2009 |
| ================================== |
| - Added incoming email support. |
| http://code.google.com/p/googleappengine/issues/detail?id=165 |
| - Remote API now supports XMPP and task queues. |
| - The default for all handlers is now secure: optional. Users can |
| now access all pages via SSL unless explicitly disallowed. |
| - Remote API now supports HTTPS. |
| http://code.google.com/p/googleappengine/issues/detail?id=1461 |
| - Appcfg now uses https by default. |
| http://code.google.com/p/googleappengine/issues/detail?id=794 |
| - Appcfg.py now supports the --application and --version flags to |
| override the values specified in app.yaml. |
| http://code.google.com/p/googleappengine/issues/detail?id=670 |
| - GQL now supports '= NULL' queries. |
| - The db.Model constructor now supports explicitly setting a key |
| (and thus an id) for a Model instance. |
| - New Datastore stats api. Stats are also visible in the admin console. |
| - Bulkloader dump and restore now supports restoring to a different |
| app id and restoring numeric keys. |
| |
| |
| Version 1.2.5 - August 13, 2009 |
| =============================== |
| - The Windows Python SDK now includes a GUI launcher, similar to the Mac SDK. |
| - Added XMPP support. |
| http://code.google.com/appengine/docs/python/xmpp |
| http://code.google.com/p/googleappengine/issues/detail?id=231 |
| - Datastore now supports multiple writes to the same entity within a |
| transaction. |
| - Datastore entity key names can now start with a digit. |
| http://code.google.com/p/googleappengine/issues/detail?id=1352 |
| - Datastore now supports ancestor + kind queries without a composite index |
| http://code.google.com/p/googleappengine/issues/detail?id=1003 |
| - Bulkloader now supports configurationless dump and restore with new |
| --dump and --restore options. |
| - Bulkloader now supports a --dry_run flag to testing data prior to uploading. |
| - Appcfg.py now allows specifying any end date for request_logs. |
| - Urlfetch now allows setting the Referer header. |
| http://code.google.com/p/googleappengine/issues/detail?id=445 |
| - Urlfetch stub now correctly handles HEAD requests. |
| http://code.google.com/p/googleappengine/issues/detail?id=866 |
| - New remote_api_shell tool for interactive remote_api operations. |
| - New google.ext.ereporter module to collect and email exception reports. |
| - New google.ext.deferred module to execute ad-hoc tasks on the Task Queue. |
| |
| Version 1.2.4 - July 16, 2009 |
| ============================= |
| - Added support for kindless queries, ie. transaction descendant queries. |
| http://code.google.com/p/googleappengine/issues/detail?id=913 |
| - Composite indexes no longer required for certain types of key queries. |
| - Improved exception reporting in the bulkloader. |
| - Datastore transaction RPC sent at beginning of transaction rather than |
| upon first Datastore request. |
| - PolyModel supports keys_only query. |
| http://code.google.com/p/googleappengine/issues/detail?id=1630 |
| - Remote API supports more API's (Images, Memcache and URLFetch). |
| http://code.google.com/p/googleappengine/issues/detail?id=1596 |
| - Remote API shell. |
| - Support for multiple inheritance for Model and PolyModel. |
| - Enhancement to SearchableModel allowing multiple properties to be |
| indexed. |
| - Various code quality improvements. |
| |
| Version 1.2.3 - June 1, 2009 |
| ============================ |
| |
| - Task Queue support available as google.appengine.api.labs.taskqueue. |
| http://code.google.com/appengine/docs/python/taskqueue |
| - Django 1.0 support. You must install Django locally on your machine |
| for the SDK but no longer need to upload it to App Engine. |
| from google.appengine.dist import use_library |
| use_library('django', '1.0') |
| http://code.google.com/p/googleappengine/issues/detail?id=872 |
| - Urlfetch supports asynchronous requests. |
| http://code.google.com/p/googleappengine/issues/detail?id=958 |
| - Urlfetch in SDK now matches App Engine more closely: |
| By default, it now sets the referer header, does not set the Accept |
| header, and sets Accept-Encoding to gzip. |
| http://code.google.com/p/googleappengine/issues/detail?id=970 |
| - Fixed issue with httplib and absolute URLs. |
| http://code.google.com/p/googleappengine/issues/detail?id=1311 |
| - Memcache key length is no longer restricted to 250 bytes: longer keys |
| will be replaced with a hash of the key. |
| - Datastore ancestor queries now work within transactions. |
| - Datastore transactions in SDK now snapshot on the first operation so they |
| do not see writes made during the transaction. Matches App Engine. |
| |
| 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. |