Some rewording

This commit is contained in:
sxyazi 2024-05-18 17:42:58 +08:00
parent 4dc21053bf
commit 0a39087852
No known key found for this signature in database

View file

@ -1,7 +1,11 @@
# Contributing to Yazi
Thank you for your interest in contributing to Yazi! We welcome contributions in the form of bug reports, feature requests, documentation improvements, and code changes. This guide will help you understand how to contribute to the project.
Thank you for your interest in contributing to Yazi! We welcome contributions in the form of bug reports, feature requests, documentation improvements, and code changes.
This guide will help you understand how to contribute to the project.
## Table of Contents
1. [Getting Started](#getting-started)
2. [Project Structure](#project-structure)
3. [Development Setup](#development-setup)
@ -10,114 +14,141 @@ Thank you for your interest in contributing to Yazi! We welcome contributions in
6. [Communication](#communication)
## Getting Started
### Prerequisites
Before you begin, ensure you have met the following requirements:
- Rust installed on your machine. You can download it from [rustup.rs](https://rustup.rs).
- Familiarity with Git and GitHub.
### Fork the Repository
1. Fork the [yazi repository](https://github.com/sxyazi/yazi) to your GitHub account.
1. Fork the [Yazi repository](https://github.com/sxyazi/yazi) to your GitHub account.
2. Clone your fork to your local machine:
```sh
git clone https://github.com/<your-username>/yazi.git
```
3. Set up the upstream remote:
```sh
git remote add upstream https://github.com/sxyazi/yazi.git
```
## Project Structure
A brief overview of the project's structure:
```bash
yazi/
├── assets/ # Assets like images and fonts
├── nix/ # Nix-related configurations
├── scripts/ # Helper scripts
├── scripts/ # Helper scripts used by CI/CD
├── snap/ # Snapcraft configuration
├── yazi-adaptor/ # Adaptor module
├── yazi-boot/ # Boot module
├── yazi-cli/ # CLI module
├── yazi-config/ # Configuration module
├── yazi-core/ # Core functionalities
├── yazi-dds/ # Data distribution service
├── yazi-fm/ # File management module
├── yazi-plugin/ # Plugin system
├── yazi-proxy/ # Proxy module
├── yazi-scheduler/ # Task scheduler
├── yazi-shared/ # Shared utilities
├── yazi-adaptor/ # Yazi image adaptor
├── yazi-boot/ # Yazi bootstrapper
├── yazi-cli/ # Yazi command-line interface
├── yazi-config/ # Yazi configuration file parser
├── yazi-core/ # Yazi core logic
├── yazi-dds/ # Yazi data distribution service
├── yazi-fm/ # Yazi File Manager
├── yazi-plugin/ # Yazi plugin system
├── yazi-proxy/ # Yazi event proxy
├── yazi-scheduler/ # Yazi task scheduler
├── yazi-shared/ # Yazi shared library
├── .github/ # GitHub-specific files and workflows
├── Cargo.toml # Rust project configuration
├── Cargo.toml # Rust workflow configuration
└── README.md # Project overview
```
## Development Setup
1. Ensure Rust is installed:
1. Ensure the latest stable Rust is installed:
```sh
rustc --version
cargo --version
```
2. Build the project:
```sh
cargo build
```
3. Run the tests:
```sh
cargo test
```
4. Format the code (requires the nightly version of `rustfmt`):
4. Format the code (requires `rustfmt` nightly):
```sh
rustup component add rustfmt --toolchain nightly
rustfmt +nightly **/*.rs
```
## How to Contribute
### Reporting Bugs
If you find a bug, please create an issue
If you find a bug, please file an issue.
### Suggesting Features
If you have a feature request, please create an issue
If you have a feature request, please file an issue.
### Improving Documentation
Yazi's documentation repository is located at [yazi-rs.github.io](https://github.com/yazi-rs/yazi-rs.github.io). Contributions related to documentation need to be made within this repository.
Yazi's documentation placed at [yazi-rs/yazi-rs.github.io](https://github.com/yazi-rs/yazi-rs.github.io), contributions related to documentation need to be made within this repository.
### Submitting Code Changes
1. Create a new branch for your changes:
```sh
git checkout -b feature/your-feature-name
git checkout -b your-branch-name
```
2. Make your changes. Ensure that your code follows the project's coding standards and passes all tests.
2. Make your changes. Ensure that your code follows the project's [coding style](https://github.com/sxyazi/yazi/blob/main/rustfmt.toml) and passes all tests.
3. Commit your changes with a descriptive commit message:
```sh
git commit -m "Add feature: description of the feature"
git commit -m "feat: an awesome feature"
```
4. Push your changes to your fork:
```sh
git push origin feature/your-feature-name
git push origin your-branch-name
```
## Pull Request Process
1. Ensure your fork is up-to-date with the upstream repository:
```sh
git fetch upstream
git checkout main
git merge upstream/main
```
2. Rebase your feature branch onto the main branch:
```sh
git checkout feature/your-feature-name
git checkout your-branch-name
git rebase main
```
3. Create a pull request to the `main` branch of the upstream repository. Follow the pull request template and ensure that:
- Your code passes all tests and lints.
- Your pull request description clearly explains the changes and why they are needed.
4. Address any review comments. Make sure to push updates to the same branch on your fork.
## Communication
- Discord Server (English mainly): https://discord.gg/qfADduSdJu
- Telegram Group (Chinese mainly): https://t.me/yazi_rs
- For general discussion, use the [Discussions](https://github.com/sxyazi/yazi/discussions) section.
Thank you for your interest in contributing to Yazi!