mirror of
https://github.com/Dr-Blank/Vaani.git
synced 2026-01-17 23:59:32 +00:00
Make shelfsdk a submodule (#66)
* make shelfsdk a submodule * add contributing.md * add submodule info * update ci * add submodule
This commit is contained in:
parent
247413def0
commit
6c50821682
8 changed files with 204 additions and 18 deletions
167
CONTRIBUTING.md
Normal file
167
CONTRIBUTING.md
Normal file
|
|
@ -0,0 +1,167 @@
|
|||
# Contributing to Vaani
|
||||
|
||||
## Welcome Contributors! 🚀
|
||||
|
||||
We appreciate your interest in contributing to Vaani. This guide will help you navigate the contribution process effectively.
|
||||
|
||||
## How to Contribute
|
||||
|
||||
### Reporting Bugs 🐞
|
||||
|
||||
1. **Check Existing Issues**:
|
||||
- Search through the [GitHub Issues](https://github.com/Dr-Blank/Vaani/issues)
|
||||
|
||||
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
|
||||
|
||||
1. **Prerequisites**:
|
||||
- [Git](https://git-scm.com/)
|
||||
- [Flutter SDK](https://flutter.dev/)
|
||||
- Recommended IDE: [VS Code](https://code.visualstudio.com/)
|
||||
|
||||
2. **Repository Setup**:
|
||||
|
||||
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
|
||||
|
||||
# Initialize and update submodules
|
||||
git submodule update --init --recursive
|
||||
|
||||
# Install dependencies for the main app and submodules
|
||||
flutter pub get
|
||||
```
|
||||
|
||||
#### Coding Standards
|
||||
|
||||
1. **Code Style**:
|
||||
- Follow [Flutter's style guide](https://dart.dev/guides/language/effective-dart/style)
|
||||
- Use `dart format` and `flutter analyze`
|
||||
|
||||
```bash
|
||||
dart format .
|
||||
flutter analyze
|
||||
```
|
||||
|
||||
2. **Testing**:
|
||||
- Write unit and widget tests
|
||||
- Ensure tests pass for both the main app and submodules
|
||||
|
||||
```bash
|
||||
flutter test
|
||||
```
|
||||
|
||||
### Pull Request Process
|
||||
|
||||
1. **Branch Naming**:
|
||||
- Use descriptive branch names
|
||||
- Prefix with feature/, bugfix/, or docs/
|
||||
|
||||
```bash
|
||||
git checkout -b feature/add-accessibility-support
|
||||
```
|
||||
|
||||
2. **Commit Messages**:
|
||||
- Use clear, concise descriptions
|
||||
- Reference issue numbers when applicable
|
||||
- Follow conventional commits format:
|
||||
`<type>(scope): <description>`
|
||||
|
||||
3. **Pull Request Guidelines**:
|
||||
- Clearly describe the purpose of your changes
|
||||
- Include screenshots for visual changes
|
||||
- Specify if changes affect specific submodules
|
||||
- Ensure all CI checks pass
|
||||
|
||||
## Communication
|
||||
|
||||
* [Open an Issue](https://github.com/Dr-Blank/Vaani/issues)
|
||||
* [Discussion Forum](https://github.com/Dr-Blank/Vaani/discussions)
|
||||
|
||||
## Code of Conduct
|
||||
|
||||
* Be respectful and inclusive
|
||||
* Constructive feedback is welcome
|
||||
* Collaborate and support fellow contributors
|
||||
|
||||
Happy Contributing! 🌟
|
||||
Loading…
Add table
Add a link
Reference in a new issue