|
| 1 | +# Contributing to Guida |
| 2 | + |
| 3 | +:+1::tada: First off, thank you for your interest in contributing to Guida! :tada::+1: |
| 4 | + |
| 5 | +This document outlines guidelines and best practices for contributing code, ideas, or feedback to the project. |
| 6 | + |
| 7 | +--- |
| 8 | + |
| 9 | +## 📋 Table of Contents |
| 10 | + |
| 11 | +- [Getting Started](#getting-started) |
| 12 | +- [Ways to Contribute](#ways-to-contribute) |
| 13 | +- [Expectations](#expectations) |
| 14 | +- [Development Setup](#development-setup) |
| 15 | +- [Testing Your Changes](#testing-your-changes) |
| 16 | +- [Submitting a Pull Request](#submitting-a-pull-request) |
| 17 | +- [Style Guide](#style-guide) |
| 18 | +- [Reporting Issues](#reporting-issues) |
| 19 | +- [Questions?](#questions) |
| 20 | + |
| 21 | +--- |
| 22 | + |
| 23 | +## Getting Started |
| 24 | + |
| 25 | +Guida is a functional programming language that builds upon the solid foundation of Elm, offering |
| 26 | +backward compatibility with all existing Elm 0.19.1 projects. |
| 27 | + |
| 28 | +Find out more about our [Vision](README.md#vision) on the project [README](README.md). |
| 29 | + |
| 30 | +We welcome contributions of all kinds, code, documentation, bug reports, feedback, and ideas! |
| 31 | + |
| 32 | +If you're unsure about where to start or how to approach an issue, feel free to open a [discussion](https://github.com/guida-lang/compiler/discussions) |
| 33 | +or reach out directly on Elm Slack (@deciojf). We’re happy to help point you in the right direction! |
| 34 | + |
| 35 | +--- |
| 36 | + |
| 37 | +## Ways to Contribute |
| 38 | + |
| 39 | +- File a bug or feature request [here](https://github.com/guida-lang/compiler/issues) |
| 40 | +- Help triage existing issues |
| 41 | +- Submit improvements to the [compiler](https://github.com/guida-lang/compiler), [registry](https://github.com/guida-lang/package-registry), or [tooling](https://github.com/guida-lang) |
| 42 | +- Improve documentation or examples |
| 43 | +- Try out Guida and give us feedback |
| 44 | +- Look for [good first issues](https://github.com/guida-lang/compiler/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22) if you're just getting started |
| 45 | +- Port known issues or improvements from the Elm ecosystem |
| 46 | + |
| 47 | + Guida builds on projects like [elm/compiler](https://github.com/elm/compiler), [elm-format](https://github.com/avh4/elm-format), [elm-test](https://github.com/elm-explorations/test), and [elm-json](https://github.com/zwilias/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 |
| 48 | + |
| 49 | +--- |
| 50 | + |
| 51 | +## Expectations |
| 52 | + |
| 53 | +- We aim to respond to contributions within a few days. |
| 54 | +- All changes should align with the project's vision: stability, compatibility with Elm, and community evolution. |
| 55 | +- PRs should be focused and include a clear description. |
| 56 | +- Don’t worry if your PR needs changes — we’ll help you get it over the finish line! |
| 57 | + |
| 58 | +--- |
| 59 | + |
| 60 | +## Development Setup |
| 61 | + |
| 62 | +For detailed instructions on setting up your environment for contributing to Guida, see the [Development](README.md#development) section of the README. |
| 63 | + |
| 64 | +## Testing Your Changes |
| 65 | + |
| 66 | +We aim for stability and consistency. If you’re adding features or fixing bugs, please: |
| 67 | + |
| 68 | +- Write tests if applicable. |
| 69 | +- Consider all 3 outputs of the project: bin (command line), browser and node (API). |
| 70 | +- Make sure to test all three output targets of the project: |
| 71 | + - CLI (bin) — the command-line interface |
| 72 | + - Browser — compiled for browser usage |
| 73 | + - Node — used as a Node.js API |
| 74 | +- Make sure existing tests pass: see the [Run tests](README.md#run-tests) section of the README. |
| 75 | + |
| 76 | +--- |
| 77 | + |
| 78 | +## Submitting a Pull Request |
| 79 | + |
| 80 | +1. Fork the repo and create a new branch: |
| 81 | + ```sh |
| 82 | + git checkout -b my-feature |
| 83 | + ``` |
| 84 | + |
| 85 | +2. Make your changes. |
| 86 | +3. Test locally. |
| 87 | +4. Push and open a Pull Request (PR) to the `master` branch. |
| 88 | + |
| 89 | +Please describe: |
| 90 | +- What the change does |
| 91 | +- Why it’s needed |
| 92 | +- Any related issues or discussion |
| 93 | + |
| 94 | +--- |
| 95 | + |
| 96 | +## Style Guide |
| 97 | + |
| 98 | +- Follow the existing code style |
| 99 | +- Keep Elm code idiomatic and readable |
| 100 | +- Use descriptive names and add comments where helpful |
| 101 | + |
| 102 | +For formatting Elm: |
| 103 | + |
| 104 | +```sh |
| 105 | +npm run elm-format |
| 106 | +``` |
| 107 | + |
| 108 | +--- |
| 109 | + |
| 110 | +## Reporting Issues |
| 111 | + |
| 112 | +If you encounter a bug or unexpected behavior: |
| 113 | +- Search [existing issues](https://github.com/guida-lang/compiler/issues) |
| 114 | +- If not found, open a new one with: |
| 115 | + - Steps to reproduce |
| 116 | + - Expected and actual behavior |
| 117 | + - Environment details |
| 118 | + |
| 119 | +Some issues might relate to other repositories under the [guida-lang](https://github.com/guida-lang) (such as the package registry). |
| 120 | +If you're unsure where the issue belongs, feel free to post anyway — we’ll help direct it to the right place. |
| 121 | + |
| 122 | +--- |
| 123 | + |
| 124 | +## Questions? |
| 125 | + |
| 126 | +You can usually find me on the [Elm Slack](https://elmlang.slack.com/). Feel free to reach out directly to @deciojf with any questions or feedback. |
| 127 | + |
| 128 | +Please note that responses may come with a bit of delay, as availability can be limited during the day. |
| 129 | + |
| 130 | +Thank you again for helping improve Guida! |
0 commit comments