Skip to content

No test resolves a DeepSpeed preset from an installed wheel; the only resolution test passes because it runs from the source tree (CR-A02-024) #111

Open

Description

@cemililik

Wave 0 · theme D0-8: Packaging and delivery promises · highest severity High · 1 finding(s) · effort small

Summary

On every pip/Docker install the documented preset names fail at training time with exit 1, while CI (editable/source-tree) is green.

Primary finding

CR-A02-024 — No test resolves a DeepSpeed preset from an installed wheel; the only resolution test passes because it runs from the source tree

severity High · reachability default · intent contract-violation · confidence confirmed · independently confirmed · reproduced end to end · already tracked: KNOWN-OPEN OPS-01 — docs/roadmap/phase-16-trust-surface-hardening.md:642-650 (S12 open)

What happens. tests/test_distributed.py:141-218 reads configs/deepspeed/.json relative to the tests dir and tests/test_distributed.py:210-216 (test_valid_preset_still_resolves) calls _resolve_deepspeed_config('zero2') from the repository, where trainer.py:645-648 finds configs/ beside the forgelm package. tests/test_packaging.py:86-119 asserts package_data globs only for forgelm.templates; nothing checks that configs/deepspeed is shipped (pyproject.toml:250-263 packages only forgelm, with package-data for templates only). Dynamic check in the installed lane (bin/fpy -C (local review artefact) cwd without configs/): _resolve_deepspeed_config('zero2'), 'zero3' and 'zero3_offload' each raise ConfigError 'DeepSpeed preset ... not found at .../installed/configs/deepspeed/.json'.

Where.

Evidence.

  • Scratch probe t/probe9.py via the installed lane printed ConfigError for all three presets; coverage run on the four named suites shows trainer.py 632-666 uncovered there (resolution is exercised only by test_distributed.py from the source tree).

Recommended fix. Add an installed-wheel (or package-data introspection) test that resolves each preset and asserts the file exists, and add configs/deepspeed to the package data.

Acceptance criteria

  • A regression test reproduces the failure scenario and asserts the corrected behaviour.
  • Documentation listed above is corrected in English and in its Turkish mirror in the same PR.
  • Every finding in this issue is resolved or explicitly closed with a reason.
  • The release note names the contract this fix restores.

Found by the October 2026 ForgeLM code and documentation review against commit cab2947. Code links point at that commit; line numbers may have moved since. Finding IDs (CR-…, DOC-…, TECH-…) are stable references for this backlog.

Activity

  1. added
    bugSomething isn't working
    backlog: knownAlready tracked in docs/roadmap
    severity: highWrong behaviour or a false claim users rely on
    source: review-2026-10Found by the October 2026 code and documentation review
    wave: 0Roadmap wave 0: immediate (patch release)
    on Oct 9, 2026
  2. cemililik commented on Oct 15, 2026

    @cemililik
    CollaboratorAuthor

    This is the same defect as #110 and #115: the DeepSpeed presets are not shipped in the wheel, and this issue is the missing test that would have caught it. They are meant to be fixed in one pull request, so the contributor guidance ("Where to start") lives on #110. Please claim and discuss it there.

  3. added
    blockedWaits for another issue (see Blocked by); set and removed automatically, never by hand
    on Oct 20, 2026
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

    area: trainerCode area: trainerbacklog: knownAlready tracked in docs/roadmapblockedWaits for another issue (see Blocked by); set and removed automatically, never by handbugSomething isn't workingseverity: highWrong behaviour or a false claim users rely onsource: review-2026-10Found by the October 2026 code and documentation reviewwave: 0Roadmap wave 0: immediate (patch release)

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions