Remove formplayer branch infrastructure#1529
Conversation
WalkthroughThis change consolidates the commcare-core workflow from a dual-branch ( Changes
Estimated code review effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
📝 Coding Plan
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 2
🧹 Nitpick comments (2)
docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md (2)
13-13: Fix heading level hierarchy.The document jumps from h1 (
# Formplayer Branch...) directly to h3 (### Task 1), skipping h2. Markdown best practices require incrementing heading levels by one at a time.📋 Suggested fix for heading structure
Change all task headings from
###to##:-### Task 1: Update formplayer submodule to track master +## Task 1: Update formplayer submodule to track masterApply the same change to Tasks 2-10.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md` at line 13, The document uses h3 headings for tasks which breaks the heading hierarchy after the top-level title; update "### Task 1: Update formplayer submodule to track master" and all other task headings (Tasks 2-10) to h2 (i.e., change each leading "###" to "##") so headings increment one level at a time and the structure is consistent.
32-38: Add language identifiers to code fences.Several fenced code blocks (lines 32-38, 36-38, and 339) lack language identifiers, which reduces syntax highlighting and readability. These blocks contain plain text output and could use
textordiffas appropriate.🎨 Suggested additions
For the blocks showing what to change:
-``` +```text branch = formplayer```diff -``` +```text branch = masterAnd for line 339: ```diff -``` +```text</details> <details> <summary>🤖 Prompt for AI Agents</summary>Verify each finding against the current code and only fix it if needed.
In
@docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.mdaround
lines 32 - 38, Multiple fenced code blocks around the change from "branch =
formplayer" to "branch = master" (notably the blocks at 32-38, 36-38, and the
block at 339) lack language identifiers; update each opening triple-backtick to
include an appropriate language (use "text" for plain output and "diff" if
showing a change) so the blocks around the "branch = formplayer" / "branch =
master" examples and the block at line 339 get syntax highlighting.</details> </blockquote></details> </blockquote></details> <details> <summary>🤖 Prompt for all review comments with AI agents</summary>Verify each finding against the current code and only fix it if needed.
Inline comments:
In@docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md:
- Line 230: The documentation references the
trigger-downstreamjob as being
at "lines 40-122" in build.yml which is incorrect; update the plan text to
either the actual range "lines 31-112" or remove the hard-coded line numbers to
avoid drift. Locate the mention of thetrigger-downstreamjob in this doc
(search for "trigger-downstream" and the quoted line range) and replace the
erroneous range with the corrected range or a note like "unchanged in build.yml"
to keep thetrigger-downstreamreference accurate and robust.In
@docs/superpowers/specs/2026-03-19-formplayer-branch-elimination-design.md:
- Line 38: The spec's bullet that reads "
.github/dependabot.yml— remove
the second gradle config block targeting theformplayerbranch (lines 10-17)"
references non-existent line numbers; update that sentence to accurately
describe the change by either (A) removing the "(lines 10-17)" fragment and
stating "remove the duplicate Gradle config block targeting the formplayer
branch" or (B) replace the line range with the correct current line numbers/byte
offsets as observed in the actual.github/dependabot.ymlfile; ensure the
edited text still clearly identifies the target as the second/duplicate Gradle
config block for the formplayer branch.
Nitpick comments:
In@docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md:
- Line 13: The document uses h3 headings for tasks which breaks the heading
hierarchy after the top-level title; update "### Task 1: Update formplayer
submodule to track master" and all other task headings (Tasks 2-10) to h2 (i.e.,
change each leading "###" to "##") so headings increment one level at a time and
the structure is consistent.- Around line 32-38: Multiple fenced code blocks around the change from "branch
= formplayer" to "branch = master" (notably the blocks at 32-38, 36-38, and the
block at 339) lack language identifiers; update each opening triple-backtick to
include an appropriate language (use "text" for plain output and "diff" if
showing a change) so the blocks around the "branch = formplayer" / "branch =
master" examples and the block at line 339 get syntax highlighting.</details> <details> <summary>🪄 Autofix (Beta)</summary> Fix all unresolved CodeRabbit comments on this PR: - [ ] <!-- {"checkboxId": "4b0d0e0a-96d7-4f10-b296-3a18ea78f0b9"} --> Push a commit to this branch (recommended) - [ ] <!-- {"checkboxId": "ff5b1114-7d8c-49e6-8ac1-43f82af23a33"} --> Create a new PR with the fixes </details> --- <details> <summary>ℹ️ Review info</summary> <details> <summary>⚙️ Run configuration</summary> **Configuration used**: Repository UI **Review profile**: CHILL **Plan**: Pro **Run ID**: `edde0573-f8ba-4be5-98c7-b372185b4b20` </details> <details> <summary>📥 Commits</summary> Reviewing files that changed from the base of the PR and between 3b9c3eaace9e7dc9166ff32bffb2f30d1505d392 and 9a1e8de847140c31892c2bb9b9443826440a1737. </details> <details> <summary>📒 Files selected for processing (8)</summary> * `.github/PULL_REQUEST_TEMPLATE.md` * `.github/contributing.md` * `.github/dependabot.yml` * `.github/workflows/build.yml` * `.github/workflows/duplicate_pr.yml` * `docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md` * `docs/superpowers/specs/2026-03-19-formplayer-branch-elimination-design.md` * `scripts/duplicate_pr.py` </details> <details> <summary>💤 Files with no reviewable changes (5)</summary> * .github/PULL_REQUEST_TEMPLATE.md * .github/workflows/build.yml * .github/dependabot.yml * .github/workflows/duplicate_pr.yml * scripts/duplicate_pr.py </details> </details> <!-- This is an auto-generated comment by CodeRabbit for review status -->
| run: gradle build | ||
| ``` | ||
|
|
||
| The `trigger-downstream` job (lines 40-122) should be **unchanged**. |
There was a problem hiding this comment.
Minor line number discrepancy for trigger-downstream job.
The plan states the trigger-downstream job is at "lines 40-122" in build.yml, but the context shows it's actually at lines 31-112. This is a minor documentation inconsistency that could cause confusion when verifying the changes.
📝 Suggested correction
-The `trigger-downstream` job (lines 40-122) should be **unchanged**.
+The `trigger-downstream` job (lines 31-112) should be **unchanged**.📝 Committable suggestion
‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.
| The `trigger-downstream` job (lines 40-122) should be **unchanged**. | |
| The `trigger-downstream` job (lines 31-112) should be **unchanged**. |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/superpowers/plans/2026-03-19-formplayer-branch-elimination.md` at line
230, The documentation references the `trigger-downstream` job as being at
"lines 40-122" in build.yml which is incorrect; update the plan text to either
the actual range "lines 31-112" or remove the hard-coded line numbers to avoid
drift. Locate the mention of the `trigger-downstream` job in this doc (search
for "trigger-downstream" and the quoted line range) and replace the erroneous
range with the corrected range or a note like "unchanged in build.yml" to keep
the `trigger-downstream` reference accurate and robust.
| - Remove `FORMPLAYER_GRADLE_VERSION` and `FORMPLAYER_JAVA_VERSION` env vars (lines 19-20) | ||
| - Remove the "Set environment for Formplayer" conditional step (lines 23-27) | ||
|
|
||
| - **`.github/dependabot.yml`** — remove the second gradle config block targeting the `formplayer` branch (lines 10-17) |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Check current state of dependabot.yml
cat .github/dependabot.yml
echo "---"
echo "Line count: $(wc -l < .github/dependabot.yml)"Repository: dimagi/commcare-core
Length of output: 219
Correct the dependabot.yml line number reference in the design spec.
The spec references removing "lines 10-17" from .github/dependabot.yml, but the file currently contains only 8 lines with a single gradle config block. Lines 10-17 do not exist. Either the line numbers are incorrect, or the spec must clarify what state of the file it assumes.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@docs/superpowers/specs/2026-03-19-formplayer-branch-elimination-design.md` at
line 38, The spec's bullet that reads "**`.github/dependabot.yml`** — remove the
second gradle config block targeting the `formplayer` branch (lines 10-17)"
references non-existent line numbers; update that sentence to accurately
describe the change by either (A) removing the "(lines 10-17)" fragment and
stating "remove the duplicate Gradle config block targeting the formplayer
branch" or (B) replace the line range with the correct current line numbers/byte
offsets as observed in the actual `.github/dependabot.yml` file; ensure the
edited text still clearly identifies the target as the second/duplicate Gradle
config block for the formplayer branch.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Documents the two-phase approach to remove formplayer branch infrastructure from commcare-core and update formplayer's submodule to track master. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Clarifies that the cross-repo CI dispatch job is unaffected by formplayer branch removal since it gates on PR events, not branches. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Add phases for formplayer README, staging-branches config, commcare-hq docs, and closing the legacy Android test PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
10 tasks across 4 repos: formplayer submodule/README, commcare-core workflow/config/docs cleanup, staging-branches config, commcare-hq docs, and closing the legacy Android test PR. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The duplicate_pr workflow automated cherry-picking PRs between the master and formplayer branches. With the formplayer branch eliminated and cross-repo CI in place, this is no longer needed. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Remove formplayer from branch triggers, remove formplayer-specific Gradle/Java version env vars and the conditional step that applied them. The trigger-downstream job is unchanged. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Replace the dual-branch PR duplication process with a description of the new single-branch workflow backed by cross-repo CI. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
de05245 to
8284c26
Compare
These docs served their purpose during implementation and remain in the commit history, but don't need to persist in the codebase.
https://dimagi.atlassian.net/browse/SAAS-19426
Product Description
No user-facing changes. This is infrastructure cleanup removing references to the now-deleted
formplayerbranch.Technical Summary
The
formplayerbranch has been deleted and cross-repo CI (PR #1525) now tests both downstream repos automatically. This PR removes the remaining formplayer branch infrastructure:duplicate_prworkflow andduplicate_pr.pyscript (no longer needed since PRs no longer need to be cherry-picked between branches)formplayerfrom branch triggers, env vars, and conditional step inbuild.ymlformplayertarget-branch block fromdependabot.ymlcontributing.mdto describe the new single-branch workflow with cross-repo CIThe
trigger-downstreamjob inbuild.ymlis intentionally left unchanged.Safety Assurance
Safety story
All changes are to CI configuration and documentation files. No application code is modified. The
formplayerbranch no longer exists, so removing references to it cannot break anything.Automated test coverage
The CI build job verifies that
build.ymlchanges are syntactically correct and the build still passes.QA Plan
Special deploy instructions
Rollback instructions
Review