Skip to main content

2020-q1

qaboard v0.8.5

The project took its public name: qatools became QA-Board, with a `qaboard` Python package and a `qaboard.yaml` configuration, and its source was prepared for open-sourcing. Projects also gained Celery runners, monorepo subprojects, and new menus to rename, redo or clean up batches.

Project integration

qatools is now QA-Board

The configuration file is now qaboard.yaml and the package is imported with import qaboard. Existing qatools.yaml files and import qatools keep working, and the sample project now keeps its files in a qa/ folder.

Learn more →
Project integration

Celery task runner

Besides local runs and LSF, batches can now be sent to Celery workers. Runners now share a common API, which makes it easier to add new ones, and local batches are the default.

Learn more →
Project integration

Subprojects in monorepos

qaboard.yaml no longer needs to sit at the root of the repository, and nested qaboard.yaml files (even empty ones) define subprojects with their own settings.

Learn more →
Users

Trigger CI jobs from the web app

Commit pages can show integrations that start GitLab CI or Jenkins jobs, and batch logs link directly to the CI job that ran them.

Learn more →

Web app​

  • Runs that are still running are now shown as such, with their own status tag.
  • Each output card links to the reference's output folder, and individual outputs can be deleted.
  • Added batch menus to rename a batch, delete all its failed outputs and redo the outputs whose files were deleted. Any batch can now be deleted.
  • Each commit in the commit list now has its own menu.
  • The image viewer can detect regions of interest automatically and export a PDF report of them.
  • Visualizations whose paths depend on the run are better supported, and the diff image tooltip is clearer.
  • The tuning panel lists all configurations, with better examples, labels and help text in its forms.
  • A welcome message is shown when the server has no projects yet.
  • Added a credits footer and a new favicon.

CLI and project setup​

  • CLI options can now be set with QA_ environment variables (previously QATOOLS_).
  • QA_BATCH_CONCURRENCY limits how many runs a batch starts in parallel, locally or on LSF.
  • postprocess() is now optional, and arguments forwarded by qa batch are escaped better.
  • qa batch warns when a batch matches no inputs, and inputs.batches is now optional.
  • Inputs can be left out of a batch with an exclude key, and input matching is case-insensitive on every platform.
  • In batches files, groups is renamed aliases; groups still works.
  • qa --share run and qa --share postprocess print the URL of the results, and qa run prints the output directory. URLs are printed URL-encoded so they are easy to copy.
  • qa postprocess also writes its logs to a log file.
  • qa save-artifacts has an --exclude option.
  • qa run --keep-previous keeps files already in the output directory instead of cleaning it.
  • Computing file hashes for output manifests can be turned off.
  • The --offline mode works better, and the CLI falls back to checks that don't need the server.
  • The CLI reads server settings and tokens from environment variables or a secrets file instead of hardcoded values.
  • The storage used by each run is now recorded.
  • The qaboard package is now version 0.8.5, and was prepared for publication on PyPI. Its git integration no longer depends on GitPython.

Server and administration​

  • The database is created on startup if it doesn't exist.
  • The script that deletes old results is more configurable, and only deletes failed batches when asked to.
  • Added a script to backfill the storage used by past runs.
  • Run configurations are now stored as JSON in the database.
  • Removed the built-in admin view: use a tool like pgAdmin instead.
  • Metrics can only be updated through the API, not by reading them from the filesystem.
  • The backend starts faster and reports errors better.

Documentation​

  • The docs moved to a Docusaurus website, with a search bar.
  • Added guides for administrators, and docs on the LSF bridge settings.
  • Added a license, a code of conduct, contributing guidelines and GitHub issue templates.

Fixes​

  • Fixed paths and file names with characters that need URL encoding, such as #.
  • Fixed several case-sensitivity and working-directory issues on Windows and in subprojects.
  • Fixed runs reported as running after the task manager killed them, and jobs reported as failed with --no-wait.
  • Fixed infinite loops with self-referencing aliases in batches files.
  • Fixed hovering over image diffs, dynamic viewers and broken output manifests.
  • Fixed pages crashing when a commit has no reference.