Release Notes (v2.6.1)¶
December 31, 2024
The v2.6.1 release includes support for Python 3.9 and minor improvements.
Allow Python 3.9
Improved optional dependency handling
Changes¶
Support for Python 3.9¶
Quite some time ago we had thought adopting a Python 3.10+ stance would allow us to capitalize on some of its new features without fear of being stuck with compatibility issues. The reality is though that this has not been an issue and there is nothing in the code preventing use of Python 3.9.
In an effort to allow for wider deployability within the Linux distribution ecosystem, we’ve decided to lift the version restriction and allow HyperShell to be installed with Python 3.9.
Improved optional dependency handling¶
We’ve always allowed psycopg2 as an optional dependency that provided for PostgreSQL as a database backend instead of SQLite. This has always worked as intended; however, the installation process and warning message at runtime were not as smooth as they could be.
In this release we introduce proper use of a package “extra” that allows for a single target
during installation, hypershell[postgres]
. This greatly simplifies the procedure for tools
like uv and pipx.
When the program is run in an environment that lacks the psycopg2
dependency and
the user defines the database provider as postgres (e.g., via configuration or
environment variable) there is an uncaught exception on ModuleNotFoundError
stating as such.
In v2.6.1 the program will instead show a critical warning with a more descriptive message,
Warning on missing optional dependency
CRITICAL [hypershell.data.core] Missing optional dependency "psycopg2" needed for PostgreSQL