| 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. |