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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions