You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Part of the benchmarking-readiness epic: JuliaQUBO/QUBO.jl#40 (WS2 — coordinated driver release wave). Blocked by the QUBODrivers metadata/seed standardization and conformance-suite issues on that epic (WS1) — adopt both in a single PR here so the package is only touched once.
Problem
QUBO.jl v0.6 requires QUBODrivers = "0.6" / QUBOTools = "0.13". TenSolver.jl's current compat is:
QUBODrivers = "0.3"QUBOTools = "0.10"
The intersection with QUBO.jl v0.6 (and with the QUBOLib-served QOBLib benchmarking stack) is empty — this package cannot be installed alongside the rest of the ecosystem. A scheduled ecosystem-resolution canary is being added to QUBO.jl that will stay red until this lands.
Package-specific work
Largest version jump in the wave: QUBODrivers 0.3 → 0.6 and QUBOTools 0.10 → 0.13. Expect API churn (the @setup macro surface and SampleSet constructors changed); budget accordingly. If anything is unclear, MQLib.jl post-wave is the reference implementation.
No timing recorded in SampleSet metadata — DMRG elapsed time is only logged via the ITensors on_iteration callback. Capture it (sweep times + total) into metadata["time"]["effective"] and the namespaced breakdown.
DMRG convergence parameters (maxdim, cutoff, vtol) are the natural sweep axes — expose them as typed @setup attributes.
Bump compat: QUBODrivers = "0.6" (drop pre-0.5 entries unless there's a reason to keep them) and QUBOTools = "0.13" where it is a direct dependency. Fix any breakage from the upgrade.
Adopt the QUBODrivers metadata schema: metadata["time"]["effective"] (backend solve time) always set; seeds recorded under metadata["seeds"]; backend name/version under metadata["backend"].
Adopt the standard RandomSeed attribute where the backend supports seeding (alias any existing seed attribute to it; keep the old one as deprecated).
CI runs the upgraded QUBODrivers.test(Optimizer) with benchmark_conformance = true.
Tag a release and verify it registers (General registry compat must match).
Checkpoints (anti-drift)
Before starting: wait for the reference driver run posted on the epic (first wave driver, suggested MQLib.jl) and use its conformance output as the template — deviations should be deliberate, not accidental.
Mid-PR: post the conformance-suite output here (all sets, including which are trait-skipped and why).
Before merge: resolve a temp environment with QUBO@0.6 + this branch via Pkg.develop — the actual coexistence check, not just compat-file edits.
Acceptance criteria
Registered release with QUBODrivers 0.6 / QUBOTools 0.13 compat, conformance suite green in CI, package resolves alongside QUBO.jl v0.6.
Part of the benchmarking-readiness epic: JuliaQUBO/QUBO.jl#40 (WS2 — coordinated driver release wave). Blocked by the QUBODrivers metadata/seed standardization and conformance-suite issues on that epic (WS1) — adopt both in a single PR here so the package is only touched once.
Problem
QUBO.jl v0.6 requires
QUBODrivers = "0.6"/QUBOTools = "0.13". TenSolver.jl's current compat is:The intersection with QUBO.jl v0.6 (and with the QUBOLib-served QOBLib benchmarking stack) is empty — this package cannot be installed alongside the rest of the ecosystem. A scheduled ecosystem-resolution canary is being added to QUBO.jl that will stay red until this lands.
Package-specific work
@setupmacro surface and SampleSet constructors changed); budget accordingly. If anything is unclear, MQLib.jl post-wave is the reference implementation.on_iterationcallback. Capture it (sweep times + total) intometadata["time"]["effective"]and the namespaced breakdown.maxdim,cutoff,vtol) are the natural sweep axes — expose them as typed@setupattributes.Common work (all drivers in the wave)
QUBODrivers = "0.6"(drop pre-0.5 entries unless there's a reason to keep them) andQUBOTools = "0.13"where it is a direct dependency. Fix any breakage from the upgrade.metadata["time"]["effective"](backend solve time) always set; seeds recorded undermetadata["seeds"]; backend name/version undermetadata["backend"].supports_seed,honors_final_reads,enforces_time_limit).RandomSeedattribute where the backend supports seeding (alias any existing seed attribute to it; keep the old one as deprecated).QUBODrivers.test(Optimizer)withbenchmark_conformance = true.Checkpoints (anti-drift)
QUBO@0.6+ this branch viaPkg.develop— the actual coexistence check, not just compat-file edits.Acceptance criteria