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