ChangeLog

3.0.4 - May 17, 2019

Bugs:

  • [ext.yaml] YamlConfigHandler uses unsafe load method

  • [ext.configparser] Configparser 'getboolean' exception

Features:

  • [utils.misc] Support y as a truth boolean in utils.misc.is_true

3.0.2 - November 6, 2018

Bugs:

  • [cli] Generate Variable Mishap in Project Template

  • [ext.generator] Error class is malformed

  • [core.template] MemoryError during 'cement generate project'

  • [core.foundation] Contents of plugin_dirs is printed to console

Features:

  • [ext.argparse] Command name override

3.0.0 - Aug 21, 2018

Bugs:

  • [ext.redis] Unable To Set Redis Host

  • [ext.argparse] Empty Sub-Commands List

  • [core.foundation] Handler Override Options Do Not Honor Meta Defaults

Features:

  • [core] Add Docker / Docker Compose Support

  • [core] Add ability to override the output handler used when app.render() is called.

  • [ext.print] Add the Print Extension to be used as a drop in replacement for the standard print(), but allowing the developer to honor framework features like pre_render and post_render hooks.

  • [ext.scrub] Add Scrub Extension to easily obfuscate sensitive data from rendered output.

  • [core] Add ability to override config settings via environment variables.

  • [ext.argparse] Add ability to get list of exposed commands

  • [core] Add Template Interface

  • [ext.mustache] Add MustacheTemplateHandler

  • [ext.handlebars] Add HandlebarsTemplateHandler

  • [ext.jinja2] Add Jinja2TemplateHandler

  • [ext.generate] Add Generate Extension

  • [ext.logging] Add -l LEVEL command line option to override log level

  • [cli] Add Cement CLI (includes ability to generate apps, plugins,

    extensions, and scripts using the Generate Extension)

  • [core] Added clear separation between Interfaces and Handlers

  • [utils.fs] - Added several helpers include fs.Tmp for creation and cleanup of temporary directory and file.

Refactoring:

  • Too many to reference

Incompatible:

  • [core] Replace Interfaces with ABC Base Classes

  • [core.foundation] Rename CementApp to App.

  • [core.foundation] Drop deprecated App.Meta.override_arguments

  • [core.foundation] Remove App.Meta.plugin_config_dir and App.Meta.plugin_config_dirs in favor of App.Meta.config_dirs

  • [core.founcation] Rename App.Meta.plugin_bootstrap as App.Meta.plugin_module

  • [core.handler] Rename CementBaseHandler to Handler

  • [core.handler] Drop deprecated backend globals

  • [core.hook] Drop deprecated backend globals

  • [core.controller] Drop CementBaseController

  • [ext.logging] Drop deprecated warn facility (use warning)

  • [ext.argcomplete] Drop ArgComplete Extension

  • [ext.reload_config] Drop Reload Config Extension

  • [ext.configobj] Drop ConfigObj Extension

  • [ext.json] Disable overridable option by default

  • [ext.yaml] Disable overridable option by default

  • [ext.json_configobj] Drop JSON ConfigObj Extension

  • [ext.yaml_configobj] Drop YAML ConfigObj Extension

  • [ext.handlebars] Drop Handlebars Extension

  • [ext.genshi] Drop Genshi Extension

  • [ext.argparse] ArgparseController.Meta.default_func is now _default, and will print help info and exit. Can now set this to None as well to pass/exit.

  • [ext.plugin] All plugin configuration sections must start with plugin..

    For example, [plugin.myplugin].

  • [core.foundation] Renamed App.Meta.config_extension to App.Meta.config_file_suffix

  • [core.foundation] Drop App.Meta.arguments_override_config

Deprecation:

  • Everything with deprecation notices in Cement < 3