awesome-fastapi-projects icon indicating copy to clipboard operation
awesome-fastapi-projects copied to clipboard

Maintenance

Open vladfedoriuk opened this issue 1 year ago • 0 comments

Some of the dependencies need upgrading.

The project utilizes pip-tools for Python dependencies management, so one may adhere to: https://github.com/jazzband/pip-tools#updating-requirements

Essential packages to keep updated and to pay the most attention to:

  • Pydantic
  • SQLAlchemy, aiosqlite, alembic
  • Typer
  • httpx (and httpx-* extensions)
  • third-party-imports

Also, necessary development/testing dependencies are:

  • pytest (and pytest-* plugins)
  • polyfactory (see if a better integration with SQLAlchemy has already landed, perhaps, adjust the codebase)
  • dirty-equals
  • ruff (get rid of black in favor of a new ruff formatter)
  • mypy (and types-* plugins)
  • pyproject-fmt
  • ipython
  • pre-commit
  • stamina
  • loguru

Generally, consult pyproject.toml to see the core Python dependencies standing behind the project.

For Node.js packages, a pnpm package manager is employed: Useful commands:

  • pnpm outdated: https://pnpm.io/cli/outdated
  • pnpm why: https://pnpm.io/cli/why
  • pnpm prune: https://pnpm.io/cli/prune
  • pnpm dedupe: https://pnpm.io/cli/dedupe and last, but not the least
  • pnpm update: https://pnpm.io/cli/update

https://github.com/kachkaev/njt can be used to track the changelog of the packages to be updated

The following Frontend dependencies updates will require special care and thorough testing:

  • Next.js (from 13 to 14 - https://nextjs.org/docs/pages/building-your-application/upgrading/version-14)
    • React
    • ReactDOM
    • ...
  • schadcn/ui (see the Updating your project section in https://ui.shadcn.com/docs/changelog)
    • Radix UI
    • TailwindCSS
    • ...
  • Orama (https://github.com/oramasearch/orama)

Apart from that, both pip-tools (pip?), and pnpm might also require an update.

CI/CD and pre-commit hooks will need to be adapted as well. To update the pre-commit hooks, you may use https://pre-commit.com/#updating-hooks-automatically But keep in mind to sync the linter / formatters versions among .pre-commit-config.yaml, respective lock files (requirements/*.txt and package.json), and GitHub Actions Workflows configs.

Consider if it is time to bump Python (to 3.12) and Node.js (to 20.*) versions.

vladfedoriuk avatar Nov 06 '23 20:11 vladfedoriuk