From 9f7eb2b8fad249d32e6bd1e01ecad00e7df262bf Mon Sep 17 00:00:00 2001 From: Mia Grenell <184569369+miacycle@users.noreply.github.com> Date: Sat, 1 Aug 2026 16:40:45 -0500 Subject: [PATCH] docs(readme): add sparse-clone instructions for contributors The qa repo aggregates Allure test results across the Meshery ecosystem; every CI run commits fresh results and regenerated per-PR reports, so a full clone is tens of GB and grows continuously. Document a blobless partial clone + sparse-checkout workflow that excludes the generated test-result and report directories (meshery-results, meshery-server-results, mesheryctl-results, kanvas-results, remote-provider-results, pr-reports) while keeping full history and everything needed to build the dashboard. Includes recipes for a fresh sparse clone, converting an existing full clone, and re-including excluded directories on demand. Signed-off-by: Mia Grenell <184569369+miacycle@users.noreply.github.com> --- README.md | 73 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/README.md b/README.md index b7c9501d14e..5495df6cbd2 100644 --- a/README.md +++ b/README.md @@ -84,6 +84,79 @@ Visit https://qa.meshery.io for the Meshery project quality assurance dashboard.

 

+
 
+ +## Cloning this repository (use a sparse clone) + +This repository is the QA dashboard's data store: it aggregates [Allure](https://allurereport.org/) test results from across the Meshery ecosystem. Every CI run commits fresh raw results and regenerated per-PR reports, so a full clone is **tens of gigabytes and grows continuously**. Almost none of that data is needed to work on the dashboard itself (its build scripts, styling, and report configuration). + +Unless you specifically need the historical test data, **clone sparsely**. You still get the full commit history and everything required to build the report, while skipping the multi-gigabyte result and report directories. + +The following directories hold generated test data and are safe to exclude (they are populated by `make *-results-sync` and `make report-build`): + +| Directory | Contents | +| --- | --- | +| `meshery-results/` | Raw Allure results for Meshery integration tests | +| `meshery-server-results/` | Raw Allure results for Meshery Server Go unit tests | +| `mesheryctl-results/` | Raw Allure results for `mesheryctl` tests | +| `kanvas-results/` | Raw Allure results for Kanvas (extension) | +| `remote-provider-results/` | Raw Allure results for the Remote Provider (extension) | +| `pr-reports/` | Generated per-PR HTML reports (the largest contributor to repo size) | + +### Recommended: sparse clone that excludes test results + +```bash +# 1. Blobless partial clone - fetches history metadata, not every file's contents +git clone --no-checkout --filter=blob:none https://github.com/meshery/qa.git +cd qa + +# 2. Check out everything EXCEPT the large test-result / report directories +git sparse-checkout set --no-cone \ + '/*' \ + '!/meshery-results/' \ + '!/meshery-server-results/' \ + '!/mesheryctl-results/' \ + '!/kanvas-results/' \ + '!/remote-provider-results/' \ + '!/pr-reports/' + +# 3. Populate the working tree +git checkout master +``` + +This yields a working tree of a few hundred MB instead of tens of GB. `--filter=blob:none` makes it a [partial clone](https://git-scm.com/docs/partial-clone), so Git transparently fetches any excluded file on demand if you ever check one out - nothing is permanently lost, and `git log`/`git blame` keep working across the full history. + +### Already have a full clone? + +Apply the same sparse rules to an existing checkout to reclaim working-tree space (this prunes the working tree only; it does not shrink `.git`): + +```bash +cd qa +git sparse-checkout set --no-cone \ + '/*' \ + '!/meshery-results/' '!/meshery-server-results/' '!/mesheryctl-results/' \ + '!/kanvas-results/' '!/remote-provider-results/' '!/pr-reports/' +``` + +### Need one of the excluded directories later? + +Re-include a directory at any time - for example, to bring back `meshery-results/`: + +```bash +git sparse-checkout add '/meshery-results/' +``` + +Or restore the full working tree entirely: + +```bash +git sparse-checkout disable +``` + +> Requires Git 2.25+ for `git sparse-checkout`; Git 2.27+ is recommended for partial-clone support. + +

 

+ +
 
## Join the Meshery community!