Table of Contents

Contributing to Htmx.Components

We welcome contributions to the Htmx.Components framework! This guide will help you get started with contributing code, documentation, and reporting issues.

Important Note: This library is developed primarily for our organization's internal use. While we welcome quality contributions, we cannot provide support for external users or guarantee compatibility with external use cases.

Getting Started

Prerequisites

  • .NET 8.0 SDK or later
  • Visual Studio 2022 or Visual Studio Code
  • Basic understanding of ASP.NET Core, HTMX, and Entity Framework Core

Development Setup

  1. Fork the repository
  2. Clone your fork locally
  3. Open the solution in your preferred IDE
  4. Build the solution to ensure everything compiles

Contribution Guidelines

Code Contributions

We welcome the following types of contributions:

  • Bug fixes: Clear, focused fixes for identified issues
  • Performance improvements: Optimizations with measurable benefits
  • Documentation improvements: Better examples, clearer explanations
  • Test coverage: Additional unit tests or integration tests

What We're NOT Looking For

  • New features without prior discussion: Please open an issue first
  • Breaking changes: We prioritize stability for our internal use
  • External dependencies: We prefer to keep dependencies minimal
  • Style-only changes: We have established coding standards

Code Standards

  • Follow existing code patterns and conventions
  • Write clear, descriptive commit messages
  • Include appropriate documentation for public APIs
  • Add tests for new functionality when applicable
  • Ensure all existing tests pass

Submitting Changes

  1. Create a feature branch from main
  2. Make your changes with clear, focused commits
  3. Test your changes thoroughly
  4. Submit a pull request with:
    • Clear description of changes
    • Reference to any related issues
    • Explanation of testing performed

Reporting Issues

When reporting issues:

  • Use the provided issue templates
  • Include minimal reproduction steps
  • Specify your environment (.NET version, OS, etc.)
  • Note: We cannot guarantee timely responses to external issue reports

Development Notes

Architecture Principles

  • Convention over configuration: Prefer attribute-based configuration
  • Minimal dependencies: Keep external dependencies to a minimum
  • Performance-focused: Optimize for our specific use cases
  • HTMX-first: Design with HTMX patterns in mind

Key Areas for Contribution

  • Table component optimizations
  • Authorization pattern improvements
  • Documentation and examples
  • Test coverage expansion

Review Process

All contributions go through our internal review process:

  1. Automated build and test verification
  2. Code review by core team members
  3. Integration testing with our applications
  4. Final approval and merge

Timeline: Reviews are conducted on our internal schedule. External contributions may take longer to review as they are not our primary focus.

License

By contributing, you agree that your contributions will be licensed under the same license as the project.

Questions?

While we cannot provide dedicated support for external contributors, you can:

  • Review existing documentation and code examples
  • Search through existing issues for similar problems
  • Submit clear, well-documented issues for consideration

Thank you for your interest in contributing to Htmx.Components!