Skip to content

MPP import builds no assignment baselines (dates, work, cost, BCWS/BCWP) #445

Closed

Description

@yeroo

Found while working #289 (plan, out of scope). Since #289, MSPDI keeps an assignment Baseline's BCWS/BCWP. The MPP importer (mppread) builds no assignment baselines at all: nothing outside projcore/src/mspdi.rs and the editor calls set_baseline_slot or constructs AssignmentBaseline. So opening an .mpp loses assignment baseline dates, work, cost and earned value, and a save to MSPDI/.yppx cannot carry them.

Fix: read assignment baseline fields (Baseline..Baseline10 Start/Finish/Work/Cost/BCWS/BCWP) from the MPP assignment var data into Assignment::baselines. Test: an .mpp corpus file with a baselined assignment, whose MSPDI export includes the <Baseline> block.

Possibly related: #342 (medium confidence)

Source: #289, PR #443
Severity: plan; origin: plan

Activity

  1. added
    follow-up-nestedfiled automatically by an agworkbench loop
    priority:P0critical: blocks spec work, loses data, or breaks the user's flow
    on Sep 28, 2026
  2. yeroo commented on Sep 28, 2026

    @yeroo
    OwnerAuthor

    Triaged priority:P0 (blocks current work).

  3. added a commit that references this issue on Sep 28, 2026
  4. yeroo commented on Sep 28, 2026

    @yeroo
    OwnerAuthor

    The merged fix (#507, fa53f74) fails on the real .mpp corpus. CI cannot see this: the corpus is private and not fetched in CI, so these tests only run where corpus/tools/fetch-mpp-corpus.* has been run.

    On Windows, main 3834fb4, corpus yeroo/mpp-corpus b02a8e0:

    cargo test --release -p mppread --test oracle_corpus
    test assignment_oracles ... ok
    test project_2024_oracles ... FAILED
    panicked at mppread\tests\oracle_corpus.rs:486:29:
    ...\corpus/mpp/snapshots\44-baseline.mpp: decoded import: cannot read the assignments of this .mpp (invalid baseline work for assignment UID 17)
    

    The error comes from mppread/src/assndecode.rs:106 ("invalid baseline {what} length …"), so project_from_mpp now refuses the whole file rather than importing it without that baseline. project_2024_oracles stops at this first failure, so later snapshots are not reached.

    Separately, on a Mac with the same corpus, the same test file reported a resource count of 0 for 31-calendar-hours.mpp where the XML oracle has 1 (other 82 checks passing). Not reproduced here yet because of the failure above.

  5. yeroo commented on Sep 28, 2026

    @yeroo
    OwnerAuthor

    Correction to my comment above: the 31-calendar-hours.mpp failure is not in oracle_corpus.rs and is not hidden behind the 44-baseline failure. It is the library unit test overalloc::tests::project_assignment_and_resource_offsets (mppread/src/overalloc.rs:415), and it reproduces on Windows as well as macOS with cargo test --release -p mppread --lib. Running cargo test -p mppread --release --no-fail-fast -- --include-ignored shows three failures with two causes; they are now tracked separately: #517 (44-baseline, from #507) and #518 (31-calendar-hours).

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

    follow-up-nestedfiled automatically by an agworkbench looppriority:P0critical: blocks spec work, loses data, or breaks the user's flow

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions