15 KiB
ChangeLog
3.0.11 - DEVELOPMENT (will be released as stable/3.0.12)
Bugs:
- ?
Features:
- ?
Refactoring:
[dev]Refactor String Substitutions (%s) with F-Strings[dev]Allow line lengths up to 100 characters (previously 78)[dev]Modernize Packaging (pyproject.toml, PDM)[dev]Implement Ruff for Code Compliance (replaces Flake8)[dev]Remove Python 3.5, 3.6, 3.7 Docker Dev Targets[dev]Added Python 3.13 Dev Target[dev]Type Annotations (related: PR #628)[core.arg]Issue #692[core.cache]Issue #693[core.config]Issue #694[core.controller]Issue #695[core.deprecations]Issue #696[core.exc]Issue #697[core.extension]Issue #698[core.foundation]Issue #699[core.handler]Issue #700[core.hook]Issue #700[core.interface]Issue #702[core.log]Issue #703[core.mail]Issue #704[core.meta]Issue #705[core.output]Issue #706[core.plugin]Issue #707[core.template]Issue #708[ext.alarm]Issue #709[ext.argparse]Issue #710[ext.colorlog]Issue #711[ext.configparser]Issue #712[ext.daemon]Issue #713[ext.dummy]Issue #714[ext.generate]Issue #715[ext.jinja2]Issue #716[ext.json]Issue #717[ext.logging]Issue #718[ext.memcached]Issue #719[ext.mustache]Issue #720[ext.plugin]Issue #721[ext.print]Issue #722[ext.redis]Issue #723[ext.scrub]Issue #724[ext.smtp]Issue #725[ext.tabulate]Issue #726[ext.watchdog]Issue #727[utils.fs]Issue #688[utils.misc]Issue #689[utils.shell]Issue #690[utils.version]Issue #691
Misc:
- ?
Deprecations:
- ?
Special Recognitions:
Many thanks to @sigma67 for their contributions in modernizing the packaging system. Cement was started in 2009, and has some lingering technical debt that is now being addressed. Their contribution was a major help in moving off of setuptools and on to PDM and pyproject.toml, along with initial implementations of Ruff for a new generation of code compliance. I sincerely appreciate your help!
Many thanks to @rednar for their contributions toward adding type annotations in PR #628. This PR was too large to merge directly, but it is serving as a guide to finally begin work toward adding type annotations to Cement. This was a massive effort, and is very helpful to have this work available to guide the effort even if it will not be merged directly.
3.0.10 - Feb 28, 2024
Bugs:
[ext.logging]Supportlogging.propagateto avoid duplicate log entries[core.foundation]Quiet mode file is never closed[ext.smtp]Ability to Enable TLS without SSL[ext.smtp]Empty (wrong) addresses sent when CC/BCC isNone
Features:
[utils.fs]Add Timestamp Support to fs.backup[ext.smtp]Support for sending file attachements.[ext.smtp]Support for sending both Plain Text and HTML
Refactoring:
[core.plugin]Deprecate the use ofimpin favor ofimportlib[ext.smtp]Actually test SMTP against a real server (replace mocks)
Misc:
[dev]Add Smoke tests for Python 3.11, 3.12[dev]Make Python 3.12 the default development target[dev]Drop support for Python 3.7[docker]Base official Docker image on Python 3.12[utils.version]Resolve deprecateddatetime.utcfromtimestamp()[dev]Addcomply-typingto make helpers, start working toward typing.[dev]Addmailpitservice to docker-compose development config.
Deprecations:
[ext.logging]Deprecate FATAL facility in favor of CRITICAL.
3.0.8 - Aug 18, 2022
Bugs:
[cli]Cement CLI broken on Python 3.10[cli]Generated script returns version of Cement[cli]Generated script should allow dash/underscore[core.foundation]App.render() not suppressed in quiet mode[core.foundation]Console log not suppressed by output handler override (JSON/YAML)
Features:
[utils.shell]Supportsuppressmeta option onPromptto suppress user input.[ext]Useextras_requirefor optional extensions
Refactoring:
[utils.misc]Use SHA256 instead of MD5 inrando()to support Redhap/FIPS compliance[core.foundation]Make quiet/debug options configurable
Misc:
[dev]Cement CLI smoke tests[dev]Add Python 3.10 to Travis CI tests[core.deprecations]Implement Cement deprecation warnings
Deprecations:
[core.foundation]Deprecate CEMENT_FRAMEWORK_LOGGING in favor of CEMENT_LOG.
3.0.6 - Dec 18, 2021
Bugs:
[ext.argparse]Parser (self._parser) not accessible inside_pre_argument_parsingwhenstacked_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 infs.backup()of a directory.[cement.cli]Generated README contains incorrect installation instructions.
Features:
- None
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.
3.0.4 - May 17, 2019
Bugs:
[ext.yaml]YamlConfigHandler uses unsafe load method[ext.configparser]Configparser 'getboolean' exception
Features:
[utils.misc]Supportyas a truth boolean inutils.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 - August 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 whenapp.render()is called.[ext.print]Add the Print Extension to be used as a drop in replacement for the standardprint(), but allowing the developer to honor framework features likepre_renderandpost_renderhooks.[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 LEVELcommand 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 includefs.Tmpfor creation and cleanup of temporary directory and file.
Refactoring:
- Too many to reference
Incompatible:
[core]Replace Interfaces with ABC Base Classes[core.foundation]RenameCementApptoApp.[core.foundation]Drop deprecatedApp.Meta.override_arguments[core.foundation]RemoveApp.Meta.plugin_config_dirandApp.Meta.plugin_config_dirsin favor ofApp.Meta.config_dirs[core.founcation]RenameApp.Meta.plugin_bootstrapasApp.Meta.plugin_module[core.handler]RenameCementBaseHandlertoHandler[core.handler]Drop deprecated backend globals[core.hook]Drop deprecated backend globals[core.controller]DropCementBaseController[ext.logging]Drop deprecatedwarnfacility (usewarning)[ext.argcomplete]Drop ArgComplete Extension[ext.reload_config]Drop Reload Config Extension[ext.configobj]Drop ConfigObj Extension[ext.json]Disableoverridableoption by default[ext.yaml]Disableoverridableoption 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_funcis now_default, and will print help info and exit. Can now set this toNoneas well to pass/exit.[ext.plugin]All plugin configuration sections must start withplugin.. For example,[plugin.myplugin].[core.foundation]RenamedApp.Meta.config_extensiontoApp.Meta.config_file_suffix[core.foundation]DropApp.Meta.arguments_override_config
Deprecation:
- Everything with deprecation notices in Cement < 3