Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

🚀 Roadmap #541

Closed
12 tasks done
tiangolo opened this issue Oct 4, 2023 · 18 comments
Closed
12 tasks done

🚀 Roadmap #541

tiangolo opened this issue Oct 4, 2023 · 18 comments

Comments

@tiangolo
Copy link
Owner

tiangolo commented Oct 4, 2023

Description

This is a tentative roadmap, I will update it as things evolve. Some things might be discarded, others might be added later. I didn't want to make it fully public as it could raise expectations, but it seems it would be more beneficial for the community to know all the ideas and objectives.

Work on this is alternated (and sometimes mixed) with work on FastAPI, Typer, SQLModel, Asyncer, and others.

In fact, I created SQLModel for this project. 🚀

Answering questions, issues, and PRs is also intermixed with this, but as in some cases one of these features would solve several issues or questions, or potentially solve something done by one or more PRs, in many cases I focus on this a bit more than on answering specific issues, questions, PRs.

Maintenance

The word "maintenance" or "maintainer" doesn't have a very strict definition, and it probably varies a lot from perspective.

A lot of the work related to maintaining FastAPI is done by contributors by answering questions, reviewing PRs, etc.

You can help me ensure each existing PR is in shape (has tests, solves the problem, etc.). Make sure you filter out the translation PRs (most of them) unless you speak the language and can review them.

Security

When there are security issues, those are handled with the highest priority. Those are normally not handled in issues and PRs but in emails, it's not public until the security disclosure is made, in most cases (always, up to now) with the version that fixes them.

Roadmap

Now, here's the current high-level tentative roadmap:

  • Upgrade to the latest FastAPI.
  • Migration from SQLAlchemy to SQLModel.
  • Upgrade to Pydantic v2.
  • Refactor and simplification of most of the code, a lot of the complexity won't be necessary anymore.
  • Automatic TypeScript frontend client generated from the FastAPI API (OpenAPI).
  • Migrate from Vue.js 2 to React with hooks and TypeScript.
  • Make the project work as is, allowing to clone and use (not requiring to generate a project with Cookiecutter or Copier)
  • Migrate from Cookiecutter to Copier
  • Move from Docker Swarm Model to Docker Compose for a simple deployment.
  • GitHub Actions for CI.
  • Migrate from pgAdmin to Adminer.
  • Remove Celery and Flower for now (I will probably define a proper better alternative later).

All this is intermixed with reviews for PRs, issues, and discussions.

@tiangolo tiangolo pinned this issue Oct 4, 2023
@PhilippWu
Copy link
Contributor

Great!!!! I Love your Templates. And with react IT would even be better. Ist there a plan or a Chance mongodb will be integrated in the Future?

@Antony-Jia
Copy link

It's so Great!!!

@jakeecolution
Copy link
Sponsor

@PhilippWu - Using mongodb isn't too difficult to add especially with the beanie module which makes defining Collection simple.

@jakeecolution
Copy link
Sponsor

sqlmodel still requires pydantic version 1.10 so you'll need to upgrade it there or you'll end up having dependency issues.

@omarcevi
Copy link

omarcevi commented Nov 2, 2023

I was wondering if there was a time frame for next release?

@saffist3r
Copy link

Move from Docker Swarm Model to Kubernetes. <--------- THIS

@KimNikB
Copy link

KimNikB commented Nov 17, 2023

Hi! Is there a timeline for this Roadmap? I was thinking of using this template for a project but it might be a bit to urgent...

@jakeecolution
Copy link
Sponsor

jakeecolution commented Nov 17, 2023

@KimNikB - I suggest using the backend as a scaffolding but you'll need to make your own. Python 3.7 was depreciated and other things make it unusable as it is but it is easy to build up your own backend.

Search the issues because some folks have made some fixes to get it to work if you're in a time crunch.

@7uperior
Copy link

7uperior commented Nov 22, 2023

SQLModel is using Pydantic v1 => this project is using SQLAlchemy v2 instead of SQLModel

@pratikmehta14
Copy link

Hi @tiangolo, it's been two months since you posted this roadmap. It seems a lot of updates have been made to the repository but none to the roadmap. I'm curious to know how are things going vis-a-vis the original plan? Thanks!

