Description
About
We are intending to release crate-python 1.0.0. SQLAlchemy users need to pay attention, all others should be largely unaffected.
Upgrade Notes
-
The most prominent change is that the SQLAlchemy dialect has been split off into the
sqlalchemy-cratedb
package. The SQLAlchemy dialect is no longer part of thecrate
package.
[2024] Migration tosqlalchemy-cratedb
#620 -
For all other users, the update should not have any significant impact, if at all.
To read up on any details, please consult the change log. -
The transition to new-style namespace packages should not affect any users of this package.
Validation
The pre-release package crate-1.0.0.dev2 has been validated on a bunch of downstream projects that consume it.
It also has been validated on Python 3.6 - 3.13 together with the most recent versions of crash and sqlalchemy-cratedb.
What's Inside
A few more chore updates have been staged to properly prepare the upcoming 1.0.0 release.
- Testing: Refactor software tests into dedicated directory
tests
#659 - QA and CI: Format code using ruff. Validate using ruff and mypy. #660
- Sandbox: Optionally use
uv
package manager to save cycles #661 - CI: Use CrateDB
nightly
for PRs on Linux, lock version only on macOS #662 - Error handling: Use
ValueError
exceptions instead ofassert
#663 - Dependencies: Remove version pinning of urllib3 and verlib2 #664
- Python: Migrate to use "implicit namespace packages" (PEP 420) #666
- Timestamp values: Remove the use of "naive" Python
datetime
objects #667
Internal Adjustments
On a few CrateDB Python projects that populate the crate
package namespace, relevant adjustments have been submitted. This section is only relevant for authors of those.
We are enumerating them here to give you an idea what may need to be changed if you are observing similar obstacles, mostly related to the transition to new-style namespace packages.
- Python: Migrate to use "implicit namespace packages" (PEP 420) #666
- Harmonize with crate-1.0.0:
ModuleNotFoundError: No module named 'crate.client'
crash#447 - Python: Migrate to use "implicit namespace packages" (PEP 420) crash#448
- Python: Migrate to use "implicit namespace packages" (PEP 420). Dependencies: Use crate>=1.0.0.dev2 for validation purposes. CI: Use Python 3.11, up from 3.8. crate-qa#326