Skip to content

v0.9.0 - new relic changes (last major release before v1.0)

Compare
Choose a tag to compare
@caniszczyk caniszczyk released this 13 Oct 14:42

This v0.9.0 release is the last major release before we declare v1.0 - we want to allow a few weeks for testing and finding any major issues after importing a lot of improvements from the new relic fork: #174

Please send any major bugs as we plan to declare v1.0 next month

Proposed Changes

Pulling from the newrelic-forks repolinter changelog:

Breaking

  • The ruleset configuration format has been upgraded to version 2, including adding a JSON schema and support for YAML. The previous ruleset format is still supported (albeit not as well tested).
  • Renamed several rule options to more clearly convey functionality (files -> globsAny) and remove problematic language (blacklist -> denylist). Backwards compatibility for old option names in version 1 rulesets is still maintained, however the schema will (at the moment) fail to validate the old names in version 2.
  • Major changes have been made to the lint function:
    • Formatting and printing have been moved outside lint, allowing the developer to suppress or modify the output as needed. This change is reflected in the new CLI implementation.
    • The object returned by lint (LintResult) has been completely restructured.
    • async was added to the interface.
  • Major changes have been make to the JSON Formatter to accommodate the structure change of lint's return value.
  • Non top-level configuration support (ex. targetdir/otherdir/repolinter.json would trigger another lint of otherdir) has been removed for now. I'd be open to adding this functionality back before this PR is merged.
  • Some slight changes have been made to the default formatter to accommodate the feature list below.

Features

  • Automatic fixes have been added. These fixes must be configured in your ruleset before they can be used, but are otherwise enabled by default.
  • Markdown formatting is now supported via a CLI argument.
  • CLI argument parsing has re-implemented with Yargs to allow for a more user-friendly experience. All previous commands and arguments remain; however, several new options are now available. For more information on these options please see the Repolinter CLI.
    • --dryRun/-d - Disable fixes.
    • --allowPaths/-a - Specify an allowlist that repolinter should limit itself to.
    • --rulesetFile/-r - Manually specify the configuration repolinter should use.
    • --rulesetUrl/-u - Specify a URL where repolinter can retrieve the ruleset from.
    • --format/-f - Change the output format.
  • Added several other functions to the Node API: runRuleset, determineTargets, validateConfig, and parseConfig.
  • Added TypeScript types for the Node API.

Fixes

  • All file-based operations have been moved to fs.promises, which increased performance quite a bit.
  • Fixed some issues with Windows paths.
  • Added more tests and autogenerated documentation.
  • Modified the build action to run tests on Windows and MacOS. Added a documentation action.
  • Added an ESLint config which lints StandardJS and JSDoc comments. This config needs work as the JSDoc plugin for eslint doesn't understand some of the syntax used.
  • Updated NPM dependencies.