Contributing Guidelines
Learn how to contribute to Mako Code
We welcome contributions to Mako Code! This document outlines the process for contributing to the project.
Getting Started
- Fork the repository from https://github.com/nhemerson/mako-code
- Clone your fork locally
- Set up your development environment following our Development Setup guide
- Create a new branch for your feature or bugfix
Code of Conduct
We have a Code of Conduct that we expect all contributors to follow. Please read it before contributing.
How to Contribute
Reporting Bugs
If you find a bug in Mako Code, please report it by creating an issue in our GitHub repository. When reporting a bug, please include:
- A clear and descriptive title
- Steps to reproduce the bug
- Expected behavior
- Actual behavior
- Screenshots if applicable
- Your environment (OS, Python version, Node.js version, etc.)
Suggesting Features
We welcome feature suggestions! To suggest a feature:
- Check if the feature has already been suggested or implemented
- Create an issue in our GitHub repository
- Provide a clear description of the feature and why it would be valuable
Pull Requests
We welcome pull requests from the community. To submit a pull request:
- Fork the repository
- Create a new branch for your changes
- Make your changes
- Test your changes thoroughly
- Submit a pull request
Please follow these guidelines for your pull request:
- Keep the scope of your changes focused
- Follow the coding style of the project
- Write clear commit messages
- Include tests for your changes when applicable
- Update documentation as needed
Development Process
Coding Standards
For the backend:
- Follow PEP 8 guidelines for Python code
- Use Ruff for linting Python code
- Write clear, self-documenting code with appropriate comments
For the frontend:
- Follow the established TypeScript and Svelte patterns in the codebase
- Use the linting and formatting rules configured in the project
Tech Stack
Understanding our tech stack will help you contribute effectively:
Frontend:
- SvelteKit
- Monaco Editor (VS Code’s editor)
- TypeScript
- Bokeh for interactive visualizations
Backend:
- FastAPI
- Polars for data processing
- Ruff for code linting
- Python standard library
Testing
When adding new features or fixing bugs, please include tests when applicable:
- For backend functionality, add appropriate unit tests
- For frontend changes, test across different browsers and screen sizes
Documentation
If your changes affect the API or user-facing features, please update the documentation accordingly. Our documentation is written in Markdown.
Review Process
All pull requests will be reviewed by at least one maintainer. The review process includes:
- Automated checks (linting, tests)
- Code review by maintainers
- Possible requests for changes
- Approval and merge
After Your PR is Merged
Once your pull request is merged, you will be added to the contributors list. Your contribution will be mentioned in the changelog for the next release.
License
By contributing to Mako Code, you agree that your contributions will be licensed under the project’s license.
Thank you for contributing to Mako Code!