Skip to content

modules: move the remaining families to families/<family> #6054

Open

Description

@TrapsterDK

Part of #6032. Follow the checklist from the android move. One PR per family, one at a time (each edits MODULE.bazel).

Order:

Each PR: cd families/<family> && bazel test //..., its hermetic consumer, tools/dx test --affected.

Each move PR also moves the family's register_toolchains (and drops the hub repo from core's use_repo) in the same PR, and moves the pattern to the family entry in modules/families.json. Beam (#8203) and dotnet needed a second PR because the first move left them in core.

Blocked on: #6504

Activity

  1. added
    trackingParent issue split into sub-issues
    P2Improve and finish existing features
    blockedWaiting on upstream or a design decision
    model:sonnetAgent lane: scoped change with stated design, Sonnet
    on Nov 4, 2026
  2. TrapsterDK commented on Nov 4, 2026

    @TrapsterDK
    CollaboratorAuthor

    Plan (agent): size L, split into slices
    Decision: only families that add a bazel_dep, extension, toolchain or repo rule become modules. The 15 that add nothing fold into core, generation or rust first (#6499). The rest move in serial PRs, and small families are batched a few per PR (still one module per family). Rejected: one module per language (about 40 modules and .bcr entries, 15 of them empty), one PR per small family (about 25 serial PRs for one-dir moves), a "misc" module holding unrelated languages (consumers would pull in languages they don't use).
    Cause: not blocked on the owner. It only waits on #6053 (android sets the checklist), which waits on #6048-#6052 and #6016.
    Shared rules (in every slice): the root module depends on families with dev_dependency = True plus local_path_override. Family modules depend only on core and upstream rule sets. Each PR fixes every label into the moved dirs.
    Finding: core builds Rust tools from source in consumer builds (quality/real_aspects.bzl:2311 points at //quality/runner:quality_runner). So rules_rust, the //rust/rules macros and the default C/C++ toolchain stay in core for now. Follow-up #6517 prebuilds those tools so they can move.
    Order (serial, because each move edits MODULE.bazel):
    0. #6499 fold weightless families (can start now, in parallel with #6048-#6052)

    1. apple: moves to families/apple #6500 apple (macos)
    2. dotnet: moves to families/dotnet #6501 dotnet (windows)
    3. beam: moves to families/beam #6502 beam
    4. jvm: moves to families/jvm #6503 jvm
    5. cc: moves to families/cc #6504 cc (opus; windows and macos)
    6. js: moves to families/js #6508 js
    7. generation: moves to families/generation #6510 generation, plus api_spec (opus)
    8. powershell, msix: move to families/powershell and families/msix #6511 powershell and msix (windows)
    9. d, php, perl, ruby: move to their own family modules #6512 d, php, perl, ruby
    10. dart, julia, zig, lua: move to their own family modules #6513 dart, julia, zig, lua
    11. haskell, ocaml, fortran, swift, appimage: move to their own family modules #6514 haskell, ocaml, fortran, swift, appimage
    12. python: moves to families/python #6515 python
    13. rust: moves to families/rust #6516 rust, plus wasi (opus; windows)
      go is not moved: rules_go is core for Gazelle, and go adds nothing else. It folds into core in modules: fold families without deps into core, generation and rust #6499.
      Tests: per slice. Each runs tools/dx test //modules:all plus its //tools/testing/hermetic:<fixture> targets, then tools/dx test --affected.
      Host: macos for apple: moves to families/apple #6500 and cc: moves to families/cc #6504. windows for dotnet: moves to families/dotnet #6501, cc: moves to families/cc #6504, powershell, msix: move to families/powershell and families/msix #6511 and rust: moves to families/rust #6516.
      Upstream: none
  3. removed
    blockedWaiting on upstream or a design decision
    on Nov 4, 2026
  4. TrapsterDK commented on Nov 5, 2026

    @TrapsterDK
    CollaboratorAuthor

    Not actionable as one PR: this is a tracking issue, split into #6499-#6516 and serial. It waits on #6053 (android sets the checklist), which is still open. Blocked, no code change made.

    Assisted by Claude.

  5. github-actions commented on Nov 5, 2026

    @github-actions

    This issue has the blocked label but no Blocked on: line in its body. Add one naming the blocking issue (#N), a pull request URL, or the owner action. See CONTRIBUTING.md.

  6. TrapsterDK commented on Nov 5, 2026

    @TrapsterDK
    CollaboratorAuthor

    Unblocked: #6053 (android checklist) is closed; the next serial move #6500 (apple) is open and in progress.

  7. removed
    blockedWaiting on upstream or a design decision
    on Nov 5, 2026
  8. TrapsterDK commented on Nov 5, 2026

    @TrapsterDK
    CollaboratorAuthor

    Tracking issue, no single PR. Remaining work is the open sub-issues #6501 (dotnet, next in serial order), #6502, #6503, #6504, #6508, #6510-#6516. Blocked on: #6501 and the serial chain after it.

    Assisted by Claude.

  9. github-actions commented on Nov 6, 2026

    @github-actions

    This issue has the blocked label but no Blocked on: line in its body. Add one naming the blocking issue (#N), a pull request URL, or the owner action. See CONTRIBUTING.md.

  10. TrapsterDK commented on Nov 7, 2026

    @TrapsterDK
    CollaboratorAuthor

    From #6504 (#9143): cc and qt are now core and stay in the root module. This issue's list drops qt.

    🤖 Generated with Claude Code

    https://claude.ai/code/session_01Xut2hzpb4qWNZKpDCrwUz7

  11. github-actions commented on Nov 7, 2026

    @github-actions

    Unblocked: #6504 closed

  12. TrapsterDK commented on Nov 7, 2026

    @TrapsterDK
    CollaboratorAuthor

    Next serial move is #6511 (powershell, msix), which is blocked on #6510 (generation). #6510 is open with no open PR and another lane owns it. The chain #6512-#6516 follows #6511. Remaining blocked, no code change made. Blocked on: #6510.

    Assisted by Claude.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Improve and finish existing featuresblockedWaiting on upstream or a design decisionmodel:sonnetAgent lane: scoped change with stated design, SonnettrackingParent issue split into sub-issues

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions