Skip to content

Latest commit

 

History

History
532 lines (343 loc) · 28.8 KB

CHANGELOG.md

File metadata and controls

532 lines (343 loc) · 28.8 KB

Changelog

This file documents changes to fastapi-mvc. The release numbering uses semantic versioning.

0.28.1 (09.07.2023)

Generators

  • Bump copier-project from 0.6.0 to 0.6.1. PR #297

Internal

  • 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 DeterminateSystems/update-flake-lock from 18 to 19. PR #264
    • Bump cachix/install-nix-action from 20 to 22. PR #286
    • Bump DeterminateSystems/nix-installer-action from 3 to 4. PR #284

0.28.0 (27.03.2023)

Generators

  • 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

Internal

  • Refactor flake.nix using flake-parts. PR #257
  • Implement workflow for updating flake.lock inputs. PR #257
  • Update dependencies:
    • Bump myst-parser from 0.18.1 to 0.19.1. PR #251
    • Bump pytest from 7.2.1 to 7.2.2. PR #252
    • Bump sphinx from 5.3.0 to 6.1.3. PR #254
    • Bump mypy from 1.0.1 to 1.1.1. PR #255
    • Bump myst-parser from 0.19.1 to 1.0.0. PR #256
  • Update GitHub Actions:
    • Bump cachix/install-nix-action from 19 to 20. PR #250

0.27.0 (01.03.2023)

Breaking Changes

  • Refactor API for generator command line interface implementation #246. PR #245

Generators

  • Bump copier-project from 0.4.0 to 0.5.0. PR #249

Internal

  • Implement type checking #120. PR #245
  • Update dependencies:
    • Bump markdown-it-py from 2.1.0 to 2.2.0. PR #244

0.26.0 (12.02.2023)

Generators

  • 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

0.25.0 (07.02.2023)

Generators

  • Bump copier-project from 0.3.0 to 0.4.0. PR #240

Internal

  • Update Poetry to 1.3.x #236. PR #237
  • Update dependencies:
    • Bump flake8-docstrings from 1.6.0 to 1.7.0. PR #235
    • Bump black from 22.12.0 to 23.1.0. PR #239
  • Update GitHub Actions:
    • Bump docker/build-push-action from 3 to 4. PR #234
    • Bump cachix/install-nix-action from 18 to 19. PR #238

0.24.0 (08.01.2023)

Features

  • Implement fastapi-mvc update command #229. PR #230

Internal

  • Add SECURITY.md. 6f00a13
  • Refactor .coveragerc into pyproject.toml. PR #232
  • Remove override for a non-existent input in flake.nix. 49dc9c0

Docs

  • Update about.rst page. PR #230
  • Update quickstart.rst page. PR #230
  • Add cli.rst page. PR #231

0.23.0 (01.01.2023)

Generators

  • Bump copier-project from 0.2.0 to 0.3.0. e99e66c
  • Bump copier-controller from 0.1.0 to 0.2.0. 0e710c1

Internal

  • 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

0.22.0 (15.12.2022)

Generators

  • Bump copier-project from 0.1.0 to 0.2.0. PR #224

Internal

  • Update GitHub Actions:
    • Bump nwtgck/actions-netlify from 1.2.4 to 2.0.0. PR #222
    • Bump fkirc/skip-duplicate-actions from 5.2.0 to 5.3.0. PR #223

0.21.0 (13.12.2022)

Features

  • Refactor Nix expressions to flakes #216. PR #218
  • Add Python 3.11 support #198. PR #220

Internal

  • Update dependencies:
    • Bump pytest from 7.1.3 to 7.2.0. PR #203
    • Bump sphinx from 5.2.3 to 5.3.0. PR #205
    • Bump flake8-import-order from 0.18.1 to 0.18.2. PR #215
    • Bump black from 22.8.0 to 22.12.0. PR #221
    • Bump certifi from 2022.9.24 to 2022.12.7. PR #219

0.20.0 (11.11.2022)

Features

  • Allow generators lookup paths configuration via an environment variable #211. PR #212

Documentation

  • Update documentation after refactor to copier #175. PR #213

0.19.0 (09.11.2022)

Features

  • Implement new generator - shell script #197. PR #208
  • Implement CLI commands aliases #80. PR #209

Internal

  • Update GitHub Actions:
    • Bump nwtgck/actions-netlify from 1.2.3 to 1.2.4. PR #200
    • Bump cachix/cachix-action from 10 to 12. PR #201
    • Bump cachix/install-nix-action from 17 to 18. PR #202

0.18.2 (23.10.2022)

Internal

  • 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

0.18.1 (17.10.2022)

Generators

  • Bump copier-project version from 0.1.0 to 0.1.1. 6afb1fd

Fixed

  • Invalid default project name if destination is . #187. PR #188

Internal

  • Implement ensure_permission method #185. PR #188

0.18.0 (10.10.2022)

Breaking Changes

  • 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

0.17.0 (05.10.2022)

Breaking Changes

  • Drop Python 3.7 support. PR #166

Internal

  • 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.

0.16.1 (04.10.2022)

Internal

  • Pin default fastapi-mvc/cookiecutter version to a tag rather than master branch #159.
  • Override canceling matrix job if only one of them fail #64. PR #160
  • Update documentation #158. PR #165

0.16.0 (18.09.2022)

NOTE!

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.

Features

  • Add Nix CI workflow #141. PR #145
  • Move project template to a separate repository #146. PR #157

Internal

  • 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

0.15.0 (09.09.2022)

Breaking Changes

  • 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__ = ... with generator_class = ... in custom generator __init__.py.

Fixed

  • Method get_git_user_info() raises FileNotFoundError exception if git command does not exists #85. PR #140

Internal

  • Add flake8 pyflakes checks to make 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.

0.14.1 (11.08.2022)

Features

  • Allow pkgs.python to be configurable in shell.nix. PR #132

Fixed

  • Fix POETRY_HOME environment variable in shell.nix nix expression #131. PR #132

Internal

  • Refactor string formatting with f-Strings #133. PR #134
  • Update macos runner in integration workflows #125. PR #126
  • Add minor improvements. PR #127

0.14.0 (31.07.2022)

Features

  • Add -N, --skip-nix flag for fastapi-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

Internal

  • Improve Vagrantfile in project template #121. PR #122

0.13.1 (13.06.2022)

Security

  • CVE-2022-24065 OS Command Injection in cookiecutter. Update vulnerable dependency:
    • Bump cookiecutter from 1.7.3 to 2.1.1.

0.13.0 (09.06.2022)

Features

  • Add support for binding gunicorn server to a UNIX socket #25. PR #105

Fixed

  • Missing cookiecutter kwarg in generator template #102. PR #103

Internal

  • Add generators feature documentation #75. PR #101
  • Add integration tests for generators #76. PR #104

0.12.0 (10.05.2022)

Features

  • Add Sphinx autodoc documentation for project template #89. PR #99

Internal

  • 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.

0.11.1 (27.04.2022)

Fixed

  • Controller generator creating duplicates entries in config/router.py #78. PR #92

Internal

  • Remove redundant # -*- coding: utf-8 -*- in file headers #66. PR #91

0.11.0 (24.04.2022)

Features

  • 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

Internal

  • 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

Fixed

  • 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

0.10.0 (07.04.2022)

Fixed

Features

  • 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

Internal

  • 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

0.9.0 (14.02.2022)

Fixed

  • CLIfastapi-mvc run command implementation #48. PR #52
  • GitHub main workflow package coverage sources. PR #52

Internal

  • Implement all fastapi-mvc.ini parser properties #50. PR #52
  • Refactor execution logic from CLI into command design pattern #51. PR #52

0.8.0 (08.02.2022)

Features

  • Implement CLI fastapi-mvc run command for running uvicorn development server #14, #31. PR #35

Fixed

  • 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

Internal

  • 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.

0.7.0 (31.01.2022)

Features

  • Implement new template CLI serve command options #24. PR #27

Fixed

  • 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

Internal

  • Lint tests. PR #30

0.6.0 (27.01.2022)

Features

  • 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

Fixed

  • Template style guide: W293 error. PR #20

Internal

  • 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

0.5.0 (11.01.2022)

Features

  • Refactor project from the pure template into the package which generates fastapi-mvc projects from cookiecutter template #6. PR #10

Fixed

  • Add missing FASTAPI_USE_REDIS env var in Helm chart config map and deployment.

Internal

  • 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

0.4.0 (10.12.2021)

Features

  • 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.

Internal

  • 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 to fastapi_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.

0.3.0 (28.11.2021)

Features

  • Add python-poetry pyproject.toml and poetry.lock for dependency management and packaging.
  • Reduce container image size by ~500 MB with using multi-stage build.

Internal

  • 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.

0.2.0 (09.11.2021)

Features

  • 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.

Internal

0.1.0 (27.07.2021)

  • Initial release