Skip to content

Exclude nested Go module trees from parent module sources #9

@shykes

Description

@shykes

Background

Issue #8 is fixed with a correctness-first patch that includes nested go.mod and go.sum files whenever recursive Go source patterns may include files from nested modules. That preserves Go module boundaries inside the filtered source tree.

Follow-up optimization

The current quick fix can still upload and hash unrelated nested module source files when a parent module uses recursive patterns such as parent/**/*.go.

For large repositories with many nested Go modules, the better long-term behavior is for a parent module source mount to exclude nested module trees entirely unless they are explicitly reached through the include graph, such as a local replace, a supported go generate -C target, or an explicit include.

Desired behavior

  • Parent module source includes its own files.
  • Nested module subtrees are excluded from the parent module source by default.
  • Nested modules still lint/test/generate as their own modules via modules / lintAll / testAll / generateAll.
  • Explicit cross-module includes and local module dependencies continue to work.

Why

This should reduce unnecessary uploads, hashing, cache invalidation, and lint/test container input size while matching Go normal nested module boundary behavior more closely.

Related: #8

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