Changelog

Version 2.2.0

  • ferris.core.memcache has been replaced by Caching.
  • plugins.service_account has been moved into ferris.core.oauth2.
  • The Cache component has been renamed to EdgeCache.
  • CSRF component added.
  • The email sender setting is optional, if not specified a sane default will be used.
  • Cloud Storage is now the default target for uploads made using the Uploads & Downloads.
  • The utils.zip has been removed and its functionality absorbed into core. Most of these were not user-facing and only used internally in ferris.
  • Various bugfixes have been made to the settings plugins.
  • The OAuth2 Service Account plugin has been moved into the core.
  • The Google API Helper has been added.
  • The Mail utilities now expose a way to send both an html and plaintext body in an email.

Migration from 2.1.0

  1. Update the ferris, packages, and plugins directory.
  2. Remove the service_account plugin.
  3. Replace all usage of ferris.core.memcache with the new ferris.core.caching.
  4. Replace all usage of the cache component with the new edge cache component.
  5. Replace all usage of the service account plugin with the version in core.oauth2.
  6. (optionally) upgrade any google api integrations to use the new api helper.

Version 2.1.0

  • The template debugger has been removed.
  • Various style (pep8) errors fixed.
  • Added the ability to get cloud storage information from uploads, see Uploads & Downloads.
  • Settings API overhaul. See Settings.
  • GeoPtProperties now correctly translated when using wtforms.
  • Fixed error with /_ah/warmup requests always failing.
  • Added the ability to return a response from an authorization chain.
  • Search now correctly indexes repeated properties.
  • OAuth2 service accounts are now backed by datastore storage so they do not refresh the access token too frequently.
  • OAuth2 integration now uses the (new) ndb utilies built in to oauth2client.
  • The path-patching code has been moved into ferris/fix_imports.py and is now loaded directly by appengine_config.py.

Migration from 2.0.x

  1. Update the ferris, packages, and plugins directory.
  2. Update /main.py, remove /fix_imports.py, add /appengine_config.py.
  3. Carefully update /app.yaml being sure to preserve the application id and version as well as any custom handlers.
  4. Translate existing app settings from /settings.py to the new format in /app/settings.py. See Settings. Remove /settings.py.
  5. Make sure any additional settings classes in your custom plugins are imported into /app/settings.py.
  6. Remove any references in your template to “elements/debug/toolbox.html”.

Version 2.0.1

2.0.1 is a patch release and is thus backwards-compatible with 2.0.0. No migration should be needed.

  • Fixing issue where value formatter did not work for repeated keys.
  • 400/500 errors now return JSON when using the messaging API.
  • Fixing issue where oauth2 credentials could be duplicated.
  • Added priority events (no surface API change).
  • Updating third-party packages
  • Removed gaepytz in favor of the maintained pytz-appengine
  • Adding default tabindex to form fields.
  • Moved all testing tools to ferrinose and made aliases to ensure backwards-compatibility.
  • Added the download controller, see Uploads & Downloads.

Version 2.0.0

  • Major overhaul of the controller part of Ferris’ MVC. We’ve wholesale replaced handlers with the new Controllers.
  • Third-party packages have been updated to newer versions.
  • New admin layout.
  • Bootstrap updated from 2 to 3.
  • Scaffolding has been completely re-done. It’s now a component and doesn’t involve magic to make it work.
  • New scaffold views.
  • EasyHandler has been removed. With the new scaffold it’s very easily to replicate its functionality.
  • Template tester plugin as been removed.
  • Scaffold only supports urlsafe keys, no more direct support for IDs.
  • New Cache component.
  • Memcache utilties have been improved for usability.
  • Protorpc Messages integration for REST APIs.
  • Search API integration.
  • Value formatters for pretty-printing in templates.
  • Request parsers for a unified API for processing Forms and Messages.
  • Response handlers to transform return values into responses.
  • View classes to help generate complex responses.
  • Test runner has been broken out into Ferrisnose.
  • Pagination overhauled with better support for tracking cursors.
  • TinyMCE has been removed (a seperate repository called ferris-fancy-forms is available).
  • Template events
  • Authorization chains
  • Removing our custom wtforms.appengine.ext.ndb module in favor of the built-in wtforms one.
  • Mail component removed, use ferris.core.mail instead.
  • app.yaml cleanup, Ferris is now included into app.yaml.
  • Custom app for handling deferred tasks, prevents import errors.
  • Plugin to manage OAuth2 service accounts.
  • JSON component removed in favor of Messages.
  • Higher test coverage.
  • Fixing various memory leaks.
  • Various bug fixes.