Changelog¶
0.91.0 - 2026-04-03¶
Changes¶
Migrate from Material for MkDocs to Zensical (#145, acf22c1, 9074d75)
The documentation for this project was previously built with Material for MkDocs, which depends on MkDocs. MkDocs has suffered from problematic project governance for years. The original author of MkDocs, also the original author of the similarly problematic HTTPX (fastenv#39), is taking the project in a controversial new direction. Material for MkDocs is in maintenance mode and there is a newer alternative called Zensical.
This release includes a migration of the documentation from Material for
MkDocs to Zensical. Zensical offers
compatibility with MkDocs, and
the same mkdocs.yml configuration file can be used if necessary, but
the mkdocs.yml will be removed in favor of the new zensical.toml.
Update to Gunicorn 25 (#146, c1bdd79)
This release will update from Gunicorn 23.0.0 to Gunicorn 25.3.0.
Gunicorn now provides a new ASGI worker
that supports uvloop and can run FastAPI, Starlette, Quart, and other
ASGI apps without the need for Uvicorn. Users can select the new
Gunicorn ASGI worker with inboard by setting the environment variable
WORKER_CLASS=asgi. The inboard test suite will be updated to include
test cases that run the Gunicorn ASGI worker without Uvicorn.
Gunicorn 25 offers compatibility with additional dependencies for
improved performance, including uvloop and the HTTP parser
gunicorn_h1c. A new
inboard[gunicorn-fast] extra will be added for installation of
gunicorn_h1c and uvloop with Gunicorn, and will be installed by
default now that both Gunicorn and Uvicorn support a common version of
uvloop. The uvloop version will align with the version used for
testing by Gunicorn.
Commits¶
- Bump version from 0.90.0 to 0.91.0 (e91a3d9)
- Update docs for new Starlette and Uvicorn domains (bc691e6)
- Update to Gunicorn 25 (#146) (c1bdd79)
- Remove duplicate changelog (c509cf3)
- Simplify changelog format (e9f501b)
- Remove
content.action.viewfromzensical.toml(9074d75) - Remove example
pyproject.tomlfrom docs (5881d9b) - Remove HTTPie suggestions from docs (eebc844)
- Migrate tests from HTTPX to HTTPXYZ (b30007e)
- Migrate from Material for MkDocs to Zensical (#145) (acf22c1)
- Update changelog for version 0.90.0 (#144) (b58cfea)
0.90.0 - 2026-04-03¶
Changes¶
Update to FastAPI 0.135 (4d7d918)
This release will update/upgrade to FastAPI 0.135. This is a minor release to align with FastAPI versioning.
FastAPI 0.135 introduces support for server-sent events (SSE) and vibe coding.
Commits¶
- Bump version from 0.89.0 to 0.90.0 (edeaf0e)
- Update to FastAPI 0.135 (4d7d918)
- Update changelog for version 0.89.0 (#143) (72b925c)
0.89.0 - 2026-04-02¶
Changes¶
Update to FastAPI 0.134 and Starlette 1.0.0 (0b1a43c)
This release will update/upgrade to FastAPI 0.134 and Starlette 1.0.0. This is a minor release to align with FastAPI versioning.
Changes to FastAPI between 0.132.1 and 0.134.0 include support for
streaming JSON
and binary data,
addition of a
FastAPI agent skill,
and an upgrade to Starlette 1.0+ (starlette>=0.46.0).
Changes to Starlette between 0.52.1 and 1.0.0 include a new Session
class (starlette.middleware.sessions.Session) with some associated
changes to how sessions are tracked and modified in
SessionMiddleware,
and removal of several decorators (@app.exception_handler(),
@app.middleware(), @app.route(), @app.websocket_route()) with
suggestions for using parameters to the Starlette app instead.
Now that Starlette is at version 1.0, the version in pyproject.toml
will be updated to match the FastAPI Starlette version. The FastAPI
Starlette version has no upper bound (starlette>=0.46.0), so there is
the possibility of unexpected changes. Now that FastAPI is not updating
the minor version of Starlette in patch releases, the FastAPI version
will be unpinned and limited to the current minor version.
Commits¶
- Bump version from 0.88.0 to 0.89.0 (be3dd53)
- Update to FastAPI 0.134 and Starlette 1.0.0 (0b1a43c)
- Fix changelog entry formatting for version 0.88.0 (cd32053)
- Update changelog for version 0.88.0 (#142) (a86ffe8)
0.88.0 - 2026-03-28¶
Changes¶
Update to FastAPI 0.132 (78d137c)
This release will update/upgrade to FastAPI 0.132.
FastAPI 0.130-0.132 are grouped together because they introduce breaking
changes to handling of JSON. FastAPI 0.130 and 0.131 update JSON
response serialization to use Pydantic instead of
starlette.responses.JSONResponse and deprecate the ORJSONResponse
and UJSONResponse that were previously used for improved performance.
The
FastAPI docs
now make the following suggestion:
In short, if you want the maximum performance, use a Response Model and don't declare a
response_classin the path operation decorator.
This is a BREAKING CHANGE for users of ORJSONResponse and
UJSONResponse.
FastAPI 0.132 introduces Content-Type header checks on JSON requests.
Requests now must have a valid Content-Type header or they will be
rejected. It is possible to disable this behavior on the FastAPI app
with strict_content_type=False. This is a BREAKING CHANGE. See the
FastAPI docs
for more details.
Commits¶
- Bump version from 0.87.2 to 0.88.0 (ceed673)
- Update to FastAPI 0.132 (78d137c)
- Use GitHub Actions environment without deployment (977ecf5)
- Update to pipx 1.11 (26b28ba)
- Fix changelog environment name (646ac6a)
- Update changelog for version 0.87.2 (#141) (991a5b5)
0.87.2 - 2026-03-15¶
Changes¶
Migrate to PEP 735 dependency groups (eccd80b)
Hatch 1.16 introduced
support
for
PEP 735 dependency groups
in pyproject.toml. This release will migrate project metadata to
dependency groups.
Dependency groups allow development dependencies to be moved out of the
[project.optional-dependencies] table and into a separate
[dependency-groups] table. This is helpful because optional
dependencies are included with package metadata, so previously, groups
of dependencies in the [project.optional-dependencies] table (also
called "features" or "extras") were all included in the built package
and visible in PKG-INFO text files in sdists (source distributions),
even if they were only used for development of the project itself. The
[dependency-groups] table is not included in built packages, so the
package has cleaner metadata when built and distributed to registries
like PyPI.
When building packages with hatch build, there is now an undocumented
requirement for builder = true in the Hatch environment used to build.
Without builder = true, Hatch will error because the environment "is
not a builder environment"
(pypa/hatch#2113). Hatch
1.16.3 or later is required to use dependency groups in builder
environments
(pypa/hatch#2152).
Commits¶
- Bump version from 0.87.1 to 0.87.2 (4bb4738)
- Contain workflow permissions (a7060b7)
- Add
[skip ci]to changelog PRs (cf03a2b) - Add
workflow_dispatchto changelog job (2b1ba3a) - Update to
peter-evans/create-pull-request@v8(f39c070) - Update to
actions/download-artifact@v8(60afda6) - Update to
actions/upload-artifact@v7(cce2f75) - Update to
actions/cache@v5(893d04e) - Update to
actions/setup-python@v6(7cd8826) - Update to
actions/checkout@v6(e5ca757) - Migrate to PEP 735 dependency groups (eccd80b)
- Update changelog for version 0.87.1 (#140) (222dd31)
0.87.1 - 2026-02-28¶
Changes¶
Update to Hatch 1.16.5 (cf534e7)
Due to an upstream change to virtualenv, Hatch script commands have
started erroring
(pypa/hatch#2193):
module 'virtualenv.discovery.builtin' has no attribute 'propose_interpreters'
This release will update from Hatch 1.15.1 to Hatch 1.16.5. As part of this update, the Hatch version constraint will be relaxed to allow patch updates so that fixes like the one in Hatch 1.16.5 can be installed more readily, and the Hatch version checks in the GitHub Actions workflow will be removed because they are no longer necessary.
When building packages with hatch build, there is now an undocumented
requirement for builder = true in the Hatch environment used to build.
Without builder = true, Hatch will error because the environment "is
not a builder environment"
(pypa/hatch#2113).
Commits¶
- Bump version from 0.87.0 to 0.87.1 (c3e2dcb)
- Update to Hatch 1.16.5 (cf534e7)
- Update changelog for version 0.87.0 (#139) (367da1f)
0.87.0 - 2026-02-21¶
Changes¶
Update to FastAPI 0.129 and Starlette 0.52 (70548ac)
This release will update/upgrade to FastAPI 0.129 and Starlette 0.52. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.129 drops support for Python 3.9 (already dropped by Starlette
and inboard) and drops the "fastapi-slim" package build. FastAPI 0.128.3
also relaxed the Starlette version range from
starlette>=0.40.0,<0.51.0 to starlette>=0.40.0,<1.0.0. This could
lead to issues because the plan for Starlette 1 is not clear
(encode/starlette#51),
and breaking changes could be introduced at any point until then.
inboard will continue to limit the Starlette version to avoid breaking
changes, updating to 0.52 in this release. Changes to Starlette in 0.51
and 0.52 include the ability to access state with dictionary syntax
(docs) and add
Access-Control-Allow-Private-Network headers with CORSMiddleware.
Commits¶
- Bump version from 0.86.0 to 0.87.0 (37cba2a)
- Update to FastAPI 0.129 and Starlette 0.52 (70548ac)
- Update changelog for version 0.86.0 (#138) (83c0dae)
0.86.0 - 2026-01-31¶
Changes¶
Update to FastAPI 0.128 (683c12a)
This release will update/upgrade to FastAPI 0.128. This is a minor release to align with FastAPI versioning.
FastAPI 0.128 drops Pydantic 1 support. This is a BREAKING CHANGE for Pydantic 1 users. See the FastAPI docs for further information on migrating to Pydantic 2.
Commits¶
- Bump version from 0.85.0 to 0.86.0 (9ab54fe)
- Update to FastAPI 0.128 (683c12a)
- Update to BasedPyright 1.37 (905d723)
- Update changelog for version 0.85.0 (#137) (bf8e78f)
0.85.0 - 2026-01-25¶
Changes¶
Update to FastAPI 0.127 (65f0e95)
This release will update/upgrade to FastAPI 0.127.
FastAPI 0.126 and 0.127 are being released together here because they
both set up the deprecation of Pydantic 1. FastAPI will now raise a
FastAPIDeprecationWarning when Pydantic 1 is used. Pydantic 1 support
will be dropped in FastAPI 0.128.
Commits¶
- Bump version from 0.84.0 to 0.85.0 (ffb1b0f)
- Update to FastAPI 0.127 (65f0e95)
- Update Vercel configuration for uv (c8ea689)
- Update changelog for version 0.84.0 (#136) (33b5172)
0.84.0 - 2026-01-03¶
Changes¶
Update to FastAPI 0.125 (b21826a)
This release will update/upgrade to FastAPI 0.125. This is a minor release to align with FastAPI versioning.
FastAPI 0.125 drops Python 3.8 support. This change is a year overdue. Python 3.8 was at end-of-life on 2024-10-07, inboard dropped Python 3.8 support in version 0.71.0 on 2024-10-05, and Starlette dropped Python 3.8 support in version 0.45.0 on 2024-12-29.
Commits¶
- Bump version from 0.83.0 to 0.84.0 (026779b)
- Update to FastAPI 0.125 (b21826a)
- Update changelog for version 0.83.0 (#135) (0bce217)
0.83.0 - 2025-12-31¶
Changes¶
Update to FastAPI 0.124 (ef0c302)
This commit will update/upgrade to FastAPI 0.124. This is a minor release to align with FastAPI versioning.
FastAPI 0.124 adds endpoint metadata to ValidationError tracebacks and
provides some type checking fixes.
Commits¶
- Bump version from 0.82.0 to 0.83.0 (b8bb436)
- Update to FastAPI 0.124 (ef0c302)
- Update changelog for version 0.82.0 (#134) (a0106c5)
0.82.0 - 2025-12-13¶
Changes¶
Update to FastAPI 0.123
This release will update/upgrade to FastAPI 0.123. This is a minor release to align with FastAPI versioning.
FastAPI 0.123 implements dependency caching using
functools.cached_property.
This behavior is undocumented, but the related PR description
(fastapi/fastapi#14419)
says,
Dependencies are cached based on the function. And also on the scopes, but (now) only when those scopes are used by this dependency or by a sub-dependency: this dependency or a sub-dependency declare scopes or access the
SecurityScopes.
Also see the docs on dependency scope.
Commits¶
- Bump version from 0.81.0 to 0.82.0 (b66ec24)
- Update to FastAPI 0.123 (3099002)
- Update changelog for version 0.81.0 (#133) (31a16b2)
0.81.0 - 2025-12-13¶
Changes¶
Update to FastAPI 0.122 (ea826ce)
This release will update/upgrade to FastAPI 0.122. This is a minor release to align with FastAPI versioning.
FastAPI 0.122 updates the behavior of fastapi.security classes. These
classes will now return 401 Unauthorized instead of 403 Forbidden.
See the
HTTP Basic auth docs
for general info, and the related
how-to
if custom status codes are needed for authorization errors.
Note that this may be a breaking change for some projects if application
logic or tests were hard-coded to expect a 401 status code. inboard
anticipated this situation years ago, so the tests of HTTP Basic auth
were written to allow either a 401 or 403 for these errors as seen
here.
Commits¶
- Bump version from 0.80.0 to 0.81.0 (f416046)
- Update to FastAPI 0.122 (ea826ce)
- Update changelog for version 0.80.0 (#132) (893889a)
0.80.0 - 2025-12-13¶
Changes¶
Update to Debian 13 "trixie" (#129, 1b6ea66)
inboard began specifying the version of Debian Linux starting in version 0.67. At that time, the latest version was Debian 12 ("bookworm").
The latest version is now Debian 13 ("trixie"). This release will update to trixie.
Commits¶
- Bump version from 0.79.0 to 0.80.0 (fb70266)
- Update to Debian 13 "trixie" (#129) (1b6ea66)
- Revert "Fix BasedPyright
reportUnusedParameterusage" (02dd6d8) - Fix BasedPyright
reportUnusedParameterusage (c0fd2ac) - Update changelog for version 0.79.0 (#130) (2349797)
0.79.0 - 2025-11-23¶
Changes¶
Update to FastAPI 0.121.3 and Starlette 0.50 (e7ff057)
This release will update/upgrade to FastAPI 0.121.3 and Starlette 0.50. Although inboard was already on FastAPI 0.121, this is a minor version bump for Starlette that includes a breaking change, so this is a minor release of inboard.
FastAPI 0.121.3 adds support for Starlette 0.50 and provides some other small changes and internal refactors.
Starlette 0.50 drops Python 3.9 support. This is a breaking change for Python 3.9 users. Note that, while Starlette doesn't support Python 3.9, FastAPI still does. This doesn't make much sense because FastAPI depends on Starlette for much of its functionality. FastAPI probably shouldn't be using Starlette with unsupported versions of Python.
Drop Python 3.9 support (#128, 8ca759d)
Python 3.9 is past end-of-life. Starlette 0.50 dropped support for Python 3.9. This release will drop support for Python 3.9.
Add Python 3.13 support (#115, 6daa20b)
This release will add Python 3.13 support to inboard.
- inboard will now run tests with Python 3.13, in addition to 3.9-3.12
- inboard will now build and publish its PyPI package using Python 3.13
- inboard will now include a Python 3.13 classifier in its PyPI package
- inboard will now ship Docker images running Python 3.13, in addition
to 3.9-3.12, and Docker images tagged with
latestwill now use 3.13
Related projects that have released support for Python 3.13 include:
- AnyIO (4.6.2 - 2024-10-13)
- FastAPI (0.115.8 - 2025-01-30)
- Hatch (1.13.0 - 2024-10-13)
- httptools (0.6.2 - 2024-10-14)
- pipx (1.8.0 - 2025-09-30)
- Pydantic (2.8.0 - 2024-07-01)
- Starlette (0.38.3 - 2024-09-01)
- Uvicorn (0.32.0 - 2024-10-15)
- uvloop (0.21.0 - 2024-10-14)
Related projects that have not released support for Python 3.13 include:
- Gunicorn (has not released Python 3.13 support, but is testing with Python 3.13 in development)
Gunicorn has still not released Python 3.13 support, and has not done a release of any kind in over a year. Python 3.12 will of course still be supported in case there are issues with Gunicorn on Python 3.13.
Updates to uvloop>0.15.1 and httptools>=0.6.3 were needed for Python
3.13 compatibility.
Commits¶
- Bump version from 0.78.0 to 0.79.0 (a2b040a)
- Add Python 3.13 support (#115) (6daa20b)
- Drop Python 3.9 support (#128) (8ca759d)
- Update to FastAPI 0.121.3 and Starlette 0.50 (e7ff057)
- Update changelog for version 0.78.0 (#127) (3168717)
0.78.0 - 2025-11-08¶
Changes¶
Update to FastAPI 0.121 (e9c0b2d)
This release will update/upgrade to FastAPI 0.121. This is a minor release to align with FastAPI versioning.
FastAPI 0.121 updates the behavior of dependencies with yield as
explained in the
docs.
For further background on this topic, see
inboard 0.59.0 and
inboard 0.66.0.
Commits¶
- Bump version from 0.77.0 to 0.78.0 (081d584)
- Update to FastAPI 0.121 (e9c0b2d)
- Update to BasedPyright 1.33 (5c27b39)
- Update changelog for version 0.77.0 (#126) (b896aae)
0.77.0 - 2025-11-08¶
Changes¶
Update to FastAPI 0.120 and Starlette 0.49 (ec0d986)
This release will update/upgrade to FastAPI 0.120 and Starlette 0.49. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.120 adds support for Starlette 0.49 and provides some other internal refactors.
Starlette 0.49 fixes a security vulnerability (GHSA-7f5h-v6xp-fcq8).
Commits¶
- Bump version from 0.76.0 to 0.77.0 (b314bb2)
- Update to FastAPI 0.120 and Starlette 0.49 (ec0d986)
- Update to Ruff 0.14 (4f5a542)
- Update changelog for version 0.76.0 (#125) (03a297f)
0.76.0 - 2025-11-08¶
Changes¶
Update to FastAPI 0.119 (f38a43e)
This release will update/upgrade to FastAPI 0.119. This is a minor release to align with FastAPI versioning.
FastAPI 0.119 adds dual support for Pydantic 1 and 2. Now that Pydantic 2 is supported, FastAPI will be deprecating Pydantic 1. See the docs for suggestions on how to migrate from Pydantic 1 to 2.
Commits¶
- Bump version from 0.75.0 to 0.76.0 (8f4e1a9)
- Update to FastAPI 0.119 (f38a43e)
- Update to Hatch 1.15.1 (5d60ebb)
- Update changelog for version 0.75.0 (#124) (8769c6d)
0.75.0 - 2025-10-12¶
Changes¶
Update to FastAPI 0.118 and Starlette 0.48 (ef0703b)
This release will update/upgrade to FastAPI 0.118 and Starlette 0.48. This is a minor release to align with FastAPI and Starlette versioning.
Changes to FastAPI between 0.116.1 and 0.118.3 are mostly small fixes.
Starlette 0.48 adds Python 3.14 support.
Notably, Starlette and Uvicorn have been transferred from the Encode org to an individual user's GitHub account. For context, see Kludex/starlette#2997. Docs are now hosted at starlette.dev and uvicorn.dev.
Commits¶
- Bump version from 0.74.0 to 0.75.0 (a0848c4)
- Update to FastAPI 0.118 and Starlette 0.48 (ef0703b)
- Update changelog for version 0.74.0 (#123) (d8c23fc)
0.74.0 - 2025-10-11¶
Changes¶
Switch type checking from mypy to BasedPyright (99b7a45)
This release will switch Python type checking from mypy to BasedPyright. See the docs for comparisons with mypy and Pyright. This is a minor release due to the possibility of affecting type checks and the associated CI workflows.
Pre-existing errors have been fixed if possible. BasedPyright supports
baselining,
in which existing errors can be written to a file. This allows adoption
of the type checker without having to fix all pre-existing errors first.
The baseline file will be added to .basedpyright/baseline.json.
The rule reportImplicitOverride will be set to "information" only. The
fix for this warning is to use the @typing.override decorator that was
introduced in Python 3.12. The typing_extensions package provides this
decorator for use with older versions of Python is needed. The problem
is that, while the
typing docs
say "There is no runtime checking of this property," use as a decorator
(rather than just a type annotation) means it is required at runtime.
Therefore, this project would have to add a runtime dependency on the
typing_extensions package, which is not of interest at this time.
In addition to superior type checking results, another motivation for
this change is the language server provided by the BasedPyright
VSCode/VSCodium extension.
Jedi is no longer
working well for
Python editing
features like autocompletion and go to definition, and the Microsoft
Pylance/Pyright extension is only available on the proprietary Microsoft
extension registry. BasedPyright is another option also available on
Open VSX for
users of VSCodium.
This commit will add an extensions.json file to suggest BasedPyright.
Note that the VSCode settings.json for the user should include
"python.languageServer": "None" so that BasedPyright can act as the
language server. "None" is currently the default for this setting, but
it could change in the future, so it is prudent to explicitly set it to
"None". This setting cannot be added at the folder level.
Commits¶
- Bump version from 0.73.0 to 0.74.0 (0fbadc8)
- Update BasedPyright baseline (9225263)
- Update to
pipx==1.8.0(4676659) - Update to Hatch 1.14.2 (bc60ea2)
- Match Hatch version in GitHub Actions and Docker (5ce5dcb)
- Switch type checking from mypy to BasedPyright (99b7a45)
- Format
pyproject.tomlwith Tombi (8145b7d) - Update logging dict config type (5c5d3e9)
- Use same file for contributing docs (860aada)
- Use same file for README and docs homepage (3c6f2d9)
- Update
launch.jsonfor Python Debugger extension (bc957fe) - Use Hatch commands in contributing.md testing docs (0ed9ab5)
- Update to
peter-evans/create-pull-request@v7(546a7f1) - Streamline coverage.py subprocess code measurement (4bcb4d8)
- Remove CodeQL GitHub Actions workflow (b375633)
- Format Git tag messages with Prettier (ff85351)
- Relax Prettier version constraint (83f2753)
- Format Git commit messages with Prettier (592c8f3)
- Update
.gitignore(d0d5a4f) - Use
$HATCH_ENV_TYPE_VIRTUAL_PATHconsistently (d6768f5) - Update to
pypa/gh-action-pypi-publish@v1.13.0(04f54b1) - Move Vercel commands to
vercel.json(2c28fc0) - Add Markdown-specific override to
.prettierrc(c4c2f0e) - Move
.prettierrcto repo root (f35c230) - Update Vercel commands in README (bc09556)
- Add
exclude_gitignoremypy setting (77abc33) - Remove deprecated
show_error_codesmypy setting (85a8e5e) - Update changelog for version 0.73.0 (#122) (487e646)
0.73.0 - 2025-07-29¶
Changes¶
Update to FastAPI 0.116 and Starlette 0.47 (dc8ae34)
This release will update/upgrade to FastAPI 0.116 and Starlette 0.47. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.116 introduces support for deploying to FastAPI Cloud with
the fastapi deploy CLI command.
Starlette 0.47 reintroduces support for an ASGI extension called
path send
(aka "path-send" or pathsend). It was introduced in Starlette 0.36,
then removed in 0.38 because of issues with BaseHTTPMiddleware. Now
they're giving it another try.
Commits¶
- Bump version from 0.72.4 to 0.73.0 (f28b44f)
- Update to FastAPI 0.116 and Starlette 0.47 (dc8ae34)
- Fix changelog in separate GitHub Actions job step (60c0700)
- Fix changelog generator
$ESCAPE_DUNDERSregex (2a6a518) - Add missing
shellcheck disable=SC2016(6573cd9) - Update changelog for version 0.72.4 (#121) (879782b)
0.72.4 - 2025-06-20¶
Changes¶
Update to FastAPI 0.115.13 (8253166)
This release will update/upgrade to FastAPI 0.115.13. inboard was already on FastAPI 0.115, so this is a patch release to align with FastAPI versioning.
FastAPI 0.115.13 includes small updates related to OAuth2 and Pydantic.
Update to mypy==1.16.1 (e221fd4)
This mypy update is mentioned in the release notes because it required an update to a user-facing type annotation.
Mypy 1.16.1 detects a type error, undetected in previous mypy versions,
in the on_error argument to AuthenticationMiddleware.__init__() in
inboard.app.main_starlette.
inboard/app/main_starlette.py:56:
error: Argument "on_error" to "Middleware" has incompatible type
"Callable[[Request, Exception], JSONResponse]";
expected "Callable[[HTTPConnection, AuthenticationError], Response] | None" [arg-type]
The on_auth_error callable had the first argument incorrectly type
annotated as starlette.requests.Request when it should have been
starlette.requests.HTTPConnection. The second argument is annotated in
Starlette as starlette.exceptions.AuthenticationError, which inherits
from Exception and is merely a pass.
Commits¶
- Bump version from 0.72.3 to 0.72.4 (71a998f)
- Update to FastAPI 0.115.13 (8253166)
- Update to Ruff 0.12 (a2dda06)
- Update to
mypy==1.16.1(e221fd4) - Update to Hatch 1.14.1 (3b43236)
- Update changelog for version 0.72.3 (#120) (f801c79)
0.72.3 - 2025-04-06¶
Changes¶
Update to FastAPI 0.115.12 (723cf0b)
This release will update/upgrade to FastAPI 0.115.12 and Starlette 0.46. inboard was already on FastAPI 0.115, so this is a patch release to align with FastAPI versioning.
Changes to FastAPI between 0.115.8 and 0.115.12 include Starlette 0.46 support and other small fixes.
Commits¶
- Bump version from 0.72.2 to 0.72.3 (00f554b)
- Update to FastAPI 0.115.12 and Starlette 0.46 (723cf0b)
- Update to
mypy==1.15.0(3da23e1) - Update to Ruff 0.11 (172d077)
- Update to Hatch 1.14 and Hatchling 1.26.3 (c01230a)
- Update changelog for version 0.72.2 (#119) (a21a840)
0.72.2 - 2025-02-17¶
Changes¶
Update to FastAPI 0.115.8 (744ba25)
This release will update/upgrade to FastAPI 0.115.8. This is a patch release to align with FastAPI versioning.
FastAPI 0.115.8 adds Python 3.13 support and fixes syntax used in OAuth 2.0 password grants.
Commits¶
- Bump version from 0.72.1 to 0.72.2 (8dc2e11)
- Update to FastAPI 0.115.8 (744ba25)
- Update to Ruff 0.9 (3e573b6)
- Update to
pypa/gh-action-pypi-publish1.12.4 (a2ef32d) - Update changelog for version 0.72.1 (#118) (c33d1b5)
0.72.1 - 2025-01-23¶
Changes¶
Update to FastAPI 0.115.7 and Starlette 0.45 (9a278f2)
This release will update/upgrade to FastAPI 0.115.7 and Starlette 0.45. This is a patch release to align with FastAPI versioning.
FastAPI has been repeatedly updating the minor version of Starlette in patch releases of FastAPI (1bde85a). In this case, FastAPI 0.115.7 updated Starlette from 0.41 to 0.45. Changes to Starlette between 0.41 and 0.45 include removal of Python 3.8 support and various small bug fixes and updates.
Commits¶
- Bump version from 0.72.0 to 0.72.1 (6577aa6)
- Update to FastAPI 0.115.7 and Starlette 0.45 (9a278f2)
- Update changelog for version 0.72.0 (#117) (d210af3)
0.72.0 - 2025-01-10¶
Changes¶
Add and test Gunicorn workers (#116, 35d8d86, 319c07b, d4f791a, 8beddab, e8019a2, c52fd63, 749a3eb)
This project supports the Gunicorn web server. The Gunicorn server design includes a primary "arbiter" process that spawns "worker" child processes, each with their own running server. Workers are implemented as Python classes and custom workers can be supplied.
This project also supports the Uvicorn web server. In the past, Uvicorn
supplied workers for use with Gunicorn, but the Uvicorn workers were not
tested. The uvicorn.workers module was completely omitted from
coverage measurement due to use of the coverage.py include setting
to specify source files. Efforts were made to test the Uvicorn workers
(encode/uvicorn#1834,
encode/uvicorn#1995),
but the workers were arbitrarily deprecated and moved to
someone's personal project (encode/uvicorn#2302),
instead of an Encode-managed project as would have been expected
(encode/uvicorn#517 (comment)).
Rather than introducing a production dependency on a separate Uvicorn workers package that is not managed by Encode, the Gunicorn workers will be added directly to this project.
This release will add the code from uvicorn.workers to a new module
inboard.gunicorn_workers. The code will be preserved
as it was prior to deprecation,
with a copy of the
Uvicorn license
and necessary updates for compliance with the code quality settings in
this project.
This release will also add tests of 100% of the Gunicorn worker code to a
new module tests.test_gunicorn_workers. A test fixture starts a
subprocess running Gunicorn with a Uvicorn worker and an ASGI app. The
subprocess includes an instance of httpx.Client for HTTP requests to
the Uvicorn worker's ASGI app, and saves its output to a temporary file
for assertions on stdout/stderr. Tests can send operating system
signals to the
process. The coverage.py configuration will be updated for subprocess
test coverage measurement.
On a related note, an attempt was made to update to the latest version of Uvicorn (Uvicorn 0.34.0), but this change was reverted. Uvicorn updates have been delayed for some time while evaluating the releases. There were some notable (but undocumented) updates to signal handling introduced in Uvicorn 0.29. The updates may result in child processes that do not shut down after the Uvicorn server gracefully shuts down (encode/uvicorn#1600, encode/uvicorn#2281, encode/uvicorn#2289, encode/uvicorn#2317). Furthermore, these signal handling changes haven't been tested with the Gunicorn workers, because Uvicorn doesn't test its workers, as noted in 35d8d86. Now that the Gunicorn workers have been added to inboard directly, the Uvicorn releases can be tested and evaluated more effectively.
After updating from Uvicorn 0.28.1 to Uvicorn >=0.29.0, coverage.py
reports that inboard.gunicorn_workers.UvicornWorker.callback_notify
and the test ASGI app (tests.test_gunicorn_workers.app) are not being
covered, when they actually are covered by the tests. callback_notify
runs after the Gunicorn server has started up, and the test ASGI app
is obviously used (otherwise the tests couldn't pass). Possibly related
to the unexpected change in test coverage, coverage.py generates fewer
coverage files with Uvicorn >=0.29.0. This could suggest that some of
the subprocesses used in the tests aren't exiting cleanly or aren't
being detected by coverage.py.
Until the changes to signal handling and test coverage are understood more clearly, Uvicorn will remain on version 0.28.1.
Update to Gunicorn 23.0.0 (1a2be82)
This release will update/upgrade Gunicorn from 22.0.0 to 23.0.0. There are several breaking changes noted in the Gunicorn changelog. Users are encouraged to review these changes and update usage as needed.
Commits¶
- Bump version from 0.71.2 to 0.72.0 (76d69fc)
- Extend Gunicorn worker test wait times (749a3eb)
- Update to Gunicorn 23.0.0 (1a2be82)
- Revert "Update to Uvicorn 0.34.0" (346b12a)
- Avoid Gunicorn worker test subprocess re-spawning (c52fd63)
- Rename Gunicorn worker
GETrequest test (e8019a2) - Simplify Gunicorn worker boot error test assertion (8beddab)
- Correct docstring in Gunicorn worker test (d4f791a)
- Update to Uvicorn 0.34.0 (3cdf61e)
- Update Uvicorn Gunicorn worker info in docs (319c07b)
- Add and test Gunicorn workers (#116) (35d8d86)
- Update changelog for version 0.71.2 (#114) (6cf2d1d)
0.71.2 - 2024-12-21¶
Changes¶
Update to pypa/gh-action-pypi-publish 1.12.3
(9d31003)
This release will update pypa/gh-action-pypi-publish from 1.11.0 to
1.12.3.
The action will now pull a pre-built Docker image from GHCR (GitHub Container Registry) instead of building the Docker image at the beginning of each GitHub Actions run (pypa/gh-action-pypi-publish#230, pypa/gh-action-pypi-publish#241, pypa/gh-action-pypi-publish#301).
Update to FastAPI 0.115.6 (c0216a0)
This release will update/upgrade to FastAPI 0.115.6. This is a patch release to align with FastAPI versioning.
FastAPI 0.115.6 makes a small change to exception handling in dependencies with yield when they are regular synchronous functions (as opposed to async). These synchronous dependencies will now preserve exception tracebacks.
Update Markdown formatting for Prettier 3.4 (8907eae, dd5abd6)
This release will update formatting of Markdown documents for
Prettier 3.4.
The update removes extra spaces after unordered list line prefixes.
The large diff in Markdown files in this release is from reformatting
unordered lists from - to -.
Note that Prettier 3.4 exhibits problematic behavior when formatting
admonitions that are nested within unordered lists
(prettier/prettier#16929 (comment)).
Prettier ignore comments (<!-- prettier-ignore -->) have been added
where necessary to prevent this problematic behavior.
Commits¶
- Bump version from 0.71.1 to 0.71.2 (c97bd7e)
- Update to
pypa/gh-action-pypi-publish1.12.3 (9d31003) - Update to FastAPI 0.115.6 (c0216a0)
- Format Markdown admonition lists for Prettier 3.4 (dd5abd6)
- Update Markdown formatting for Prettier 3.4 (8907eae)
- Fix style of Markdown admonition directives (779b1f4)
- Update changelog for version 0.71.1 (#113) (2aca413)
0.71.1 - 2024-11-13¶
Changes¶
Update to pypa/gh-action-pypi-publish 1.11
(eaa41e3)
After this update, PEP 740 attestations will be added automatically when publishing packages to PyPI. This release will also switch to referencing the action by the exact commit ID (Git SHA) for stability and security.
For background on the updated OIDC Trusted Publishing workflow, see br3ndonland/inboard@59ec546, br3ndonland/inboard@08044c6, pypa/gh-action-pypi-publish@v1.11.0, and the PyPI docs.
Update to FastAPI 0.115.5 and Starlette 0.41 (1bde85a)
This release will update/upgrade to FastAPI 0.115.5 and Starlette 0.41. inboard was already on FastAPI 0.115, so this is a patch release to align with FastAPI versioning.
FastAPI 0.115.3 updated Starlette to "starlette>=0.40.0,<0.42.0".
Changes to Starlette between 0.39 and 0.41 include a fix for a DoS
(Denial of Service) security vulnerability released in Starlette 0.40.0
(GHSA-f96h-pmfr-66vw).
FastAPI has been repeatedly updating the minor version of Starlette in
patch releases of FastAPI. Previously, inboard pinned FastAPI to the
minor version (like "fastapi>=0.115,<0.116"), allowing patch version
updates whenever the inboard project was installed. Unfortunately, it
can result in version incompatibilities when FastAPI updates the
Starlette minor version unexpectedly like this. For example, the inboard
pyproject.toml previously specified "fastapi>=0.115,<0.116" and
"starlette>=0.37.2,<0.39.0". With the release of FastAPI 0.115.3,
those two version specifiers are incompatible.
It would be simpler if FastAPI released a minor version each time it
updated the minor version of Starlette. As a stopgap, this release will
pin the FastAPI version exactly ("fastapi==0.115.5") so the versions
of FastAPI and Starlette do not become unexpectedly incompatible. This
of course means inboard will need to provide updates to FastAPI more
frequently (for patch releases instead of for minor releases). As
usual, the lack of attention to release practices in the open source
community means more maintenance work for the inboard maintainer.
Commits¶
- Bump version from 0.71.0 to 0.71.1 (1a123f7)
- Align Prettier versions (461ca62)
- Update to
pypa/gh-action-pypi-publish1.11 (eaa41e3) - Update to Hatch 1.13.0 and Hatchling 1.26 (d846eba)
- Update to Ruff 0.7 (317e7f9)
- Update to
mypy==1.13.0(49181da) - Update to FastAPI 0.115.5 and Starlette 0.41 (1bde85a)
- Update changelog for version 0.71.0 (#112) (351f19c)
0.71.0 - 2024-10-05¶
Changes¶
Update to FastAPI 0.115 (ee33487)
This release will update/upgrade from FastAPI 0.112 to FastAPI 0.115. FastAPI 0.113, 0.114, and 0.115 are included in the same inboard release because the updates in each release are all similar.
FastAPI 0.113-0.115 enable cookies, form fields, headers, and query parameters to be declared with Pydantic models. Query parameters, for example, have been supported for many versions now, but application developers usually had to encode them as "kwargs" (keyword arguments) in every API endpoint function, resulting in code duplication and the need for custom logic. Now that query parameter models are supported, models can be declared once and reused multiple times.
There are still gaps here - although FastAPI now supports reusing query
parameters, it does not provide features for helping API endpoint
functions work with those query parameters. Query parameters are
often used to set up filter and sort clauses for relational databases.
The construction of SELECT statements from these query parameters is
still left up to application developers. The related package
SQLModel, while it does combine
Pydantic and SQLAlchemy models, does not provide features for SELECT
statement construction at this time either. Other third-party packages
like fastapi-filters may be
helpful.
Drop Python 3.8 support (df6885d, 7ac105f)
Python 3.8 is at end-of-life. This release will drop support for Python 3.8. This could be a breaking change for users still running 3.8, so those users should consider updating to 3.9 or above.
Commits¶
- Bump version from 0.70.0 to 0.71.0 (3cb5b60)
- Upgrade syntax after dropping Python 3.8 (7ac105f)
- Update to FastAPI 0.115 (ee33487)
- Drop Python 3.8 support (df6885d)
- Update to Ruff 0.6 (af5bae1)
- Update to
mypy==1.11.2(99bac5a) - Update to
pipx==1.7.1(f74e09b) - Update changelog for version 0.70.0 (#111) (97d2d04)
0.70.0 - 2024-08-26¶
Changes¶
Update to FastAPI 0.112 and Starlette 0.38 (b4cf65d)
This release will update/upgrade to FastAPI 0.112 and Starlette 0.38. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.112 moves dependencies for the FastAPI CLI introduced in 0.111
to an optional extra, fastapi[standard]. Although the FastAPI release
notes consider this a breaking change, the FastAPI CLI was not used by
inboard, so FastAPI 0.112 will likely not be breaking for inboard users.
Starlette 0.38 makes various small changes, including removal of support
for an ASGI extension called
path send
(aka "path-send" or pathsend) that was introduced in Starlette 0.36.
Support was removed because of issues with BaseHTTPMiddleware, though
note that BaseHTTPMiddleware may eventually be deprecated
(encode/starlette#2160,
encode/starlette#2654).
The Starlette release notes do not list this as a breaking change, but
it could be breaking for users who have started working with path send.
Note that FastAPI updated the Starlette minor version to allow 0.38 in
the 0.112.1 patch release.
Use dedicated GitHub Actions job for PyPI (08044c6, 180d353)
This project uses pypa/gh-action-pypi-publish to publish Python packages to PyPI with an OIDC trusted publisher (59ec546).
pypa/gh-action-pypi-publish is set up as a Docker action referencing its Dockerfile. The downside to using the Dockerfile for the action is that the Docker image must be built every time the action is used. This will hopefully change in the near future if Docker images are built and pushed to a registry (pypa/gh-action-pypi-publish#230). In the meantime, PyPI steps steps will be moved to a dedicated GitHub Actions job so that the Docker image is not built every time GitHub Actions jobs run.
Commits¶
- Bump version from 0.69.0 to 0.70.0 (01835ec)
- Update to FastAPI 0.112 and Starlette 0.38 (b4cf65d)
- Don't hard-code repo name in GitHub Actions jobs (180d353)
- Use dedicated GitHub Actions job for PyPI (08044c6)
- Update to
hatch==1.12.0(f950d28) - Update to
pipx==1.6.0(8066be3) - Update to
mypy==1.10.1(08ba81a) - Update to Ruff 0.5 (101fdb3)
- Update to Prettier 3 (67ee89d)
- Add
--platformto Docker CLI examples in docs (dd3a53c) - Fix Docker
FromAsCasingwarning (49914dd) - Update changelog for version 0.69.0 (#110) (294e8c8)
0.69.0 - 2024-07-14¶
Changes¶
This release will update/upgrade to FastAPI 0.111. This is a minor release to align with FastAPI versioning.
FastAPI 0.111.0 adds a fastapi CLI that is not relevant to inboard.
FastAPI 0.111.1 removes orjson and ujson from default dependencies.
Users who depend on orjson or ujson should add these dependencies to
their requirements files.
Commits¶
- Bump version from 0.68.0 to 0.69.0 (af06254)
- Update to FastAPI 0.111 (5f9ee0a)
- Update changelog for version 0.68.0 (#109) (2416a23)
0.68.0 - 2024-04-26¶
Changes¶
Update to Uvicorn 0.28.1 (6166a66)
This release will update/upgrade to Uvicorn 0.28.1.
Changes
to Uvicorn between 0.25.0 and 0.28.1 include updates to root_path/
--root-path to comply with the ASGI spec, and fixes to Keep-Alive
behavior to avoid timeouts and h11.LocalProtocolError exceptions that
occur when processing pipelined requests.
Update to Gunicorn 22.0.0 (#108, bf4661e)
This release will update/upgrade to Gunicorn 22.0.0. Gunicorn 22.0.0 resolves a high-severity security vulnerability (CVE-2024-1135, GHSA-w3h3-4rj7-4ph4):
Gunicorn fails to properly validate Transfer-Encoding headers, leading to HTTP Request Smuggling (HRS) vulnerabilities. By crafting requests with conflicting Transfer-Encoding headers, attackers can bypass security restrictions and access restricted endpoints. This issue is due to Gunicorn's handling of Transfer-Encoding headers, where it incorrectly processes requests with multiple, conflicting Transfer-Encoding headers, treating them as chunked regardless of the final encoding specified. This vulnerability has been shown to allow access to endpoints restricted by gunicorn. This issue has been addressed in version 22.0.0.
To be affected users must have a network path which does not filter out invalid requests. These users are advised to block access to restricted endpoints via a firewall or other mechanism if they are unable to update.
Commits¶
- Bump version from 0.67.1 to 0.68.0 (3fc1f79)
- Quote
&in GitHub Actions workflow YAML (0043237) - Update to Uvicorn 0.28.1 (6166a66)
- Bump gunicorn from 21.2.0 to 22.0.0 (#108) (bf4661e)
- Update changelog for version 0.67.1 (#107) (9579bba)
0.67.1 - 2024-04-11¶
Changes¶
Fix Docker tags for specific Debian version (e84fc8b)
PR #105 and
commit 6a99cd0
introduced support for specifying the Debian version when building
Docker images, ensuring that the version does not change unexpectedly.
This change altered Docker tag syntax by adding the Debian version
release name (currently "bookworm") to all Debian Docker images.
For example, ghcr.io/br3ndonland/inboard:latest became
ghcr.io/br3ndonland/inboard:latest-bookworm. inboard is not planning
to support multiple Debian versions simultaneously. inboard will update
to the next Debian version, Debian 13 ("trixie") when it is stable and
will provide a new release after the update. This means there is no need
to add the Debian version release name to the Docker tags.
This commit will update the code in the GitHub Actions workflow job and
Dockerfile to match the previous tag syntax. The latest Debian image
will return to ghcr.io/br3ndonland/inboard:latest and the latest
Debian slim image to ghcr.io/br3ndonland/inboard:latest-slim.
Syntax for Alpine Docker images remains unaltered, so tags like
ghcr.io/br3ndonland/inboard:latest-alpine are still valid.
Commits¶
- Bump version from 0.67.0 to 0.67.1 (2bfe218)
- Fix Docker tags for specific Debian version (#105) (e84fc8b)
- Update changelog for version 0.67.0 (#106) (1d20b7d)
0.67.0 - 2024-04-11¶
Changes¶
Specify Debian version (#105, 6a99cd0)
On 2023-06-14, Docker updated the default Debian Linux version in its Python official images from Debian bullseye to Debian bookworm (docker-library/official-images#14854). As inboard uses the default Debian Linux version from the Docker Python official images, this meant that the next release of inboard (0.50.0 - 2023-06-22) automatically updated to bookworm. There were some issues noted by the community after this update. This was noted in inboard 0.51.0 - 2023-07-09. Thanks to @bodograumann for pointing this out in the related discussion (br3ndonland/inboard#80).
inboard will now specify the Debian version when building Docker images, ensuring that the version does not change unexpectedly. The current Debian version is still Debian 12 ("bookworm"). The next Debian version, Debian 13 ("trixie") does not have a release date yet, but inboard will update to trixie when it is stable and will provide a new release after the update.
Add support for Python 3.12 (#104, ba83a67)
This release will add Python 3.12 support to inboard.
- inboard will now run tests with Python 3.12, in addition to 3.8-3.11
- inboard will now build and publish its PyPI package using Python 3.12
- inboard will now include a Python 3.12 classifier in its PyPI package
- inboard will now ship Docker images running Python 3.12, in addition
to 3.8-3.11, and Docker images tagged with
latestwill now use 3.12
Related projects that have released support for Python 3.12 include:
- AnyIO (4.0.0 - 2023-08-30)
- FastAPI (0.109.0 - 2024-01-11)
- Hatch (1.8.0 - 2023-12-11)
pipx(1.3.0 - 2023-12-02)- Starlette (0.31.0 - 2023-07-24)
- Uvicorn (0.24.0 - 2023-11-04)
Related projects that have not released support for Python 3.12 include:
- Gunicorn (has not released Python 3.12 support, but is testing with Python 3.12 in development)
- Pydantic (extent of Python 3.12 support unclear, see pydantic/pydantic#6704)
Commits¶
- Bump version from 0.66.1 to 0.67.0 (325ed9b)
- Update to pytest 8 (c462c90)
- Specify Debian version (#105) (6a99cd0)
- Add support for Python 3.12 (#104) (ba83a67)
- Fix GitHub Actions badge in README (145313e)
- Update changelog for version 0.66.1 (#103) (552ebaa)
0.66.1 - 2024-04-09¶
Changes¶
Publish to PyPI with OIDC trusted publisher (59ec546)
This release will update Python package publishing to the newest format
recommended by PyPI. This project previously published packages with the
hatch publish command and a project-scoped PyPI API token (token only
valid for this project) stored in GitHub Secrets. The project will now
publish packages using a
PyPI OIDC
(OpenID Connect)
trusted publisher with the
pypa/gh-action-pypi-publish
action. This is the method that Hatch itself uses (pypa/hatch#891)
(Hatch does not "dogfood" its own hatch publish feature).
The advantage to OIDC is that authentication is performed with temporary API tokens (only valid for 15 minutes) instead of persistent tokens that must be manually generated on PyPI and pasted into GitHub Secrets. The disadvantage is that authentication is more complicated.
To use PyPI OIDC, a trusted publisher was set up for the PyPI project. Next, a dedicated GitHub Actions deployment environment was created for PyPI with protection rules that only allow use of the environment with Git tags. The environment protection rules combine with tag protection rules in the existing GitHub rulesets to ensure PyPI packages can only be published if a maintainer triggers a workflow run with a Git tag ref.
The GitHub Actions workflow will be updated to use the deployment environment. Deployment environments must be selected at the job level before the job begins, so a setup job will be added that selects the appropriate deployment environment and passes it to the PyPI job. Each use of a deployment environment creates a deployment that can be either active or inactive. GitHub Actions auto-inactivates deployments, and although this behavior is not configurable or documented, there are some possible workarounds/hacks suggested by a community discussion comment. The workaround used here will be to provide each deployment with its own unique URL.
To publish the Python package to PyPI, hatch build will output package
build files to the dist/ directory, then pypa/gh-action-pypi-publish
will authenticate and upload the files. pypa/gh-action-pypi-publish
provides exact version tags like pypa/gh-action-pypi-publish@v1.8.14 and
branches for major and minor version numbers like
pypa/gh-action-pypi-publish@release/v1.8.
Update to FastAPI 0.110.1 and Starlette 0.37.2 (73eaadd)
This release will update/upgrade to
FastAPI 0.110.1
and
Starlette 0.37.2.
FastAPI 0.110 makes a change to dependencies with yield and except.
Dependencies must now raise exceptions after except. This change is
intended to address memory leak issues and may be a breaking change in
some projects if dependencies with yield and except used pass
instead of raise. See the
FastAPI docs
for further info. FastAPI 0.110.1 makes a small type annotation change
to the Depends dependency class.
Starlette 0.37 modifies the exception handling behavior of the Config
class used for application settings. The Config class accepts an
env_file arg that can be used to load environment variables from a
"dotenv" (.env) file. Previously, if the file was not found, the
Config class would silently pass without any exception. In 0.36, the
Config class was updated to raise a FileNotFoundError exception if
env_file was not not found. This was a breaking change but was not
documented as such (encode/starlette#2422, encode/starlette#2446).
In 0.37, the exception handling behavior has been changed again to raise
a warning instead of an exception (encode/starlette#2485), which could
also be a breaking change if users had rewritten their code to catch the
FileNotFoundError.
See the fastenv docs
for a detailed description of the Starlette Config class. Note that
FastAPI updated the Starlette minor version from 0.36 to 0.37 in the
0.110.1 patch release.
Commits¶
- Bump version from 0.66.0 to 0.66.1 (474c722)
- Publish to PyPI with OIDC trusted publisher (59ec546)
- Update to
peter-evans/create-pull-request@v6(5b499a3) - Update to Ruff 0.3 (e42213c)
- Update to
mypy==1.9.0(1cd64a7) - Update to
hatch==1.9.4(38a4e58) - Update to
pipx==1.5.0(8dfb90b) - Update to FastAPI 0.110.1 and Starlette 0.37.2 (73eaadd)
- Disable CodeQL
setup-python-dependencies(507c68c) - Update to Node.js 20 actions (6972c7b)
- Update changelog for version 0.66.0 (#102) (7f4ff4e)
0.66.0 - 2024-03-11¶
Changes¶
Update to FastAPI 0.110 and Starlette 0.36 (dfa4822)
This release will update/upgrade to FastAPI 0.110 and Starlette 0.36. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.110 makes a change to dependencies with yield and except.
Dependencies must now raise exceptions after except, like this:
def my_dep():
try:
yield
except SomeException:
raise
This change addresses memory leak issues and may be a breaking change in
some projects if dependencies with yield and except used pass
instead of raise. See the
FastAPI docs
for further info.
Changes to Starlette between 0.35 and 0.36 include exception handling updates and AnyIO compatibility updates. Note that FastAPI updated the Starlette minor version from 0.35 to 0.36 in the 0.109.2 patch release.
Commits¶
- Bump version from 0.65.0 to 0.66.0 (ae160a0)
- Update to FastAPI 0.110 and Starlette 0.36 (dfa4822)
- Update to
peter-evans/create-pull-request@v5(2f9b88f) - Update to
actions/checkout@v4(8d888d0) - Update changelog for version 0.65.0 (#100) (8725661)
0.65.0 - 2024-01-13¶
Changes¶
Update to FastAPI 0.109 and Starlette 0.35 (b68b991)
This release will update/upgrade to
FastAPI 0.109
and
Starlette 0.35.
This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.109 adds Python 3.12 support. Changes to Starlette between
0.32 and 0.35 include support for middleware in Router, Route, and
WebSocketRoute, and updates to Middleware args.
Use Ruff for linting and formatting (#99, 35e37a7)
Ruff is a Python linter and formatter that has gained popularity due to its high performance and numerous capabilities. Now that Ruff has released its first minor version series (0.1) and has a versioning policy, it's a good time to consider adopting it.
As of this release, the project's Python linting and formatting checks will be migrated from the previous tools (Black, Flake8, isort) to Ruff. See #99 for further details.
Commits¶
- Bump version from 0.64.0 to 0.65.0 (ca0a10b)
- Update to FastAPI 0.109 and Starlette 0.35 (b68b991)
- Use Ruff for linting and formatting (#99) (35e37a7)
- Add "pypa" to CSpell words (696c43d)
- Add references on syncing dependencies with Hatch (1e9512a)
- Update Docker links in docs (e3ad60b)
- Avoid
metadata-generation-failedin Dockerfiles (a231b11) - Add wheel build target to avoid Hatch
ValueError(c1328ee) - Update to
pipx==1.4.1(f902387) - Update changelog for version 0.64.0 (#97) (78adc33)
0.64.0 - 2023-12-30¶
Changes¶
Update to Gunicorn 21.2.0 (7993e61)
This release will update/upgrade to Gunicorn 21.2.0. See the Gunicorn docs and GitHub repo for more details on the changes since 20.1.0.
Commits¶
- Bump version from 0.63.0 to 0.64.0 (384907b)
- Update to Gunicorn 21.2.0 (7993e61)
- Update changelog for version 0.63.0 (#96) (3bd8be1)
0.63.0 - 2023-12-30¶
Changes¶
Update to Uvicorn 0.25.0 (4cc018b)
This release will update/upgrade to Uvicorn 0.25.0. This is a minor release to align with Uvicorn versioning.
Uvicorn 0.25.0 adds support for the WebSocket Denial Response ASGI extension. This is used in certain cases in which a WebSocket app needs to reject a connection and return a custom response.
Uvicorn 0.25.0 also includes some corrections to the type annotations on
uvicorn.run(). inboard.types.UvicornOptions already included correct
type annotations that match these corrections, so no changes are needed.
Commits¶
- Bump version from 0.62.0 to 0.63.0 (634d094)
- Update to Uvicorn 0.25.0 (4cc018b)
- Update changelog for version 0.62.0 (#95) (a1cfb84)
0.62.0 - 2023-12-30¶
Changes¶
Update to Uvicorn 0.24.0 (65883a9, 0d5ec23)
This release will update/upgrade to Uvicorn 0.24.0. This is a minor release to align with Uvicorn versioning.
Uvicorn 0.24.0 adds support for Python 3.12 and for setting the app
instance with the environment variable UVICORN_APP. inboard already
has an environment variable for this purpose, APP_MODULE. Either
APP_MODULE or UVICORN_APP can be used to set the app module for
inboard, with precedence given to APP_MODULE for backward
compatibility.
Commits¶
- Bump version from 0.61.0 to 0.62.0 (2270900)
- Support
UVICORN_APP(0d5ec23) - Update to Uvicorn 0.24.0 (65883a9)
- Update changelog for version 0.61.0 (#94) (665eaca)
0.61.0 - 2023-12-30¶
Changes¶
Update to FastAPI 0.108 and Starlette 0.32 (738d54a)
This release will update/upgrade to FastAPI 0.108 and Starlette 0.32. This is a minor release to align with FastAPI versioning.
Changes to Starlette between 0.29 and 0.32 include dropping support for Python 3.7, and adding support for Python 3.12 and AnyIO 4.
Commits¶
- Bump version from 0.60.0 to 0.61.0 (ccc7bf2)
- Update to FastAPI 0.108 and Starlette 0.32 (738d54a)
- Update changelog for version 0.60.0 (#93) (b0d4a4a)
0.60.0 - 2023-12-30¶
Changes¶
Update to FastAPI 0.107 and Starlette 0.28 (7d19e10)
This release will update/upgrade to FastAPI 0.107 and Starlette 0.28. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.107 updates to Starlette 0.28. Starlette 0.28 moves exception
handling to the Route class and adds an error message if TestClient
runs without HTTPX installed.
Commits¶
- Bump version from 0.59.0 to 0.60.0 (2be52ab)
- Update to FastAPI 0.107 and Starlette 0.28 (7d19e10)
- Update changelog for version 0.59.0 (#92) (92d281d)
0.59.0 - 2023-12-30¶
Changes¶
Update to FastAPI 0.106 (e3ece81)
This release will update/upgrade to FastAPI 0.106. This is a minor release to align with FastAPI versioning.
In FastAPI 0.74 (released in inboard 0.18.0 - 2022-03-05), the internal
AsyncExitStack was updated so that dependencies with yield could
catch exceptions like HTTPException.
FastAPI 0.106 builds on the 0.74 updates by introducing the ability to
raise exceptions after yield. This update includes a BREAKING CHANGE
because objects from dependencies with yield can no longer be used in
background tasks. The recommendation in the
FastAPI docs
for updating background tasks is:
If you used to rely on this behavior, now you should create the resources for background tasks inside the background task itself, and use internally only data that doesn't depend on the resources of dependencies with
yield.For example, instead of using the same database session, you would create a new database session inside of the background task, and you would obtain the objects from the database using this new session. And then instead of passing the object from the database as a parameter to the background task function, you would pass the ID of that object and then obtain the object again inside the background task function.
Commits¶
- Bump version from 0.58.0 to 0.59.0 (893fa7e)
- Update to FastAPI 0.106 (e3ece81)
- Update changelog for version 0.58.0 (#91) (0997ad3)
0.58.0 - 2023-12-30¶
Changes¶
Update to FastAPI 0.105 (5bc3013)
This release will update/upgrade to FastAPI 0.105. This is a minor release to align with FastAPI versioning.
FastAPI 0.105 adds support for Annotated dependencies with multiple
type annotations.
Commits¶
- Bump version from 0.57.0 to 0.58.0 (e3eee4d)
- Update to FastAPI 0.105 (5bc3013)
- Update to
mypy==1.8.0(2529780) - Update to
hatch==1.9.1(65e7363) - Update to
pipx==1.4.0(66f9560) - Update to
pipx==1.3.3(fb08b72) - Update changelog for version 0.57.0 (#90) (f867910)
0.57.0 - 2023-11-12¶
Changes¶
Update to FastAPI 0.104 (882084c)
This release will update/upgrade to FastAPI 0.104. This is a minor release to align with FastAPI versioning.
FastAPI 0.104 drops support for Python 3.7 and adds API reference docs available here.
Switch from pre-commit to Hatch scripts (#89, 1a5450b)
pre-commit runs Git hooks. It can run on different Git events like
pre-push and can also easily run on CI (continuous integration)
platforms like GitHub Actions. These pre-commit hooks are often related
to code quality and help ensure code quality checks are continuously
enforced. While it is helpful for continuously running code quality
checks, pre-commit also has some downsides as detailed in #89.
This project was previously migrated from Poetry to Hatch in version 0.38.0 - 2023-02-26. As of this release, the project's code quality checks will be migrated from pre-commit to Hatch scripts.
Commits¶
- Bump version from 0.56.1 to 0.57.0 (a500ab1)
- Update to FastAPI 0.104 (882084c)
- Switch from pre-commit to Hatch scripts (#89) (1a5450b)
- Add attribute lists to CSpell
ignoreRegExpList(03ac3f7) - Update changelog for version 0.56.1 (#88) (1006821)
0.56.1 - 2023-11-12¶
Changes¶
Fix uvicorn[standard] version (be409c4)
Uvicorn was updated to version 0.23.2 in 2590d8a and 0.56.0, but the
version number for uvicorn[standard] was not updated correspondingly.
This release will update uvicorn[standard] to 0.23.2.
Update to Material for MkDocs 9 (ab692a3, 90f75b0)
Docs will now be built with Material for MkDocs 9. The most notable user-facing change is the new dark theme color palette, which has undergone a few small changes since its release in version 9.4.0 (squidfunk/mkdocs-material#6061). Code block copy behavior has undergone some small changes as well. Code blocks in the documentation have been reformatted for easier copying.
Commits¶
- Bump version from 0.56.0 to 0.56.1 (0dba457)
- Fix
uvicorn[standard]version (be409c4) - Add docs deployment info to contributing.md (141d8e5)
- Remove Material for MkDocs version from README (b415bf4)
- Configure Material for MkDocs code block copy (90f75b0)
- Update to Material for MkDocs 9 (ab692a3)
- Relax upper bound on HTTPX (f49d205)
- Update to
mypy==1.7.0(140dac6) - Update changelog for version 0.56.0 (#86) (18f2052)
0.56.0 - 2023-09-09¶
Changes¶
Update to Uvicorn 0.23.2 (2590d8a)
This release will update/upgrade from Uvicorn 0.22.0 to Uvicorn 0.23.2. This is a minor release to align with Uvicorn versioning.
Changes to Uvicorn since 0.22.0 include:
- Drop support for Python 3.7
- Switch to a vendored copy of
asgiref.typingatuvicorn._types - Add a new option
--ws-max-queue - Make a small scope change in
uvicorn.middleware.proxy_headers.ProxyHeadersMiddleware.
Commits¶
- Bump version from 0.55.0 to 0.56.0 (4b92cef)
- Update to Uvicorn 0.23.2 (2590d8a)
- Update changelog for version 0.55.0 (#85) (62ec752)
0.55.0 - 2023-09-09¶
Changes¶
Update to FastAPI 0.103 (b6aef8b)
This release will update/upgrade to FastAPI 0.103. This is a minor release to align with FastAPI versioning
FastAPI 0.103 adds support for an openapi_examples keyword argument
as described in the
docs
and sets a temporary upper bound on AnyIO of anyio>=3.7.1,<4.0.0,
separately from Starlette, to help with the update to Starlette 0.31.
Commits¶
- Bump version from 0.54.0 to 0.55.0 (f2acd2c)
- Update to FastAPI 0.103 (b6aef8b)
- Update changelog for version 0.54.0 (#84) (b348793)
0.54.0 - 2023-09-09¶
Changes¶
Update to FastAPI 0.102
This release will update/upgrade to FastAPI 0.102. This is a minor release to align with FastAPI versioning.
FastAPI 0.101 added support for Pydantic computed fields and altered responses to use Pydantic serialization. The change to Pydantic serialization in FastAPI 0.101 separated input and output schemas, altering responses and OpenAPI schema generation. Due to the lack of backwards compatibility and the associated issues (tiangolo/fastapi#10011 (comment), tiangolo/fastapi#10019, tiangolo/fastapi#10041), the update to FastAPI 0.101 may be a BREAKING CHANGE for some users.
FastAPI 0.102 builds on the serialization changes introduced in 0.101 by adding docs explaining the serialization behavior and by adding a new optional keyword argument for disabling the new behavior.
If the Pydantic serialization behavior affects your project adversely,
disable it with separate_input_output_schemas=False on the FastAPI app
(app = FastAPI(separate_input_output_schemas=False)) as shown in the
FastAPI docs.
Commits¶
- Bump version from 0.53.0 to 0.54.0 (59a3dd0)
- Update changelog for version 0.53.0 (#83) (04dfec9)
- Update to FastAPI 0.102 (05abd20)
0.53.0 - 2023-09-08¶
Changes¶
Update to FastAPI 0.101 (9d54839)
This release will update/upgrade to FastAPI 0.101.
FastAPI 0.101 adds support for Pydantic computed fields and alters responses to use Pydantic serialization. The change to Pydantic serialization in FastAPI 0.101 separates input and output schemas, altering responses and OpenAPI schema generation. Due to the lack of backwards compatibility and the associated issues (tiangolo/fastapi#10011 (comment), tiangolo/fastapi#10019, tiangolo/fastapi#10041), the update to FastAPI 0.101 may be a BREAKING CHANGE for some users.
How to deal with this breaking change:
- If this change affects your project adversely, skip FastAPI 0.101 and update to FastAPI 0.102 (upcoming in the next inboard release).
- Set
separate_input_output_schemas=Falseon the FastAPI app instance (app = FastAPI(separate_input_output_schemas=False)) as shown in the FastAPI docs.
Commits¶
- Bump version from 0.52.0 to 0.53.0 (825b08c)
- Update to FastAPI 0.101 (9d54839)
- Update changelog for version 0.52.0 (#82) (9c18aa0)
0.52.0 - 2023-08-20¶
Changes¶
Update to FastAPI 0.100 (de4d583)
This release will update/upgrade to FastAPI 0.100. This is a minor release to align with FastAPI versioning.
FastAPI 0.100 includes support for Pydantic 2 and installs Pydantic 2 by default, which can be a BREAKING CHANGE depending on each project's usage of Pydantic.
How to deal with this breaking change:
- First, update requirements files with
"pydantic==1.*"to avoid automatically updating to Pydantic 2. - Next, remove
"pydantic==1.*"from requirements files, install Pydantic 2, and follow the Pydantic 2 migration guide.
Remove Poetry 1.1 from Docker images (b36b351)
As described in the changelog entry for inboard 0.38 and the inboard docs, inboard switched its dependency management and packaging from Poetry 1.1 to Hatch. Poetry 1.1 was retained in the inboard Docker images for backwards compatibility, but Poetry 1.1 is unmaintained and so it must eventually be removed.
This release will remove Poetry 1.1 from the inboard Docker images. This is a BREAKING CHANGE.
How to deal with this breaking change:
- If you are not using Poetry there are no changes needed.
- If you are still using Poetry add
RUN pipx install poetryto your Dockerfile.
Commits¶
- Bump version from 0.51.0 to 0.52.0 (be3c16c)
- Update to FastAPI 0.100 (de4d583)
- Remove Poetry 1.1 from Docker images (b36b351)
- Update changelog for version 0.51.0 (#81) (fbda899)
0.51.0 - 2023-07-09¶
Changes¶
Update to FastAPI 0.99 (19be870)
This release will update/upgrade to FastAPI 0.99. This is a minor release to align with FastAPI versioning.
FastAPI 0.99 adds support for OpenAPI 3.1.0, which allows webhooks to be documented as described in the FastAPI docs.
FastAPI 0.99 is also the last minor version before introducing support for Pydantic 2.
UPCOMING BREAKING CHANGE: Update to FastAPI 0.100 and Pydantic 2
The next minor release of inboard will update to FastAPI 0.100. FastAPI 0.100 includes support for Pydantic 2 and installs Pydantic 2 by default, which can be a breaking change depending on each project's usage of Pydantic.
How to deal with this breaking change:
- First, update requirements files with
"pydantic==1.*"to avoid automatically updating to Pydantic 2. - Next, remove
"pydantic==1.*"from requirements files, install Pydantic 2, and follow the Pydantic 2 migration guide.
UPCOMING BREAKING CHANGE: Remove Poetry 1.1 from Docker images
As described in the changelog entry for inboard 0.38 and the inboard docs, inboard switched its dependency management and packaging from Poetry 1.1 to Hatch. Poetry 1.1 was retained in the inboard Docker images for backwards compatibility, but Poetry 1.1 is unmaintained and so it must eventually be removed.
The next minor release of inboard will remove Poetry 1.1 from the inboard Docker images.
How to deal with this breaking change:
- If you are not using Poetry there are no changes needed.
- If you are still using Poetry add
RUN pipx install poetryto your Dockerfile.
Note about automatic update to Debian bookworm
On 2023-06-14, Docker updated the default Debian Linux version in its Python official images from Debian bullseye to Debian bookworm (docker-library/official-images#14854). As inboard uses the default Debian Linux version from the Docker Python official images, this meant that the next release of inboard (0.50.0 - 2023-06-22) automatically updated to bookworm. There have been some issues noted by the community after this update. Thanks to @bodograumann for pointing this out in the related discussion.
Commits¶
- Bump version from 0.50.0 to 0.51.0 (be5c444)
- Update to FastAPI 0.99 (19be870)
- Update changelog for version 0.50.0 (#79) (a38228a)
0.50.0 - 2023-06-22¶
Changes¶
Update to FastAPI 0.98 (0484e11)
This release will update/upgrade to FastAPI 0.98. This is a minor release to align with FastAPI versioning.
FastAPI 0.98 adds support for an app-level redirect_slashes argument.
Commits¶
- Bump version from 0.49.0 to 0.50.0 (174e02c)
- Update to FastAPI 0.98 (0484e11)
- Update changelog for version 0.49.0 (#78) (a9670c1)
0.49.0 - 2023-06-12¶
Changes¶
Update to FastAPI 0.97 (438e4e1)
This release will update/upgrade to FastAPI 0.97. This is a minor release to align with FastAPI versioning. FastAPI 0.97 adds support for dependencies in WebSocket routes.
Commits¶
- Bump version from 0.48.0 to 0.49.0 (cc49fa0)
- Update to FastAPI 0.97 (438e4e1)
- Update changelog for version 0.48.0 (#77) (edef011)
0.48.0 - 2023-06-11¶
Changes¶
Update to Uvicorn 0.22 (#74, 32a0ae8)
This release will update/upgrade to Uvicorn 0.22. This is a minor release to align with Uvicorn versioning.
Uvicorn 0.22
adds a --timeout-graceful-shutdown option and
fixes the --reload-delay option when using watchfiles.
Commits¶
- Bump version from 0.47.0 to 0.48.0 (91aaa54)
- Update to Uvicorn 0.22 (#74) (32a0ae8) by @bodograumann
- Update changelog for version 0.47.0 (#76) (532553c)
0.47.0 - 2023-06-11¶
Changes¶
Update to FastAPI 0.96 (a83bd71)
This release will update/upgrade to FastAPI 0.96. This is a minor release to align with FastAPI versioning.
FastAPI 0.96 improves the performance of create_cloned_field, which is
used by FastAPI internally when instantiating API routes. See FastAPI
discussions for
further info.
Commits¶
- Bump version from 0.46.0 to 0.47.0 (dc258df)
- Update to FastAPI 0.96 (a83bd71)
- Update changelog for version 0.46.0 (#75) (c22f101)
0.46.0 - 2023-06-11¶
Changes¶
Update to FastAPI 0.95 and Starlette 0.27 (e6280fb)
This release will update/upgrade to FastAPI 0.95 and Starlette 0.27. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.95 introduces
Annotated for
dependencies.
Annotated sets up a dependency for easier reuse. This provides some
benefits when specifying dependencies as function arguments because
dependencies don't need to be specified in endpoint function default
arguments. Annotated is part of the
typing
standard library package starting in Python 3.9.
Starlette 0.27
resolves a low-severity security
vulnerability
related to the StaticFiles
class.
Commits¶
- Bump version from 0.45.0 to 0.46.0 (8068c53)
- Update to FastAPI 0.95 and Starlette 0.27 (e6280fb)
- Relate inboard, FastAPI, and Uvicorn versions (e413a04)
- Update to
hatch==1.7.0(6addfac) - Remove Sourcery configuration file (d8d8c67)
- Update Black in pre-commit (307789a)
- Update to
mypy==1.3.0(2bffd80) - Update to pytest-timeout 2 (e79cec3)
- Update to coverage 7 (68a95d1)
- Use
urllib3<2for HTTPieDEFAULT_CIPHERS(0f76e62) - Prepend
$HATCH_ENVin GitHub Actions workflow (93e1c40) - Update to
pipx==1.2.0(0a50baa) - Update changelog for version 0.45.0 (#73) (b05c6d4)
0.45.0 - 2023-03-18¶
Changes¶
Update to Uvicorn 0.21.1 (768c95f)
This release will update/upgrade to Uvicorn 0.21.1. This is a minor release to align with Uvicorn versioning.
Uvicorn 0.21 introduces support for lifespan state. No docs or PR descriptions were provided to explain how this works. See the FastAPI docs and Starlette docs for further info.
Commits¶
0.44.0..0.45.0
- Bump version from 0.44.0 to 0.45.0 (bdb5be4)
- Update to Uvicorn 0.21.1 (768c95f)
- Update changelog for version 0.44.0 (#72) (58800ce)
0.44.0 - 2023-03-11¶
Changes¶
Update to FastAPI 0.94 and Starlette 0.26 (f32d492)
This release will update/upgrade to FastAPI 0.94 and Starlette 0.26. This is a minor release to align with FastAPI and Starlette versioning.
FastAPI 0.94 and Starlette 0.26 introduce support for lifespan state. See the FastAPI docs and Starlette docs for more info.
Starlette 0.26 deprecates on_startup and on_shutdown events. See
FastAPI 0.93,
the FastAPI docs, and
encode/starlette#2067
for more info.
Commits¶
0.43.0..0.44.0
- Bump version from 0.43.0 to 0.44.0 (c289f24)
- Update to FastAPI 0.94 and Starlette 0.26 (f32d492)
- Update changelog for version 0.43.0 (#71) (133926c)
0.43.0 - 2023-03-11¶
Changes¶
Update to FastAPI 0.93 (4a52ee2)
This release will update/upgrade to FastAPI 0.93. This is a minor release to align with FastAPI versioning.
FastAPI 0.93 introduces support for lifespan context managers, which are intended to supersede startup and shutdown events. See the FastAPI docs and encode/starlette#2067 for more info.
Commits¶
0.42.0..0.43.0
- Bump version from 0.42.0 to 0.43.0 (631f67b)
- Update to FastAPI 0.93 (4a52ee2)
- Update to mypy 1.1.1 (127c28d)
- Update changelog for version 0.42.0 (#70) (27d2b42)
0.42.0 - 2023-03-05¶
Changes¶
Update to FastAPI 0.92 and Starlette 0.25 (e8330ea)
This release will update/upgrade to FastAPI 0.92 and Starlette 0.25. This is a minor release to align with FastAPI and Starlette versioning.
Starlette 0.25.0 fixes a security vulnerability related to forms. The release notes don't really explain this fix, but the release notes for FastAPI 0.92.0 provide some additional explanation.
Commits¶
0.41.0..0.42.0
- Bump version from 0.41.0 to 0.42.0 (b36b277)
- Update to FastAPI 0.92 and Starlette 0.25 (e8330ea)
- Update changelog for version 0.41.0 (#69) (b370982)
0.41.0 - 2023-03-05¶
Changes¶
Update to FastAPI 0.91 and Starlette 0.24 (1474fa9)
This release will update/upgrade to FastAPI 0.91 and Starlette 0.24. This is a minor release to align with FastAPI and Starlette versioning.
Starlette 0.24 improves handling of middleware stacks (encode/starlette#2017).
Starlette is no longer documenting (but not yet deprecating) the
app.add_middleware syntax in favor of passing a middleware list
as a kwarg to Starlette() (Starlette(middleware=middleware))
(encode/starlette#1481). The recommended syntax allows for more
predictable ordering of middleware lists, so that they are added to the
Starlette app and initialized in expected order (encode/starlette#1490).
Use of the app.add_middleware syntax in the inboard example Starlette
and FastAPI apps will be replaced with the recommended approach.
Commits¶
0.40.0..0.41.0
- Bump version from 0.40.0 to 0.41.0 (6ba5a5c)
- Update to recommended Starlette middleware syntax (ec752d2)
- Update to FastAPI 0.91 and Starlette 0.24 (1474fa9)
- Update changelog for version 0.40.0 (#68) (26565af)
0.40.0 - 2023-03-02¶
Changes¶
Update to FastAPI 0.90 and Starlette 0.23 (89caa66)
This release will update/upgrade to FastAPI 0.90 and Starlette 0.23. This is a minor release to align with FastAPI and Starlette versioning.
Starlette 0.23
begins a deprecation process for some of the Router and Starlette
decorators like route, as described in the
Starlette routing docs.
Use of the @app.route decorator in the inboard example Starlette app
will be replaced with the recommended approach.
Commits¶
0.39.0..0.40.0
- Bump version from 0.39.0 to 0.40.0 (30c9794)
- Remove deprecated Starlette
routedecorators (44ad641) - Update to FastAPI 0.90 and Starlette 0.23 (89caa66)
- Update changelog for version 0.39.0 (#67) (544c8d5)
0.39.0 - 2023-03-01¶
Changes¶
Update to FastAPI 0.89 (7f5e76d)
This release will update/upgrade to FastAPI 0.89. This is a minor release to align with FastAPI's versioning strategy.
Note that, as of FastAPI 0.89, FastAPI can now infer the response model
from an API endpoint function's return type, so there is no longer need
for the response_model argument in most cases. See the
updated docs
for further info.
Commits¶
0.38.0..0.39.0
- Bump version from 0.38.0 to 0.39.0 (e80f7de)
- Remove
response_modelusage (0ec39d9) - Update to FastAPI 0.89 (7f5e76d)
- Update changelog for version 0.38.0 (#66) (c437fd8)
0.38.0 - 2023-02-26¶
Changes¶
Add Python 3.11 support (#62)
- inboard will now run tests with Python 3.11, in addition to 3.8-3.10
- inboard will now build and publish its PyPI package using Python 3.11
- inboard will now include a Python 3.11 classifier in its PyPI package
- inboard will now ship Docker images running Python 3.11, in addition
to 3.8-3.10, and Docker images tagged with
latestwill now use 3.11
Update to Uvicorn 0.20.0 (13cd921)
This commit will update/upgrade from Uvicorn 0.17.6 to Uvicorn 0.20.0.
Uvicorn 0.20.0 will be pinned exactly to avoid problematic or breaking changes in future patch releases.
Uvicorn 0.18 was skipped for the following reasons:
- As of Uvicorn 0.18.0, Uvicorn now prioritizes
watchfilesinstead ofwatchgod.watchfilesuses Rust binary extensions, which can have issues on Alpine Linux and macOS with Apple Silicon (M1/M2), and the evaluation process took some time. It does appear thatwatchfilesis now publishing wheels withmusllinuxtags, so Alpine Linux should be generally compatible. Apple Silicon Macs should be compatible as ofwatchfiles0.16. - The
h11_max_incomplete_event_sizesetting was added in 0.18.0 with an incorrect default, then updated in 0.18.1 with a correct default. - A temporary breaking change was made to the Uvicorn logging module.
It was renamed from
uvicorn.loggingtouvicorn._loggingin 0.18.0 (a breaking change that was not mentioned in the release notes), then reverted back touvicorn.loggingin 0.18.2. A change to the logging module path could break inboardLOG_FORMAT=uvicorn. - A temporary breaking change was made to the Uvicorn logging config.
The logging config default was changed from
LOGGING_CONFIGtoNonein 0.18.0, which resulted in logs not being shown at all. The default was then reverted toLOGGING_CONFIGin 0.18.2. - The type annotation and default value for the
reload_delayconfig setting were changed in 0.18.3. The type annotation onreload_delaywas changed fromOptional[float](float | None) tofloat, and the default value was changed fromNonetofloat.reload_delayis only used in one place, in theuvicorn.supervisors.basereloadmodule, inBaseReload().pause().BaseReload().pause()runsthreading.Event().wait(), which usesNoneas its default. It would therefore be fine for reloading to pass inreload_delay=None, so the change in Uvicorn to requiringfloatwas confusing and unnecessary.
Changes related to Uvicorn 0.19 include:
- The
debugsetting was removed fromuvicorn.config.Config. - As of 0.19.0, Uvicorn now ships with a PEP 563
py.typedfile, marking the package as type-annotated.type: ignorecomments onimport uvicornlines can be removed. - Type annotation updates are needed to match the new type information
from Uvicorn. The
inboard.types.UvicornOptionstype added in 2cbc99c will be updated to more closely match arguments touvicorn.run(), particularly by making theappfield required and removingdebug. - BREAKING CHANGE: a new required positional argument
app_modulewill be added toinboard.start.set_uvicorn_options.inboard.startwill be updated accordingly, so this change is not likely to affect end users. It is technically a change to inboard's public API, so it is listed here as a breaking change. This change does have the benefit of making the arguments toinboard.start.set_uvicorn_optionsmore similar to the arguments toinboard.start.set_gunicorn_options.
Break up uvicorn[standard] optional dependencies (#60)
Uvicorn lumps several optional dependencies into a "standard" extra:
colorama(for Windows)httptoolspython-dotenvpyyamluvloopwatchgod/watchfiles(watchgodwas renamed towatchfiles)websockets
There has been some discussion about the drawbacks of this approach:
inboard has previously installed the "standard" extra by default. This commit will change the default to installing Uvicorn without "standard." This is a BREAKING CHANGE to inboard's dependencies.
A new inboard[uvicorn-fast] extra will be added for dependencies from
uvicorn[standard] related to web server performance, and can be
installed by specifying the extra when installing inboard, like
python -m pip install 'inboard[fastapi,uvicorn-fast]':
httptoolsuvloopwebsockets
For users who still need all the uvicorn[standard] extras, a new
inboard[uvicorn-standard] extra will be added to the inboard package,
and can be installed by specifying the extra when installing inboard,
like python -m pip install 'inboard[fastapi,uvicorn-standard]'.
Migrate from Poetry 1.1 to Hatch (#56, #58, 8deae55, 8644d42, 53e2abb)
inboard has been migrated to Hatch. See #56 for further explanation.
Projects using inboard are not required to migrate to Hatch. The Docker
images will retain Poetry 1.1 for backwards compatibility for now.
Poetry 1.1 is unmaintained, so it will eventually need to be removed.
Notice will be given at least one minor version prior to removal. If
projects using inboard require poetry>1.2, they can add
pipx upgrade poetry or pipx install poetry>1.2 --force to their
Dockerfiles as described in the
updated docs
(on the Docker page, under "Docker and Poetry").
The Python package version will now be available at inboard.__version__.
Auto-generate changelog from Git tags (b15efff, e6e0490)
A changelog will now be provided at
CHANGELOG.md
for viewing on GitHub, and
in the docs at the /changelog endpoint.
Update Docker tag syntax for inboard releases (5617084)
Originally, inboard just provided three Docker images, tagged with
base, fastapi, and starlette based on the dependencies installed,
and appended inboard version numbers when Git tags were pushed.
Appending version numbers to Docker tags can result in confusing syntax.
For example, ghcr.io/br3ndonland/inboard:fastapi-0.37-alpine refers to
inboard 0.37, but some users could interpret this as FastAPI 0.37.
The inboard version number will now be added to the beginning of all Docker tags to avoid this confusion.
- Old:
ghcr.io/br3ndonland/inboard:fastapi-0.38-alpine - New:
ghcr.io/br3ndonland/inboard:0.38-fastapi-alpine
The old syntax will remain supported for backwards compatibility, so either the old or new syntax shown above will work.
Enable mypy strict mode (2cbc99c)
Mypy will run in strict mode on all Python code (source code and tests). In terms of user-facing improvements, this update will:
- Add a new
inboard.typesmodule, with aDictConfigtype that can be used to type-annotate logging configuration dictionaries, and aUvicornOptionstype for options (positional and keyword arguments) passed touvicorn.run() - Update the base ASGI application in
inboard.app.main_baseto ASGI3 - Update
contributing.mdwith type annotation info and instructions
Commits¶
0.37.0..0.38.0
- Bump version from 0.38.0-beta.0 to 0.38.0 (4e8d8cb)
- Update to mypy 1 (4630f8a)
- Pin Gunicorn to 20.1.0 (7cc175a)
- Update to Black 23 (1fea27e)
- Update isort to avoid poetry-core breaking change (b289ee9)
- Fix upper bound on HTTPX optional dependency (53e2abb)
- Add note on syncing dependencies with Hatch (029c07f)
- Alphabetize Hatch commands in contributing.md (f617e14)
- Update pre-commit dependencies (7fbde3e)
- Enable
pymdownx.magiclink(5271a30) - Update changelog for version 0.38.0-beta.0 (#64) (9968f6f)
- Bump version from 0.38.0-alpha.2 to 0.38.0-beta.0 (fdeae75)
- Update changelog for version 0.38.0-alpha.2 (#63) (19da840)
- Bump version from 0.38.0-alpha.1 to 0.38.0-alpha.2 (98c834e)
- Add Python 3.11 support (#62) (5716eff)
- Update changelog for version 0.38.0-alpha.1 (#61) (971b593)
- Bump version from 0.38.0-alpha.0 to 0.38.0-alpha.1 (b1debfa)
- Move
pyproject.tomlrepo URL to[project.urls](8644d42) - Organize Hatch install info in contributing.md (8deae55)
- Update to Uvicorn 0.20.0 (13cd921)
- Break up
uvicorn[standard]optional dependencies (#60) (01ad352) - Update changelog for version 0.38.0-alpha.0 (#59) (49d3b96)
- Bump version from 0.37.0 to 0.38.0-alpha.0 (e9348b0)
- Merge pull request #58 from br3ndonland/hatch (78be3c2)
- Update docs for Hatch (ec344ad)
- Update GitHub Actions workflows for Hatch (9285efb)
- Update Dockerfile for Hatch (93d9e0a)
- Update configuration files for Hatch (5bd4ff5)
- Update to actions/setup-python@v4 (8840873)
- Add required
trailerskey forasgiref==3.6.0(d729fdf) - Update to
asgiref==3.6.0(d534de8) - Move changelog updates to PRs (e6e0490)
- Auto-generate changelog from Git tags (b15efff)
- Remove unused
.prettierrc(ef25ea0) - Add spell check with CSpell (7361702)
- Remove GitHub issue templates (3797b2d)
- Update GitHub Actions Git tag syntax (c8a0638)
- Update Docker tag syntax for inboard releases (5617084)
- Remove redundant GitHub Actions workflows (4d19501)
- Enable mypy strict mode (2cbc99c)
0.38.0-beta.0 - 2023-01-02¶
Changes¶
Add Python 3.11 support (#62)
- inboard will now run tests with Python 3.11, in addition to 3.8-3.10
- inboard will now build and publish its PyPI package using Python 3.11
- inboard will now include a Python 3.11 classifier in its PyPI package
- inboard will now ship Docker images running Python 3.11, in addition
to 3.8-3.10, and Docker images tagged with
latestwill now use 3.11
Update to Uvicorn 0.20.0 (13cd921)
This commit will update/upgrade from Uvicorn 0.17.6 to Uvicorn 0.20.0.
Uvicorn 0.20.0 will be pinned exactly to avoid problematic or breaking changes in future patch releases.
Uvicorn 0.18 was skipped for the following reasons:
- As of Uvicorn 0.18.0, Uvicorn now prioritizes
watchfilesinstead ofwatchgod.watchfilesuses Rust binary extensions, which can have issues on Alpine Linux and macOS with Apple Silicon (M1/M2), and the evaluation process took some time. It does appear thatwatchfilesis now publishing wheels withmusllinuxtags, so Alpine Linux should be generally compatible. Apple Silicon Macs should be compatible as ofwatchfiles0.16. - The
h11_max_incomplete_event_sizesetting was added in 0.18.0 with an incorrect default, then updated in 0.18.1 with a correct default. - A temporary breaking change was made to the Uvicorn logging module.
It was renamed from
uvicorn.loggingtouvicorn._loggingin 0.18.0 (a breaking change that was not mentioned in the release notes), then reverted back touvicorn.loggingin 0.18.2. A change to the logging module path could break inboardLOG_FORMAT=uvicorn. - A temporary breaking change was made to the Uvicorn logging config.
The logging config default was changed from
LOGGING_CONFIGtoNonein 0.18.0, which resulted in logs not being shown at all. The default was then reverted toLOGGING_CONFIGin 0.18.2. - The type annotation and default value for the
reload_delayconfig setting were changed in 0.18.3. The type annotation onreload_delaywas changed fromOptional[float](float | None) tofloat, and the default value was changed fromNonetofloat.reload_delayis only used in one place, in theuvicorn.supervisors.basereloadmodule, inBaseReload().pause().BaseReload().pause()runsthreading.Event().wait(), which usesNoneas its default. It would therefore be fine for reloading to pass inreload_delay=None, so the change in Uvicorn to requiringfloatwas confusing and unnecessary.
Uvicorn 0.19 was less problematic, but did include some noteworthy changes. inboard will be updated accordingly. Notes:
- The
debugsetting was removed fromuvicorn.config.Config. - As of 0.19.0, Uvicorn now ships with a PEP 563
py.typedfile, marking the package as type-annotated.type: ignorecomments onimport uvicornlines can be removed. - Type annotation updates are needed to match the new type information
from Uvicorn. The
inboard.types.UvicornOptionstype added in 2cbc99c will be updated to more closely match arguments touvicorn.run(), particularly by making theappfield required and removingdebug. - BREAKING CHANGE: a new required positional argument
app_modulewill be added toinboard.start.set_uvicorn_options.inboard.startwill be updated accordingly, so this change is not likely to affect end users. It is technically a change to inboard's public API, so it is listed here as a breaking change. This change does have the benefit of making the arguments toinboard.start.set_uvicorn_optionsmore similar to the arguments toinboard.start.set_gunicorn_options.
Break up uvicorn[standard] optional dependencies (#60)
Uvicorn lumps several optional dependencies into a "standard" extra:
colorama(for Windows)httptoolspython-dotenvpyyamluvloopwatchgod/watchfiles(watchgodwas renamed towatchfiles)websockets
There has been some discussion about the drawbacks of this approach:
inboard has previously installed the "standard" extra by default. This commit will change the default to installing Uvicorn without "standard." This is a BREAKING CHANGE to inboard's dependencies.
A new inboard[uvicorn-fast] extra will be added for dependencies from
uvicorn[standard] related to web server performance, and can be
installed by specifying the extra when installing inboard, like
python -m pip install 'inboard[fastapi,uvicorn-fast]':
httptoolsuvloopwebsockets
For users who still need all the uvicorn[standard] extras, a new
inboard[uvicorn-standard] extra will be added to the inboard package,
and can be installed by specifying the extra when installing inboard,
like python -m pip install 'inboard[fastapi,uvicorn-standard]'.
Migrate from Poetry 1.1 to Hatch (#56, #58, 8deae55, 8644d42)
inboard has been migrated to Hatch. See #56 for more details and context around the motivations for this.
Projects using inboard are not required to migrate to Hatch. The Docker
images will retain Poetry 1.1 for backwards compatibility for now.
Poetry 1.1 is unmaintained, so it will eventually need to be removed.
Notice will be given at least one minor version prior to removal. If
projects using inboard require poetry>1.2, they can add
pipx upgrade poetry or pipx install poetry>1.2 --force to their
Dockerfiles as described in the
updated docs
(on the Docker page, under "Docker and Poetry").
The Python package version will now be available at inboard.__version__.
Auto-generate changelog from Git tags (b15efff, e6e0490)
A changelog will now be provided at
CHANGELOG.md
for viewing on GitHub, and
in the docs at the /changelog endpoint.
Update Docker tag syntax for inboard releases (5617084)
Originally, inboard just provided three Docker images, tagged with
base, fastapi, and starlette based on the dependencies installed,
and appended inboard version numbers when Git tags were pushed.
Appending version numbers to Docker tags can result in confusing syntax.
For example, ghcr.io/br3ndonland/inboard:fastapi-0.37-alpine refers to
inboard 0.37, but some users could interpret this as FastAPI 0.37.
The inboard version number will now be added to the beginning of all Docker tags to avoid this confusion.
- Old:
ghcr.io/br3ndonland/inboard:fastapi-0.38-alpine - New:
ghcr.io/br3ndonland/inboard:0.38-fastapi-alpine
The original syntax will remain supported for backwards compatibility, so either the old or new syntax shown above will work.
Enable mypy strict mode (2cbc99c)
Mypy will run in strict mode on all Python code (source code and tests). In terms of user-facing improvements, this update will:
- Add a new
inboard.typesmodule, with aDictConfigtype that can be used to type-annotate logging configuration dictionaries, and aUvicornOptionstype for options (positional and keyword arguments) passed touvicorn.run() - Update the base ASGI application in
inboard.app.main_baseto ASGI3 - Update
contributing.mdwith type annotation info and instructions
Commits¶
- Bump version from 0.38.0-alpha.2 to 0.38.0-beta.0 (fdeae75)
- Update changelog for version 0.38.0-alpha.2 (#63) (19da840)
- Bump version from 0.38.0-alpha.1 to 0.38.0-alpha.2 (98c834e)
- Add Python 3.11 support (#62) (5716eff)
- Update changelog for version 0.38.0-alpha.1 (#61) (971b593)
- Bump version from 0.38.0-alpha.0 to 0.38.0-alpha.1 (b1debfa)
- Move
pyproject.tomlrepo URL to[project.urls](8644d42) - Organize Hatch install info in contributing.md (8deae55)
- Update to Uvicorn 0.20.0 (13cd921)
- Break up
uvicorn[standard]optional dependencies (#60) (01ad352) - Update changelog for version 0.38.0-alpha.0 (#59) (49d3b96)
- Bump version from 0.37.0 to 0.38.0-alpha.0 (e9348b0)
- Merge pull request #58 from br3ndonland/hatch (78be3c2)
- Update docs for Hatch (ec344ad)
- Update GitHub Actions workflows for Hatch (9285efb)
- Update Dockerfile for Hatch (93d9e0a)
- Update configuration files for Hatch (5bd4ff5)
- Update to actions/setup-python@v4 (8840873)
- Add required
trailerskey forasgiref==3.6.0(d729fdf) - Update to
asgiref==3.6.0(d534de8) - Move changelog updates to PRs (e6e0490)
- Auto-generate changelog from Git tags (b15efff)
- Remove unused
.prettierrc(ef25ea0) - Add spell check with CSpell (7361702)
- Remove GitHub issue templates (3797b2d)
- Update GitHub Actions Git tag syntax (c8a0638)
- Update Docker tag syntax for inboard releases (5617084)
- Remove redundant GitHub Actions workflows (4d19501)
- Enable mypy strict mode (2cbc99c)
0.38.0-alpha.2 - 2023-01-01¶
Changes:
Add Python 3.11 support (#62)
- inboard will now run tests with Python 3.11, in addition to 3.8-3.10
- inboard will now build and publish its PyPI package using Python 3.11
- inboard will now include a Python 3.11 classifier in its PyPI package
- inboard will now ship Docker images running Python 3.11, in addition
to 3.8-3.10, and Docker images tagged with
latestwill now use 3.11
Commits:
- Bump version from 0.38.0-alpha.1 to 0.38.0-alpha.2 (98c834e)
- Add Python 3.11 support (#62) (5716eff)
- Update changelog for version 0.38.0-alpha.1 (#61) (971b593)
0.38.0-alpha.1 - 2022-12-31¶
Changes:
Update to Uvicorn 0.20.0 (13cd921)
This commit will update/upgrade to Uvicorn 0.20.0.
https://github.com/encode/uvicorn/releases/tag/0.20.0
Uvicorn 0.20.0 will be pinned exactly to avoid problematic or breaking changes in future patch releases.
Uvicorn 0.18 was skipped for the following reasons:
- As of Uvicorn 0.18.0, Uvicorn now prioritizes
watchfilesinstead ofwatchgod.watchfilesuses Rust binary extensions, which can have issues on Alpine Linux and macOS with Apple Silicon (M1/M2), and the evaluation process took some time. It does appear thatwatchfilesis now publishing wheels withmusllinuxtags, so Alpine Linux should be generally compatible. Apple Silicon Macs should be compatible as ofwatchfiles0.16. - The
h11_max_incomplete_event_sizesetting was added in 0.18.0 with an incorrect default, then updated in 0.18.1 with a correct default. - A temporary breaking change was made to the Uvicorn logging module.
It was renamed from
uvicorn.loggingtouvicorn._loggingin 0.18.0 (a breaking change that was not mentioned in the release notes), then reverted back touvicorn.loggingin 0.18.2. A change to the logging module path could break inboardLOG_FORMAT=uvicorn. - A temporary breaking change was made to the Uvicorn logging config.
The logging config default was changed from
LOGGING_CONFIGtoNonein 0.18.0, which resulted in logs not being shown at all. The default was then reverted toLOGGING_CONFIGin 0.18.2. - The type annotation and default value for the
reload_delayconfig setting were changed in 0.18.3. The type annotation onreload_delaywas changed fromOptional[float](float | None) tofloat, and the default value was changed fromNonetofloat.reload_delayis only used in one place, in theuvicorn.supervisors.basereloadmodule, inBaseReload().pause().BaseReload().pause()runsthreading.Event().wait(), which usesNoneas its default. It would therefore be fine for reloading to pass inreload_delay=None, so the change in Uvicorn to requiringfloatwas confusing and unnecessary.
https://github.com/encode/uvicorn/releases/tag/0.18.3
Uvicorn 0.19 was less problematic, but did include some noteworthy changes. inboard will be updated accordingly. Notes:
- The
debugsetting was removed fromuvicorn.config.Config. - As of 0.19.0, Uvicorn now ships with a PEP 563
py.typedfile, marking the package as type-annotated.type: ignorecomments onimport uvicornlines can be removed. - Type annotation updates are needed to match the new type information
from Uvicorn. The
inboard.types.UvicornOptionstype added in 2cbc99c will be updated to more closely match arguments touvicorn.run(), particularly by making theappfield required and removingdebug. - BREAKING CHANGE: a new required positional argument
app_modulewill be added toinboard.start.set_uvicorn_options.inboard.startwill be updated accordingly, so this change is not likely to affect end users. It is technically a change to inboard's public API, so it is listed here as a breaking change. This change does have the benefit of making the arguments toinboard.start.set_uvicorn_optionsmore similar to the arguments toinboard.start.set_gunicorn_options.
https://github.com/encode/uvicorn/releases/tag/0.19.0
Break up uvicorn[standard] optional dependencies (#60)
Uvicorn lumps several optional dependencies into a "standard" extra:
colorama(for Windows)httptoolspython-dotenvpyyamluvloopwatchgod/watchfiles(watchgodwas renamed towatchfiles)websockets
There has been some discussion about the drawbacks of this approach:
inboard has previously installed the "standard" extra by default. This commit will change the default to installing Uvicorn without "standard." This is a BREAKING CHANGE to inboard's dependencies.
A new inboard[uvicorn-fast] extra will be added for dependencies from
uvicorn[standard] related to web server performance, and can be
installed by specifying the extra when installing inboard, like
python -m pip install 'inboard[fastapi,uvicorn-fast]':
httptoolsuvloopwebsockets
For users who still need all the uvicorn[standard] extras, a new
inboard[uvicorn-standard] extra will be added to the inboard package,
and can be installed by specifying the extra when installing inboard,
like python -m pip install 'inboard[fastapi,uvicorn-standard]'.
Commits:
- Bump version from 0.38.0-alpha.0 to 0.38.0-alpha.1 (b1debfa)
- Move
pyproject.tomlrepo URL to[project.urls](8644d42) - Organize Hatch install info in contributing.md (8deae55)
- Update to Uvicorn 0.20.0 (13cd921)
- Break up
uvicorn[standard]optional dependencies (#60) (01ad352) - Update changelog for version 0.38.0-alpha.0 (#59) (49d3b96)
0.38.0-alpha.0 - 2022-12-30¶
Changes:
Migrate from Poetry 1.1 to Hatch (#56, #58)
inboard has been migrated to Hatch. See #56 for more details and context around the motivations for this.
The inboard Python version is now available at inboard.__version__.
Projects using inboard are not required to migrate to Hatch. The Docker
images will retain Poetry 1.1 for backwards compatibility for now.
Poetry 1.1 is unmaintained, so it will eventually need to be removed.
Notice will be given at least one minor version prior to removal. If
projects using inboard require poetry>1.2, they can add
pipx upgrade poetry or pipx install poetry>1.2 --force to their
Dockerfiles as described in the updated docs (on the Docker page,
under "Docker and Poetry").
Auto-generate changelog from Git tags (b15efff, e6e0490)
A changelog will now be provided at CHANGELOG.md for viewing on GitHub,
and in the docs at the /changelog endpoint.
Update Docker tag syntax for inboard releases (5617084)
Originally, inboard just provided three Docker images, tagged with
base, fastapi, and starlette based on the dependencies installed,
and appended inboard version numbers when Git tags were pushed.
Appending version numbers to Docker tags can result in confusing syntax.
For example, ghcr.io/br3ndonland/inboard:fastapi-0.37-alpine refers to
inboard 0.37, but some users could interpret this as FastAPI 0.37.
The inboard version number will now be added to the beginning of all Docker tags to avoid this confusion.
- Before:
ghcr.io/br3ndonland/inboard:fastapi-0.37-alpine - After:
ghcr.io/br3ndonland/inboard:0.37-fastapi-alpine
The original syntax will remain supported for backwards compatibility, so either the "before" or "after" syntax shown above will work.
Enable mypy strict mode (2cbc99c)
Mypy will run in strict mode on all Python code (source code and tests). In terms of user-facing improvements, this update will:
- Add a new
inboard.typesmodule, with aDictConfigtype that can be used to type-annotate logging configuration dictionaries, and aUvicornOptionstype that can be used to type-annotate options passed to Uvicorn viauvicorn.run()oruvicorn.Config - Update the base ASGI application in
inboard.app.main_baseto ASGI3 - Update
contributing.mdwith type annotation info and instructions
Commits:
- Bump version from 0.37.0 to 0.38.0-alpha.0 (e9348b0)
- Merge pull request #58 from br3ndonland/hatch (78be3c2)
- Update docs for Hatch (ec344ad)
- Update GitHub Actions workflows for Hatch (9285efb)
- Update Dockerfile for Hatch (93d9e0a)
- Update configuration files for Hatch (5bd4ff5)
- Update to actions/setup-python@v4 (8840873)
- Add required
trailerskey forasgiref==3.6.0(d729fdf) - Update to
asgiref==3.6.0(d534de8) - Move changelog updates to PRs (e6e0490)
- Auto-generate changelog from Git tags (b15efff)
- Remove unused
.prettierrc(ef25ea0) - Add spell check with CSpell (7361702)
- Remove GitHub issue templates (3797b2d)
- Update GitHub Actions Git tag syntax (c8a0638)
- Update Docker tag syntax for inboard releases (5617084)
- Remove redundant GitHub Actions workflows (4d19501)
- Enable mypy strict mode (2cbc99c)
0.37.0 - 2022-11-28¶
Changes:
Update to FastAPI 0.88 and Starlette 0.22 (7c76538)
This release will update/upgrade to FastAPI 0.88 and Starlette 0.22. This is a minor release to align with FastAPI and Starlette versioning.
https://github.com/tiangolo/fastapi/releases/tag/0.88.0 https://github.com/encode/starlette/releases/tag/0.22.0
Commits:
- Bump version from 0.36.0 to 0.37.0 (6893b78)
- Update to FastAPI 0.88 and Starlette 0.22 (7c76538)
0.36.0 - 2022-11-26¶
Changes:
Update to FastAPI 0.87 and Starlette 0.21 (b429f5c)
This release will update/upgrade to FastAPI 0.87 and Starlette 0.21. This is a minor release to align with FastAPI and Starlette versioning.
BREAKING CHANGE: Starlette 0.21 updated the test client to run on HTTPX instead of Requests. Please verify compatibility with your test suite after updating. Also note that, while Requests is no longer a dependency of Starlette, it recently became a dependency of mkdocs-material, so it will still be included when installing mkdocs-material. mkdocs-material (aka "Material for MkDocs") is used to build the documentation. They recently achieved their $8000 "Scotch Bonnet" funding goal, and released a collection of previously insiders-only features to the public. One of these features is a new built-in social plugin that uses Requests. https://github.com/tiangolo/fastapi/releases/tag/0.87.0 https://github.com/encode/starlette/releases/tag/0.21.0 https://www.python-httpx.org/compatibility/ https://squidfunk.github.io/mkdocs-material/insiders/ https://squidfunk.github.io/mkdocs-material/setup/setting-up-social-cards/
Commits:
- Bump version from 0.35.0 to 0.36.0 (c74d77c)
- Update to FastAPI 0.87 and Starlette 0.21 (b429f5c)
0.35.0 - 2022-11-26¶
Changes:
Update to FastAPI 0.86 (ab869dd)
This release will update/upgrade to FastAPI 0.86. This is a minor release to align with FastAPI's versioning strategy. Note that FastAPI 0.86 added support for Python 3.11.
Commits:
- Bump version from 0.34.1 to 0.35.0 (50ba2be)
- Update to FastAPI 0.86 (ab869dd)
0.34.1 - 2022-11-26¶
Commits:
- Bump version from 0.34.0 to 0.34.1 (4994950)
- Rename VSCode debugger config (20dd052)
- Update to Flake8 6 (e5ab9ee)
- Update dependencies (ab826e1)
0.34.0 - 2022-09-18¶
Changes:
Update to FastAPI 0.85 and Starlette 0.20 (0703e7c)
This release will update/upgrade to FastAPI 0.85 and Starlette 0.20. This is a minor release to align with FastAPI and Starlette versioning. Note that Starlette has dropped support for Python 3.6. inboard supports Python 3.8-3.10, so this is not a breaking change for inboard. https://github.com/tiangolo/fastapi/releases/tag/0.85.0 https://github.com/encode/starlette/releases/tag/0.20.0 https://github.com/encode/starlette/releases/tag/0.20.4
Commits:
- Bump version from 0.33.0 to 0.34.0 (9fc7281)
- Update to FastAPI 0.85 and Starlette 0.20 (0703e7c)
Note about Git commit and tag verification:
The email address bws@bws.bio and associated GPG key 783DBAF23C1D6478 have been used to sign Git commits and tags since 0.10.0 - 2021-05-20.
Git and GitHub now support commit signing and verification with SSH. The SSH key fingerprint SHA256:w+KL3qQKtku1MfLFSZLCl93kSgxH3O4OvtcxHG5k0Go will also be used to sign Git commits and tags going forward.
See @br3ndonland and br3ndonland/br3ndonland@08257e6 for corroboration of the new info.
0.33.0 - 2022-09-18¶
Changes:
Update to FastAPI 0.84 (c12ea2e)
This release will update/upgrade to FastAPI 0.84. This is a minor release to align with FastAPI's versioning strategy. Note that FastAPI has dropped support for Python 3.6. inboard supports Python 3.8-3.10, so this is not a breaking change for inboard. https://github.com/tiangolo/fastapi/releases/tag/0.84.0
Commits:
- Bump version from 0.32.0 to 0.33.0 (871f492)
- Update to FastAPI 0.84 (c12ea2e)
0.32.0 - 2022-09-18¶
Changes:
Update to FastAPI 0.83 (404df56)
This release will update/upgrade to FastAPI 0.83. This is a minor release to align with FastAPI's versioning strategy. https://github.com/tiangolo/fastapi/releases/tag/0.83.0
Commits:
- Bump version from 0.31.0 to 0.32.0 (fbfd228)
- Update to FastAPI 0.83 (404df56)
0.31.0 - 2022-09-18¶
Changes:
Update to FastAPI 0.82 (6313b22)
This release will update/upgrade to FastAPI 0.82. This is a minor release to align with FastAPI's versioning strategy. https://github.com/tiangolo/fastapi/releases/tag/0.82.0
Commits:
- Bump version from 0.30.0 to 0.31.0 (8a97844)
- Update to FastAPI 0.82 (6313b22)
0.30.0 - 2022-09-18¶
Changes:
Update to FastAPI 0.81 (f66214a)
This release will update/upgrade to FastAPI 0.81. This is a minor release to align with FastAPI's versioning strategy. https://github.com/tiangolo/fastapi/releases/tag/0.81.0
Commits:
- Bump version from 0.29.0 to 0.30.0 (28c6f6b)
- Update to FastAPI 0.81 (f66214a)
0.29.0 - 2022-09-18¶
Update to FastAPI 0.80 (f8bd04a)
This release will update/upgrade to FastAPI 0.80.
This is a minor release to align with FastAPI's versioning strategy.
BREAKING CHANGE: response_model will now invalidate None.
https://github.com/tiangolo/fastapi/releases/tag/0.80.0
Commits:
- Bump version from 0.28.1 to 0.29.0 (eceeb09)
- Update to FastAPI 0.80 (f8bd04a)
- Update dependencies (cd301e6)
0.28.1 - 2022-09-04¶
Commits:
- Bump version from 0.28.0 to 0.28.1 (d3982f1)
- Update to Flake8 5 (28dc5e4)
- Update dependencies (3536ab2)
- Add justification section to docs and README (a807a11)
- Add test case for Uvicorn log format (087efda)
- Add changelog command to docs (8c474b6)
0.28.0 - 2022-07-30¶
Changes:
Update to FastAPI 0.79 (3a34076)
This release will update/upgrade to FastAPI 0.79. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.27.0 to 0.28.0 (dcfa947)
- Update to FastAPI 0.79 (3a34076)
- Update dependencies (121271a)
0.27.0 - 2022-07-09¶
Changes:
- Use BuildKit for Docker builds (#54)
Commits:
- Bump version from 0.26.1 to 0.27.0 (4f67d82)
- Update dependencies (9d2bf9f)
- Merge pull request #54 from br3ndonland/buildkit (5968ae2)
- Relax Dockerfile syntax version specifier (79ce14e)
- Update
docker build --cache-fromfor inboard (8cc569f) - Add
BUILDKIT_INLINE_CACHEDocker build argument (173fc51) - Use
COPY --linkto improve layer caching (1af4421) - Add heredoc examples and info to docs (d3c6f11)
- Break heredoc across multiple stages (91cbd6f)
- Refactor Dockerfile with heredoc syntax (cd22c8d)
- Add Docker BuildKit info to CONTRIBUTING.md (64fc4a8)
- Enable BuildKit in GitHub Actions (517fcf8)
0.26.1 - 2022-06-11¶
Commits:
- Bump version from 0.26.0 to 0.26.1 (0452dde)
- Update to pipx 1.1.0 (3437bdd)
- Update dependencies (c0c7638)
- Add example requirements files to docs (36fd603)
- Remove
<!-- prettier-ignore -->from docs (ff212f4) - Simplify CodeQL workflow (59e3dad)
0.26.0 - 2022-05-14¶
Changes:
This release will update/upgrade (whatever you call it) to FastAPI 0.78. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.25.0 to 0.26.0 (5eb3a12)
- Update to FastAPI 0.78 (acb3533)
0.25.0 - 2022-05-14¶
Changes:
This release will upgrade to FastAPI 0.77 and Starlette 0.19. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.24.0 to 0.25.0 (ddd24f5)
- Upgrade to FastAPI 0.77 and Starlette 0.19 (a41c20f)
0.24.0 - 2022-05-14¶
Changes:
This release will upgrade to FastAPI 0.76 and Starlette 0.18. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.23.2 to 0.24.0 (a39e595)
- Upgrade to FastAPI 0.76 and Starlette 0.18 (5fb5aed)
0.23.2 - 2022-05-14¶
Commits:
- Bump version from 0.23.1 to 0.23.2 (24a3da8)
- Update dependencies (e7752b3)
0.23.1 - 2022-04-19¶
Commits:
- Bump version from 0.23.0 to 0.23.1 (5f2d247)
- Update dependencies (b6ab26c)
- Update to FastAPI 0.75.2 (ea2fffa)
- Update logging filter docs to use Docker image (342490c)
- Merge pull request #51 from br3ndonland/drop-codecov (e2c8b74)
- Raise coverage of tests to 100% (5143685)
- Update GitHub Actions workflows for coverage.py (5b9beff)
- Remove pytest-cov and just use coverage.py (829e862)
- Update CONTRIBUTING.md for Codecov removal (71d2ede)
- Swap Codecov badge for custom coverage badge (e078ea8)
- Add Sourcery config file to set Python version (455dd65)
- Update to v3 actions (6b73d75)
- Update to codecov/codecov-action@v3 (b0f29a6)
- Drop
typingimport fromtest_logging_conf.py(6624a43)
0.23.0 - 2022-04-02¶
Changes:
Add Python 3.10 support (#36)
- Work began on Python 3.10 support nearly nine months ago.
- inboard is now able to support Python 3.10.
- The primary blockers were Poetry and pydantic.
Add configurable logging filter (#49)
- Filters identify log messages to filter out, so that the logger does not log messages containing any of the filters. If any matches are present in a log message, the logger will not output the message.
- The environment variable
LOG_FILTERScan be used to specify filters as a comma-separated string, likeLOG_FILTERS="/health, /heartbeat". To then add the filters to a class instance, theLogFilter.set_filters()method can make the set of filters from the environment variable value. - One of the primary use cases for log message filters is health checks.
When applications with APIs are deployed, it is common to perform
"health checks" on them. Health checks are usually performed by making
HTTP requests to a designated API endpoint. These checks are made at
frequent intervals, and so they can fill up the access logs with large
numbers of unnecessary log records. To avoid logging health checks,
add those endpoints to the
LOG_FILTERSenvironment variable.
Support module paths for Gunicorn config files (e068622, 75b3a48)
- Gunicorn accepts either file paths or module paths. Module paths are prefixed with "python:".
- inboard will now support module paths (in addition to file paths) with
the
GUNICORN_CONFenvironment variable. - inboard will now use a module path as the default.
Commits:
- Bump version from 0.22.0 to 0.23.0 (b1a6855)
- Merge pull request #36 from br3ndonland/python-3.10 (7b2fdf6)
- Update type annotations for Python 3.10 (f3fd95d)
- Use Python 3.10 as default version in Dockerfile (760c071)
- Add Python 3.10 to GitHub Actions workflows (1fbcdeb)
- Merge pull request #49 from br3ndonland/logging-filter (97e35b7)
- Refactor #49 with Sourcery (#50) (fba2fd2)
- Add configurable logging filter (32792cd)
- Update dependencies (80cbaf4)
- Update pre-commit dependencies (0746175)
- Resolve Black pre-commit hook
ImportError(cb62817) - Add complete logging override example to docs (94d202b)
- Use Python module path as
gunicorn_confdefault (75b3a48) - Set default
PRE_START_PATHtoNone(8c8c6cf) - Move pydantic response models to
main_fastapi.py(4990a2e) - Refactor
test_main.py(e6a6060) - Remove the last
# noqa: E501Flake8 comment (21667c5) - Clarify pytest fixture request variable names (35d4d2c)
- Support module paths for Gunicorn config files (e068622)
0.22.0 - 2022-03-06¶
Changes:
Add Docker tags for minor version numbers (a547b68)
- The inboard version in the Python package doesn't automatically
stay in sync with the inboard version in the Docker container.
Some users may install the inboard Python package with a
minor version constraint, like
inboard==0.22.*for requirements.txt orinboard = "^0.22"for pyproject.toml with Poetry. The Docker images previously only offered exact version numbers. - This commit will add support for minor version numbers, so the
Docker images can be specified with something like
br3ndonland/inboard:fastapi-0.22.
Check pre-start script exit code (1a27553) (breaking change)
- inboard optionally runs a pre-start script before starting the server.
The path to a pre-start script can be specified with the environment
variable
PRE_START_PATH. If the environment variable is set to a nonzero value, inboard will run the script at the provided path, using thesubprocessstandard library package. - Previously, if the script exited with an error, inboard would continue starting the server. However, it may be preferable to stop the server if the pre-start script fails.
- This commit will update the subprocess call to include
check=True. If the pre-start script exits with an error, inboard will not start the server. - The behavior of successful pre-start script runs will not change. However, failed pre-start script runs will now exit with error codes, and prevent the server from starting.
This is a minor release to account for the potentially breaking change.
Commits:
- Bump version from 0.21.0 to 0.22.0 (39b644a)
- Add Docker tags for minor version numbers (a547b68)
- Check pre-start script exit code (1a27553)
0.21.0 - 2022-03-05¶
Changes:
This release will upgrade to Uvicorn 0.17. This is a minor release to align with Uvicorn's versioning strategy.
Commits:
- Bump version from 0.20.0 to 0.21.0 (5436443)
- Upgrade to Uvicorn 0.17 (2d29e13)
0.20.0 - 2022-03-05¶
Changes:
This release will upgrade to Uvicorn 0.16. This is a minor release to align with Uvicorn's versioning strategy.
Commits:
- Bump version from 0.19.0 to 0.20.0 (8b7f6da)
- Upgrade to Uvicorn 0.16 (7cf41c4)
0.19.0 - 2022-03-05¶
Changes:
This release will upgrade to FastAPI 0.75. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.18.0 to 0.19.0 (c24eef0)
- Upgrade to FastAPI 0.75 (82df92c)
0.18.0 - 2022-03-05¶
Changes:
This release will upgrade to FastAPI 0.74. This is a minor release to align with FastAPI's versioning strategy.
Note the important breaking change: The internal AsyncExitStack was
updated so that dependencies with yield can now catch HTTPException
and custom exceptions. See the docs for further details:
https://fastapi.tiangolo.com/tutorial/dependencies/dependencies-with-yield/
Commits:
- Bump version from 0.17.0 to 0.18.0 (f4cef1f)
- Upgrade to FastAPI 0.74 (570ef57)
0.17.0 - 2022-03-05¶
Changes:
This release will upgrade to FastAPI 0.73. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.16.0 to 0.17.0 (c0af880)
- Upgrade to FastAPI 0.73 (d9512bb)
0.16.0 - 2022-03-05¶
Changes:
This release will upgrade to FastAPI 0.72. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.15.0 to 0.16.0 (c8adeaf)
- Upgrade to FastAPI 0.72 (66686fd)
0.15.0 - 2022-03-05¶
Changes:
This release will upgrade to FastAPI 0.71 and Starlette 0.17. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.14.0 to 0.15.0 (2a477d3)
- Add PyPI trove classifier for FastAPI (b164470)
- Upgrade to FastAPI 0.71 and Starlette 0.17 (d2f3295)
0.14.0 - 2022-03-05¶
Changes:
- Install Poetry with pipx (#47)
Commits:
- Bump version from 0.13.0 to 0.14.0 (d9207e9)
- Update pre-commit dependencies (06a0a85)
- Update to pytest 7 (7a3cd8f)
- Update to stable Black (df6ce8d)
- Update dependencies (f1cde24)
- Update to Material for MkDocs 8 (8454308)
- Update to mypy 0.9x (73d528b)
- Update coverage.py concurrency configuration (0474074)
- Update dependencies (c7c3b32)
- Document
musllinuxbinary package distributions (8fc950a) - Add
virtualenvs.createsetting to poetry.toml (5831c0e) - Don't install
dev-dependenciesfor CodeQL (3c24b5e) - Run CodeQL with latest Python (4e15f78)
- Remove Python version matrix from CodeQL workflow (5214051)
- Test package version before publishing to PyPI (9a2cf80)
- Remove
POETRY_VIRTUALENVS_IN_PROJECTvariables (b33af2a) - Disable Poetry experimental new installer (9476d5b)
- Merge pull request #47 from br3ndonland/pipx-poetry (a4691bf)
- Document installation of Poetry with
pipx(ebd8454) - Install Poetry with
pipx(af7bedd)
0.13.0 - 2021-10-23¶
Changes:
This release will upgrade to FastAPI 0.70 and Starlette 0.16. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.12.0 to 0.13.0 (48ae350)
- Merge pull request #46 from br3ndonland/fastapi-0.70 (00f70f9) Upgrade to FastAPI 0.70 and Starlette 0.16
- Upgrade to FastAPI 0.70 and Starlette 0.16 (9006a15)
0.12.0 - 2021-10-23¶
Changes:
This release will upgrade to FastAPI 0.69 and Starlette 0.15. This is a minor release to align with FastAPI's versioning strategy.
Commits:
- Bump version from 0.11.0 to 0.12.0 (b5b2eab)
- Merge pull request #45 from br3ndonland/fastapi-0.69 (93ac39a) Upgrade to FastAPI 0.69 and Starlette 0.15
- Update dependencies (9935758)
0.11.0 - 2021-10-23¶
Changes include (most recent first):
- Pin and test Poetry version
- Drop
tomldependency - Implement
UVICORN_CONFIG_OPTIONSvariable for catch-all config - Upgrade to Uvicorn 0.15, ensuring version-appropriate config options
- Add support for Alpine and Debian "slim" Linux distributions
Commits:
- Bump version from 0.11.0-beta.0 to 0.11.0 (dcfaa60)
- Bump version from 0.11.0-alpha.3 to 0.11.0-beta.0 (a12f12a)
- Update dependencies (e7a23df)
- Use consistent substring match for Poetry version (74deab7)
- Merge pull request #44 from br3ndonland/poetry-version (02066b3) Pin and test Poetry version
- Pin and test Poetry version in Docker (036b57c)
- Pin and test Poetry version in GitHub Actions (a38617d)
- Document Rust Python extensions on Alpine Linux (c59805a)
- Merge pull request #43 from br3ndonland/drop-toml (d7eb82a)
Drop
tomldependency - Drop
tomldependency (619f63c) - Replace PAT with
GITHUB_TOKENfordocker login(ddffe97) - Only run
docker loginwhen pushing to registry (809d413) - Fix typo in
contributing.md(#42) (8900a7e) - Bump version from 0.11.0-alpha.2 to 0.11.0-alpha.3 (9745b25)
- Clarify
inboard.start._split_uvicorn_option(a93fcbb) - Ensure Uvicorn options are version-appropriate (242ff7a)
- Bump version from 0.11.0-alpha.1 to 0.11.0-alpha.2 (792c263)
- Merge pull request #41 from br3ndonland/uvicorn-config-options (fe582cb)
Add
UVICORN_CONFIG_OPTIONSenvironment variable for catch-all configuration - Document
UVICORN_CONFIG_OPTIONSvariable (509b4bf) - Implement
UVICORN_CONFIG_OPTIONSvariable (a8773b6) - Use pytest fixtures for test Uvicorn configs (2964358)
- Remove
mock_prefixes fromtests/test_start.py(0ef5dfc) - Strip spaces from both ends of
RELOAD_DIRS(3808f2c) - Merge pull request #39 from br3ndonland/uvicorn-0.15 (043c929) Upgrade to Uvicorn 0.15 and implement new reload options
- Update #39 with Sourcery refactorings from #40 (75b81a4)
- Document new Uvicorn 0.15 reload config options (95fe201)
- Implement new Uvicorn 0.15 reload config options (f4428dd)
- Upgrade to Uvicorn 0.15 (ffb47df)
- Clarify Debian slim Dockerfile example in docs (8b0ef55)
- Bump version from 0.11.0-alpha.0 to 0.11.0-alpha.1 (7c4647d)
- Merge pull request #38 from br3ndonland/slim (bac938a) Add support for Debian slim Docker images
- Document how to use Debian slim Docker images (9389572)
- Add support for Debian slim Docker images (582dcef)
- Bump version from 0.10.4 to 0.11.0-alpha.0 (6f27dc7)
- Document how to use Alpine Linux with inboard (86efc46)
- Delete build dependencies from Alpine Linux images (d85200c)
- Merge pull request #37 from br3ndonland/alpine (11dc393) Add support for Alpine Linux
- Document support for Alpine Linux (41ae8b6)
- Add support for Alpine Linux to GitHub Actions (a442b9f)
- Add support for Alpine Linux to Dockerfile (c7d83e7)
- Ensure Poetry is on
$PATHin all Docker images (efe50b8)
0.11.0-beta.0 - 2021-10-11¶
Changes include:
- Add support for Alpine and Debian "slim" Linux distributions
- Upgrade to Uvicorn 0.15, ensuring version-appropriate config options
- Implement
UVICORN_CONFIG_OPTIONSvariable for catch-all config - Drop
tomldependency - Pin and test Poetry version
Commits:
- Bump version from 0.11.0-alpha.3 to 0.11.0-beta.0 (a12f12a)
- Update dependencies (e7a23df)
- Use consistent substring match for Poetry version (74deab7)
- Merge pull request #44 from br3ndonland/poetry-version (02066b3)
- Pin and test Poetry version in Docker (036b57c)
- Pin and test Poetry version in GitHub Actions (a38617d)
- Document Rust Python extensions on Alpine Linux (c59805a)
- Merge pull request #43 from br3ndonland/drop-toml (d7eb82a)
- Drop
tomldependency (619f63c) - Replace PAT with
GITHUB_TOKENfordocker login(ddffe97) - Only run
docker loginwhen pushing to registry (809d413) - Fix typo in
contributing.md(#42) (8900a7e) - Bump version from 0.11.0-alpha.2 to 0.11.0-alpha.3 (9745b25)
- Clarify
inboard.start._split_uvicorn_option(a93fcbb) - Ensure Uvicorn options are version-appropriate (242ff7a)
- Bump version from 0.11.0-alpha.1 to 0.11.0-alpha.2 (792c263)
- Merge pull request #41 from br3ndonland/uvicorn-config-options (fe582cb)
- Document
UVICORN_CONFIG_OPTIONSvariable (509b4bf) - Implement
UVICORN_CONFIG_OPTIONSvariable (a8773b6) - Use pytest fixtures for test Uvicorn configs (2964358)
- Remove
mock_prefixes fromtests/test_start.py(0ef5dfc) - Strip spaces from both ends of
RELOAD_DIRS(3808f2c) - Merge pull request #39 from br3ndonland/uvicorn-0.15 (043c929)
- Update #39 with Sourcery refactorings from #40 (75b81a4)
- Document new Uvicorn 0.15 reload config options (95fe201)
- Implement new Uvicorn 0.15 reload config options (f4428dd)
- Upgrade to Uvicorn 0.15 (ffb47df)
- Clarify Debian slim Dockerfile example in docs (8b0ef55)
- Bump version from 0.11.0-alpha.0 to 0.11.0-alpha.1 (7c4647d)
- Merge pull request #38 from br3ndonland/slim (bac938a)
- Document how to use Debian slim Docker images (9389572)
- Add support for Debian slim Docker images (582dcef)
- Bump version from 0.10.4 to 0.11.0-alpha.0 (6f27dc7)
- Document how to use Alpine Linux with inboard (86efc46)
- Delete build dependencies from Alpine Linux images (d85200c)
- Merge pull request #37 from br3ndonland/alpine (11dc393)
- Document support for Alpine Linux (41ae8b6)
- Add support for Alpine Linux to GitHub Actions (a442b9f)
- Add support for Alpine Linux to Dockerfile (c7d83e7)
- Ensure Poetry is on
$PATHin all Docker images (efe50b8)
0.11.0-alpha.3 - 2021-08-29¶
- Bump version from 0.11.0-alpha.2 to 0.11.0-alpha.3 (9745b25)
- Clarify
inboard.start._split_uvicorn_option(a93fcbb) - Ensure Uvicorn options are version-appropriate (242ff7a)
0.11.0-alpha.2 - 2021-08-27¶
- Bump version from 0.11.0-alpha.1 to 0.11.0-alpha.2 (792c263)
- Merge pull request #41 from br3ndonland/uvicorn-config-options (fe582cb)
Add
UVICORN_CONFIG_OPTIONSenvironment variable for catch-all configuration - Document
UVICORN_CONFIG_OPTIONSvariable (509b4bf) - Implement
UVICORN_CONFIG_OPTIONSvariable (a8773b6) - Use pytest fixtures for test Uvicorn configs (2964358)
- Remove
mock_prefixes fromtests/test_start.py(0ef5dfc) - Strip spaces from both ends of
RELOAD_DIRS(3808f2c) - Merge pull request #39 from br3ndonland/uvicorn-0.15 (043c929) Upgrade to Uvicorn 0.15 and implement new reload options
- Update #39 with Sourcery refactorings from #40 (75b81a4)
- Document new Uvicorn 0.15 reload config options (95fe201)
- Implement new Uvicorn 0.15 reload config options (f4428dd)
- Upgrade to Uvicorn 0.15 (ffb47df)
- Clarify Debian slim Dockerfile example in docs (8b0ef55)
0.11.0-alpha.1 - 2021-08-14¶
- Bump version from 0.11.0-alpha.0 to 0.11.0-alpha.1 (7c4647d)
- Merge pull request #38 from br3ndonland/slim (bac938a)
- Document how to use Debian slim Docker images (9389572)
- Add support for Debian slim Docker images (582dcef)
0.11.0-alpha.0 - 2021-08-14¶
- Bump version from 0.10.4 to 0.11.0-alpha.0 (6f27dc7)
- Document how to use Alpine Linux with inboard (86efc46)
- Delete build dependencies from Alpine Linux images (d85200c)
- Merge pull request #37 from br3ndonland/alpine (11dc393)
- Document support for Alpine Linux (41ae8b6)
- Add support for Alpine Linux to GitHub Actions (a442b9f)
- Add support for Alpine Linux to Dockerfile (c7d83e7)
- Ensure Poetry is on
$PATHin all Docker images (efe50b8)
0.10.4 - 2021-08-01¶
- Bump version from 0.10.3 to 0.10.4 (e81b09e)
- Upgrade to FastAPI 0.68 (741ece7)
- Update dependencies (7ce0c24)
0.10.3 - 2021-07-22¶
- Bump version from 0.10.2 to 0.10.3 (897b521)
- Upgrade to FastAPI 0.67 (e46604b)
- Update dependencies (1cf46b4)
- Update to codecov-action@v2 and new uploader (2512d3c)
- Update GitHub Container Registry URL to new format (8b9346c)
- Use standard input for GitHub Actions Docker login (23ba613)
- Don't push Python version tags from develop (b41768c)
- Remove
site_urland trailing slash from docs (9943112) - Revert "Set site_url for mkdocs" (ec2546c)
- Add newlines between admonitions and code blocks (00a73b2)
- Simplify CodeQL workflow (8eefab6)
0.10.2 - 2021-07-05¶
- Bump version from 0.10.1 to 0.10.2 (9dc08a2)
- Upgrade to Uvicorn 0.14 and Click 8.0 (ea77261)
- Upgrade to FastAPI 0.66 (3255a26)
- Update dependencies (709b9cf)
- Use admonitions consistently in docs (15f3d1a)
- Set site_url for mkdocs (36eca9d)
- Move mkdocs-material to Poetry dev-dependencies (02e2ddd)
0.10.1 - 2021-06-09¶
- Bump version from 0.10.0 to 0.10.1 (d565cfa)
- Update to FastAPI 0.65.2 to patch CVE (7318243)
0.10.0 - 2021-05-20¶
- Bump version from 0.9.5 to 0.10.0 (ab0e3db)
- Update dependencies (6315cba)
- Merge pull request #35 from br3ndonland/fastapi-0.65 (4cb2430)
- Upgrade to FastAPI 0.65 and Starlette 0.14 (92326a2)
- Update project author info (3c8a800)
- Remove relative links from README (6ff9f08)
- Revert "Include inboard logo in Python package" (0d06af1)
These changes merit a minor release for the following reasons:
- Upgrading to FastAPI 0.65 and Starlette 0.14 may be a breaking change.
- Project author info will be updated. The email address bws@bws.bio and associated GPG key 783DBAF23C1D6478 will be used going forward. See @br3ndonland and https://keybase.io/br3ndonland for corroboration of the new info.
0.9.5 - 2021-05-16¶
- Bump version from 0.9.4 to 0.9.5 (1330702)
- Include inboard logo in Python package (354ccdf)
- Capitalize Poetry URL for Docker (08668d0)
0.9.4 - 2021-05-16¶
- Bump version from 0.9.3 to 0.9.4 (c94687e)
- Add docs URLs to README.md and CONTRIBUTING.md (407b45a)
- Add Poetry URLs for Docker and docs (01dda30)
- Merge pull request #34 from br3ndonland/docs (897ae29)
- Add Vercel config (611b204)
- Add authentication docs (c7b98dd)
- Add logging configuration behavior and design docs (4abb085)
- Refactor README.md and CONTRIBUTING.md into docs (eb8d592)
- Add favicon from Material for MkDocs (8257c86)
- Add inboard logo to docs (ebfb59d)
- Add docs homepage (e0f9ed0)
- Configure MkDocs site (22122c7)
- Create MkDocs site (20065b8)
- Add dependencies for docs (05202f5)
0.9.3 - 2021-05-08¶
- Bump version from 0.9.2 to 0.9.3 (adcdecc)
- Add awesome list badge to README (36216b8)
- Update dependencies (f4d0db9)
- Update FastAPI to 0.64 (2feeb74)
- Update Black to 21.5b0 (bcf89c4)
0.9.2 - 2021-05-02¶
- Bump version from 0.9.1 to 0.9.2 (6d34ecd)
- Only use Gunicorn max_workers setting as a limit (f22c1dc)
- Update mypy configuration file (73204fb)
- Update dependencies (f0a63ff)
- Update Black to 21.4b2 (dfb3044)
0.9.1 - 2021-04-19¶
- Bump version from 0.9.0 to 0.9.1 (8364ec4)
- Separate FastAPI and Starlette imports for __all__ (94879d4)
0.9.0 - 2021-04-18¶
- Bump version from 0.8.2 to 0.9.0 (d5ba52a)
- Merge pull request #33 from br3ndonland/__all__ (9f361a9)
- Update LOGGING_CONFIG import in README example (b9b0f2f)
- Add __all__ to __init__.py (827c1c7)
- Update dependencies (aec2cf5)
- Update repo tagline (2615802)
- Update mypy configuration file (96132a6)
- Shorten lines in GitHub Actions builds workflow (ebe9d9c)
- Merge pull request #32 from br3ndonland/update-http-basic-auth (a0ab4d0)
- Update HTTP Basic auth for FastAPI and Starlette (2630dea)
- Merge pull request #31 from br3ndonland/conf-testing (c9dd974)
- Clarify Gunicorn variable descriptions in README (40baca4)
- Update links to pytest docs (aa243dd)
- Test logger output after configuring logging (273f795)
- Remove prefix from mocker objects in logger tests (9a61fc2)
- Split up logging configuration method (373c98d)
- Correct attribute error on module spec loader (0ba94fc)
- Consolidate logging configuration method and tests (8cd8db2)
- Use similar syntax to set up Gunicorn and Uvicorn (1b739ed)
- Test Gunicorn settings (324f88f)
- Organize Gunicorn settings (aaef2f0)
- Refactor Gunicorn worker calculation and tests (315c1c1)
- Move Gunicorn conf tests to separate module (d28753b)
- Parametrize app module tests (35d6772)
- Update flake8 pre-commit hook for new GitHub repo (d0174e5)
0.8.2 - 2021-04-04¶
- Bump version to 0.8.2 (4893ad5)
- Merge pull request #30 from br3ndonland/refactor-start-script (54b0f25)
- Organize Gunicorn and Uvicorn server settings (ad39efe)
0.8.1 - 2021-04-04¶
- Bump version to 0.8.1 (75676bb)
- Update dependencies (d5ee6b0)
- Add PyPI trove classifier for typed packages (27c18c4)
- Update Poetry info in CONTRIBUTING.md (12a00a7)
- Remove use of standard library bool class (43d3756)
0.8.0 - 2021-03-06¶
- Bump version to 0.8.0 (dcf51c1)
- Update dependencies (95d02e1)
- Improve logging config typing and extension info (4a280ac)
- Merge pull request #29 from br3ndonland/docker-start-path (b51193e)
- Use module path for start script in Dockerfile (8d8ac47)
- Merge pull request #28 from br3ndonland/logging-updates (a263822)
- Remove mock logger pytest fixture (3c0e076)
- Properly mock logger in inboard server tests (815a365)
- Properly mock logger in pre-start script tests (23682a1)
- Properly mock logger in app module tests (7b65853)
- Properly mock logger in logging config tests (fcd7021)
- Add GitHub Discussions link to CONTRIBUTING.md (b99b28a)
- Add link to Docker intro site to CONTRIBUTING.md (892fd45)
- Revert README HTML center alignment (cd4ae86)
0.7.4 - 2021-02-13¶
- Bump version to 0.7.4 (89029d6)
- Correct GitHub Actions Docker push step (8dfd6f3)
- Add prestart path to Uvicorn debugger config (2178bd4)
- Use paragraph tags to improve spacing in README (ff267d8)
- Improve pydantic settings model (aa08fab)
- Add FastAPI response models and status codes (409281e)
- Create pytest fixture for pydantic settings model (bb088ac)
- Use consistent names for tests in test_metadata.py (b6449af)
- Update Uvicorn and FastAPI debugger configs (1f7e5d0)
0.7.3 - 2021-02-06¶
- Bump version to 0.7.3 (9212f3f)
- Use regex for CORS origins (6707159)
- Load pyproject.toml into pydantic settings model (c862c3f)
- Update dependencies (543b1fe)
- Remove flaky importlib.metadata test (8b37585)
- Download Poetry custom installer from Git HEAD (a03f1db)
- Fix HTML syntax in README (b03f62d)
- Update dependencies (8bbfd1c)
- Merge pull request #24 from br3ndonland/docker-smoke-tests (70997b5)
- Add Docker smoke tests with HTTPie (13f0d0b)
0.7.2 - 2021-01-30¶
- Bump version to 0.7.2 (8cff451)
- Merge pull request #23 from br3ndonland/master-to-main (cb94fa1)
- Update GitHub Actions workflows for main branch (c03de3d)
- Update CONTRIBUTING.md for main branch (7674081)
- Merge pull request #22 from br3ndonland/logo (a060a4e)
- Center align headings and badges in README (c217e9b)
- Add inboard logo to README (5f2a094)
0.7.1 - 2020-12-21¶
- Bump version to 0.7.1 (fef0a8c)
- Upgrade to FastAPI 0.63 (646aad3)
- Update dependencies (f6ac18b)
- Update to Contributor Covenant v2.0 (0177132)
0.7.0 - 2020-12-20¶
- Bump version to 0.7.0 (49f63b3)
- Revert "Enable Starlette 0.14" (12eef2a)
- Add new FastAPI VSCode debugger config (11524b6, 79f9e9c)
- Update README (9a6751b, e82ba73, aa399ef)
- Merge pull request #21 from br3ndonland/uvicorn-reload-dirs (a607d65) Implement Uvicorn reload_dirs
- Merge pull request #20 from br3ndonland/fastapi!=starlette (e1e34c7) Improve separation between FastAPI and Starlette
0.6.1 - 2020-12-18¶
- Bump version to 0.6.1 (7236cd5)
- Update dependencies (49ccdf3)
- Update test syntax for pytest 6.2 (77fe500)
- Upgrade to pytest 6.2 (24f9372)
0.6.0 - 2020-11-28¶
- Bump version to 0.6.0 (47b164e)
- Flatten app directory (059c72a)
- Build Python package with latest Python version (5f449e2)
- Merge pull request #19 from br3ndonland/python-versions (b033732)
- Use Python version matrix in Docker job (465c923)
- Add info on specifying Python version to README (c14de7f)
- Build Docker images for multiple Python versions (dc8da18)
- Add Python version build argument to Dockerfile (69ebc5f)
- Add Python version matrices for GitHub Actions (1a7a5ad)
- Specify VSCode debugger port for Linux (d651a92)
- Fix test of custom Gunicorn worker calculations (fabc7fc)
- Add coverage.py multiprocessing config (2effdb0)
- Update Prettier pre-commit hook (0cda29d)
- Update dependencies (2ec6bf8)
0.5.9 - 2020-10-31¶
- Bump version to 0.5.9 (f5eb570)
- Update minimum pre-commit version to 2.8 (8ac4a34)
- Migrate to new Prettier pre-commit repo (8866ab4)
- Update .prettierignore to ignore venv (c2a5ddb)
- Update GitHub Actions workflows to Python 3.9 (6f01d75)
- Update Docker image to Python 3.9 (d9734b4)
- Use more specific web server mocks (ac5ff70)
- Make Python version syntax more flexible (6bf3abc)
- Make all FastAPI and Starlette endpoints async (e3959b0)
- Simplify conditionals in gunicorn_conf.py (4914a4b)
- Update HTTPie info in README (1c45f19)
- Update dependencies (e96e263)
- Remove Docker SDK (d529e91)
0.5.8 - 2020-10-17¶
- Bump version to 0.5.8 (b192f32)
- Parse pyproject.toml for testing (ff00f0d)
- Rename package metadata test module (0bf44e3)
- Alphabetize GitHub Actions tests workflow branches (f859052)
- Don't change directory if running VSCode debugger (1bcb9c8)
- Explain how to disable pre-start script in README (16dca97)
- Expand example logging_conf.py in README (d8d9af7)
- Update release instructions in CONTRIBUTING.md (e9868d5)
- Update dependencies (7143e26)
0.5.7 - 2020-10-10¶
git log --pretty=format:"- %s (%h)" 0.5.6..HEAD
- Bump version to 0.5.7 (0a6692b)
- Manage pre-commit with Poetry in GitHub Actions (84b25bc)
- Add pytest-mock to pre-commit mypy dependencies (8c9081d)
- Update dependencies (0b472d1)
- Update type annotations in README logging config (d7ddb5e)
- Disable Dependabot dependency updates (0bd02d1)
- Update Poetry Docker command for custom installer (b10ace1)
- Use absolute URLs in README (e585a88)
- Merge pull request #18 from br3ndonland/github-actions-updates (83d09bd)
- Run Docker builds on pull requests (023f4d5)
- Remove deprecated GitHub Actions set-env syntax (05a36a8)
- Simplify CodeQL workflow syntax (90abd1f)
0.5.6 - 2020-10-03¶
- Bump version to 0.5.6 (0f35934)
- Update docs (e5f18ff, 42d9e45, ded9841, ac859f0)
- Update for Poetry 1.1.0 (#17, 600c951)
- Update dependencies (#12, #13, #14, #15, #16, 059e28b, 13fa37d)
0.5.5 - 2020-09-21¶
- Bump version to 0.5.5 (62f331b)
- Restore pre-start logging (c6f446f)
0.5.4 - 2020-09-21¶
- Bump version to 0.5.4 (6208d9c)
- Use Optional[str] for values that could be None (9c79964)
0.5.3 - 2020-09-20¶
- Bump version to 0.5.3 (00d336c)
- Fix web concurrency Gunicorn worker calculation (fd60470)
0.5.2 - 2020-09-19¶
- Bump version to 0.5.2 (edcc361)
- Improve testing of server configuration (PR #11)
- Run Dependabot updates on Saturdays (55baa72)
- Update Docker image URLs for new GHCR pages (6b55bbc)
0.5.1 - 2020-09-15¶
- Bump version to 0.5.1 (727181e)
- Add OCI Docker labels (6750087)
- Update README (894175c, 802b0dd, 82d4d8e)
0.5.0 - 2020-09-13¶
0.4.1 - 2020-09-11¶
- Bump version to 0.4.1 (108bcda)
- Add PyPI trove classifiers to pyproject.toml (782248a)
- Add Poetry keywords to pyproject.toml (0341582)
- Add py.typed file for PEP 561 compliance (d5f030f)
- Use Poetry custom installer for GitHub Actions (23e097d)
- Avoid creating Poetry virtualenv in GitHub Actions (2eed1fd)
- Hard-code __token__ as PyPI username (b9538aa)
- Add workflow_dispatch triggers to hooks and tests (89f9c17)
- Add CodeQL code scanning (e50684e)
0.4.0 - 2020-09-07¶
- Support both file and module paths for logging configs (b0a36de)
- Use more specific Mypy ignore comments (f2b5419)
# type: ignore->type: ignore[attr-defined]
- Add error handling for start.set_conf_path (1c6a7ec)
- Improve separation of Uvicorn and Gunicorn servers (735618a)
- Make
process_managera required argument forstart.start_server() - Only set Gunicorn conf path when running Gunicorn
- Make
- Patch uvicorn.run with pytest-mock to manage server context (3906b3d)
- Update README (a8c5d0e, eaf1d6a, bd26793, 68d86cf)
- Update dependencies (a47c6fa, 28b9019, d2bab44, cc17974)
- Add Dependabot for automated dependency updates (0582667)
- Bump version to 0.4.0 (0734869)
0.3.0 - 2020-09-02¶
- Remove unused pytest type ignores after upgrading to pytest 6 (3dc8085)
- Refactor start.configure_logging for module path (ff9155a)
- Bump version to 0.3.0 (db8a6ac)
0.2.2 - 2020-09-01¶
- Install Pytest 6 (95178d2)
- Update Python dependencies (223e078)
- Bump version to 0.2.2 (7f642dc)
0.2.1 - 2020-09-01¶
- Move latest tag to final workflow step (cf907fe)
- Bump version to 0.2.1 (c47f545)
0.2.0 - 2020-09-01¶
Update Docker builds for GitHub Container Registry
- #6
- br3ndonland/inboard@723bc98
- br3ndonland/inboard@f3d829c
- br3ndonland/inboard@21c3bcd
0.1.3 - 2020-08-31¶
Bump version to 0.1.3 (51fc961)
0.1.2 - 2020-08-31¶
- Update README (1ad6ba6)
- Update FastAPI and Starlette tests (5b9706f, 397638e)
0.1.1 - 2020-08-31¶
- Correct poetry publish command (681dc09)
- Bump version to 0.1.1 (74900ab)