Skip to content
BETSEE 1.1.0.0 (Nice Nestor) released.

Significant changes include:

* Installation improvements:
  * BETSE 1.1.0 required. Each version of BETSEE now requires the same
    version of BETSE, excluding the trailing patch number of that
    version of BETSEE (e.g., BETSEE 1.1.0.0 and 1.1.0.1 both require
    BETSE 1.1.0). Since newer versions of BETSE typically break backward
    compatibility with older versions of BETSEE, this does not extend to
    newer versions of BETSE. Prior versions of BETSEE erroneously
    pretended to support arbitrary versions of BETSE.
* Runtime improvements:
  * High-DPI scaling detection. Platforms natively supporting high-DPI
    scaling are now implicitly detected at application startup, thanks
    to the newly defined betse.util.os.displays.is_dpi_scaling() tester.
* Testing improvements:
  * Top-level "test" shell script. This script has been imported
    verbatim from the BETSE codebase in preparation for eventual
    continuous integration (CI).
  * GitLab CI configuration. A first-draft implementation of a
    ".gitlab-ci.yml" file has been added to the repository. Note that
    this configuration lacks "pytest-xvfb" and "pytest-qt" support and
    hence is currently broken.
* Fatal errors resolved:
  * PYSIDE-1092. pyside2uic 5.13.0 broke backward API compatibility by
    requiring that the public
    pyside2uic.Compiler.compiler.UICompiler.__init__() method now be
    passed a new mandatory "all_pyside2_modules" parameter. Since the
    pyside2uic.__init__.compileUi() function defaults this parameter to
    simply "PySide2.__all__" (i.e., the list of all compiled PySide2 C
    extensions), it would have been trivial for Qt engineers to render
    this parameter optional via the same default. They did not; ergo, we
    do. For further details, see also:
        https://bugreports.qt.io/browse/PYSIDE-1092
  * Application shutdown exception. A fatal (albeit technically
    innocuous) exception raised at application shutdown caused by the
    now-guaranteed closure of previously open logfile handles has been
    summarily resolved.
* Deprecation warnings resolved:
  * A deprecation from the "betsee" script wrapper.
* API generalizations:
  * Generalized the "betsee.guiappmeta" submodule:
    * Overrode the late-time and thus safe BetseeAppMeta.deinit() method
      to call the betsee.util.app.guiappwindow.unset_main_window()
      function (which effectively garbage collects the entire Qt object
      stack), previously called by the early-time and thus unsafe
      betsee.gui.window.guiwindow.QBetseeMainWindow.closeEvent() method.
  * Generalized the "betsee.util.io.log.guiloghandle" submodule:
    * Refactored the "LogHandlerSignal" subclass integrating the Python
      logging API with the Qt signals and slots API:
      * Overrode the standard logging.Handler.close() method to
        explicitly nullify the signal to which this subclass forwards
        logging messages.
      * Overrode the standard logging.Handler.emit() method to silently
        reduce to a noop when this signal is nullified (i.e., when the
        close() method has been called at least once).