This file documents changes to fastapi-mvc. The release numbering uses semantic versioning.
- Bump copier-project from 0.6.0 to 0.6.1. PR #297
- Update Poetry to 1.5.x #291. PR #296
- Bump nixpkgs from 22.11 to 23.05. PR #292
- Bump poetry2nix from 1.40.1 to 1.42.0. PR #292
- Update dependencies:
- Bump black from 23.1.0 to 23.3.0. PR #262
- Bump mypy from 1.1.1 to 1.2.0. PR #266
- Bump pytest from 7.2.2 to 7.3.1. PR #269
- Bump sphinx from 6.1.3 to 6.2.1. PR #273
- Bump requests from 2.28.2 to 2.31.0. PR #277
- Bump pallets-sphinx-themes from 2.0.3 to 2.1.1. PR #285
- Bump pytest from 7.3.1 to 7.4.0. PR #289
- Bump mypy from 1.2.0 to 1.4.1. PR #288
- Update GitHub Actions:
- Bump copier-project from 0.5.0 to 0.6.0. PR #259
- Bump copier-generator from 0.3.0 to 0.4.1. PR #258
- Bump copier-controller from 0.2.1 to 0.2.2. 952bf68
- Bump copier-script from 0.1.1 to 0.1.2. af51059
- Refactor
flake.nix
using flake-parts. PR #257 - Implement workflow for updating
flake.lock
inputs. PR #257 - Update dependencies:
- Update GitHub Actions:
- Bump cachix/install-nix-action from 19 to 20. PR #250
- Bump copier-project from 0.4.0 to 0.5.0. PR #249
- Implement type checking #120. PR #245
- Update dependencies:
- Bump markdown-it-py from 2.1.0 to 2.2.0. PR #244
- Bump copier-generator from 0.1.0 to 0.2.0. PR #242
- Bump copier-controller from 0.2.0 to 0.2.1. 16acea1
- Bump copier-script from 0.1.0 to 0.1.1. 96a46d8
- Bump copier-project from 0.3.0 to 0.4.0. PR #240
- Add
SECURITY.md
. 6f00a13 - Refactor
.coveragerc
intopyproject.toml
. PR #232 - Remove override for a non-existent input in
flake.nix
. 49dc9c0
- Bump copier-project from 0.2.0 to 0.3.0. e99e66c
- Bump copier-controller from 0.1.0 to 0.2.0. 0e710c1
- Refactor and improve current test cases suite #225. PR #227
- Update dependencies:
- Bump pallets-sphinx-themes from 2.0.2 to 2.0.3. PR #226
- Bump copier-project from 0.1.0 to 0.2.0. PR #224
- Update GitHub Actions:
- Update dependencies:
- Update GitHub Actions:
- Ensure git is installed in
make install
target. PR #190 - Start testing on macOS #186. PR #191
- Refactor nix container image build to separate workflow #193. PR #194
- Add container image build workflow #192. PR #194
- Ensure system dependencies prior executing shell in
new
command #184. PR #195
- Bump copier-project version from 0.1.0 to 0.1.1. 6afb1fd
- Improve generators UX #171. PR #176
- Refactor generator generator cookiecutter template to copier #172. PR #176
- Refactor controller generator cookiecutter template to copier #173. PR #176
- Refactor project generator cookiecutter template to copier #174. PR #176
- Drop Python 3.7 support. PR #166
- Bump project template version from 0.2.0 to 0.3.0 8da80e2.
- Drop mock dev-dependency #128. PR #169
- Add poetry2nix overlay. PR #168
- Update dependencies. PR #167
- Bump pytest from 6.2.5 to 7.1.3.
- Bump pytest-cov from 2.12.0 to 4.0.0.
- Bump flake8 from 3.9.2 to 5.0.4.
- Bump black from 22.3.0 to 22.8.0.
- Bump Sphinx from 4.5.0 to 5.2.3.
- Bump myst-parser from 0.17.2 to 0.18.1.
- Pin default
fastapi-mvc/cookiecutter
version to a tag rather thanmaster
branch #159. - Override canceling matrix job if only one of them fail #64. PR #160
- Update documentation #158. PR #165
During this release, not only was the project transferred under fastapi-mvc organization. But also project template (fastapi_mvc/generators/project/template/**
) was moved to a separate repository.
This means a lot of refactoring, cleanup, and changes in configuration, CI, URLs, etc. Even though CI checks are pretty thorough, there is a chance I could miss something that will cause a bug somewhere.
If so, feel free to raise an issue, and I'll handle it as soon as possible.
- Migrate to Poetry 1.2.x release #21. PR #142
- Improve GH actions automation #143. PR #142
- Improve generated project cache in CI workflow #107. PR #142
- Refactor Makefile to utilize different set of targets for Nix and Poetry #144. PR #145
- Transfer project to fastapi-mvc organisation #147. PR #148
- Improve custom generator class discovery in
load_generators
method #137. PR #138- This changes the module attribute from which the custom generator class is being discovered. For older custom generators, just replace
__all__ = ...
withgenerator_class = ...
in custom generator__init__.py
.
- This changes the module attribute from which the custom generator class is being discovered. For older custom generators, just replace
- Method
get_git_user_info()
raisesFileNotFoundError
exception ifgit
command does not exists #85. PR #140
- Add
flake8
pyflakes checks tomake metrics
target #135. PR #136 - Update project template dependencies:
- Bump fastapi from 0.75.0 to 0.82.0.
- Bump uvicorn from 0.17.0 to 0.18.3.
- Bump aioredis from 2.0.0 to 2.0.1.
- Bump aiohttp from 3.8.0 to 3.8.1.
- Allow
pkgs.python
to be configurable inshell.nix
. PR #132
- Refactor string formatting with f-Strings #133. PR #134
- Update macos runner in integration workflows #125. PR #126
- Add minor improvements. PR #127
- Add
-N, --skip-nix
flag forfastapi-mvc new
command #123. PR #124 - Add nix expression for
fastapi-mvc
package #114. PR #116 - Add nix expression for package generated from
fastapi-mvc
project template. #115. PR #116 - Add container image nix expression for
fastapi-mvc
and project template #56. PR #116
- CVE-2022-24065 OS Command Injection in cookiecutter. Update vulnerable dependency:
- Bump cookiecutter from 1.7.3 to 2.1.1.
- Extend and improve k8s integration workflow #93. PR #94
- Improve generators implementation #96. PR #97
- Refactor fastapi-mvc project template into generators submodule #77. PR #98
- Refactor and improve project template structure #90. PR #99
- Increase project template unit tests coverage to 100%. PR #99
- Update package dependencies:
- Bump click from 7.1.2 to 8.1.3.
- Bump black from 21.12b0 to 22.3.0.
- Update project template dependencies:
- Bump click from 7.1.2 to 8.1.3.
- Bump black from 21.12b0 to 22.3.0.
- Implement controller generator #47. PR #70
- Implement generator generator #68. PR #70
- Implement logic for loading user generators into fastapi-mvc CLI at RunTime #69. PR #70
- Implement global except hook, refactor current exceptions handling #73. PR #70
- Refactor
Invoker
class with using queue #71. PR #70 - Refactor
fastapi_mvc.commands
to be more generic #72. PR #70 - Refactor existing documentation with Sphinx #74. PR #83
- Migrate to
install-poetry.py
script prior Poetry 1.2.x release migration #87. PR #88
- CLI
fastapi-mvc run
command doesn't distinguish whether project is installed or crashed due to error #82. PR #86 - CLI
fastapi-mvc run
command should use absolute path to poetry binary #84. PR #86
- New project cannot install with Python version > 3.10 #60. PR #61 by @Merinorus
- Metrics job for Python 3.10 #63. PR #65 by @Merinorus
- Add nix shell config for local development environment #57. PR #58
- Allow overriding poetry version for make install target via env variable: $POETRY_VERSION #59. PR #58
- Update template dependencies:
- Bump fastapi from 0.70.0 to 0.75.0.
- Bump uvicorn from 0.15.0 to 0.17.0.
- Add minor
ShellUtils
unit test case improvement. - Add python 3.10 in CI tests #62. PR #61 by @Merinorus
- CLI
fastapi-mvc run
command implementation #48. PR #52 - GitHub main workflow package coverage sources. PR #52
- Implement all
fastapi-mvc.ini
parser properties #50. PR #52 - Refactor execution logic from CLI into command design pattern #51. PR #52
- New project doesn't install correctly if created from activated virtualenv #37. PR #40
- CLI
fastapi-mvc new
--license
option value is not passed to cookiecutter #39. PR #42
- Refactor logic from CLI commands to separate classes #38. PR #40
- Add documentation #9. PR #33
- Add make template-checks target for running metrics and tests on template.
- Add make pre-commit target for running package and template checks.
- Add make test target for running package unit and integration tests.
- Improve make scripts logging information.
- Incomplete command in template
build/unit-test.sh
make script #28. PR #27 - Debian snapshot repository is expired causing container image build failure #29. PR #27
- Lint tests. PR #30
- Implement all major HTTP methods in aiohttp utility #17. PR #22
- Make container image reproducible both for package and template #15. PR #23 by @r2r-dev
- Template style guide: W293 error. PR #20
- Improve make target scripts both for package and template #18. PR #20
- Do not run fastapi as a root user inside container #16. PR #23 by @r2r-dev
- Refactor project from the pure template into the package which generates fastapi-mvc projects from cookiecutter template #6. PR #10
- Add missing
FASTAPI_USE_REDIS
env var in Helm chart config map and deployment.
- Rename project to fastapi-mvc.
- Add
FASTAPI_DEBUG
env var in Helm chart config map and deployment. - Add K8s integration test workflow.
- Rename Test workflow to CI.
- Extend make targets for package and template.
- Add minor improvements to package and template GitHub CI workflows.
- Add GitHub workflows for publishing to PyPi #8. PR #11
- Implement model for error response rendering.
- Implement custom HTTPException, and its handler to have freedom to define returned response body.
- Extend application configuration from environment variables.
- Add and utilize
gunicorn.conf.py
file for better WSGI configuration.
- Update project dependencies:
- Bump fastapi from 0.66.0 to 0.70.0.
- Bump aioredis from 2.0.0a1 to 2.0.0.
- Bump aiohttp from 3.7.4.post0 to 3.8.1.
- Bump uvicorn from 0.14.0 to 0.15.0.
- Improve submodules import paths.
- Move
fastapi_mvc.app.config
submodule tofastapi_mvc.config
. - Refactor application and redis config with using
pydantic.BaseSetting
. - Extend unit tests, and increase coverage to 99%.
- Change
RedisClient.ping()
method to return false instead of raising an RedisError exception.
- Add python-poetry
pyproject.toml
andpoetry.lock
for dependency management and packaging. - Reduce container image size by ~500 MB with using multi-stage build.
- Remove setup.py and requirements.txt.
- Refactor make install to utilize poetry instead of pip.
- Update base container image digest sha.
- Improve GitHub Test workflow.
- Implement make dev-env target for bootstrapping a local Kubernetes cluster with High Availability Redis cluster, and deploy application.
- Add Helm charts for fastapi-mvc.
- Add Vagrantfile.
- Add manifests for spotahome/redis-operator.
- Fix minor documentation/comments typos.
- Initial release