Skip to content

Refine dependabot workflow #284

Open
@speedytwenty

Description

Presently, the open Pull requests for cli-table3 are polluted with dependabot PRs that presumably could/should be auto-merging (upon passing CI tests). It looks like this may date back to the migration from dependabot-preview (see #216 and dependaot preview's history).

For longevity, cli-table3 should focus dependabot on it's pertinent dependencies* and minimize dependabot's interference with devDependencies as best as possible.

* cli-table3 has only one production dependency (string-width), one optional dependency (@colors/colors), and one dev dependency (cli-table) whose version is relevant.

cli-table3 (this module) presently offers "backwards" compatibility with cli-table—and includes tests to prove it. Yet, these interfacing tests are more accurately "continuous" (see #196 & #283) while the devDependency on cli-table is not fixed to a specific version in package.json.

Because cli-table3 relies upon cli-table within it's tests and only within it's tests, there is a question: Which versions of cli-table are intended to be supported by cli-table3? If true backward-compatibility is intended, as seems to be the intention demonstrated, we could/should lock on a version and call it true. But presently, it's not backward (locked), it's continuous. This is relevant, I think, to get dependabot honed appropriately.

Despite activity or not on cli-table, I don't think the intention with cli-table3 is nor ever was to keep up with API changes that might occur to cli-table in the future. It would be possible to support both "true backward" and "continuous"—but testing advancements to cli-table would merely be testing breaking API changes to cli-table and not cli-table3.

To keep it simple here, we'll just lock cli-table to a specific version.

With that in mind, it seems like the following would be ideal for leveraging dependabot:

(Prod) Dependencies

"Dependencies" is presently singular; cli-table3 relies only on: string-width

  • dependabot auto-merges minor and patch releases
  • dependabot creates pr requiring manual merge for major releases [until told otherwise]

These should be demonstrable by: dependabot automatically raising string-width to the latest 4.x version and creating a pr for the 5.x version.

Dev Dependencies

  • Lock cli-table to specific version in package.json
  • dependabot ignores major releases and cli-table
  • dependabot auto-merges minor and patch releases (pending CI tests)

These should be demonstrable by:

  • dependabot not creating PRs for major releases (presently: eslint-config-prettier, eslint-plugin-prettier, etc.)
  • dependabot auto-merging devDependences for minor and patch releases.

Summary

The end results here should be:

  • Minor and Patch updates for all dependencies automatically processed by dependabot.
  • Pull-requests free of dependabot PRs—except major releases to string-width.
  • Locking of cli-table and dependabot ignoring it completely.

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions