add submodule info

This commit is contained in:
Dr.Blank 2024-12-08 01:30:24 +05:30
parent 502e838668
commit f153a34d9b
No known key found for this signature in database
GPG key ID: 7452CC63F210A266

View file

@ -13,10 +13,80 @@ We appreciate your interest in contributing to Vaani. This guide will help you n
2. **Create a Detailed Bug Report**: 2. **Create a Detailed Bug Report**:
- Provide: - Provide:
* Exact steps to reproduce * Exact steps to reproduce
* Relevant error logs or screenshots * 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 ### Development Workflow
#### Setting Up the Development Environment #### Setting Up the Development Environment
@ -42,15 +112,12 @@ We appreciate your interest in contributing to Vaani. This guide will help you n
flutter pub get flutter pub get
``` ```
#### Coding Standards #### Coding Standards
1. **Code Style**: 1. **Code Style**:
- Follow [Flutter's style guide](https://dart.dev/guides/language/effective-dart/style) - Follow [Flutter's style guide](https://dart.dev/guides/language/effective-dart/style)
- Use `dart format` and `flutter analyze` - Use `dart format` and `flutter analyze`
```bash ```bash
dart format . dart format .
flutter analyze flutter analyze
@ -60,7 +127,6 @@ We appreciate your interest in contributing to Vaani. This guide will help you n
- Write unit and widget tests - Write unit and widget tests
- Ensure tests pass for both the main app and submodules - Ensure tests pass for both the main app and submodules
```bash ```bash
flutter test flutter test
``` ```
@ -71,7 +137,6 @@ We appreciate your interest in contributing to Vaani. This guide will help you n
- Use descriptive branch names - Use descriptive branch names
- Prefix with feature/, bugfix/, or docs/ - Prefix with feature/, bugfix/, or docs/
```bash ```bash
git checkout -b feature/add-accessibility-support git checkout -b feature/add-accessibility-support
``` ```
@ -80,7 +145,6 @@ We appreciate your interest in contributing to Vaani. This guide will help you n
- Use clear, concise descriptions - Use clear, concise descriptions
- Reference issue numbers when applicable - Reference issue numbers when applicable
- Follow conventional commits format: - Follow conventional commits format:
`<type>(scope): <description>` `<type>(scope): <description>`
3. **Pull Request Guidelines**: 3. **Pull Request Guidelines**: