4.9 KiB
Contributing to Nyanpasu
Welcome to Nyanpasu development!
To ensure the quality and stability of the project, please read this guide carefully. Even if you are new, you can follow these steps to set up the development environment, write code, and submit contributions.
1. Development Guidelines
Before submitting code, please follow these rules:
1. Code Style Checks
| Language | Tools |
|---|---|
| JavaScript / TypeScript | ESLint, Prettier, Stylelint |
| Rust | Clippy, Rustfmt |
- ⚠️ Ensure there are no style errors before committing
- ❌ Do not use
git commit -nor skip checks, CI will automatically enforce style validation
2. Submission Requirements
- Avoid submitting useless code, files, or folders
- For major refactors or new features, open an Issue first for discussion
- If unsure about implementation or have questions, communicate in Issue or PR
3. Communication & Collaboration
- Respect others' code and opinions
- Keep commit messages and PR descriptions clear
- All discussions should be on GitHub for transparency and traceability
2. Environment Requirements
To ensure the project runs correctly locally, the following dependencies are required.
1. Required Dependencies
| Tool | Version | Link | Notes |
|---|---|---|---|
| Rust | ≥ 1.78 | Official Install | Stable version; use MSVC toolchain on Windows |
| Node.js | ≥ 20 LTS | Official Site | Install LTS or Latest version |
| pnpm | ≥ 9 | Official Documentation | Node.js package manager |
| git | Latest | Official Site | Version control |
2. Build Dependencies
| Tool | Link | Notes |
|---|---|---|
| cmake | Official Site | Required by zip crate |
| llvm | Official Site | Required by rquickjs or rocksdb |
| patch | Windows Installation Guide | Required by rquickjs |
3. Windows Special Requirements
- Use Administrator privileges when opening the project for the first time;
patchrequires admin rights - Recommended to install
gsudo(viascoop,choco, orwinget) - Always use the MSVC toolchain on Windows
- 💡 Admin privileges are only needed for initial setup; normal terminal is fine for daily development
3. Pre-Development Setup
Before starting development, initialize the environment and download required resources.
1. Install Frontend Dependencies
pnpm i
This installs all frontend dependencies including UI components, toolchains, and testing tools.
2. Download Core & Resource Files
pnpm prepare:check
This command downloads binaries like
sidecarandresourceto ensure the project runs properly
If files are missing or you want to force update:
pnpm prepare:check --force
💡 Tip: Configure terminal proxy if network issues occur
4. Start Development Environment
The project provides two types of development instances:
1. Dedicated Development Instance (Recommended)
pnpm dev:diff
Suitable for daily development and debugging; changes do not affect the release version
2. Release-Like Development Instance
pnpm dev
Behaves similarly to the official release; useful to test overall functionality
5. Commit Code & Create PR
1. Pull Latest Code
git pull origin main
2. Create a New Branch
git checkout -b feature/my-feature
⚠️ Avoid developing directly on
main
3. Pre-Commit Checks
- Ensure code style is correct
- All unit tests pass
- No useless files
4. Commit and Push
git add .
git commit -m "feat: add my feature"
git push origin feature/my-feature
5. Create a PR
- Choose
mainas the target branch - Briefly describe the feature or changes
- Link related Issue if available
💡 Tips:
- Keep each commit focused on a single feature or issue; avoid large, messy commits
- PR descriptions should be clear so reviewers immediately understand the changes