@VivienGiraud
Copy link

Hi @tiangolo !
Any chance to see FastUI landing to you template?

@migueltorrescosta
Copy link

Hey @tiangolo 👋 This is an amazing project and I'd love to see it usable. I will focus on this part as per your suggestion:

You can help me ensure each existing PR is in shape (has tests, solves the problem, etc.). Make sure you filter out the translation PRs (most of them) unless you speak the language and can review them.

If there's anything else I can do to speed up the delivery process, I'd be happy to know. Thank you for the amazing work you've already done 🙌

@renja-g
Copy link

renja-g commented Jan 11, 2024

I have a question, is this Roadmap still up to date or are there already some checked?
I'm mostly interested in the backend, so if that has finished reconstruction, I would be happy about a status update.

Roadmap

Now, here's the current high-level tentative roadmap:

  • Upgrade to the latest FastAPI.
  • Migration from SQLAlchemy to SQLModel.
  • Upgrade to Pydantic v2.
  • Refactor and simplification of most of the code, a lot of the complexity won't be necessary anymore.
  • Migrate from Vue.js 2 to React with hooks and TypeScript.
  • Move from Docker Swarm Model to Kubernetes.
  • GitHub Actions for CI.

All this is intermixed with reviews for PRs, issues, and discussions.

@fabifont
Copy link

Hi @tiangolo, what is the current progress of those things?

  • Upgrade to the latest FastAPI
  • Migration from SQLAlchemy to SQLModel
  • Upgrade to Pydantic v2

Can you provide an ETA?

@R-shubham
Copy link

Hi @PhilippWu , here is the MongoDB version of the app generator

https://github.com/mongodb-labs/full-stack-fastapi-mongodb

It currently uses ODMantic as an ODM.

@dickermoshe
Copy link

Oh yeah!, stuff is happening!

@tiangolo
Copy link
Owner Author

Hello everyone! This is now done! 🎉

https://github.com/tiangolo/full-stack-fastapi-template/releases/tag/0.6.0

Some additional notes:


This now uses the latest FastAPI, Pydantic, SQLModel. 🚀

In fact, there were features added to SQLModel for this project. 😎

The code is much simpler now, it should be easier to understand, evolve, refactor, while keeping all the same flexibility if not more, but much more powerful and safer.

The frontend now uses React with Vite, TypeScript, TanStack Query, TanStack Router, Chakra UI, no additional state management, an auto-generated frontend client/SDK, dark mode support, and other things. There were many intermediate iterations trying out different alternatives and combinations of libraries to get to this point and these decisions. 🚀

The project now works as is, if you clone it, you can start using it. You can also use generation with Copier (instead of Cookiecutter), mainly to populate the configurations in .env.

There is no more support nor recommendation to use Docker Swarm Mode. Instead there are docs and files to deploy using Docker Compose, which now supports production deployments. This means that the Docker Compose files were significantly simplified and should be easier to understand and use.

Deploying to different platforms, like cloud services or Kubernetes is out of scope for this project, as any deployment in a system like that would depend a lot on the other components of the cluster or cloud provider, for example, there's no simple way to include Kubernetes files here without making lots of assumptions about the cluster. So, instead, there are files and documentation to make a simple deployment using Docker Compose, which can help as a starting point for each team to adjust to their deployment systems.

There is now support for GitHub Actions. The tests run in CI, including tracking test coverage, the coverage files can be tracked and the coverage badge can be set up with Smokeshow: https://github.com/samuelcolvin/smokeshow

pgAdmin was replaced with Adminer.

Celery and Flower were removed, this project doesn't really use that, and I currently wouldn't go for them if I needed that type of capability, once I figure out the alternative I would recommend I would add it to this repo too. You can read more details (and some of the options I want to try) in the PR: #694


There will be of course more features, fixes, etc. But the project is now ready again to be used as the template for your apps. I'm very happy and proud of the current state of the project! And I look forward to all you will build with it. 🚀

Thanks a lot for all the work to @alejsdev and @estebanx64 🙇

@tiangolo tiangolo unpinned this issue Mar 12, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

16 participants