Repository navigation
[Collect One 1/60] Repo scaffolding (C01) - #2630
Merged
Merged
Conversation
4 of 72 tasks
Contributor
There was a problem hiding this comment.
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.
This was referenced Oct 19, 2026
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.
gino-m
commented
Oct 21, 2026
rfontanarosa
approved these changes
Oct 23, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Collect One review series: C01 Repo scaffolding (1/60)
Tracking issue: #2629 · Stacked on:
c1· Reviewer: @rfontanarosaFYI: @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 atcollect-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 branchc1, which starts empty.masterkeeps 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: pinnedbuf formatcheck and fix forshared/protos..github/workflows/check.yml: CIcheckjob (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
Suggested reading order
README.mdandshared/README.md(orientation)GEMINI.md(the conventions later PRs follow)scripts/ktfmt.sh,scripts/buf-format.sh,.github/workflows/check.ymlFocus areas
GEMINI.md(module placement, theming, ProtoForms compatibility rules) the ones we want to hold reviews to?Safe to skim
LICENSE,AUTHORS,.gitignoreSize
Testing
bash scripts/ktfmt.sh --check: PASS (no Kotlin files yet). CI:check.Deviations from the frozen tree (CI wiring only, needed because
c1starts empty):check.yml: addedc1toon.push.branches.check.yml: the buf step runs only onceshared/protos/**/*.protoexists (scripts/buf-format.shfails without it; protos land in P1).check.yml: theserver testsjob is left out until the server lands (S1).