Skip to content

[Collect One 1/60] Repo scaffolding (C01) - #2630

Merged
gino-m merged 8 commits into
c1from
review/c1/c01-repo-scaffolding
Oct 23, 2026
Merged

gino-m merged 8 commits into
c1from
review/c1/c01-repo-scaffolding

Conversation

@gino-m

@gino-m gino-m commented Oct 19, 2026 •

Copy link
Copy Markdown
Collaborator

Collect One review series: C01 Repo scaffolding (1/60)

Tracking issue: #2629 · Stacked on: c1 · Reviewer: @rfontanarosa
FYI: @gino-m @shobhitagarwal1612

Context

Collect One is the Kotlin Multiplatform successor to Ground: a single shared codebase for the web console, the mobile app (Android, iOS, browser), and a Spanner-backed user-data service. Forms use ProtoForms, a lossless proto3 encoding of ODK XForms.

The work happened on wip/baobab, which is now frozen at collect-one-review-base (b7fd5917). Rather than replaying its 236 iterative commits, the series lands the final tree as 60 path-disjoint slices. Each slice is a PR stacked on the one before it, so every diff shows only that slice's files. Slices merge (squash) into the integration branch c1, which starts empty. master keeps shipping Ground 1.0 and isn't touched by this series. #2629 has the full queue, dependency graph, and reviewer assignments.

This first PR adds only top-level repository files, so that the other PRs have a README, contributor guidelines, formatting tooling, and CI to build on.

What's in this PR

  • README.md: overview of Collect One, directory structure, and how the shared modules, platform hosts, server, and dev tools fit together.
  • shared/README.md: table of the shared modules (protos, core, ui, map, app, web, mobile) and their dependency layering.
  • GEMINI.md: contributor and agent rules for the repo: open-source purity, Apache 2.0 headers, KMP module placement, Material 3 / Compose Multiplatform usage, and the ProtoForms ↔ XForms compatibility boundary (ODK XForms spec first, then ODK Entities, XLSForm, OpenRosa, W3C XForms / XPath 1.0).
  • LICENSE (Apache 2.0), AUTHORS, .gitignore.
  • scripts/ktfmt.sh: pinned ktfmt (Google style) check and fix across all of the repo's independent Gradle builds.
  • scripts/buf-format.sh: pinned buf format check and fix for shared/protos.
  • .github/workflows/check.yml: CI check job (ktfmt + buf) on every PR.

Where it fits

Foundation for every other slice. Later PRs add the modules that the READMEs describe, and new modules wire their own CI jobs into check.yml (the server job comes back in S1).

Not in this PR

  • Product docs, terminology, and UX guidelines → D1
  • Proto schemas → P1–P3; Kotlin modules → K*, U*, M1, A*, W*, MB*; server → S1–S4; hosts → H1–H3; dev launchpad and e2e tests → E1–E2

Suggested reading order

  1. README.md and shared/README.md (orientation)
  2. GEMINI.md (the conventions later PRs follow)
  3. scripts/ktfmt.sh, scripts/buf-format.sh, .github/workflows/check.yml

Focus areas

  • Are the conventions in GEMINI.md (module placement, theming, ProtoForms compatibility rules) the ones we want to hold reviews to?
  • CI: is ktfmt + buf on every PR the right baseline? Module build/test jobs arrive with their modules.

Safe to skim

  • LICENSE, AUTHORS, .gitignore

Size

Source Tests Data Files
~860 0 0 9

Testing

bash scripts/ktfmt.sh --check: PASS (no Kotlin files yet). CI: check.

Deviations from the frozen tree (CI wiring only, needed because c1 starts empty):

  • check.yml: added c1 to on.push.branches.
  • check.yml: the buf step runs only once shared/protos/**/*.proto exists (scripts/buf-format.sh fails without it; protos land in P1).
  • check.yml: the server tests job is left out until the server lands (S1).

Root README, LICENSE, GEMINI.md, AUTHORS, .gitignore, ktfmt/buf scripts, and the CI `check` job. Until this merges, PRs into `c1` get no CI.

Sliced from collect-one-review-base (wip/baobab @ b7fd591). Tracking: #2629.
@gino-m gino-m added the collect-one Collect One review series (#2629) label Oct 19, 2026
@gino-m
gino-m requested a review from rfontanarosa October 19, 2026 17:07

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request establishes the initial scaffolding, documentation, and formatting scripts for the Collect One project, including the project guidelines, licensing, and shared module structure. The review feedback is highly constructive and should be addressed: it suggests adding a directory check to buf-format.sh to prevent failures when shared/protos is missing, pruning the .git directory in ktfmt.sh to optimize file searches, and correcting target platform inconsistencies for the shared/mobile module within shared/README.md.

Comment thread scripts/buf-format.sh Resolved
Comment thread scripts/ktfmt.sh Resolved
Comment thread shared/README.md Resolved
Comment thread shared/README.md Resolved
gino-m and others added 4 commits October 19, 2026 13:55
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
Co-authored-by: gemini-code-assist[bot] <176961590+gemini-code-assist[bot]@users.noreply.github.com>
gino-m added a commit that referenced this pull request Oct 20, 2026
- scripts/buf-format.sh: skip when shared/protos is absent.
- scripts/ktfmt.sh: prune .git.
- shared/README.md: shared/mobile targets are Android/JVM, WasmJS, iOS (opt-in);
  restore the webApp box line dropped by the applied diagram suggestion.
The applied suggestion replaced the shared/mobile target line and dropped the
matching '(Web Wasm/JS ONLY)' line of the webApp box next to it.
Comment thread .github/workflows/check.yml Resolved
@gino-m
gino-m merged commit 775980f into c1 Oct 23, 2026
2 checks passed
@gino-m
gino-m deleted the review/c1/c01-repo-scaffolding branch October 23, 2026 09:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

collect-one Collect One review series (#2629)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants