Skip to content
Open
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
89 changes: 88 additions & 1 deletion .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ executors:
type: enum
enum: ["3.10", "3.11", "3.12", "3.13", "3.14"]
docker:
- image: "ghcr.io/astral-sh/uv:python<<parameters.version>>-bookworm"
- image: "ghcr.io/astral-sh/uv:python<<parameters.version>>-trixie"
resource_class: small
environment:
FORCE_COLOR: "1"
Expand Down Expand Up @@ -145,6 +145,69 @@ jobs:
files: "coverage-results/coverage-cpython<<parameters.python_version>>-<<parameters.event_loop>>.xml"
flags: "cpython<<parameters.python_version>>,<<parameters.event_loop>>"

test-freethreaded:
executor:
name: cpython_executor
version: <<parameters.python_version>>
parameters:
python_version:
type: enum
description: "python version"
enum: ["3.13", "3.14"]
event_loop:
type: enum
description: "event loop type"
enum: ["asyncio", "uvloop"]
environment:
COVERAGE_FILE: "coverage-results/.coverage.cpython<<parameters.python_version>>t-<<parameters.event_loop>>"
HYPOTHESIS_PROFILE: "ci"
BIND_ADDR: "127.0.0.1"
steps:
- checkout
- attach_workspace:
at: dist
- run: uv python install <<parameters.python_version>>t
- run: uv venv --python=<<parameters.python_version>>t
- run: uv pip install --python=<<parameters.python_version>>t -r requirements-dev.txt
- when:
condition:
equal: ["uvloop", <<parameters.event_loop>>]
steps:
- run: uv pip install $(find dist -name aiosmtplib-*.whl)[uvloop]
- unless:
condition:
equal: ["uvloop", <<parameters.event_loop>>]
steps:
- run: uv pip install $(find dist -name aiosmtplib-*.whl)
- run: |
uv run --python=<<parameters.python_version>>t --with aiosmtplib --no-project -- python -m pytest \
--cov \
--cov-report=xml:coverage-results/coverage-cpython<<parameters.python_version>>t-<<parameters.event_loop>>.xml \
--cov-config=pyproject.toml \
--junitxml=test-results/junit-cpython<<parameters.python_version>>t-<<parameters.event_loop>>.xml \
--override-ini=pythonpath= \
--event-loop=<<parameters.event_loop>> \
--bind-addr=$BIND_ADDR \
--hypothesis-profile $HYPOTHESIS_PROFILE
- store_artifacts:
path: test-results
- store_test_results:
path: test-results
- persist_to_workspace:
root: coverage-results
paths:
- .coverage.*
- codecov/upload:
report_type: test_results
disable_search: true
files: "test-results/junit-cpython<<parameters.python_version>>t-<<parameters.event_loop>>.xml"
flags: "cpython<<parameters.python_version>>t,<<parameters.event_loop>>"
- codecov/upload:
report_type: coverage
disable_search: true
files: "coverage-results/coverage-cpython<<parameters.python_version>>t-<<parameters.event_loop>>.xml"
flags: "cpython<<parameters.python_version>>t,<<parameters.event_loop>>"

test-pypy:
executor:
name: pypy_executor
Expand Down Expand Up @@ -246,6 +309,16 @@ workflows:
python_version: ["3.10", "3.11", "3.12", "3.13", "3.14"]
requires:
- build
- test-freethreaded:
<<: *base-job
name: "test-asyncio-<< matrix.python_version >>t"
matrix:
alias: "test-freethreaded-asyncio"
parameters:
event_loop: ["asyncio"]
python_version: ["3.13", "3.14"]
requires:
- build
- test:
<<: *base-job
name: "test-uvloop-<< matrix.python_version >>"
Expand All @@ -257,11 +330,23 @@ workflows:
requires:
- build
- "test-asyncio-<< matrix.python_version >>"
- test-freethreaded:
<<: *base-job
name: "test-uvloop-<< matrix.python_version >>t"
matrix:
alias: "test-freethreaded-uvloop"
parameters:
event_loop: ["uvloop"]
python_version: ["3.13", "3.14"]
requires:
- build
- coverage:
<<: *base-job
requires:
- test-cpython-asyncio
- test-cpython-uvloop
- test-freethreaded-asyncio
- test-freethreaded-uvloop
- test-asyncio-pypy3.11
- deploy:
requires:
Expand All @@ -270,6 +355,8 @@ workflows:
- docs
- test-cpython-asyncio
- test-cpython-uvloop
- test-freethreaded-asyncio
- test-freethreaded-uvloop
- test-asyncio-pypy3.11
context:
- docker-hub-credentials
Expand Down
2 changes: 1 addition & 1 deletion src/aiosmtplib/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@


__title__ = "aiosmtplib"
__version__ = "5.0.0"
__version__ = "5.0.1dev0"
__author__ = "Cole Maclean"
__license__ = "MIT"
__copyright__ = "Copyright 2022 Cole Maclean"
Expand Down