Skip to content

Ideas for updated CLI in conda-project #362

@mattkram

Description

@mattkram

In preparation of upcoming hackdays, I'm collecting some ideas around how the CLI could be refined when converting anaconda-project to a potential conda project extension.

This table summarizes potential renaming's of sub-commands, which would all be prefixed by conda project or `conda-project.

After typing this, my personal preference is Alternative 2, where essentially many of the hyphenated subcommands are further broken down into higher level sub-commands such as service with operations like add, remove, list, etc.

If would also be great if somehow the conda install PACKAGE command could somehow be intercepted from within an activated environment to add to anaconda-project.yaml using the current behavior of anaconda-project add-packages.

Existing New Alt 1 New Alt 2 Description
init Initialize a directory with default project configuration
run Run the project, setting up requirements first
prepare install install Set up the project requirements, but does not run the project
clean Removes generated state (stops services, deletes environment files, etc)
archive Create a .zip, .tar.gz, or .tar.bz2 archive with project files in it
unarchive Unpack a .zip, .tar.gz, or .tar.bz2 archive with project files in it
upload Upload the project to Anaconda Cloud
download Download the project from Anaconda Cloud
add-variable add --variable variable add Add a required environment variable to the project
remove-variable remove --variable variable remove Remove an environment variable from the project
list-variables list --variable variable list List all variables on the project
set-variable set --variable variable set Set an environment variable value in anaconda-project-local.yml
unset-variable unset --variable variable unset Unset an environment variable value from anaconda-project-local.yml
add-download add --data data add Add a URL to be downloaded before running commands
remove-download remove --data data remove Remove a download from the project and from the filesystem
list-downloads list --data data list List all downloads on the project
add-service add --service service add Add a service to be available before running commands
remove-service remove --service service remove Remove a service from the project
list-services list --service service list List services present in the project
add-env-spec ? env add Add a new environment spec to the project
remove-env-spec ? env remove Remove an environment spec from the project
list-env-specs ? env list List all environment specs for the project
export-env-spec ? env export Save an environment spec as a conda environment file
lock Lock all packages at their current versions
unlock Remove locked package versions
update Update all packages to their latest versions
add-packages add package add Add packages to one or all project environments
remove-packages remove package remove Remove packages from one or all project environments
list-packages list package list List packages for an environment on the project
add-platforms add --platform platform add Add platforms to one or all project environments
remove-platforms remove --platform platform remove Remove platforms from one or all project environments
list-platforms list --platform platform list List platforms for an environment on the project
add-command add --command command add Add a new command to the project
remove-command remove --command command remove Remove a command from the project
list-default-command list --default-command command list --default List only the default command on the project
list-commands list --command command list List the commands on the project

Metadata

Metadata

Assignees

No one assigned

    Labels

    TRIAGEUncategorized issue

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions