From f153a34d9b46c05475c9e13f84ae7b6b29fd77d8 Mon Sep 17 00:00:00 2001 From: "Dr.Blank" <64108942+Dr-Blank@users.noreply.github.com> Date: Sun, 8 Dec 2024 01:30:24 +0530 Subject: [PATCH] add submodule info --- CONTRIBUTING.md | 104 ++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 84 insertions(+), 20 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index f0aed60..ca10c43 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -13,10 +13,80 @@ We appreciate your interest in contributing to Vaani. This guide will help you n 2. **Create a Detailed Bug Report**: - Provide: - * Exact steps to reproduce * Relevant error logs or screenshots +### Submodule Contribution Workflow 🧩 + +#### Understanding Vaani's Submodule Structure + +Vaani uses Git submodules to manage interconnected components. This means each submodule is a separate Git repository nested within the main project. + +#### Working with Submodules + +1. **Identifying Submodules**: + - List all submodules in the project + ```bash + git submodule status + ``` + +2. **Initializing Submodules**: + ```bash + # Ensure all submodules are initialized + git submodule update --init --recursive + ``` + +3. **Contributing to a Specific Submodule**: + + a. **Navigate to Submodule Directory**: + ```bash + cd path/to/submodule + ``` + + b. **Create a Separate Branch**: + ```bash + git checkout -b feature/your-submodule-feature + ``` + + c. **Make and Commit Changes**: + ```bash + # Stage changes + git add . + + # Commit with descriptive message + git commit -m "feat(submodule): describe specific change" + ``` + + d. **Push Submodule Changes**: + ```bash + git push origin feature/your-submodule-feature + ``` + +4. **Updating Submodule References**: + After making changes to a submodule: + ```bash + # From the main repository root + git add path/to/submodule + git commit -m "Update submodule reference to latest changes" + ``` + +5. **Pulling Latest Submodule Changes**: + ```bash + # Update all submodules + git submodule update --recursive --remote + + # Or update a specific submodule + git submodule update --remote path/to/specific/submodule + ``` + +#### Submodule Contribution Best Practices + +- Always work in a feature branch within the submodule +- Ensure submodule changes do not break the main application +- Write tests for submodule-specific changes +- Update documentation if the submodule's interface changes +- Create a pull request for the submodule first, then update the main project's submodule reference + ### Development Workflow #### Setting Up the Development Environment @@ -31,17 +101,16 @@ We appreciate your interest in contributing to Vaani. This guide will help you n 1. [Fork the repo](https://github.com/Dr-Blank/Vaani/fork) 1. Clone the forked repository to your local machine ```bash - # Fork the main repository on GitHub - git clone --recursive https://github.com/[YOUR_USERNAME]/Vaani.git - cd Vaani + # Fork the main repository on GitHub + git clone --recursive https://github.com/[YOUR_USERNAME]/Vaani.git + cd Vaani - # Initialize and update submodules - git submodule update --init --recursive - - # Install dependencies for the main app and submodules - flutter pub get - ``` + # Initialize and update submodules + git submodule update --init --recursive + # Install dependencies for the main app and submodules + flutter pub get + ``` #### Coding Standards @@ -49,9 +118,7 @@ We appreciate your interest in contributing to Vaani. This guide will help you n - Follow [Flutter's style guide](https://dart.dev/guides/language/effective-dart/style) - Use `dart format` and `flutter analyze` - - -```bash + ```bash dart format . flutter analyze ``` @@ -59,9 +126,8 @@ We appreciate your interest in contributing to Vaani. This guide will help you n 2. **Testing**: - Write unit and widget tests - Ensure tests pass for both the main app and submodules - -```bash + ```bash flutter test ``` @@ -70,9 +136,8 @@ We appreciate your interest in contributing to Vaani. This guide will help you n 1. **Branch Naming**: - Use descriptive branch names - Prefix with feature/, bugfix/, or docs/ - -```bash + ```bash git checkout -b feature/add-accessibility-support ``` @@ -80,8 +145,7 @@ We appreciate your interest in contributing to Vaani. This guide will help you n - Use clear, concise descriptions - Reference issue numbers when applicable - Follow conventional commits format: - - `(scope): ` + `(scope): ` 3. **Pull Request Guidelines**: - Clearly describe the purpose of your changes @@ -100,4 +164,4 @@ We appreciate your interest in contributing to Vaani. This guide will help you n * Constructive feedback is welcome * Collaborate and support fellow contributors -Happy Contributing! 🌟 +Happy Contributing! 🌟 \ No newline at end of file