Skip to content

Latest commit

 

History

History
131 lines (95 loc) · 3.74 KB

CONTRIBUTING.md

File metadata and controls

131 lines (95 loc) · 3.74 KB

Contributing to OMSS Core

Thank you for your interest in contributing to OMSS Core! This guide will help you get started.

Table of Contents


Code of Conduct

This project is governed by the Code of Conduct. By participating, you agree to uphold it.


Getting Started

  1. Fork the repository on GitHub.
  2. Clone your fork locally:
    git clone https://github.com/<your-username>/core.git
    cd core
  3. Install dependencies:
    npm install
  4. Build the project:
    npm run build
  5. Run tests:
    npm test

Development Setup

Command Description
npm run build Build the project with tsdown
npm run dev Watch mode (rebuilds on file changes)
npm test Run test suite with Vitest
npm run lint Lint code with ESLint
npm run lint:fix Lint and auto-fix what's safe to fix
npm run format Format code with Prettier
npm run format:check Check formatting without writing
npm run example Run the example file

How to Contribute

Reporting Bugs

Please use the Bug Report issue template. Include:

  • A clear and descriptive title
  • Steps to reproduce the behavior
  • Expected vs. actual behavior
  • Your environment (Node.js version, OS, @omss/core version)
  • A minimal reproduction case if possible

Suggesting Features

Please use the Feature Request issue template. Describe the problem you are trying to solve, not just the solution. This helps us understand the context and find the best approach together.

Writing Code

  1. Create a new branch from main:
    git checkout -b feat/my-feature
  2. Make your changes, following the conventions in AGENTS.md - including its JSDoc/TSDoc standard for any new or changed exported symbol.
  3. Add or update tests to cover your changes.
  4. Run the full test suite: npm test.
  5. Lint your code: npm run lint (or npm run lint:fix to auto-fix what it can).
  6. Format your code: npm run format.
  7. Push your branch and open a Pull Request.

Commit Message Guidelines

We follow Conventional Commits:

<type>(<scope>): <short summary>

[optional body]

[optional footer(s)]

Types: feat, fix, docs, style, refactor, test, chore, ci

Examples:

feat(server): add plugin deregistration support
fix(hooks): prevent circular hook invocation
docs: update README plugin example

Pull Request Process

  1. Ensure all tests pass with 100% coverage: npm test (required).
  2. Ensure the code passes lint: npm run lint (required - CI enforces this).
  3. Ensure code is formatted: npm run format (required - CI enforces this).
  4. Reference any related issues in the PR description (Closes #123).
  5. A maintainer will review your PR. Please be patient - this is a small team.
  6. Address any review feedback by pushing new commits to your branch.
  7. Once approved, a maintainer will merge the PR.

Security

Please do not open public issues for security vulnerabilities. See SECURITY.md for the responsible disclosure process.