Skip to content

Latest commit

 

History

History
334 lines (246 loc) · 15.4 KB

CHANGELOG.md

File metadata and controls

334 lines (246 loc) · 15.4 KB

ChangeLog

3.0.11 - DEVELOPMENT (will be released as stable/3.0.12)

Bugs:

  • ?

Features:

  • ?

Refactoring:

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] Support logging.propagate to 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 is None

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 of imp in favor of importlib
  • [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 deprecated datetime.utcfromtimestamp()
  • [dev] Add comply-typing to make helpers, start working toward typing.
  • [dev] Add mailpit service 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] Support suppress meta option on Prompt to suppress user input.
  • [ext] Use extras_require for optional extensions

Refactoring:

  • [utils.misc] Use SHA256 instead of MD5 in rando() 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_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:

  • 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] 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:

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