👍🎉 First off, thank you for your interest in contributing to Guida! 🎉👍
This document outlines guidelines and best practices for contributing code, ideas, or feedback to the project.
- Getting Started
- Ways to Contribute
- Expectations
- Development Setup
- Testing Your Changes
- Submitting a Pull Request
- Style Guide
- Reporting Issues
- Questions?
Guida is a functional programming language that builds upon the solid foundation of Elm, offering backward compatibility with all existing Elm 0.19.1 projects.
Find out more about our Vision on the project README.
We welcome contributions of all kinds, code, documentation, bug reports, feedback, and ideas!
If you're unsure about where to start or how to approach an issue, feel free to open a discussion or join our Guida Discord server to connect with other contributors and users. We’re happy to help point you in the right direction!
-
File a bug or feature request here
-
Help triage existing issues
-
Improve documentation or examples
-
Try out Guida and give us feedback
-
Look for good first issues if you're just getting started
-
Port known issues or improvements from the Elm ecosystem
Guida builds on projects like elm/compiler, elm-format, elm-test, and elm-json. If you've encountered issues or ideas in those tools that feel worth bringing into Guida, feel free to reference them in a new issue or PR
- We aim to respond to contributions within a few days.
- All changes should align with the project's vision: stability, compatibility with Elm, and community evolution.
- PRs should be focused and include a clear description.
- Don’t worry if your PR needs changes — we’ll help you get it over the finish line!
For detailed instructions on setting up your environment for contributing to Guida, see the Development section of the README.
We aim for stability and consistency. If you’re adding features or fixing bugs, please:
- Write tests if applicable.
- Consider all 3 outputs of the project: bin (command line), browser and node (API).
- Make sure to test all three output targets of the project:
- CLI (bin) — the command-line interface
- Browser — compiled for browser usage
- Node — used as a Node.js API
- Make sure existing tests pass: see the Run tests section of the README.
-
Fork the repo and create a new branch:
git checkout -b my-feature
-
Make your changes.
-
Test locally.
-
Push and open a Pull Request (PR) to the
masterbranch.
Please describe:
- What the change does
- Why it’s needed
- Any related issues or discussion
- Follow the existing code style
- Keep Elm code idiomatic and readable
- Use descriptive names and add comments where helpful
For formatting Elm:
npm run elm-formatIf you encounter a bug or unexpected behavior:
- Search existing issues
- If not found, open a new one with:
- Steps to reproduce
- Expected and actual behavior
- Environment details
Some issues might relate to other repositories under the guida-lang (such as the package registry). If you're unsure where the issue belongs, feel free to post anyway — we’ll help direct it to the right place.
Join the Guida Discord server to connect with other contributors and users, ask questions, and share ideas.
Please note that responses may come with a bit of delay, as availability can be limited during the day.
Thank you again for helping improve Guida!