The current installation/setup should be modernized to streamline it for new users with a typical use case for CLI interaction.
Current UX:
- Installation using pip or pipx results in a non-operational client (missing dependencies).
- Installation for CLI usage requires use of pipenv, which is unorthodox (it's really used for replicating consistent development environments).
- Installation requires access to the Git repo to access a template configuration file to be edited by the user to complete setup.
- Configuration file uses a generic name (config.yml) and setup instructions seem to assume that the CLI tool will be run from the Git checkout with the config file local to the checkout.
Recommended/improved UX:
- Installation with pip or pipx should be one-shot, with dependencies specified in the pyproject.toml (modern) or setup.py (dated but supported). pipx is used when only the CLI will be used and no library usage is expected; pip is used when a user is expected to use the module as a library. Both should result in the installation of all dependencies.
- Eliminate pipenv from the UX.
- Add a supported CLI command to prompt the user for host and API key and output a functional configuration file. Common commands include
init, setup, or config, etc.
- The output config file should be stored as a dotfile in $HOME (old) or in
~/.config (new).
- The old dotfile method would be a named file such as
$HOME/.iq-cli.yml; this is considered legacy and has been replaced by a new config file spec in Freedesktop standards.
- The modern Freedesktop spec would use a file at
$XDG_CONFIG_HOME (https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html) using a path such as $HOME/.config/iq-cli/config.yml.
The current installation/setup should be modernized to streamline it for new users with a typical use case for CLI interaction.
Current UX:
Recommended/improved UX:
init,setup, orconfig, etc.~/.config(new).$HOME/.iq-cli.yml; this is considered legacy and has been replaced by a new config file spec in Freedesktop standards.$XDG_CONFIG_HOME(https://specifications.freedesktop.org/basedir-spec/latest/ar01s03.html) using a path such as$HOME/.config/iq-cli/config.yml.