cli
cli copied to clipboard
Implement all requirements for the journey "First contact (PoC)"
First contact - Implementing a PoC
I want to install the CLI and produce an output without any problems.
This make me do the following things:
- Go to a product site (NPM or GitHub site).
- Read the documentation.
- Looking for a quickstart guide or a Getting started in README. 🔥
- There should be a concise yet compact section that fits in one page.
Practical part
- Install the package.
-
Set up the CLI locally. 🔥
- There should be a preset config file.
- There should be an option to use default plugins (ideally a prompt).
- Run the CLI.
- There should be a CLI logger that tells me what is happening.
- There should be a progress bar/spinner to let me know something is happening.
- A report is generated.
- There should be a report in terminal (stdout) by default. 🔥
Theory
After I get an output, I want to understand the full content of the report and its entities.
- Having a report README.
- Playing around with report formats.
- Understanding the customisable category entity and what it contains.
- #242
Preconditions
- [x] cli is published on NPM
- [x] #8
Feedback 1:
- make
collect
the default command- first try you run npx code-pushup and the default command is autorun
- this requires upload credentials this is a blocker
- error message was not helpful
- graceful failure warn instead of error
- if no plugins warning instead of error
Feedback 2:
- eslint not linked in readme get start
- setup form wiki to eslint readme
- reduce eslint setup code snippets => new defaults
- eslint readme wiki: mention why we extend real -> cpu in lint setup (because better DX)
- eslint readme wiki: snippet and source code and duplicates
- minimatch is dept to avoid
- script died because heaperror
- rerunning should respect alreaedy updated folders
Todos
- [x] CLI README file is easy to access and linked from multiple visible places
- [x] #439
- [x] #453
- [x] NPM maintains all links from package json
- repository
- docs
- ....
- [x] 📖 A "Getting started" section is present in README
- [x] #176
- [x] #370
- [x] 🤓 Code snippets work when copy pasted
- [x] Readme is visible on landing page
NPM
andGitHub
- [x] Setup CLI locally
- [x] 🤓 The config setup has good defaults
- [x] #369
- [x] #321
- [x] #316
- [x] #307
- [x] #406
- [x] #407
- [x] #442
- when no config is there is says path invalid... it should say not found??
- [x] #371
- [x] 🤓 The config setup has good defaults
- [x] Run the CLI locally
- [x] #781
- existing plugins work
- [x] https://github.com/code-pushup/cli/pull/452
- [x] 📚 logging and progress
- [x] is implemented
- [x] after upload log a link to result in portal
- [x] is adjustable by CLI options
- [x] 🤓 has user centric information
- [x] #372
- [x] A report is generated (
json
)- [x] 📚 It is logged which reports are created and where
- [x] 🤓 The content is user centric (sorted and grouped)
- [x] #313
- [x] 📖 Hints on further steps are listed
- [x] 📚 docs on reports
- [x] help command gives useful information
- [x] 🤓 #123
- [x] #553
- [x] links to the online docs: getting started, custom plugins, CI setup. #371
- [x] A report is generated (
md
) by using CLI options- [x] 📚 It is logged which reports are created and where
- [x] #297
- [ ] #149
- [ ] 📖 Category docs are clear and understandable documented
- [x] #37 (at least the important parts
persist
,categories
ofCoreConfig
and a bit theReport
) fixed by #388 - [ ] 🤓 copy paste snippets work and are related to getting started guide (they can go on from there in this section)
- [x] #37 (at least the important parts
Future Todos:
- [x] #739
- [x] Add comment to default Code PushUp confings with link to docs
- [ ] Plugin setup is guided by CLI
- [ ] nx plugin
- [ ] eslint readme wiki: mention why we extend real -> cpu in lint setup (because better DX)
- [ ] eslint readme wiki: snippet and source code and duplicates
- [ ] minimatch is dept to avoid
- [ ] script died because heaperror
- [ ] rerunning should respect alreaedy updated folders