/ CONTRIBUTING.md
CONTRIBUTING.md
  1  # Contributing to Project
  2  
  3  Thank you for contributing to the project. Your contributions will help us take the project to the next level.
  4  
  5  This project adheres to the Contributor Covenant code of conduct. Your contribution implies that you have read and agree to this policy. Any behavior that undermines the quality of the project community, including this policy, will be warned or restricted by the maintainers.
  6  
  7  ## Issues
  8  
  9  Issues can be created on the following page: https://github.com/AI-QL/tuui/issues
 10  
 11  Alternatively, you can email the package maintainer. However, we prefer to track progress via GitHub Issues.
 12  
 13  When creating an issue, keep the following in mind:
 14  
 15  - Please specify the correct category selection based on the format of the issue (e.g., bug report, feature request).
 16  - Check to see if there are duplicate issues.
 17  - Describe in detail what is happening and what needs to be fixed. You may need additional materials such as images or video.
 18  - Use appropriate keyword titles to make it easy for others to search and understand.
 19  - Please use English in all content.
 20  - You may need to describe the environment in which the issue occurs.
 21  
 22  ## How to contribute (Pull Requests)
 23  
 24  ### Write the code you want to change
 25  
 26  Here's the process for contributing to the project:
 27  
 28  1. Clone the project (or rebase to the latest commit in the main branch)
 29  2. Install the package (if the package manager exists)
 30  3. Setting up lint or code formatter in the IDE (if your project includes a linter) and installing the relevant plugins. Some projects may use specific commands to check rules and perform formatting after module installation and before committing.
 31  4. Write the code that needs to be fixed
 32  5. Update the documentation (if it exists) or create a new one. If your project supports multilingual documentation, update the documentation for all languages. You can fill in the content in your own language and not translate it.
 33  6. Add or modify tests as needed (if test code exists). You should also verify that existing tests pass.
 34  
 35  ### Write a commit message
 36  
 37  While we don't have strict restrictions on commit messages, we recommend that you follow the recommendations below whenever possible:
 38  
 39  - Write in English.
 40  - Use the ` symbol to name functions, variables, or folders and files.
 41  - Use a format like `xxx: message (fixes #1)`. The content in parentheses is optional.
 42  - The message includes a summary of what was modified.
 43  - It's a good idea to separate multiple modifications into their own commit messages.
 44  
 45  It is recommended that you include a tag at the beginning of the commit message. Between the tag and the message, use `: ` between the tag and the message.
 46  
 47  tags conform to the ["Udacity Git Commit Message Style Guide"](https://udacity.github.io/git-styleguide). However, you are welcome to use tags not listed here for additional situations.
 48  
 49  - `feat`: A new feature
 50  - `fix`: A bug fix
 51  - `docs`: Changes to documentation
 52  - `style`: Formatting, missing semicolons, etc.; no code change
 53  - `refactor`: Refactoring production code
 54  - `test`: Adding tests, refactoring test; no production code change
 55  - `chore`: Updating build tasks, package manager configs, etc.; no production code change
 56  
 57  Informal tags:
 58  
 59  - `package`: Modifications to package settings, modules, or GitHub projects
 60  - `typo`: Fix typos
 61  
 62  ### Create a pull request
 63  
 64  When creating a pull request, keep the following in mind:
 65  
 66  - Include a specific description of what the modification is, why it needs to be made, and how it works.
 67  - Check to see if there are duplicate pull requests.
 68  - Please use English in all content.
 69  
 70  Typically, a project maintainer will review and test your code before merging it into the project. This process can take some time, and they may ask you for further edits or clarifications in the comments.
 71  
 72  ## Development Guide
 73  
 74  ### Prerequisites
 75  
 76  The following software is required to work on the spec:
 77  
 78  - Node.js 20 or above
 79  - TypeScript
 80  
 81  ## Getting Started
 82  
 83  1. Fork the repository
 84  2. Clone your fork:
 85  
 86  ```bash
 87  git clone https://github.com/YOUR-USERNAME/tuui.git
 88  cd tuui
 89  ```
 90  
 91  3. Install dependencies:
 92  
 93  ```bash
 94  npm install  # install dependencies
 95  ```
 96  
 97  ## Making Changes
 98  
 99  1. Create a new branch:
100  
101  ```bash
102  git checkout -b feature/your-feature-name
103  ```
104  
105  2. Make your changes
106  3. Lint your changes:
107  
108  ```bash
109  npm run lint:fix    # perform lint validation/fixing
110  ```
111  
112  4. Format your changes:
113  
114  ```bash
115  npm run build:pre   # apply code formatting
116  ```
117  
118  5. Run build locally (optional):
119  
120  ```bash
121  npm run build:YOUR-OS
122  ```
123  
124  > For example: `npm run build:win`
125  
126  The built packages can be found and validated in the `release` directory at your project root (the same location as `package.json`).