Skip to content

Design: shard artifacts/requirements.yaml into per-id files so parallel adds never share a region (structural fix for #422) #490

@avrabe

Description

@avrabe

Spun out of #422 item 2 (the triage there explicitly deferred this to its own design issue). This is the structural fix for the recurring parallel-PR conflict, as opposed to the discipline (PR #489) and the merge=union debate.

Problem

Every PR that files a REQ appends to the single artifacts/requirements.yaml, so any two in-flight PRs collide on its EOF. Documented + mitigated (PR #489), but the conflict is structural: one append-only file shared by all authors. It has recurred on REQ-184/185, 195/196, 206 (#487), … — a standing tax on the dogfooding loop.

Proposed direction

Let an artifact source be a directory of per-id files in addition to a single file — e.g. artifacts/requirements/REQ-NNN.yaml (one artifact per file), loaded by globbing the dir. Two PRs adding REQ-207 and REQ-208 then touch different files → zero conflict, ever.

Sketch / open questions for design:

This is behaviour-changing for the artifact layout, so it wants a design pass before code. Filing as the tracked design issue #422 asked for; not implementing unilaterally. Found via the hourly dogfooding loop (the heaviest generator of these conflicts).

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