From 6c50821682d61a818097b160e04142df9a565029 Mon Sep 17 00:00:00 2001 From: "Dr.Blank" Date: Sun, 8 Dec 2024 01:52:30 +0530 Subject: [PATCH] Make shelfsdk a submodule (#66) * make shelfsdk a submodule * add contributing.md * add submodule info * update ci * add submodule --- .github/workflows/flutter_release.yaml | 8 +- .github/workflows/flutter_test.yaml | 35 ++++-- .gitignore | 5 +- .gitmodules | 3 + CONTRIBUTING.md | 167 +++++++++++++++++++++++++ pubspec.lock | 2 +- pubspec.yaml | 1 + shelfsdk | 1 + 8 files changed, 204 insertions(+), 18 deletions(-) create mode 100644 .gitmodules create mode 100644 CONTRIBUTING.md create mode 160000 shelfsdk diff --git a/.github/workflows/flutter_release.yaml b/.github/workflows/flutter_release.yaml index e5544be..259b8ea 100644 --- a/.github/workflows/flutter_release.yaml +++ b/.github/workflows/flutter_release.yaml @@ -16,13 +16,9 @@ jobs: steps: - name: Checkout repository - uses: actions/checkout@v3 - - - name: Checkout shelfsdk - uses: actions/checkout@v3 + uses: actions/checkout@v4 with: - repository: Dr-Blank/shelfsdk - path: ./shelfsdk + submodules: recursive - name: Set Up Java uses: actions/setup-java@v3.12.0 diff --git a/.github/workflows/flutter_test.yaml b/.github/workflows/flutter_test.yaml index 9c74813..3be6733 100644 --- a/.github/workflows/flutter_test.yaml +++ b/.github/workflows/flutter_test.yaml @@ -6,13 +6,40 @@ on: - main pull_request: + # Allows you to run this workflow manually from the Actions tab + workflow_dispatch: + jobs: test: runs-on: ubuntu-latest steps: - name: Checkout repository - uses: actions/checkout@v3 + uses: actions/checkout@v4 + with: + # This ensures submodules are cloned + submodules: recursive + + # Debug: Echo current directory contents + - name: List root directory contents + run: | + pwd + ls -la + + # Debug: Recursive directory structure + - name: Show full directory structure + run: | + echo "Full directory structure:" + tree -L 3 + + # Debug: Submodule status and details + - name: Check submodule status + run: | + echo "Submodule status:" + git submodule status + + echo "\nSubmodule details:" + git submodule foreach 'echo $path: && pwd && ls -la' - name: Decode android/upload.jks run: echo "${{ secrets.UPLOAD_KEYSTORE_JKS }}" | base64 --decode > android/upload.jks @@ -20,12 +47,6 @@ jobs: - name: Decode android/key.properties run: echo "${{ secrets.KEY_PROPERTIES }}" | base64 --decode > android/key.properties - - name: Checkout shelfsdk - uses: actions/checkout@v3 - with: - repository: Dr-Blank/shelfsdk - path: ./shelfsdk - - name: Set up Flutter uses: subosito/flutter-action@v2 with: diff --git a/.gitignore b/.gitignore index 362c284..58b5543 100644 --- a/.gitignore +++ b/.gitignore @@ -42,8 +42,5 @@ app.*.map.json /android/app/profile /android/app/release -# separate git repo for api sdk -/shelfsdk - # secret keys -/secrets \ No newline at end of file +/secrets diff --git a/.gitmodules b/.gitmodules new file mode 100644 index 0000000..557497e --- /dev/null +++ b/.gitmodules @@ -0,0 +1,3 @@ +[submodule "shelfsdk"] + path = shelfsdk + url = https://github.com/Dr-Blank/shelfsdk diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 0000000..ca10c43 --- /dev/null +++ b/CONTRIBUTING.md @@ -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: + `(scope): ` + +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! 🌟 \ No newline at end of file diff --git a/pubspec.lock b/pubspec.lock index a6ff204..6f2b262 100644 --- a/pubspec.lock +++ b/pubspec.lock @@ -1565,4 +1565,4 @@ packages: version: "3.1.2" sdks: dart: ">=3.5.0 <4.0.0" - flutter: ">=3.24.0" + flutter: ">=3.24.5" diff --git a/pubspec.yaml b/pubspec.yaml index 9a38a3e..5584a86 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -20,6 +20,7 @@ version: 0.0.15+6 environment: sdk: ">=3.3.4 <4.0.0" + flutter: ">=3.24.5 <4.0.0" isar_version: &isar_version ^4.0.0-dev.13 # define the version to be used diff --git a/shelfsdk b/shelfsdk new file mode 160000 index 0000000..9a9e25e --- /dev/null +++ b/shelfsdk @@ -0,0 +1 @@ +Subproject commit 9a9e25e9f019894df11760735f2d856a68974b8c