Repository navigation
Embed FIX Orchestra repositories instead of the QuickFIX XML (#201) - #206
Merged
Merged
Conversation
…ickFIX (#201) Dictionary::fix42/fix44/fixt11 are built from OrchestraFIX42.xml, OrchestraFIX44.xml and FIXTSession.xml, and fix50sp2 from OrchestraFIXLatest.xml through from_orchestra_latest_xml, all vendored verbatim under spec/orchestra with the upstream Apache-2.0 LICENSE (upstream has no NOTICE). Names, signatures and caching are unchanged. The QuickFIX files move to tests/fixtures/quickfix (excluded from the package, with LICENSE-QUICKFIX) for the QuickFIX loader tests, the equivalence diff and the codegen component tests. Tests that pinned QuickFIX content follow Orchestra; the FIXT 1.1 and FIX 4.2 codegen goldens are regenerated. Refs #201
Codecov Report✅ All modified and coverable lines are covered by tests.
🚀 New features to boost your workflow:
|
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 join this conversation on GitHub.
Already have an account?
Sign in to comment
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
ironfix-dictionarydeclared MIT but shipped four QuickFIX XML files under The QuickFIX Software License 1.0. This PR makes the embedded dictionaries load from the FIX Trading Community Orchestra repositories (Apache-2.0) instead, so the published crate carries no QuickFIX content.Changes
Embedded files.
spec/orchestra/holds four files, verbatim fromorchestrations@cd24169a, with the upstream LICENSE and a provenance README. Upstream publishes no NOTICE file.OrchestraFIX42.xmlOrchestraFIX44.xmlFIXTSession.xmlOrchestraFIXLatest.xmlwithfrom_orchestra_latest_xml(Load FIX 4.2, FIXT 1.1 and FIX 5.0 SP2 from FIX Orchestra (dictionary) #200)Public API.
Dictionary::fix42(),fix44(),fixt11()andfix50sp2()keep their names, signatures and caching.QuickFIX files. They moved to
tests/fixtures/quickfix/together withLICENSE-QUICKFIX, and are excluded from the package. They remain for:Tests and goldens. Tests that pinned QuickFIX content now follow Orchestra, as the owner decided. The FIX 4.2 and FIXT 1.1 goldens are regenerated.
Docs.
CHANGELOG.mdis new and lists every user-observable difference.doc/orchestra_differences.mdanddoc/fix_operations.mdare updated.Measurements
Apple M4 Max with 64 GB, release build, first call in a fresh process, 3 runs.
fix42fix44fixt11fix50sp2.crategrows from 356 441 bytes to 1 133 644 bytes. No compression and no new dependency were needed.Public / contract impact
No
pubitem changes, but dictionary content and behaviour do, so this is a breaking change:InvalidEnumValueerrors;The version bump and the per-crate licence metadata (
MIT AND Apache-2.0) are in #202.Testing
cargo test --workspace: 2551 passed, 0 failed.-D warnings, fmt, doc, check-spanish and the release build are clean.cargo package -p ironfix-dictionary --listcontains onlyspec/orchestra/*.grep -ri quickfix ironfix-dictionary/specfinds nothing.Stack: #200 (merged) → #201 (this) → #202.
Closes #201