Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
13 changes: 10 additions & 3 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,24 +4,31 @@

Bugs:

- None
- `[ext.smtp]` Fix `timeout` passed as `local_hostname` in SMTP constructors
- `[ext.smtp]` Fix stale variable reference in `_get_params` for per-message headers
- `[ext.smtp]` Fix SMTP connection leak when send fails with an exception
- `[ext.smtp]` Fix unconditional error log on every send (now only logs on errors)
- `[ext.smtp]` Fix header encoding incorrectly affected by `body_encoding` setting

Features:

- None

Refactoring:

- `[ext.smtp]` PEP 8 naming, idiomatic string methods, and cleaner type validation
- `[ext.smtp]` Refactor `_make_message` into focused private methods
- `[ext.smtp]` Simplify X-header normalization and preserve original casing
- `[dev]` Python 3.14 Default Development Target
- `[dev]` Remove Support for Python 3.8 (EOL)

Misc:

- None
- `[ext.smtp]` Isolate test defaults to prevent cross-test state pollution

Deprecations:

- None
- `[ext.smtp]` `SMTPMailHandler.send()` returning `bool` is deprecated; will return `senderrs` dict in a future version


## 3.0.14 - May 5, 2025
Expand Down
11 changes: 11 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -76,3 +76,14 @@ When working with extensions:
- Optional dependencies declared in pyproject.toml under `[project.optional-dependencies]`
- Extensions follow naming pattern `ext_<name>.py`
- Must implement proper interface contracts

## GitHub Project

This project is hosted at **github.com/datafolklabs/cement**. Use the `gh` CLI to interact with GitHub issues, pull requests, and other project resources.

- `gh issue list -R datafolklabs/cement` - List open issues
- `gh issue view <number> -R datafolklabs/cement` - View a specific issue
- `gh pr list -R datafolklabs/cement` - List open pull requests
- `gh pr view <number> -R datafolklabs/cement` - View a specific PR
- `gh pr checks <number> -R datafolklabs/cement` - View CI status for a PR
- `gh api repos/datafolklabs/cement/pulls/<number>/comments` - View PR review comments
1 change: 1 addition & 0 deletions cement/core/deprecations.py
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
'3.0.8-1': "Environment variable CEMENT_FRAMEWORK_LOGGING is deprecated in favor of CEMENT_LOG, and will be removed in Cement v3.2.0", # noqa: E501
'3.0.8-2': "App.Meta.framework_logging will be changed or removed in Cement v3.2.0", # noqa: E501
'3.0.10-1': "The FATAL logging facility is deprecated in favor of CRITICAL, and will be removed in future versions of Cement.", # noqa: E501
'3.0.16-1': "SMTPMailHandler.send() returning bool is deprecated. It will return the smtplib senderrs dict in a future version of Cement", # noqa: E501
}


Expand Down
Loading