Skip to content

Latest commit

 

History

History
55 lines (53 loc) · 2.37 KB

TODO.md

File metadata and controls

55 lines (53 loc) · 2.37 KB

TODO

  • Standard linters built using golang functions
    • contains
    • regexp match
  • Ignore mechanisms
    • Ignore full file
      • polylint disable-for-file=$RULE_ID
    • Ignore next line
      • polylint disable-next-line=$RULE_ID
      • polylint disable=$RULE_ID
    • Ignore for path match
      • polylint disable-for-path=$RULE_ID,$RULE_ID2
  • Types of rules
    • line
    • file content
    • file path
  • Builtin linters configured for use in config file
  • Plugin linters configured for use in config file
    • otto / goja / v8go
    • supports line / file / path types
  • Use cobra for CLI
  • Build in a way to source rules from remote locations, via path + sha?
    • ie re-usable plugin infrastructure
    • support include statements
    • support SHA hash requirement for includes
    • support caching
  • Rename rules to... rules or validations?
  • Add validation that the version of config file is supported
  • Ensure that we confirm uniqueness of rule ids at the beginning of run during a pre-flight check
  • Replace argv[0] option to accept:
    • a directory
    • many files passed as argv
    • [deferred]a testing config file used as virtual filesystem
  • Set the severity threshold for what constitutes a non-zero exit code
  • Add pluggable output reporters
    • Textual / table based reporter
    • Colored output
    • JSON reporter
  • Configurable logging (log levels for debugging and k/v log values)
  • Add init command to create a default named config file
  • Remove panics that are poor programming style
  • Add testing for config files... lines, path
  • Setup goreleaser for releases
    • Setup version bumper
    • Ensure version is embedded into cobra cli and available for --version
  • Add way to pipe to exec process and non-zero exit is a failing to provide builtin, js, exec mechanisms
  • Setup version reading https://goreleaser.com/cookbooks/using-main.version/
  • Add this as a hermit-package in zph/hermit-packages

Performance

  • Setup support for gitignore and global gitignore to avoid reading things like node_modules 🥱
  • Setup parallelism for larger repos
    • Requires reworking how we use goja functions because those VMs are not thread safe
    • Could setup a worker pool of VMs? Or could provision new VM for each fn call....