From 5e0b030e56eb48a7853d35f36968c03335bc3a65 Mon Sep 17 00:00:00 2001 From: Sam Daulton Date: Tue, 24 Feb 2026 13:31:38 -0800 Subject: [PATCH 1/2] add 1.2.2 and 1.2.3 to the changelog Differential Revision: D94265088 --- CHANGELOG.md | 106 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 106 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index e9c63f03988..a904276f5eb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,112 @@ # Changelog The release log for Ax. +## [1.2.3] -- Feb 19, 2026 + +#### Breaking Changes + +**Requirements** +* Python 3.11+ required (#4810) +* Pandas 3.0 upgrade (#4838) +* BoTorch 0.17.0 (#4911) + +**API Removals** +* `transition_to` now required on `TransitionCriterion` (#4848) — Users must explicitly specify transition targets +* Removed callable serialization (#4806) — Encoding callables now raises an exception +* Removed legacy classes: `TData` (#4771), `MinimumTrialsInStatus` (#4786), completion criteria (#4850), `arms_per_node` override (#4822) + +#### New Features +* **Experiment Lifecycle Tracking**: New `ExperimentStatus` enum (`DRAFT`, `INITIALIZATION`, `OPTIMIZATION`, `COMPLETED`) with automatic status updates from the Scheduler based on generation strategy phase (#4737, #4738, #4891) +* **BOPE (Preference Learning)**: Utility-based traces via PairwiseGP preference models (#4792); `UtilityProgressionAnalysis` support with "User Preference Score" UI (#4793) +* **BONSAI (Pruning)**: New `pruning_target_parameterization` API parameter (#4775); tutorial and documentation added (#4865, #4871) +* `add_tracking_metrics()` method (#4858) +* `TorchAdapter.botorch_model` convenience property (#4827) +* `DerivedParameter` now supports `bool` and `str` types (#4847) +* LLM integration: `LLMProvider`/`LLMMessage` abstractions and `llm_messages` on Experiment (#4826, #4904) +* Improved slice/contour plots: uses status_quo, best trial, center hierarchy (#4841) +* Sensitivity analysis excludes 'step' by default (#4777) +* `ScalarizedOutcomeConstraint` support in feasibility analysis (#4856) + +#### Performance +* `DataRow`-backed `Data` class with itertuples — 3.6x faster tensor creation (#4773, #4774, #4798) +* Generation strategy caching: significant speedup in high trial count regimes (#4830) +* Optimization complete logic: O(nodes x TC) to O(TC on current node) (#4828) + +#### Bug Fixes +* Fix `GeneratorRun.clone()` not copying metadata (mutations affected original) (#4892) +* Fix OneHot transform not updating hierarchical parameter dependents (#4825) +* Fix Float parameters loaded as ints from SQA (#4853) +* Fix scikit-learn 1.8.0 compatibility with XGBoost (#4816) +* Trials now marked ABANDONED (not FAILED) on metric fetch failure (#4779) +* Baseline improvement healthcheck now shows WARNING instead of FAIL (#4883) + +#### Other changes +* Codebase updated to Python 3.11+ idioms: `typing.Self` (#4867), `StrEnum` (#4868), `ExceptionGroup` (PEP 654) (#4877), `asyncio.TaskGroup` (#4878), PEP 604 type annotations (#4912) +* For the complete list of 90+ PRs, see the [GitHub releases page](https://github.com/facebook/Ax/releases) + +## [1.2.2] -- Jan 2026 + +NOTE: This will be the last Ax release before SQLAlchemy becomes a required dependency. + +#### Deprecations +* Add deprecation warning to AxClient (#4749) +* Add deprecation warning to 'optimize' loop API (#4697) +* Deprecate Trial.runner (#4460) +* Deprecate TensorboardMetric's `percentile` in favor of `quantile` (#4676) +* Deprecate default_data_type argument to Experiment (#4698) + +#### New Features +* Efficient leave-one-out cross-validation for Gaussian processes (#4631) +* Add patience parameter to PercentileEarlyStoppingStrategy (#4595) +* Log-scale support for ChoiceParameter (#4591) +* Support ChoiceParameter in Log transform (#4592) +* Add robust trial status polling to Orchestrator (#4756) +* Expose validation for TL experiments and fetching of candidate TL sources through AxService (#4615) +* Add PreferenceOptimizationConfig with storage layer support (#4638) +* Add PLBO transform and metric ordering validation (#4633) +* Add expect_relativized_outcomes flag to PreferenceOptimizationConfig (#4632) +* Add kendall tau rank correlation diagnostic (#4617) +* Vectorize SearchSpace membership check for performance (#4762) + +#### Analyses +* New UtilityProgression Analysis for tracking optimization progress over time (#4535) +* New Best Trials Analysis for identifying top-performing trials (#4545) +* New Early Stopping Healthcheck analysis (#4569) +* New Predictable Metrics Healthcheck analysis (#4598) +* New Baseline Improvement Healthcheck analysis (#4673) +* New Complexity Rating Healthcheck for assessing optimization difficulty (#4556) +* Analysis to visualize experiment generation strategy (#4759) +* Add Pareto frontier display on MOO objective scatter plots (#4708) +* Add Progression Plots for MapMetric experiments to ResultsAnalysis (#4705) +* Add SEM display option to ContourPlot (#4690) +* Add markers to ProgressionPlot line charts (#4693) +* GraphvizAnalysisCard and HierarchicalSearchSpaceGraph visualization (#4616) +* IndividualConstraintsFeasibilityAnalysis replaces ConstraintsFeasibilityAnalysis (#4527) + +#### Bug Fixes +* Fix tied trial bug in PercentileESS: use rank() for n_best_trial protection (#4587) +* Fix StandardizeY not updating weights in ScalarizedObjective (#4619) +* Fix StratifiedStandardizeY behavior with ScalarizedObjective & ScalarizedOutcomeConstraint (#4621) +* Fix floating point precision issue in step_size validation (#4604) +* Fix progression normalization logic in early-stopping strategies (#4525) +* Fix dependent parameter handling in Log transform (#4679) +* Drop NaN values in MAP_KEY column before align_partial_results (#4634) +* Filter failed trials from plots (#4725) +* Allow single progression early stopping checks when patience > 0 (#4635) +* Update SOBOL transition criterion to exclude ABANDONED and FAILED trials (#4776) + +#### Other changes +* Speed up MapDataReplayMetric (#4654) +* Fast MapData.df implementation (#4487) +* Validate patience <= min_progression in PercentileEarlyStoppingStrategy (#4639) +* Enforce `smoothing` in `[0, 1)` for TensorBoardMetric (#4661) +* Enforce sort_values=True for numeric ordered ChoiceParameter (#4597) +* Add error if PowerTransformY is used with ScalarizedObjective (#4622) +* Support ScalarizedObjective in get_best_parameters with model predictions (#4594) +* Rename model_kwargs -> generator_kwargs (#4668) +* Rename model_gen_kwargs -> generator_gen_kwargs (#4667) +* Rename model_cv_kwargs -> cv_kwargs (#4669) + ## [1.2.1] -- Nov 21, 2025 #### Bug fixes * Improved error messaging for `client.compute_analyses` when certain analyses are From f7a3ef418dea9c5d91e563f2262fdc77073fb73f Mon Sep 17 00:00:00 2001 From: Sam Daulton Date: Tue, 24 Feb 2026 13:37:53 -0800 Subject: [PATCH 2/2] add changelog entry for 1.2.4 (#4943) Summary: Pull Request resolved: https://github.com/facebook/Ax/pull/4943 see title Reviewed By: saitcakmak Differential Revision: D94265565 --- CHANGELOG.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index a904276f5eb..85c5048494a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,18 @@ # Changelog The release log for Ax. +## [1.2.4] -- Feb 24, 2026 + +#### Bug Fixes +* Fix incorrect feasibility computation when using `qLogProbabilityOfFeasibility` for MOO — objective weights were applied twice via both the posterior transform and the constraint matrix, leading to incorrect results when only objective thresholds (no outcome constraints) were present (#4935) +* Add defensive `issubclass` guard for acquisition function dispatch to prevent silent fallthrough for future subclasses of `qLogProbabilityOfFeasibility` (#4938) + +#### Other changes +* Remove unused `objective_thresholds` parameter from `Acquisition.get_botorch_objective_and_transform` — the parameter was silently discarded (#4939) +* Add `Self` type annotations to clone methods for better type inference in subclasses (#4907) +* Heterogeneous search space utilities for transfer learning benchmarks (#4767) +* Migrate benchmarking state dict files for GPyTorch compatibility (#4916) + ## [1.2.3] -- Feb 19, 2026 #### Breaking Changes