Skip to content

Fix SCORM 2004 global objective parsing - #573

Merged
jcputney merged 1 commit into
mainfrom
fix/scorm2004-objective-semantics
Aug 12, 2026
Merged

Fix SCORM 2004 global objective parsing#573
jcputney merged 1 commit into
mainfrom
fix/scorm2004-objective-semantics

Conversation

@jcputney

Copy link
Copy Markdown
Owner

Summary

  • preserve the SCORM 2004 default of objectivesGlobalToSystem=true while exposing whether the manifest explicitly supplied the attribute
  • avoid treating an omitted default as explicit organization-level sequencing usage
  • normalize percent-encoded XML whitespace in targetObjectiveID values used by global objective maps

Why

The ADL CTS OB-02b package encodes spaces in a global objective identifier. Preserving the decoded, normalized identifier is required for the LMS sequencing engine to address the same objective. The organization flag also needs both its specification default and presence information so downstream sequencing configuration can distinguish omission from an explicit value.

Verification

  • ./mvnw -B -ntp clean verify -Dgpg.skip=true
  • 1,243 tests passed, including the bundled SCORM 2004 ADL CTS manifest sweep and LocalStack integration tests
  • exact parser changes were exercised by the Phoenix standalone and browser SCORM CTS runs (78/78 each)

@github-actions github-actions Bot added area-parsers Parser implementations area-input Input models/ingest type-tests Unit/integration tests labels Aug 12, 2026
@jcputney
jcputney force-pushed the fix/scorm2004-objective-semantics branch from 9d6b210 to f0e6235 Compare August 12, 2026 13:23
@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Triggered by workflow run.

Benchmark Score Error Unit
🟢 detectModuleType 0.002 ±0.000 ms/op
🟢 parseModule 1.786 ±3.466 ms/op
🟢 detectModuleType 0.000 ±0.000 ms/op
🟢 parseModule 0.105 ±0.378 ms/op
🟢 detectModuleType 0.220 ±0.409 ms/op
🟢 parseModule 0.642 ±2.018 ms/op
🟢 detectModuleType 0.174 ±0.314 ms/op
🟢 parseModule 1.666 ±7.473 ms/op

All benchmarks passed performance thresholds.

@jcputney
jcputney enabled auto-merge August 12, 2026 13:24
@jcputney
jcputney force-pushed the fix/scorm2004-objective-semantics branch from f0e6235 to 39dc755 Compare August 12, 2026 13:28
@jcputney
jcputney merged commit 9d095b6 into main Aug 12, 2026
12 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-input Input models/ingest area-parsers Parser implementations type-tests Unit/integration tests

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant