Contributing

Thank you for your interest in contributing to the vCon MCP Server! This guide will help you get started.

Table of Contents


Code of Conduct

Our Pledge

We pledge to make participation in our project a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity, experience level, nationality, personal appearance, race, religion, or sexual identity.

Our Standards

Positive behavior includes:

  • Using welcoming and inclusive language

  • Being respectful of differing viewpoints

  • Accepting constructive criticism gracefully

  • Focusing on what's best for the community

  • Showing empathy towards others

Unacceptable behavior includes:

  • Harassment, trolling, or derogatory comments

  • Publishing others' private information

  • Personal or political attacks

  • Other unprofessional conduct

Enforcement

Report violations to [project maintainers]. All complaints will be reviewed and investigated promptly and fairly.


Getting Started

Prerequisites

Before contributing, ensure you have:

  • Node.js 18+ installed

  • Git installed and configured

  • Supabase account for database testing

  • GitHub account

Initial Setup

  1. Fork the repository

  2. Clone your fork

  3. Add upstream remote

  4. Install dependencies

  5. Set up environment

  6. Run tests

  7. Build the project

Development Environment

We recommend:

  • VS Code with these extensions:

    • ESLint

    • Prettier

    • TypeScript and JavaScript Language Features

    • GitLens

  • Database GUI: Supabase Dashboard or pgAdmin


Development Workflow

Creating a Feature Branch

Branch Naming Convention:

  • feature/ - New features

  • fix/ - Bug fixes

  • docs/ - Documentation changes

  • refactor/ - Code refactoring

  • test/ - Test additions/changes

  • chore/ - Maintenance tasks

Making Changes

  1. Make your changes

  2. Test your changes

  3. Lint and format

  4. Build and verify

Committing Changes

We use Conventional Commitsarrow-up-right:

Commit Types:

  • feat: New feature

  • fix: Bug fix

  • docs: Documentation changes

  • style: Code style changes (formatting)

  • refactor: Code refactoring

  • test: Test additions/changes

  • chore: Maintenance tasks

  • perf: Performance improvements

Examples:

Keeping Your Branch Updated


Pull Request Process

Before Submitting

Ensure your PR:

Creating a Pull Request

  1. Push your branch

  2. Open PR on GitHub

    • Go to the repository

    • Click "New Pull Request"

    • Select your branch

    • Fill in the PR template

PR Template

Review Process

  1. Automated Checks

    • CI/CD runs tests

    • Linting checks

    • Build verification

  2. Code Review

    • At least one maintainer approval required

    • Address all comments

    • Make requested changes

  3. Final Checks

    • All conversations resolved

    • CI passes

    • Up to date with main

  4. Merge

    • Maintainer will merge your PR

    • Branch will be deleted

After Merge

  1. Update your local repo

  2. Delete feature branch


Coding Standards

See Code Style Guide for detailed standards.

Quick Reference

TypeScript:

Function Documentation:

Error Handling:


Testing Requirements

Test Coverage

All contributions must maintain test coverage:

  • Minimum: 80% overall coverage

  • New code: 90% coverage required

  • Critical paths: 100% coverage

Writing Tests

Test Types

  1. Unit Tests - Test individual functions

  2. Integration Tests - Test component interactions

  3. Compliance Tests - Test IETF spec compliance

  4. E2E Tests - Test full workflows

Running Tests


Documentation

Documentation Requirements

All contributions must include:

  1. Code Comments

    • JSDoc for public APIs

    • Inline comments for complex logic

    • TODO/FIXME with issue numbers

  2. API Documentation

    • Update docs/api/ if changing tools/resources

    • Include examples

    • Document parameters and return values

  3. User Documentation

    • Update docs/guide/ if affecting user features

    • Add examples and use cases

    • Include troubleshooting tips

  4. README Updates

    • Update if changing setup process

    • Keep examples current

    • Update feature list

Documentation Style

See Documentation Standards for details.

Example:


Release Process

Versioning

We follow Semantic Versioningarrow-up-right:

  • Major (X.0.0) - Breaking changes

  • Minor (0.X.0) - New features (backward compatible)

  • Patch (0.0.X) - Bug fixes

Release Checklist

For maintainers:

  1. Update Version

  2. Update CHANGELOG

    • Document all changes

    • Group by type (Added, Changed, Fixed, Removed)

    • Include issue/PR numbers

  3. Create Release Branch

  4. Final Testing

    • Run full test suite

    • Test in production-like environment

    • Verify documentation

  5. Create Release PR

    • Review all changes

    • Get approval from maintainers

  6. Merge and Tag

  7. Publish

  8. Create GitHub Release

    • Copy CHANGELOG entry

    • Attach built assets

    • Publish release notes


Getting Help

Where to Ask

  • GitHub Issues - Bug reports, feature requests

  • GitHub Discussions - Questions, ideas, general discussion

  • Discord - Real-time chat with community

  • Email - Private matters to [maintainers email]

Issue Templates

Bug Report:

Feature Request:


Recognition

Contributors are recognized in:

  • CONTRIBUTORS.md - All contributors listed

  • Release Notes - Major contributions highlighted

  • GitHub Profile - Contribution graph

We appreciate all contributions, big and small!


License

By contributing, you agree that your contributions will be licensed under the MIT License.


Questions?

If you have questions about contributing:

  1. Check existing documentation

  2. Search existing issues/discussions

  3. Ask in GitHub Discussions

  4. Contact maintainers

Thank you for contributing to vCon MCP Server! 🎉

Last updated