Skip to content

Create a Guide for Coding Standards and Linters #11

Open
@yogi4

Description

@yogi4

Description: We need a comprehensive guide that outlines coding standards and best practices for the OpenChami project. This guide should include recommended linters, details on how to configure and use them, and coding conventions that all contributors must follow.

Why This Is Needed:

Ensures consistent, high-quality code contributions.

Simplifies onboarding for new contributors by providing clear guidelines.

Helps prevent common coding errors and style discrepancies.

Facilitates better collaboration and reduces review time.

Key Tasks:

  1. Research & Decide on Coding Standards:

Propose language-specific conventions (e.g., naming conventions, file structure, code formatting).

Include guidelines for documentation and comments.

  1. Select and Configure Linters:

Identify linters most suitable for our language(s) or frameworks.

Provide default configuration files (e.g., .eslintrc, .pylintrc, etc.) for the project.

  1. Create a Setup & Usage Guide:

Step-by-step instructions for installing and running the linters.

How-to information for integrating these linters into IDEs or build tools.

  1. Document Exceptions and Custom Rules:

Where our project might deviate from default rules.

How to handle exceptions and special cases.

  1. Add & Enforce Linter Checks in CI (if applicable):

Integrate lint checks into the CI/CD pipeline (GitHub Actions, CircleCI, etc.).

Ensure that pull requests cannot be merged unless they pass lint checks.

Expected Outcome:

A complete “Coding Standards & Linters” guide in the repository (e.g., in the docs folder or Wiki).

Default linter configuration files readily available.

Clear instructions to help new and existing contributors follow consistent styles.

Additional Notes/Suggestions:

Consider creating a pinned issue or a GitHub Wiki page with the standards summary.

Consider providing code snippets or examples of correct vs. incorrect usage.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions