Task: Build and vendor the ORE v1.8.17.0 engine package
Table of Contents
This page documents a task in the Update ORE to v17 story. It captures the goal, current status, acceptance, and any notes or results.
1. Goal
Build the v1.8.17.0 engine into one self-contained tarball that carries its own libraries, and prove it runs by replaying TA002_IR_Swap. Commit the tarball, the diff report and the manifest update beside the existing v1.8.16.0 package, and leave that package untouched.
2. Status
| Field | Value |
|---|---|
| State | DONE |
| Parent story | Update ORE to v17 |
| Now | Nothing. |
| Waiting on | Nothing. The v1.8.17.0 tag is provisional; the package rebuilds once upstream tags. |
| Next | None. |
| Last touched | 2026-09-12 |
3. Acceptance
- The v1.8.17.0 package builds self-contained and passes the TA002 self-test, with a diff report recorded.
- The tarball is committed beside ore-1.8.16.0-4-g3b62ba248-x64-linux.tar.gz, and the v1.8.16.0 package is unchanged.
- external/ore/packages/manifest.json names both tracked tarballs, each with the right version, size and sha256.
4. Plan
Follow external/ore/methodology.txt. Build the engine with the
linux-clang-ninja-release preset, package it with
external/ore/tools/package_ore.sh, and self-test the package by
replaying TA002_IR_Swap.tar.gz.
5. Notes
- The engine checkout is at commit
3d75a69087911a7e2cf1e6882da7bc27135c0762. Upstream had not tagged av1.8.17.0release when the package was built, so the tag was created on the fork at that commit. Thegit describestring is therefore the plain tag and not a<tag>-<N>-g<sha>string. The manifest records this inprovisional_version. Rebuild the package once upstream tags, and check then whether any commits landed between that commit and the real tag. - The package bundles
libOREAnalytics,libOREData,libQuantExtandlibQuantLib.so.1, plus every non-glibc runtime dependency underlib/, withRPATH=$ORIGIN/lib. It is self-contained. - The v1.8.16.0 tarball is unchanged by this task. Commit
992e8a05aehad already repackaged it, becausepackage_ore.sharchived the whole staging directory instead of its contents, and renamed it fromore-1.8.16.0-3-g3b62ba248-x64-linux.tar.gztoore-1.8.16.0-4-g3b62ba248-x64-linux.tar.gz. That commit left this directory'smanifest.jsondescribing the old-3-package, so the manifest was stale. This task corrected the manifest'sfile,engine_version,sha256andsize_bytesto match the tarball that was already committed, and added theversion_note. - The
version_noterecords that the count in the filename is not trustworthy on its own. Re-runninggit describe --tags --long 3b62ba248against the fork today givesv1.8.16.0-3-g3b62ba248, because thev1.8.16.0tag now sits atb1f239332f, one commit later than when the package was repackaged. The commit hash is unambiguous either way. TA002_IR_Swap.tar.gzis byte-identical to its previous contents.
6. Result
Both tarballs are committed. The v1.8.17.0 self-test passes.
The diff report is identical to the v1.8.16.0 one, line for line apart
from the paths and the version. Both reports show the same 240x4
curves.csv, 60x25 flows.csv and 1x13 npv.csv, and the same four
columns the engine emits beyond the reference: EffectiveFloorVolatility,
EffectiveCapVolatility, Amount(Base) and DiscountFactor(Base).
So the two engines agree on the sample within rtol=1e-6, and the extra
columns are pre-existing rather than new in v17.
Status at close: The v1.8.17.0 tarball is built, self-tested against TA002, and committed beside the v1.8.16.0 one.
7. Test Scenarios
Manual QA scenarios (scaffolded via compass add test_scenario, run
through the QA Validation Runner panel) that verify this task. Link
new ones here as they're created; the scenario doc itself links back
via its "Verifies task" field.
| Scenario | State | Notes |
|---|---|---|
8. PRs
| PR | Title |
|---|---|
9. Review
| Comment summary | File | Decision | Notes |
|---|---|---|---|