Skip to content

Remove legacy top-level gitignoreEntries from manifest #157

@bguidolim

Description

@bguidolim

Summary

The top-level gitignoreEntries field on ExternalPackManifest is labeled "Legacy" in docs/techpack-schema.md with guidance to prefer the gitignore: component shorthand instead. Like hookContributions (removed in #156), it's a redundant mechanism that duplicates what the modern component system already provides.

Current state

gitignoreEntries is wired through:

  • ExternalPackManifest.swift — decoded from YAML
  • ExternalPackAdapter.swift — forwarded to TechPack.gitignoreEntries
  • ComponentExecutor.swift — applied during install
  • PackUninstaller.swift — cleaned up during removal
  • CoreDoctorChecks.swift — checked during doctor
  • PackCommand.swift — counted during pack remove preview

The modern replacement is the gitignore: component shorthand:

# Modern (component)
components:
  - id: my-pack.ignore
    description: Gitignore entries
    gitignore:
      - .build
      - .xcodebuildmcp

# Legacy (top-level field)
gitignoreEntries:
  - .build
  - .xcodebuildmcp

Motivation

Same rationale as #156 — the product is pre-1.0, legacy code paths add complexity without proportional value, and the modern component system already handles gitignore entries with better per-project convergence support.

Scope

  • Remove gitignoreEntries from TechPack protocol
  • Remove field from ExternalPackManifest
  • Remove from adapter, executor, uninstaller, doctor, and command UI
  • Update docs
  • Clean up tests

Metadata

Metadata

Assignees

No one assigned

    Labels

    P2Medium prioritytech-debtTechnical debt and code quality improvements

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions