Skip to content

Release sdssdb 1.0 #267

@albireox

Description

@albireox

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, or hatchling that allows to specify lock files.
  • We have never enforced a project-wide format. We enforce flake8 rules, 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/ruff or not —I don't think there are any other formatters that are really worth considering.
  • Import times are bad. connection.py imports a lot of things from both peewee and sqlalchemy when usually only one of the libraries will be used. We could split connection.py into two different files and avoid importing them in __init__.py.
  • We should probably review the state of the SQLAlchemy models 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 SQLAlchemy 2.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 ingest module) 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 schema directory. 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 between sdssdb and sdssdb-schema, although right now nothing enforces schema/ 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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions