We are thrilled that you are interested in contributing to GoHT! GoHT is a Haml engine for Go, focused on compiling Haml into type-safe Go code. This document provides guidelines for contributing to various parts of the project, including the CLI, compiler, and runtime.
- Getting Started
- Contributing to Different Sections
- Bug Submissions
- Pull Requests
- Adhering to the Haml Spec
- Coding Standards
Before you begin, please ensure you have a GitHub account and are familiar with the basics of making a pull request. If you are new to Git or GitHub, we recommend reviewing GitHub's documentation.
- Share your ideas for improving the CLI experience.
- Contribute to the development or debugging of CLI features.
- Help enhance the compiler’s efficiency and reliability.
- Work on feature additions or bug fixes related to the compiler.
- Improve code coverage of the compiler, covering corner and edge cases.
- Participate in optimizing runtime performance.
- Contribute to making the runtime more robust and fault-tolerant.
- Help write and improve the documentation.
- Contribute to the examples directory.
- Contribute to the development of extensions and plugins for GoHT in various editors and IDEs that will use the built-in Language Server Protocol (LSP) support.
We welcome bug reports! If you've found a bug in GoHT, please submit it as an issue in our GitHub repository. Include as much detail as possible, such as:
- A clear and concise description of the bug.
- Steps to reproduce the bug.
- Expected and actual behavior.
- Screenshots or code snippets, if applicable.
Contributions to fix bugs or add features are made through pull requests (PRs). Here's how you can submit a PR:
- Fork the repository and create your branch from
master
. - Make your changes, ensuring they adhere to the project's coding standards.
- Write tests for your changes and ensure that all tests pass.
- Submit a pull request with a clear description of your changes.
It is crucial for GoHT to stick as closely as possible to the Haml specification. However, due to differences in syntax and structure between Go and Ruby, some deviations are inevitable. When contributing, consider the following:
- Strive for consistency with the Haml spec.
- Document any necessary deviations due to language differences.
- Write clean, readable, and well-documented code.
- Follow Go's standard coding conventions.
- Include tests for new features or bug fixes.
Thank you for contributing to GoHT! Your efforts help make this project better for everyone.