Skip to content

Latest commit

 

History

History
273 lines (214 loc) · 6.61 KB

File metadata and controls

273 lines (214 loc) · 6.61 KB

Contributing to HLS Example Project

Thank you for your interest in contributing! This document provides guidelines for contributing to the HLS Example Project.

🤖 About HLS Integration

This repository is monitored by Hook Line Sinker (HLS), an AI-powered webhook service that automatically:

  • Reviews pull requests
  • Labels issues
  • Detects security vulnerabilities
  • Analyzes code quality
  • Suggests improvements

Your contributions will be automatically analyzed to ensure quality and security standards.

🚀 Getting Started

Prerequisites

  • Node.js 18+
  • Git
  • GitHub account
  • Basic understanding of JavaScript/TypeScript

Setting Up Development Environment

  1. Fork the repository

    # Click "Fork" button on GitHub
  2. Clone your fork

    git clone https://github.com/YOUR_USERNAME/hls-example-project.git
    cd hls-example-project
  3. Add upstream remote

    git remote add upstream https://github.com/ORIGINAL_OWNER/hls-example-project.git
  4. Install dependencies

    npm install
  5. Create a branch

    git checkout -b feature/your-feature-name

📝 Development Workflow

1. Check existing issues

Before starting work, check if an issue already exists for your intended contribution.

2. Create an issue (if needed)

Use our issue templates to create:

  • 🐛 Bug reports
  • ✨ Feature requests
  • 🔒 Security vulnerabilities
  • 🐌 Performance issues

3. Make your changes

Follow these guidelines:

  • Write clean, readable code
  • Follow existing code style
  • Add tests for new functionality
  • Update documentation as needed

4. Test your changes

# Run all tests
npm test

# Run linting
npm run lint

# Run type checking
npm run typecheck

# Run build
npm run build

5. Commit your changes

Follow conventional commit format:

# Format: <type>(<scope>): <subject>

# Examples:
git commit -m "feat(api): add user authentication"
git commit -m "fix(ui): resolve button alignment issue"
git commit -m "docs: update installation instructions"
git commit -m "perf(db): optimize query performance"

Types:

  • feat: New feature
  • fix: Bug fix
  • docs: Documentation changes
  • style: Code style changes (formatting, etc.)
  • refactor: Code refactoring
  • perf: Performance improvements
  • test: Test additions or corrections
  • chore: Maintenance tasks

6. Push to your fork

git push origin feature/your-feature-name

7. Create a Pull Request

  • Use the PR template
  • Link related issues
  • Provide clear description
  • Add screenshots if applicable

🤝 Code of Conduct

Our Standards

  • Be respectful and inclusive
  • Welcome newcomers and help them get started
  • Accept constructive criticism gracefully
  • Focus on what's best for the community

Unacceptable Behavior

  • Harassment or discrimination
  • Trolling or insulting comments
  • Public or private harassment
  • Publishing others' private information

📋 Pull Request Guidelines

PR Requirements

  • ✅ All tests must pass
  • ✅ Code must be linted
  • ✅ Must not decrease test coverage
  • ✅ Must include relevant tests
  • ✅ Must update documentation if needed

What to Expect

  1. Immediate HLS Analysis: Your PR will be automatically analyzed
  2. AI Review: HLS will comment with suggestions and findings
  3. Human Review: Maintainers will review after HLS analysis
  4. Feedback Loop: Address any comments or suggestions
  5. Merge: Once approved, your PR will be merged

PR Best Practices

  • Keep PRs focused and small
  • One feature/fix per PR
  • Write descriptive commit messages
  • Update tests and documentation
  • Respond to feedback promptly

🏷️ Issue Labels

HLS automatically applies labels. Understanding them helps:

Priority Labels

  • 🔴 critical: Urgent issues requiring immediate attention
  • 🟠 high-priority: Important issues to address soon
  • 🟡 medium-priority: Standard priority items
  • 🟢 low-priority: Nice-to-have improvements

Type Labels

  • bug: Something isn't working
  • enhancement: New feature or request
  • documentation: Documentation improvements
  • security: Security-related issues
  • performance: Performance improvements

Status Labels

  • needs-triage: Awaiting initial review
  • needs-info: More information required
  • in-progress: Currently being worked on
  • ready-for-review: PR ready for review
  • blocked: Blocked by external factors

🧪 Testing Guidelines

Test Structure

describe('Component/Function Name', () => {
  it('should do something specific', () => {
    // Arrange
    const input = 'test';
    
    // Act
    const result = myFunction(input);
    
    // Assert
    expect(result).toBe('expected');
  });
});

Test Coverage

  • Aim for >80% code coverage
  • Test edge cases
  • Test error scenarios
  • Test async operations

📚 Documentation

When to Update Docs

  • Adding new features
  • Changing API interfaces
  • Modifying configuration options
  • Updating setup procedures

Documentation Style

  • Use clear, concise language
  • Include code examples
  • Add diagrams for complex concepts
  • Keep README up to date

🚦 Release Process

  1. Version Bumping: Follow semantic versioning
  2. Changelog: Update CHANGELOG.md
  3. Testing: Ensure all tests pass
  4. Review: Final review by maintainers
  5. Tag: Create version tag
  6. Release: GitHub Actions handles the rest

💬 Getting Help

Resources

Communication Channels

  • Issues: Bug reports and feature requests
  • Discussions: General questions and ideas
  • PRs: Code contributions

🎯 Project-Specific Guidelines

API Development

  • Follow RESTful principles
  • Use proper HTTP status codes
  • Implement proper error handling
  • Add OpenAPI documentation

Frontend Development

  • Component-based architecture
  • Responsive design required
  • Accessibility (a11y) compliance
  • Performance optimization

Database Changes

  • Always include migrations
  • Consider backward compatibility
  • Document schema changes
  • Test migration rollbacks

🙏 Recognition

Contributors are recognized in:

  • Contributors list
  • Release notes
  • Project documentation

Thank you for contributing to make this project better! 🎉


🎣 Powered by Hook Line Sinker
Your contributions are automatically analyzed for quality and security