feat: import verified Origin OPJ worksheets - #5
Merged
Conversation
|
All contributors have signed the CLA ✍️ ✅ |
Contributor
Author
|
I have read the CLA Document and I hereby sign the CLA |
Contributor
Author
|
recheck |
nmrtist
enabled auto-merge (squash)
July 30, 2026 16:07
nmrtist
disabled auto-merge
July 30, 2026 16:07
Limdongcheng
force-pushed
the
codex/origin-project-import
branch
2 times, most recently
from
August 1, 2026 06:24
0bb06ca to
5a06517
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR intentionally focuses on correct worksheet import. It does not reconstruct Origin graphs. The generic table-import workflow may create a blank PlotX canvas; that canvas is not an imported Origin graph.
Technical approach
plotx-ioowns content probing, checked OPJ framing and record parsing, metadata association, cell decoding, resource budgets, and the engine-neutral project modelplotx-corepreflights and converts supported worksheets into typed table snapshots without adding an execution-engine dependency toplotx-dataActual support boundary
OPJ import
Verified Origin 7 profile:
CPYA 4.2673 552#framing with embedded Origin version 7.0552f64,f32, signedi32, signedi16, fixed-width ASCII text, mixed numeric/text cells, nulls, and nonzero row offsetsVerified Origin 9 profile:
CPYA 4.3268 195 W64 #framing with embedded version9.510195f64values and nulls in the exact observed 10-byte cell layoutOther OPJ producer versions and unobserved record layouts are recognized or rejected explicitly, not treated as compatible based only on the
.opjextension.OPJU recognition
CPYUA OPJU files are recognized by content, but no OPJU variant is imported in this PR. PlotX returns a clear unsupported message and creates no partial table or recent-file entry.
Known limitations
.opjor.opjusuffixSafety and error handling
Fixtures and licenses
test-origin-7.0552.opj: OpenOPJtest.opj, pinned source commit42ddcf1eb3a490744c54fca0a4ed6fe7a5e723ca, MIT, redistributed unchanged; source, attribution, byte length, and SHA-256 are recorded beside the fixtureRawData_Locust_Revision1_TIS_Mechanism.opju: Figshare DOI10.6084/m9.figshare.28535426.v1, CC BY 4.0, redistributed unchanged; source, attribution, byte length, and SHA-256 are recorded beside the fixtureVerification
cargo pr-checkpassed all 7 stages on final HEAD: formatting, 800-line source limit, dependency licenses/advisories, default frontends, Clippy with warnings denied, all-feature/DataFusion tests, and reference-backend testscargo test -p plotx-io --locked origin: 124 matching unit/integration tests passedcargo test -p plotx-core --locked origin: 29 matching tests passedcargo test -p plotx --locked ui::file_dialogs: 45 matching desktop import tests passednpm run buildfromdocs/: 69 English and Simplified Chinese pages built with Pagefind and sitemapnpm cireported five advisories in the existing documentation dependency tree (one moderate and four high). This PR does not change the documentation lockfile or apply a potentially breaking audit fix.Follow-up work