|
| 1 | +# Contributing to Glass |
| 2 | + |
| 3 | +Thank you for considering contributing to **Glass by Pickle**! Contributions make the open-source community vibrant, innovative, and collaborative. We appreciate every contribution you make—big or small. |
| 4 | + |
| 5 | +## 📌 Contribution Guidelines |
| 6 | + |
| 7 | +### 👥 Avoid Work Duplication |
| 8 | + |
| 9 | +Before creating an issue or submitting a pull request (PR), please check existing [Issues](https://github.com/pickle-com/glass/issues) and [Pull Requests](https://github.com/pickle-com/glass/pulls) to prevent duplicate efforts. |
| 10 | + |
| 11 | +### ✅ Start with Approved Issues |
| 12 | + |
| 13 | +- **Feature Requests**: Please wait for approval from core maintainers before starting work. Issues needing approval are marked with the `🚨 needs approval` label. |
| 14 | +- **Bugs & Improvements**: You may begin immediately without explicit approval. |
| 15 | + |
| 16 | +### 📝 Clearly Document Your Work |
| 17 | + |
| 18 | +Provide enough context and detail to allow easy understanding. Issues and PRs should clearly communicate the problem or feature and stand alone without external references. |
| 19 | + |
| 20 | +### 💡 Summarize Pull Requests |
| 21 | + |
| 22 | +Include a brief summary at the top of your PR, describing the intent and scope of your changes. |
| 23 | + |
| 24 | +### 🔗 Link Related Issues |
| 25 | + |
| 26 | +Use GitHub keywords (`Closes #123`, `Fixes #456`) to auto-link and close issues upon PR merge. |
| 27 | + |
| 28 | +### 🧪 Include Testing Information |
| 29 | + |
| 30 | +Clearly state how your changes were tested. |
| 31 | + |
| 32 | +> Example: |
| 33 | +> "Tested locally on macOS 14, confirmed all features working as expected." |
| 34 | +
|
| 35 | +### 🧠 Future-Proof Your Descriptions |
| 36 | + |
| 37 | +Document trade-offs, edge cases, and temporary workarounds clearly to help future maintainers understand your decisions. |
| 38 | + |
| 39 | +--- |
| 40 | + |
| 41 | +## 🔖 Issue Priorities |
| 42 | + |
| 43 | +| Issue Type | Priority | |
| 44 | +|----------------------------------------------------|---------------------| |
| 45 | +| Minor enhancements & non-core feature requests | 🟢 Low Priority | |
| 46 | +| UX improvements & minor bugs | 🟡 Medium Priority | |
| 47 | +| Core functionalities & essential features | 🟠 High Priority | |
| 48 | +| Critical bugs & breaking issues | 🔴 Urgent | |
| 49 | +| |
| 50 | + |
| 51 | + |
| 52 | +# Developing |
| 53 | + |
| 54 | +### Prerequisites |
| 55 | + |
| 56 | +Ensure the following are installed: |
| 57 | +- [Node.js v20.x.x](https://nodejs.org/en/download) |
| 58 | +- [Python](https://www.python.org/downloads/) |
| 59 | +- (Windows users) [Build Tools for Visual Studio](https://visualstudio.microsoft.com/downloads/) |
| 60 | + |
| 61 | +Ensure you're using Node.js version 20.x.x to avoid build errors with native dependencies. |
| 62 | + |
| 63 | +```bash |
| 64 | +# Check your Node.js version |
| 65 | +node --version |
| 66 | + |
| 67 | +# If you need to install Node.js 20.x.x, we recommend using nvm: |
| 68 | +# curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash |
| 69 | +# nvm install 20 |
| 70 | +# nvm use 20 |
| 71 | +``` |
| 72 | + |
| 73 | +## Setup and Build |
| 74 | + |
| 75 | +```bash |
| 76 | +npm run setup |
| 77 | +``` |
| 78 | +Please ensure that you can make a full production build before pushing code. |
| 79 | + |
| 80 | + |
| 81 | + |
| 82 | +## Linting |
| 83 | + |
| 84 | +```bash |
| 85 | +npm run lint |
| 86 | +``` |
| 87 | + |
| 88 | +If you get errors, be sure to fix them before committing. |
| 89 | + |
| 90 | + |
| 91 | +## Making a Pull Request |
| 92 | + |
| 93 | +- Be sure to [check the "Allow edits from maintainers" option](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/allowing-changes-to-a-pull-request-branch-created-from-a-fork) when creating your PR. (This option isn't available if you're [contributing from a fork belonging to an organization](https://github.com/orgs/community/discussions/5634)) |
| 94 | +- If your PR refers to or fixes an issue, add `refs #XXX` or `fixes #XXX` to the PR description. Replace `XXX` with the respective issue number. See more about [linking a pull request to an issue](https://docs.github.com/en/issues/tracking-your-work-with-issues/linking-a-pull-request-to-an-issue). |
| 95 | +- Lastly, make sure to keep your branches updated (e.g., click the `Update branch` button on the GitHub PR page). |
0 commit comments