Skip to content

Changelog#

All notable changes to this project will be documented in this file.

This project aims to follow Semantic Versioning. However, there will be an initial period of stabilisation where this is not adhered to (releases with version numbers 0.0.x).

Unreleased#

Enhancements#

  • The registry API now uses LiteStar dependency injection, improving management of the NATS server
  • Added a new test to test the DataFileManager service
  • And lots more!

Issues Fixed#

  • Fixed an issue where the DataFileManager would lose connection to the NATS server when it had too many files
  • And lots more!

[icdm-2025]#

New Features#

  • Implemented persistence of imported data files and associated metadata. (#352)
  • Added data quality container (#301))
  • Added deployment script (scripts/deploy.sh). (#381)
  • Interactive GUI sessions can now be started with input files that were previously imported. (#345, #354)
  • And lots more!

Enhancements#

  • Added template for pull requests. (#356)

Issues Fixed#

  • Fixed an error when running qcb build. (#335)
  • Fixed formatting checks in CI runs. (#370)
  • Fixed missing dependency, leading to startup errors. (#368)
  • Fixed a bug that prevented pre-build scripts from being run if the build is invoked from a subdirectory. (#385)
  • Fixed an issue that prevented the deployment script from running. (#393)
  • Fixed an issue that prevented the Olex2 docker image from being built. (#394)

Other changes#

  • By default, containers now listen on all interfaces rather than just localhost.

Development#

  • Added dummy GUI application for testing of interactive sessions. (#364)

Documentation#

v0.0.2#

New Features#

  • Added Traefik as a dynamic reverse proxy. (#225)
  • Added Devbox configuration to enable reproducible, automated setup. (#258)
  • Added script for a guided, automated installation of the QCrBox development environment.
  • Added 'qcb validate' command to convenient allow validation of application config yaml files.
  • Added support for 'one_of' in application config yaml files to specify alternative options for cif entries.
  • Added a (non-interactive) dummy application for testing and debugging. (#281)
  • Added a devbox command to run the QCrBox server in "dev" mode (outside a Docker container and with auto-reloading enabled). (#308)

Enhancements#

  • CLI command outputs now use rich text formatting by default (this can be disabled by setting QCRBOX__CLI__DISABLE_RICH=true).
  • Improved interaction between WSL and Windows (powered by wslu). (#274

Issues Fixed#

  • Browser windows now open correctly under WSL. (#274
  • Fixed a build issue under WSL. (#335)

Documentation#

  • How-to guide on building and running components using the qcb command line tool. (#167)
  • Output of code blocks is now coloured correctly. (#194)
  • Updated instructions for setting up a development environment using the new installation script. (#287)
  • The website has been extended with a landing page and a description of the project phases and roadmap.

v0.0.1#

New Features#

  • Docker base images:
    • base-application
    • base-novnc #39
  • Core components:
    • qcrbox-message-bus #9
    • qcrbox-registry #13
    • qcrbox-nextflow #60
    • qcrboxtools #120
  • Crystallographic applications:
  • CLI tool (qcb) for common development and deployment tasks. (#10, #164)
  • Python package (qcrbox) to interact with QCrBox from Python code. (#14)
  • The base image now includes cctbx and QCrBoxTools. (#53)
  • Support for creating boilerplate scaffolding for new applications to be integrated with a QCrBox instance. (#75)

Documentation#

  • Created documentation skeleton. (#2)
  • Set up GitHub Actions for continuous deployment of the docs to GitHub pages. (#11)
  • Added README file. (#139)
  • How-to guide on how to set up a development environment. (#24)
  • How-to guide for using the cif building blocks provided by QCrBoxTools. (#71)
  • Tutorial on how to integrate a command line program into QCrBox. (#79)
  • Tutorial on how to integrate Python functionality into QCrBox. (#80
  • Jupyter notebooks with examples on how to interact with commands exposed by QCrBox (for Olex2, Eval14/15, XHARPy, CrystalExplorer, QCrBoxTools). (#126)

Bugs fixed#

  • Ensured that the qcb tool works cross-platform, including on Windows. (#76)
  • Line endings of text files checked out in the git working tree are always normalised to LF to avoid runtime errors on Windows. (#132)
  • Command registration and internal error handling by the server. (#172)
  • The build process using qcb on Windows has been fixed and made more robust. (#156)

Internal changes & improvements#

  • The base images now use the mamba package manager, resulting in much faster build times than using conda.
  • All QCrBox-specific Python packages are now installed in the base mamba environment. The separate Python virtual environment has been removed. (#54)
  • Python code is linted and auto-formatted using ruff. #64
  • Each application's docker compose configuration now lives in its dedicated subfolder (services/application/<application_folder>) instead of in the toplevel docker-compose.yml file. (#78)
  • The folder structure in qcrbox/cli/subcommands has been simplified by removing an extra level of subfolders. (#90)