Repository navigation
Releases
Releases · python-backoff/backoff
v3.1.0
Immutable
release. Only release title and notes can be modified.
🚀 Added
- feat: Add a capping wrapper for wait generators #211 (from @edgarrmondragon)
📚 Documentation
- docs: Add more cross links to the docs #234 (from @edgarrmondragon)
- docs: Mention context managers in docs index page #232 (from @edgarrmondragon)
- docs: Add version admonitions #225 (from @edgarrmondragon)
- docs: Customize base URL for llms.txt output #224 (from @edgarrmondragon)
- docs: Expose an
/llms.txtroute in the documentation #223 (from @edgarrmondragon) - docs: Use Zensical support for
mkdocs-autoapito auto-generate API documentation #222 (from @edgarrmondragon) - docs: Simplify the application state example #218 (from @edgarrmondragon)
- docs: Simplify the runtime dynamic wait generator example #217 (from @edgarrmondragon)
- docs: Simplify the dynamic configuration example #216 (from @edgarrmondragon)
🧰 Internal
- test: Use
anyioinstead ofpytest-asyncioto run async tests #230 (from @edgarrmondragon)
🛠️ Maintenance
- build: Use
import-namespyproject metadata (aka PEP 794) #233 (from @edgarrmondragon) - ci: Start testing with Python 3.16 #229 (from @edgarrmondragon)
v3.0.0
Immutable
release. Only release title and notes can be modified.
🚀 Added
- feat: Full typing coverage and type regression tests #205 (from @edgarrmondragon)
- feat: Add an
on_trycallback #201 (from @edgarrmondragon)
⚠️ Breaking Changes
- feat!: Rename private class
_Attempttobackoff.Attemptand make it part of the public API #210 (from @edgarrmondragon) - fix!: Drop support for nullary (i.e. zero-argument) jitter functions #196 (from @edgarrmondragon)
🔄 Changed
- build: Drop suppprt for Python 3.9 #206 (from @edgarrmondragon)
🐛 Fixed
- fix: Preserve the types of annotated async functions wrapped with
on_exceptionoron_predicate#202 (from @MeisQuietude)
📚 Documentation
- docs: Added an example to the docstring of
backoff.runtime()#209 (from @edgarrmondragon)
🛠️ Maintenance
- chore: Add PR links to changelog #208 (from @edgarrmondragon)
- ci: Split PR labeling job #204 (from @edgarrmondragon)
- chore: Use
!in PR titles to indicate breaking changes #197 (from @edgarrmondragon)
v2.4.0
🚀 Added
- feat: Add a retry context manager #191 (from @edgarrmondragon)
- feat: Add type annotations to decorator functions #182 (from @edgarrmondragon)
🔄 Changed
- Drop support for Python 3.8 #152 (from @edgarrmondragon)
🐛 Fixed
- fix: Updated the type annotation of the
exceptionargument inon_exception,on_predicate,retry_contextandaretry_contextto correctly expect an exception type or a tuple of exception types #192 (from @edgarrmondragon) - fix: Measure elapsed time after function call #187 (from @edgarrmondragon)
📚 Documentation
- docs: Enable offline usage of the docs #154 (from @edgarrmondragon)
- docs: Fixed some code examples #116 (from @edgarrmondragon)
- docs: Prepare for ReadTheDocs #108 (from @edgarrmondragon)
- docs: Format Python code blocks in Markdown files with native Ruff support #102 (from @edgarrmondragon)
- docs: Remove duplicate headers in API reference docs #80 (from @edgarrmondragon)
🧰 Internal
- refactor: Use retry context internally inside our public decorators #193 (from @edgarrmondragon)
- refactor: Move retry loop logic into a dedicated object #189 (from @edgarrmondragon)
- refactor: Simplify
expo,decay, andfibowait generators #188 (from @edgarrmondragon) - chore: Bump Ruff to v0.16 #184 (from @edgarrmondragon)
- refactor: Simplify
backoff.constantwait generator implementation #181 (from @edgarrmondragon) - chore: Check types with
tyand update some type annotations #179 (from @edgarrmondragon) - test: Update parametrized tests to address pytest 9.1.0 deprecations #170 (from @edgarrmondragon)
- ci: add zizmor GitHub Actions security analysis #165 (from @edgarrmondragon)
- chore: Create CODEOWNERS #115 (from @edgarrmondragon)
- Apply the Ruff
FArules #104 (from @edgarrmondragon) - chore: Enable more Ruff rules #103 (from @edgarrmondragon)
- Apply the Ruff
Brules #100 (from @edgarrmondragon) - Apply the Ruff
Irules #99 (from @edgarrmondragon) - Apply the Ruff
RETrules #92 (from @edgarrmondragon) - chore: Add a tox env for building docs #91 (from @edgarrmondragon)
- chore: Do not use a uv.lock file #87 (from @edgarrmondragon)
🛠️ Maintenance
- ci: Wire up release drafter #194 (from @edgarrmondragon)
- ci: Simplify CodeQL analysis workflow #186 (from @edgarrmondragon)
- chore: Check types with
tyand update some type annotations #179 (from @edgarrmondragon) - test: Update parametrized tests to address pytest 9.1.0 deprecations #170 (from @edgarrmondragon)
- chore: Migrate docs config to zensical.toml #118 (from @edgarrmondragon)
- ci: Future-proof tested Python versions #117 (from @edgarrmondragon)
- chore: Create CODEOWNERS #115 (from @edgarrmondragon)
- ci: Use actionlint in CI #112 (from @edgarrmondragon)
- Pin Zensical while it is unstable #93 (from @edgarrmondragon)
v2.3.1
[v2.3.1] - 2025-12-18
Fixed
- Changed the type of the
targetkey in theDetailsdictionary to represent an actual function #72 (from @edgarrmondragon) - Synced
__version__value in__init__.pywith package version #76 (from @edgarrmondragon)
Documentation
- Switch to Zensical for building the documentation #62 (from @edgarrmondragon)
- Include changelog in the documentation #65 (from @edgarrmondragon)
- Link to canonical
requestsdocumentation hosted on "Read the Docs" #67 (from @edgarrmondragon)
Internal
- Use Ruff to give the codebase a consistent format #66 (from @edgarrmondragon)
- Enable the
UP(pyupgrade) Ruff rules and use Python 3.8+ code, including in docs #73 (from @edgarrmondragon)
v2.3.0
v2.2.2
What's Changed
- Add GitHub workflow to test with Python 3.7 - 3.14 by @edgarrmondragon in #2
- Use
inspect.iscoroutinefunctioninstead ofasyncio.iscoroutinefunctionto avoid Python 3.14 deprecation warning by @edgarrmondragon in #3 - ci: Run Python 3.7 tests in an older version of Ubuntu by @edgarrmondragon in #4
- chore: Migrate to
tool.poetry.groupdependency format by @edgarrmondragon in #5 - chore: Remove Python
<4constraint by @edgarrmondragon in #6 - Use uv for dependencies and packaging by @edgarrmondragon in #7
- Adapt test cases to pytest-asyncio 1.0 compatibility by @pastalian in #1
- Fail tests on warnings by @edgarrmondragon in #8
- Update project metadata by @edgarrmondragon in #9
- Add build and publish workflow by @edgarrmondragon in #10
- Compute coverage by @edgarrmondragon in #11
- Run linter and type checker in CI by @edgarrmondragon in #12
- Include
testsdirectory in SDist by @edgarrmondragon in #13 - chore: Configure Renovate by @renovate[bot] in #17
- chore(deps): update github actions by @renovate[bot] in #21
- ci: Update CodeQL workflow for the new default branch name by @edgarrmondragon in #22
- chore(deps): update github actions by @renovate[bot] in #24
- ci: Add permissions to CodeQL action by @edgarrmondragon in #27
- chore: Add
.python-versionfile by @edgarrmondragon in #31 - chore: Add Python 3.15 to our test matrix by @edgarrmondragon in #32
- fix: Added
logging.LoggerAdaptertobackoff._typing._MaybeLoggerunion by @edgarrmondragon in #34 - fix: Add
exceptionto the typing-onlyDetailsdictionary for cases whenon_exceptionis used by @edgarrmondragon in #35 - test: Ensure
exceptionkey is available for theon_backoffhandler by @edgarrmondragon in #36 - packaging: Remove duplicate classifier by @edgarrmondragon in #37
- docs: Add comprehensive MkDocs documentation by @tysoncung in #39
- chore: Add link to documentation to PyPI project metadata by @edgarrmondragon in #41
- chore(deps): update astral-sh/setup-uv action to v7 by @renovate[bot] in #29
- chore(deps): update actions/checkout action to v5 by @renovate[bot] in #40
- chore(deps): update actions/setup-python action to v6 - autoclosed by @renovate[bot] in #26
- chore(deps): update github/codeql-action action to v4 - autoclosed by @renovate[bot] in #28
- chore(deps): update github actions by @renovate[bot] in #25
- packaging: Rename distribution from
backofftopython-backoffby @edgarrmondragon in #42 - chore: Update the PyPI badge by @edgarrmondragon in #45
- chore: Update the PyPI badge in the docs by @edgarrmondragon in #46
- chore(deps): update github artifact actions (major) by @renovate[bot] in #38
- chore(deps): update github actions by @renovate[bot] in #47
- chore: Bump to v2.2.2 by @edgarrmondragon in #44
New Contributors
- @edgarrmondragon made their first contribution in #2
- @pastalian made their first contribution in #1
- @renovate[bot] made their first contribution in #17
- @tysoncung made their first contribution in #39
Full Changelog: v2.2.1...v2.2.2
v2.2.2rc2
chore: Bump to v2.2.2rc2
v2.2.2rc1
chore: Bump to v2.2.2rc1 Signed-off-by: Edgar Ramírez Mondragón <edgarrm358@gmail.com>