Skip to content

Latest commit

 

History

History
131 lines (88 loc) · 4.57 KB

File metadata and controls

131 lines (88 loc) · 4.57 KB

Contributing to Guida

👍🎉 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.


📋 Table of Contents


Getting Started

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!


Ways to Contribute

  • File a bug or feature request here

  • Help triage existing issues

  • Submit improvements to the compiler, registry, or tooling

  • 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


Expectations

  • 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!

Development Setup

For detailed instructions on setting up your environment for contributing to Guida, see the Development section of the README.

Testing Your Changes

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.

Submitting a Pull Request

  1. Fork the repo and create a new branch:

    git checkout -b my-feature
  2. Make your changes.

  3. Test locally.

  4. Push and open a Pull Request (PR) to the master branch.

Please describe:

  • What the change does
  • Why it’s needed
  • Any related issues or discussion

Style Guide

  • 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-format

Reporting Issues

If 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.


Questions?

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!