Skip to content

v0.1.8

Choose a tag to compare

@ruslanmv ruslanmv released this 04 Sep 20:50
· 20 commits to master since this release

Release Notes: Matrix SDK Installer v0.1.8

This release focuses on a major overhaul of the installer's robustness, reliability, and debuggability. The failover logic for both runner discovery and dependency installation has been significantly enhanced to handle a wider variety of project configurations automatically, ensuring a smoother and more predictable installation experience.

Key Enhancements

🚀 Greatly Improved Installation Reliability

  • Guaranteed Environment Isolation: The installer now creates a fresh, fully isolated Python virtual environment for every single run (clear=True, system_site_packages=False). This prevents errors caused by corrupted states from previous failed installations and guarantees that the host system's environment is never affected.
  • Intelligent Runner Discovery Failover: Fixed a critical bug where installations would fail if a runner.json was not explicitly defined. The installer now includes a final failover step:
    • If no runner is found in the manifest or a runner.json file, the installer will now detect the presence of pyproject.toml or requirements.txt.
    • Upon detection, it synthesizes a placeholder runner configuration. This allows the installation to proceed to the dependency installation phase, resolving the "runner not found" class of errors.

🧠 Smarter and More Flexible Dependency Management

The dependency installation logic has been redesigned to follow a more intelligent, multi-layered failover procedure that respects modern Python packaging standards:

  1. Runner Instructions First: Strictly adheres to any dependency instructions found in the discovered runner.json (from the manifest or a file).
  2. requirements.txt Fallback: If the runner provides no instructions, it automatically looks for and uses a requirements.txt file.
  3. Comprehensive pyproject.toml Handling: As a final fallback, it now correctly handles projects managed with pyproject.toml:
    • Poetry Application Support: Intelligently detects "non-package mode" Poetry projects and correctly runs poetry install to manage their dependencies.
    • Standard Packages: For all other standard packages, it uses a robust editable install (pip install -e .) with an automatic retry to a non-editable install (pip install .) upon failure.

🛠️ Enhanced Debugging and Diagnostics

  • Verbose Logging: The entire installation process is now instrumented with extensive debug logging.
  • Easy Debug Mode: To see a full step-by-step trace of the installer's logic, simply set the environment variable MATRIX_SDK_DEBUG=1 before running your script. This makes it significantly easier to diagnose any installation issues.