2020-q1
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.
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 →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 →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 →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 (previouslyQATOOLS_). QA_BATCH_CONCURRENCYlimits how many runs a batch starts in parallel, locally or on LSF.postprocess()is now optional, and arguments forwarded byqa batchare escaped better.qa batchwarns when a batch matches no inputs, andinputs.batchesis now optional.- Inputs can be left out of a batch with an
excludekey, and input matching is case-insensitive on every platform. - In batches files,
groupsis renamedaliases;groupsstill works. qa --share runandqa --share postprocessprint the URL of the results, andqa runprints the output directory. URLs are printed URL-encoded so they are easy to copy.qa postprocessalso writes its logs to a log file.qa save-artifactshas an--excludeoption.qa run --keep-previouskeeps files already in the output directory instead of cleaning it.- Computing file hashes for output manifests can be turned off.
- The
--offlinemode 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
qaboardpackage 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.