awslabs / awslabs/amazon-emr-cli

Finalize CLI API

Open
#26 1 comment 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
47
Forks
14
PR merge metrics
No merged PRs in 30d

Description

The EMR CLI has been available for a while now and through my own usage and others, we have a good idea of the final set of commands and subcommands that should be supported by the CLI.

Today, certain things are confusing:
- There are three main commands: `package`, `deploy`, and `run`
- `emr package` builds a local version of the assets, while `emr run ... --build` both packages and deploys the assets.
- Do we need *both* package and deploy? Or can we simply have `build` and `run`.

Typically, I only use `run ... --build`, but in CI/CD pipelines both package and deploy can be useful. Package if you want to move the assets yourself and deploy if you want to have the CLI do the copy for you in 1 step.

It would be useful to be able to [chain](https://stackoverflow.com/questions/32501538/save-a-command-line-options-value-in-an-object-with-pythons-click-library) these [commands](https://click.palletsprojects.com/en/8.1.x/commands/#multi-command-chaining) as opposed to providing parameters. For example:

`emr build deploy run --entrypoint file.py ...` would perform all of `build`, `deploy`, and `run` in that order. That said there are some things that don't make sense, so should protect against scenarios like this.
- If you already built your assets, you wouldn't repeatedly use `deploy run`.
- You wouldn't use `emr build run`

Contributor guide

Open the contributing guide

Research direction

Start by reviewing the existing CLI entry points for package, deploy, and run, including the --build behavior described here. Clarify the final command and subcommand set, supported chaining rules, and invalid combinations; the issue is done when that API is agreed and implemented consistently for local use and CI/CD.

Written by the indexing model from the issue text.

Assessment

Tech stack
aws, python
Domain
cli, cloud
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.