Skip to content

2.0.0 Roadmap #206

Description

@spdiswal

This issue outlines the tasks to be done for the upcoming major release of this project.

Command-Line Interface (CLI) entrypoint

  • Define a Program abstraction.
  • Implement the default program flow that checks commit messages.
  • Implement a program flow that rejects invalid configurations.
  • Implement a --version/-v program flow.
  • Implement a --help/-h program flow.
  • Write an elaborate help text with usage instructions.
  • Register the comet command as a bin entrypoint in package.json.

GitHub Actions entrypoint

  • Implement the default program flow that checks commit messages.
  • Implement a program flow that rejects invalid configurations.

Configurations

  • Define a Configuration abstraction. Define a default configuration.
  • Support comet.json configuration files. Define a Valibot schema for the JSON payload in the configuration file.
  • Support comet.jsonc configuration files. Strip line comments and block comments from the JSON payload.
  • Implement scoped overrides to enable/disable certain rules in a particular context.
  • Implement configuration extensions from other local configuration files and from remote configuration files.
  • Define a versioned JSON schema to provide validation and code completion in configuration files.
  • Upload the JSON schema to a public web server (alternatively, use unpkg like Knip does). Automate the publication of versioned JSON schemas in the release workflow.
  • Validate that the $schema property in comet.json points to a JSON schema that corresponds to the current program version.
  • Implement checks for redundant configuration parameters.

Commits

  • Define a Commit abstraction.
  • Implement a getCommits function for local Git clients.
  • Implement a getCommits function for pull requests in GitHub.

Rules

Reporters

  • Define a Reporter abstraction.
  • Implement a console reporter with coloured output and ^^^ range indicators.
  • Implement a Markdown reporter for job summaries in GitHub Actions.

New project name: Comet

  • Create a fork of this repository to preserve the commit SHAs. Rename the original repository to rainstormy/comet. Then rename the fork to rainstormy/github-action-validate-commit-messages to restore workflows that refer to the original name. Mark the fork as archived.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions