Releases: spotify/comet-core
Brilliant Boötes
Improve the data store and update SQLAlchemy usage to 2.0 syntax.
Adds types to the function definition, improve the data store tests and general
code quality.
Potential breaking changes
Removal of add_event
This PR removes the unused function "add_event" from the data store. This could
potentially impact existing usage, but it is not recommended to interact with
the "private" functions directly.
Change of models repr
The models unique string representation (__repr__
) has been updated to only
include relevant information, to improve readability.
All changes
Improve tests, especially around data store (aed1a5d)
Re-define test utils as pytest fixtures for easier usage.
Generalise pytest fixtures used for the data store and chain the
fixtures so that the initialised data store-fixture depends on the data
store-fixture etc. This will make it easier to do test-related changes
in the objects.
The fixtures can be improved further, there seems to be no clear
consensus if the tests should create/load it's own data or if they
should use the pre-populated fixtures. The current state is working, but
the tests would be easier to read if they relied more on fixtures.
Add docstrings to the data store tests, explaining what the tests do.
Clean up some test code by removing duplicate tests, splitting some
tests that do many things and remove unnecessary assert statements
(e.g., first checking if the object is not None, then if it is a
datetime instance. Only the datetime instance check is needed as it will
then not be None).
Add types, update repr and improve docs for data_store and models (70b4cc9)
Add types for data_store and model, as part of an effort to gradually
roll out types in the code base. Related to #56.
Change import structure for sqlalchemy and only import the top level
package, to make the code easier to read and understand where e.g.,
"Column" comes from.
Improve the docstrings by attempting to have a first line summary and
additional description in follow lines. Types were removed from the
docstring as they are part of the function signature.
The docstring is written in 120 character lines, given that the codebase
is using them, but it would be easier to read in terminal usage if they
were 80 char lines.
Update the repr method of models to print only the relevant files
(and remove a bunch of unnecessary code).
Add mypy config to gradually roll out types (4a560cb)
Add mypy config to gradually roll out types in the code base. The
configured tox environment will not run unless explicitly specified
(with tox -e types).
The mypy config will ignore all files that have not been opted in,
allowing a gradual roll out through the codebase.
Start refactoring SQLAlchemy usage for 1.4/2.0 (b5d157a)
Start refactoring the code in the datastore to follow SQLAlchemy 2.0
syntax.
Something is up with equality checking, hence repr in test
Co-authored-by: Mattias Springare mspringare@gmail.com
Able Apus
Remove the log handler and formatter, including python-json-logger
dependency.
It is better to let the Comet implementation deal with the log handlers
and formatters and let those settings be inherited to the library.
This is a potential breaking change if an implementation do not
configure its' own logger/formatter.
Versatile Vela
Update dependencies, including support for Flask 2.0
Violent Vulpecula
Minor fix to support SQLAlchemy new version with cache key
Maintenance Release
Added Python 3.9 support to the documentation.
Vibrant Volans
Remove the text at the footer of the API since Comet has matured since that text was written.
Vague Virgo
Update dependencies and reformat the code to latest Black version.
Unclear Ursa
This release adds authentication requirement for /interactions api endpoint
Tantalizing Taurus
The release adds a non-digest mode so the router will receive only the events that are new or need a reminder.
By default (digest mode), all batch events will be grouped by an owner and source_type.
The email will look like:
Here are your X new issues, and by the way, you have these Y old ones.
Sophisticated Sagitta
This release adds exception handling to the send function, allowing routers to raise an exception preventing messages from being marked as sent if an error occurred during sending.
There is no special handling of these unsent messages, so it is good to keep an eye on the logs to notice when this is happening.
This release also defines exceptions previously defined in the comet-common library. The exceptions in comet-common are now regarded as deprecated and will be replaced with the corresponding exception from core.