summaryrefslogtreecommitdiff
path: root/CONTRIBUTING.md
diff options
context:
space:
mode:
Diffstat (limited to 'CONTRIBUTING.md')
-rw-r--r--CONTRIBUTING.md83
1 files changed, 51 insertions, 32 deletions
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index 1f0c5a6..6fbf868 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -1,34 +1,38 @@
-# JustEnoughVCS Contribution Guide
+# Welcome to Contributing!
-Welcome to the JustEnoughVCS (referred to as `JVCS`) project! Before you start contributing, please read this guide carefully to ensure a smooth contribution process.
+Welcome to contributing to `JustEnoughVCS`! Before you begin, please read this guide to ensure a smooth contribution process.
-## Project Structure
-JustEnoughVCS adopts a modular architecture that separates core functionality from frontend tools into different repositories:
-### Core Repositories
-- **Core Library**: https://github.com/JustEnoughVCS/VersionControl
-- **Command Line Frontend**: https://github.com/JustEnoughVCS/CommandLine
+## 1. Choose Your Direction
-## Contribution Process
+`JustEnoughVCS` uses a modular architecture that separates core functionality from client tools into different repositories:
-### 1. Preparation
+| Repository | Link | Description |
+| ---------- | ------------------------------------------------------------ | ---------------------------- |
+| Core Logic | [Version Control](https://github.com/JustEnoughVCS/VersionControl) | Main logic, asset management |
+| Frontend | | |
+| CLI | [Command Line](https://github.com/JustEnoughVCS/CommandLine) | Glue code between core and CLI |
-**Core Library Contribution**:
-- Fork the core repository to your GitHub account
-- Clone it locally using SSH
+Please first understand which module of `JustEnoughVCS` you want to contribute to - this is important!
-**Frontend Contribution**:
-- Fork the corresponding frontend repository
-- Clone it locally using SSH
+1. If you want to optimize version control logic, add or modify core features, please go to `VersionControl`.
-### 2. Project Directory Structure
+2. If you want to optimize, modify, or add logic for frontend interfaces like command-line or GUI tools, please go to the corresponding repository.
-All frontend projects follow a unified directory structure:
+
+
+## 2. Set Up the Project
+
+Fork the repository you want to modify to your GitHub account, then clone it locally using SSH.
+
+For non-`VersionControl` parts, please also clone the core repository using HTTP into a sibling directory to ensure it can reference the `VersionControl` repository.
+
+Structure should look like this:
```
.
-├── <Frontend Name>
+├── <frontend-name>
│ ├── src/ # Frontend source code
│ ├── Cargo.toml # Rust project configuration
│ └── README.md # Project documentation
@@ -40,25 +44,40 @@ All frontend projects follow a unified directory structure:
└── README.md
```
-### 3. Development Environment Setup
-1. Ensure you have the Rust toolchain installed
-2. Clone the project locally
-3. Configure the development environment according to the README instructions in each repository
-### 4. Submitting a Pull Request
+## 3. Set Up Development Environment
+
+Development environment configuration can be found in the documentation of each repository.
+
+`JustEnoughVCS` uses different technology stacks for different frontend directions.
+
+For example: The `CommandLine` part uses Rust + Clap to build the command-line program, while the `MyVault` GUI uses Avalonia + .NET.
+
+
+
+## 4. Submit Your PR
+
+Before submitting, please ensure:
1. Create a feature branch in your forked repository
2. Implement your feature or fix
-3. Write appropriate test cases
-4. Ensure your code passes all existing tests
-5. Write clear commit messages
-6. Create a Pull Request to the main repository
+3. Write appropriate test cases and pass all tests
+4. Submit clear commit messages
+5. Create a Pull Request to the main repository
+
+### Notes
+
+- Ensure your code follows the project's coding standards
+- Sync with the latest changes from the main repository before submitting PR
+- For major changes, it's recommended to discuss the design approach in Issues first
+
+
+
+## Finally, Open Source Licenses
+
+Different `JustEnoughVCS` projects use different open source licenses. For example, the current `VersionControl` uses the very permissive MIT License (see LICENSE-MIT.md file), while `MyVault` uses the `GPLv3` license.
-## Important Notes
-- Please ensure your code follows the project's coding standards
-- Before submitting a PR, sync with the latest changes from the main repository
-- For significant changes, it's recommended to discuss the design approach in Issues first
-Thank you for contributing to the JustEnoughVCS project!
+Thank you for your support of `JustEnoughVCS`!