[RFC] Finish the backend package removal #517
-
SummaryIn Fall 2022, an effort began to remove the pgstac and sqlalchemy backends from the main stac-fastapi repository, and move them to their own repositories. This effort stalled in-progress, partially due to complexities that emerged while trying to decouple the API and backend layers. In order to complete the backend removal and restore the stac-fastapi ecosystem to a stable state, we will use a sequence of releases and refactors to move the backend packages from the core repository while ensuring minimal impact to downstream users. MotivationThere are currently two "zombie" repositories (stac-fastapi-pgstac, stac-fastapi-sqlalchemy) in the In the main stac-fastapi repo, there are a few draft PRs that relate to the breakout:
By finishing the reorganization in an orderly, low-impact way, we hopefully will resolve any confusion new users might have as to the state of the stac-fastapi project and its associated repos. Also, by intentionally not tackling the decoupling problem vis a vis the backend and API layers, we reduce the risk level of the shift, as we won't make many/any functional changes during the restructuring. After the restructure, we hope to have a leaner stac-fastapi without any backend code, and two fully-functional backend repositories. This will give us a good, known state on which we can make future improvements to the API layer abstractions, etc. Guide-level explanationThe breakout will be accomplished in the following order:
We will not be taking on any functional code changes as a part of this effort. DrawbacksBy not doing any functional code changes, we are keeping the tight coupling between the API and backend layers. This will require close coordination between the backend repositories and the main stac-fastapi repo. While this is hard, I think it is less bad then leaving the repositories in the current undefined state. Future possibilitiesAfter the backend breakout, we can tackle the issues raised in #453 and elsewhere. I have another draft PR that presents an alternative approach: #515. However we do the separation of responsibilities, I think it will be a good opportunity to make breaking API changes as part of a v3.0 release. |
Beta Was this translation helpful? Give feedback.
Replies: 3 comments
-
Thanks for throwing this together @gadomski! This all makes sense to me, and is pretty close to the original plan but without fixing the separation of concerns which ended up stalling out that effort as you mention. I don't have a ton of time right now to contribute but I can for sure help with code reviews, please feel free to add me as a reviewer. |
Beta Was this translation helpful? Give feedback.
-
As an update, I've gone through the existing issue backlog and triages issues into the 2.4.4 milestone as appropriate. I tried to include anything that could be considered a "light to medium weight bugfix", and excluded anything that required design decisions, refactoring, etc. My hope is to fix as many bugs as possible that might touch the backend code before splitting, to reduce the number of simultaneous bugfix PRs we'll have to progress after the split. |
Beta Was this translation helpful? Give feedback.
-
Update: DONE! |
Beta Was this translation helpful? Give feedback.
Thanks for throwing this together @gadomski! This all makes sense to me, and is pretty close to the original plan but without fixing the separation of concerns which ended up stalling out that effort as you mention. I don't have a ton of time right now to contribute but I can for sure help with code reviews, please feel free to add me as a reviewer.