Skip to content
Adelhard Schulze edited this page Apr 12, 2022 · 17 revisions

Stand With Ukraine

CLI tools we want done before launch!!

How this wiki works

Specs we want done well before launching

Python Community

Javascript Community

Other Communities

  • We ultimately want to work with every tool.

Have their own page


docker

Let's go through each item in the list below and make sure we have good completions for them. When done, add the ✅ This list is generously provided to us by the Docker team.

Click to view top 60 subcommands
most used
run
build
exec
context ls
--help
compose up
version
images
pull
start
rm
stop
inspect
login
compose down
info
push
stats
logs
tag
--version
serve
rmi
compose stop
cp
compose build
system prune
image ls
compose logs
compose exec
container ls
compose run
volume ls
compose ps
kill
network ls
image inspect
network create
ls
volume rm
image prune
compose config
template ls
template config
image
image rm
events
volume prune
volume create
restart
network inspect
container rm
compose pull
compose --help
container prune
compose restart
container inspect
compose version
compose rm

docker-compose

@DannyAziz taking lead on this too. I believe the most popular stuff is done. Similar to kubectl, if there is a workflow you have that is missing suggestions, please feel free to build it and submit a PR!!

  • One task could be integrating docker-compose into the docker compose (the latter is the docker CLI with a compose subcommand). You can use the loadSpec prop of a subcommand object to do this.

kubectl

  • @DannyAziz doing most of the work here. I (Brendan) don't know kubectl super well. Very reliant on people who know the most common workflows and are able to build Fig to solve their own needs first (as chances are these are the needs of others)!

doctl

  • @Matt currently seeing if he can scrape the docs to build the skeleton. I believe it is built on oclif!

heroku

  • You will probably be making use of script as a function for anything where you want to provide suggestions relevant to the context of the user
  • Look up the getting started guides. The ones that are recommended likely have the most commonly used commands in them. Providing a good experience for these commands is a good goal.

firebase

  • similar instructions as the ones for heroku above https://firebase.google.com/docs/cli#deployment

  • this is a monster spec. The skeleton is mostly done (I believe there is a PR waiting to be reviewed)

  • You may have to set up a firebase account yourself and have a play around

  • Look up the most common workflows for this and focus on doing them really really well.

  • You will likely have to take advantage of script as a function a lot here. e.g. if the user wants to add something to an existing project, they will probably have an option with an arg that refers to that project, then they will want contextually relevant suggestions for that specific project

  • Perhaps start with cloud storage, hosting, authentication (link) and make those workflows good?

python

  • This is mostly done but check we have done the most common workflows
  • the -m <module> is currently not supported by Fig's completion spec. Just disregard it for the moment and I (brendan) will fix up the spec standard so we cater to it!

conda

  • Get the skeleton working
  • Look up the most common workflows for this and make sure they work and offer good suggestions!
  • This is a package manager, so find some http endpoint (or local cli command) we can run to search over the packages
    • the npm install generator is a great starting point for this

pyenv

  • Get the skeleton working
  • Look up the most common workflows for this and make sure they work and offer good suggestions!

pip

  • Get the skeleton working
  • Look up the most common workflows for this and make sure they work and offer good suggestions!
  • This is a package manager, so find some http endpoint (or local cli command) we can run to search over the packages
    • the npm install generator is a great starting point for this

pipenv

  • Get the skeleton working
  • Look up the most common workflows for this and make sure they work and offer good suggestions!

jupyter

  • Just get the core workflows here. Jupyter notebook and if there are any other options or subcommands, list them
  • Notebook should have the highest priority!

NPM

Missing Generators

  • npm install is pretty much done. I (brendan) deliberately commented out the generator while i fixed something with our debounce function. I will uncomment when this is fixed and pushed!

Subcommands

  • run
    • think this is pretty good
  • install
    • think this is pretty good, just research a little
  • uninstall
    • need a generator for only packages in local
  • support for shortcuts
    • create subcommands for the following and make sure they have the exact same code as the things they are aliased too
    • ![image-20210421180244904](/Users/brendan/Library/Application Support/typora-user-images/image-20210421180244904.png)

npx

  • Build the spec for this
  • The should just be a generator for all the npm packages, the same as the one for npm install
    • e.g. you can try out npx cowsay hello world and it will install the cowsay and run it
  • ![image-20210421180346861](/Users/brendan/Library/Application Support/typora-user-images/image-20210421180346861.png)

Read more about npx here: https://medium.com/@maybekatz/introducing-npx-an-npm-package-runner-55f7d4bd282b

yarn

The spec and generators should be pretty similar to npm! It's the same package manager Here is a nice little comparison between yarn and npm: https://classic.yarnpkg.com/en/docs/migrating-from-npm/

node

tsc

ts-node

tsc-node-script

Same as ts-node --script, unfortunately, you'll just have create a new spec called ts-node-script.js and copy and paste most of the ts-node one :/

ts-node-transpile-only

Same as ts-node --transpile-only, unfortunately, you'll just have to create a new spec called ts-node-transpile-only.js

Brendan TODO: Manually override these special CLIs so they just conform to the ts-node spec and we don't need to create extra specs 👍

curl

General principle here: I am a developer, I want to make a really really quick http request with url, how can we make this as easy as possible for you? ideally we have all the common defaults and you just select the options you need!