# Contributing to Memola Be a part of Memola! Pull requests, bug reports, suggestions and any other contributions are welcomed and highly encouraged. ## Table of Contents - [Getting Start](#getting-started) - [Contributing](#contributing) - [Branching](#branching) - [Pull Request](#pull-request) - [Feature Request](#feature-request) - [Bug Report](#bug-report) - [Code of Conduct](#code-of-conduct) ## Getting Started Tap the "Fork" button on the top of the site. After forking, clone the forked repository to your Mac. ```bash git clone https://github.com/dscyrescotti/Memola.git cd Memola ``` Make sure you have already installed the latest Xcode and open the project. ```bash xed Memola.xcodeproj ``` Now you are good to run the project and explore the codebase. > [!IMPORTANT] > You need to change the bundle identifier and run the project on a real device that supports for Metal. > You can check Metal compatibility [here](https://support.apple.com/en-us/102894). ## Contributing We’re excited to have you contribute and be part of our project’s growth! Whether you’re fixing bugs, implementing new features, or suggesting improvements, your input is invaluable. - Explore our [project board](https://github.com/users/dscyrescotti/projects/12) to find "Todo" items, feature requests, and enhancements. Choose an item that interests you and aligns with your skills. You can always ask questions if you need clarification. - Our list of open bug issues is a great way to contribute and improve the app’s stability. Browse the "Issues" tab to find bugs labeled as “bug” or “help wanted”. - Feel free to bring your own commits for enhancements—whether it’s a new feature, optimization, or improvement, your input matters! ## Branching When contributing to Memola, please follow these branching guidelines to ensure smooth collaboration: - Always create your branches starting from the `develop` branch. - Use a clear and descriptive name that reflects the purpose of the branch, such as: - `feature/your-feature-name` for new features. - `bug/issue-description` for bug fixes. ## Pull Request Once you are happy with your changes, submit a "Pull Request" targeting the `develop` branch for review. The pull request opens with a template loaded. Fill out all fields that are relevant. The "Pull Request" should include following information: * A descriptive **title** on what changed. * A detailed **description** of changes. * If you made changes to the UI please add a **screenshot** or **video** as well. * If there is a related issue please add a **reference to the issue**. If not, create one beforehand and link it. * If your PR is still in progress mark it as **Draft**. ## Feature Request Feature requests are welcome! If you have an idea for a new feature that could enhance the app’s functionality or improve the user experience, please don’t hesitate to share it. However, please follow these steps when requesting a new feature: - Do not open a duplicate feature request. Search for existing feature requests first. If you find your feature (or one very similar) previously requested, comment on that issue. - Fully complete the provided issue template. The feature request template asks for all necessary information for us to begin a productive conversation. - Be precise about the proposed outcome of the feature and how it relates to existing features. Include implementation details if possible. ## Bug Report We appreciate your help in improving the project by reporting bugs! Your contributions play a vital role in maintaining the quality and functionality of the app. To ensure we can address issues effectively, please follow these steps when reporting a bug: - Visit the "Issues" page to see if the bug has already been reported or is currently being worked on. - If the bug hasn’t been reported, click “New Issue” and provide a clear and concise title that summarizes the problem. - Provide the detail information according to "Bug Report" template. - If you have ideas or a potential fix, feel free to share your thoughts or even submit a pull request referencing the issue. ## Code of Conduct Please review our [Code of Conduct](\CODE_OF_CONDUCT.md) to understand the guidelines for contributing respectfully and collaboratively. We value a community where everyone is treated with dignity, inclusivity, and respect, regardless of background or experience. Let’s work together to foster a positive and supportive environment for all contributors.