Skip to content

Upstream Faire's Gradle support to rtk-ai/rtk #21

@Nava2

Description

@Nava2

Summary

Upstream the Faire fork's Gradle build tool support (~2,836 lines across 10 Rust files + 13 fixtures + 16 snapshots) to rtk-ai/rtk. This is our fork's only material divergence from upstream.

Current state: Fork synced with upstream 0.30.0. Upstream develop at v0.31.0 with Copilot hooks, Gemini CLI, OpenClaw, emoji removal.

Precedent: Upstream accepts large single-PR features — .NET support was 4,284 insertions (rtk-ai#172), Python/Go was 2,053 insertions (rtk-ai#88). No RFC needed.


Plan (Revised)

Phase 1: Fork alignment PR → Faire/rtk:master

PR: #22 (merged)

  • Restored LimitsConfig alongside GradleConfig
  • Removed unused _is_integration parameter
  • Deleted dead is_integration_test() and is_integration_task_name()

Phase 2: .rtk.toml repo-level config → rtk-ai/rtk:develop

PR: rtk-ai#707 (draft)

  • RepoConfig struct with hooks, filters, gradle sections
  • find_repo_config_from() walks up to .git boundary
  • Config::load_from_dir() merges user + repo config

Phase 3: Gradle module → Graphite stack on rtk-ai/rtk:develop

One filter per PR, following upstream's scope rules. Tooling not enabled until 3j so no user-facing changes mid-stack.

PR Branch Scope Savings Status
3a feat/gradle-config GradleConfig struct + RepoConfig ✅ Done
3b feat/gradle-core Core module + global noise filters + main.rs wiring + insta dev-dep 70-90% ✅ Done
3c feat/gradle-compile Compile filter (kapt/KSP noise, path normalization) 85%+ ✅ Done
3d feat/gradle-test Test filter (stack trace truncation, framework frame dropping) 90%+ 🔄 Next
3e feat/gradle-detekt Detekt filter (violation grouping by rule) 85%+
3f feat/gradle-health Health filter (passthrough after global) 80%
3g feat/gradle-proto Proto filter (extraction noise) 75%+
3h feat/gradle-deps Deps filter (tree depth truncation) 40%+
3i feat/gradle-batch Batch multi-task processing 95%+
3j feat/gradle-discover Enable discover rule, remove gradle.toml

Stack Structure

feat/gradle-discover   (3j) — discover rule + remove TOML filter
feat/gradle-batch      (3i) — batch multi-task processing  
feat/gradle-deps       (3h) — deps filter
feat/gradle-proto      (3g) — proto filter
feat/gradle-health     (3f) — health filter
feat/gradle-detekt     (3e) — detekt filter
feat/gradle-test       (3d) — test filter
feat/gradle-compile    (3c) — compile filter
feat/gradle-core       (3b) — core module + global filters + wiring
feat/gradle-config     (3a) — GradleConfig struct
feat/repo-config       (PR #707) — .rtk.toml support

Notes

  • Upstream PRs opened as drafts to invite early feedback
  • All commits DCO signed (git commit -s)
  • insta crate added as dev-dependency in 3b (flagged as open question for upstream maintainer)
  • After upstream merge, evaluate fork version strategy

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions