Migrating to RewardHarness 0.4

August 25, 2026 ยท View on GitHub

RewardHarness 0.4 keeps the canonical rewardharness.* namespace introduced in 0.3 and modernizes configuration handling and interpreter support without changing CLI commands, Library files, or result schemas.

From 0.3 to 0.4

  • RewardHarnessConfig is now retained throughout benchmark and evolution workflows instead of being converted back to a legacy dictionary.
  • Use RewardHarnessConfig.to_dict() for schema-v2 serialization. to_legacy_dict() remains available as a compatibility alias.
  • Evolution dataset loading now consumes exactly train_n + val_n rows and fails early if the configured split sizes cannot be satisfied.
  • Python 3.13 is supported and continuously tested alongside 3.10โ€“3.12.

No import changes are required when upgrading from 0.3.

From 0.2 to 0.3

RewardHarness 0.3 removed the deprecated src.* compatibility namespace that was retained throughout the 0.2 release series.

Import replacements

Removed importCanonical replacement
src.endpoint_poolrewardharness.clients.endpoints
src.gemini_clientrewardharness.clients.gemini
src.libraryrewardharness.library
src.routerrewardharness.evaluation.router
src.sub_agentrewardharness.evaluation.engine
src.evaluatorrewardharness.evaluation.metrics
src.chain_analyzerrewardharness.evolution.analyzer
src.evolverrewardharness.evolution.evolver
src.pipelinerewardharness.evolution.pipeline

Only the module path changes. Public symbol names such as EndpointPool, Library, Router, SubAgent, ChainAnalyzer, Evolver, and SelfEvolutionPipeline keep their v0.2 names and behavior.

Upgrade checklist

  1. Replace imports using the table above.

  2. Upgrade and reject pre-release caching explicitly:

    python -m pip install --upgrade "rewardharness>=0.4,<0.5"
    
  3. Confirm the installed package and configuration:

    rewardharness --version
    rewardharness validate-library
    rewardharness check --help
    
  4. Search application code for remaining legacy imports:

    rg '(^|\s)(from|import) src(\.|\s|$)'
    

Projects that cannot migrate immediately should remain pinned to rewardharness>=0.2.2,<0.3; the 0.3 wheel intentionally does not provide a silent compatibility alias.