CONTRIBUTING.md (2334B)
1 # Contributing to Mojic 2 3 First off, thanks for taking the time to contribute! 4 5 The following is a set of guidelines for contributing to Mojic. These are mostly guidelines, not rules. Use your best judgment, and feel free to propose changes to this document in a pull request. 6 7 ## Development Workflow 8 9 We use the standard GitHub Pull Request workflow. 10 11 1. **Fork** the repository on GitHub: 12 [https://github.com/notamitgamer/mojic](https://github.com/notamitgamer/mojic) 13 14 2. **Clone** your fork locally: 15 ```bash 16 git clone [https://github.com/YOUR_USERNAME/mojic.git](https://github.com/YOUR_USERNAME/mojic.git) 17 cd mojic 18 ``` 19 20 3. **Create a Branch** for your feature or bugfix: 21 ```bash 22 git checkout -b feature/amazing-feature 23 ``` 24 25 4. **Install Dependencies**: 26 ```bash 27 npm install 28 ``` 29 30 5. **Test your changes**: 31 You can run the CLI locally using `npm start` or linking the package. 32 ```bash 33 # Run directly 34 npm start -- encode test.c 35 ``` 36 37 6. **Commit** your changes (see the style guide below). 38 39 7. **Push** to your fork: 40 ```bash 41 git push origin feature/amazing-feature 42 ``` 43 44 8. **Open a Pull Request** on the main repository (`notamitgamer/mojic`). 45 46 ## How Can I Contribute? 47 48 ### Reporting Bugs 49 * **Use a clear and descriptive title** for the issue to identify the problem. 50 * **Describe the exact steps which reproduce the problem** in as many details as possible. 51 * **Provide specific examples** to demonstrate the steps. 52 53 ### Suggesting Enhancements 54 * **Use a clear and descriptive title** for the issue to identify the suggestion. 55 * **Provide a step-by-step description of the suggested enhancement** in as many details as possible. 56 * **Explain why this enhancement would be useful** to most Mojic users. 57 58 ## Styleguides 59 60 ### Git Commit Messages 61 * Use the present tense ("Add feature" not "Added feature") 62 * Use the imperative mood ("Move cursor to..." not "Moves cursor to...") 63 * Limit the first line to 72 characters or less 64 65 ### Mojic Code Style 66 * **Cipher Logic:** Changes to `CipherEngine.js` must ensure backward compatibility with the header format if possible. 67 * **Streams:** Always use `StringDecoder` when handling text streams to prevent multi-byte emoji corruption. 68 * **Linting:** Ensure your code is clean and readable. 69 70 Happy Hacking!