mirror of
https://github.com/danny-avila/LibreChat.git
synced 2025-12-17 08:50:15 +01:00
67 lines
3.1 KiB
Markdown
67 lines
3.1 KiB
Markdown
|
|
---
|
||
|
|
title: 🙌 Beginner's Guide to Contributions
|
||
|
|
weight: -10
|
||
|
|
---
|
||
|
|
# How to Contribute in a Quick and Easy Way
|
||
|
|
|
||
|
|
## Installation of Tools
|
||
|
|
|
||
|
|
1. [Git](https://git-scm.com/downloads) is essential, the first thing to download.
|
||
|
|
2. [Git LFS](https://git-lfs.com/) can be useful for uploading files with larger sizes.
|
||
|
|
3. [Github Desktop](https://desktop.github.com/) - I use it only for UI; I don't recommend using it for pushing or other actions.
|
||
|
|
|
||
|
|
## How to Use?
|
||
|
|
|
||
|
|
This will be a somewhat raw text, but I'll try to be as clear as possible.
|
||
|
|
|
||
|
|
I recommend installing the following extensions in VS Code:
|
||
|
|
|
||
|
|
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
|
||
|
|
- [ESLint](https://marketplace.visualstudio.com/items?itemName=dbaeumer.vscode-eslint)
|
||
|
|
- [GitLens](https://marketplace.visualstudio.com/items?itemName=eamodio.gitlens)
|
||
|
|
|
||
|
|
### Example of a Pull Request (PR)
|
||
|
|
|
||
|
|
Let's say I want to add another page for an API Panel.
|
||
|
|
|
||
|
|
1. Open GitHub and select Danny's fork.
|
||
|
|
2. First, make sure that the main branch is clean with no commits and up to date.
|
||
|
|

|
||
|
|
3. Open "View all my branches" and create a new branch with a descriptive name for your task. For example: "ApiPanel."
|
||
|
|
4. In GitHub Desktop, select the branch you just created.
|
||
|
|

|
||
|
|
5. Start modifying the code, and when you finish a part, commit the changes.
|
||
|
|
Example of commits:
|
||
|
|
- commit1: Created the frontend
|
||
|
|
- commit2: Fixed a bug in variable export
|
||
|
|
- commit3: Removed unnecessary comments and added translation support
|
||
|
|
- and so on...
|
||
|
|
|
||
|
|
## Testing
|
||
|
|
|
||
|
|
While testing the code, if you're working with the frontend, it might be frustrating to run `npm run frontend` and `npm run backend` every time. Instead, use `npm run frontend:dev` to see real-time changes on port 3090 (really!).
|
||
|
|
|
||
|
|
> Note: You must run `npm run frontend` once before you can use `npm run frontend:dev`
|
||
|
|
|
||
|
|
### How?
|
||
|
|
|
||
|
|
- `git add *` adds all files to be committed.
|
||
|
|
- `git commit -m "name-of-your-commit"` creates a commit.
|
||
|
|
- `git push` uploads the changes.
|
||
|
|
|
||
|
|
Before doing all this, I recommend using GitHub Desktop to see what you've changed.
|
||
|
|

|
||
|
|
|
||
|
|
If `git commit` fails due to ESLint errors, read the error message and understand what's wrong. It could be an unused variable or other issues.
|
||
|
|
|
||
|
|
### Possible Various Problems
|
||
|
|
|
||
|
|
If you have the main branch with many commits and don't know what to do, follow this simple guide:
|
||
|
|
|
||
|
|
⚠️ Please do this only when you have no active PRs or when you're not working on the project:
|
||
|
|
|
||
|
|
1. Do a pull origin and in the terminal write `git log` to identify how many commits you are behind.
|
||
|
|
2. Use `git rebase -i HEAD~2`, where 2 represents the number of commits you need to go back. If you need to go back 100 commits, use `git rebase -i HEAD~100`.
|
||
|
|
3. In the editor, change the "pick" for the two commits to "drop," save with "esc," then type `:wq` and press "Enter."
|
||
|
|
4. Finally, run `git push --force origin main`.
|