π Bugs:
[ext.argparse] Parser (self._parser) not accessible inside _pre_argument_parsing when stacked_type = 'embedded'
[ext.configparser] Overriding config options with environment variables doesn't work correctly with surrounding underscore characters
[utils.fs] Fix bug where trailing slash was not removed in fs.backup() of a directory.
[cement.cli] Generated README contains incorrect installation instructions.
π Features:
π¨ Refactoring:
[ext.colorlog] Support subclassing of ext_colorlog.
Misc:
[dev] Update to Python 3.10 for default development / Docker version.[dev] Remove Python 3.5/3.6 from Travis CI tests.π 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
π 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
π 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:
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: