-
Notifications
You must be signed in to change notification settings - Fork 2
Open
Description
sdssdb is almost 6 years old and it has been "stable" (or at least not breaking) for a long while. I think it's time to give ourselves the satisfaction of tagging a 1.0 release.
I think we could simply tag 1.0 now —well, after merging #266— and that would be ok, but there are a few things I'd like to discuss that we may want to include in 1.0 (or not):
- Agree on a package management strategy. It may be that we don't need one and just maintaining dependencies the way we have been doing is fine, but we may want to consider settling on something like
poetry,uv, orhatchlingthat allows to specify lock files. - We have never enforced a project-wide format. We enforce
flake8rules, which include some formatting requirements like line length, but in general there is nothing about code style (single vs double quotes, empty lines, etc.) Here the question is whether we use (and enforce)black/ruffor not —I don't think there are any other formatters that are really worth considering. - Import times are bad.
connection.pyimports a lot of things from bothpeeweeandsqlalchemywhen usually only one of the libraries will be used. We could splitconnection.pyinto two different files and avoid importing them in__init__.py. - We should probably review the state of the
SQLAlchemymodels and make sure it's reasonable. - The documentation is quite out of date (although essentially still works).
- We have some testing, but it's old and unclear how comprehensive. We should, at least, try to get some decent coverage of the connection classes and main models.
- The package is not compatible with
SQLAlchemy2.x (I think). Do we want to fix that? - There are a few longstanding bugs and features (e.g. support peewee connection pooling #236) that we may want to fix or close.
- The package includes a lot of tools (e.g., things in the
ingestmodule) that I'm not sure are relevant anymore. They account for a lot of the[all]dependencies. - Clear unnecessary dependencies and update the rest.
- Maybe drop support for some old Python versions?
- A significant part of the package is the
schemadirectory. There is an argument to be made for moving it to its own repository, but also arguments against it (for example it may be difficult to maintain the relationship betweensdssdbandsdssdb-schema, although right now nothing enforcesschema/to be up to date with the model classes).
There are a few larger features we have discussed, like SQLAlchemy async support. I think we should not try to implement those in 1.0 unless we set a clear timeframe for them.
Anything else?
@havok2063 @joelbrownstein @andycasey @johndonor3 @astronomygupta
Metadata
Metadata
Assignees
Labels
No labels