Project

General

Profile

Actions

action #162158

open

[qe-core] New openqa-cli implementation

Added by chock about 1 month ago. Updated about 1 month ago.

Status:
New
Priority:
Normal
Assignee:
-
Category:
-
Target version:
-
Start date:
2024-06-12
Due date:
% Done:

0%

Estimated time:
Difficulty:
medium

Description

What?

Currently we rely on a bunch of bash (or perl) script wrappers around the original openqa-cli to perform certain actions such as scheduling tests, cloning tests from a PR or commit, performing database migrations etc.
This is all very loosely connected - if at all - which makes it confusing for new users and first time contributors to find their way around, as they do not have one point of contact with openQA.

Therefore, the goal of this ticket is to implement a new CLI frontend for openQA with a modern, consolidated structure.
To allow for feature parity with the current solution and ease the replacement sometime in the future, including as much of the current system's functionality
into this new CLI system is a primary objective.

Goal

A well documented, modern, expandable CLI system with a clearly structured usage is the ultimate goal. Providing users and developers alike with a
single source of contact would make interactions much more clear, improve maintainability and avoid confusion when troubleshooting issues during usage of openQA.

Also, by using a modern language with frameworks like argparse (Python), click (Python) or clap (Rust), we can ensure that the new CLI system is a modular one; Making the addition of new commands, arguments or flags to the existing structure relatively trivial.

It would also be easier to implement and maintain coding standards in the CLI component of openQA and make contributing more appealing to a wider range of outside contributors as - let's face it - Perl is not the most popular language anymore.


Checklist

  • Analyze the full feature set of the current openqa-cli including all wrappers
  • Create a separate project (in Python using PyPerl, or Rust using ruperl) to hold the new CLI as a separate module for the time being
  • Recreate basic functionality of the openQA cli
  • Categorize existing wrappers by functionality to group them under a sub command where applicable
  • Merge and consolidate the functionality of the wrappers as subcommands
  • Document functionality in the code
  • Document usage in doc-files and online
  • Implement full test suite
  • Integrate with existing openQA codebase
Actions

Also available in: Atom PDF