cli icon indicating copy to clipboard operation
cli copied to clipboard

Implement all requirements for the journey "First contact (PoC)"

Open BioPhoton opened this issue 1 year ago • 1 comments

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 and GitHub
  • [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] 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 of CoreConfig and a bit the Report ) fixed by #388
    • [ ] 🤓 copy paste snippets work and are related to getting started guide (they can go on from there in this section)

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

BioPhoton avatar Nov 26 '23 13:11 BioPhoton