7.6 KiB
7.6 KiB
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.9.1 - 2026-02-12
Fixed
- Fix journal file handling to support both reading and writing modes
0.9.0 - 2026-02-12
Added
- Storage trait abstraction with pluggable backends
- JSONL journal storage backend for persistent studies (behind
journalfeature) - Differential Evolution sampler
- Gaussian Process sampler with Expected Improvement acquisition function
- NSGA-III sampler for many-objective optimization with reference-point decomposition
- MOEA/D sampler for decomposition-based multi-objective optimization
StudyBuilderfor fluent study construction
Changed
- Move
next_trial_idcounter fromStudyintoStoragetrait - Replace
rand 0.10withfastrand 2.3for simpler, faster random number generation - Remove
visualizationandfanovafeature flags (now always available) - Simplify CI test commands by removing feature matrix
Fixed
- Seed importance tests to eliminate flakiness
- Use atomic counter for temp paths in journal tests
Removed
- Reverted SQLite storage backend (may return in a future release)
0.8.1 - 2026-02-11
Fixed
- Resolve broken rustdoc intra-doc links for
Error::NoCompletedTrials
0.8.0 - 2026-02-11
Added
- Multi-objective optimization with NSGA-II
- Multi-Objective TPE (MOTPE) sampler
- Pareto front analysis utilities
- CSV and JSON data export for visualization
- HTML visualization reports with Plotly.js charts
- fANOVA (functional ANOVA) parameter importance via random forest
Fixed
- Rename variable to pass typos check
0.7.2 - 2026-02-11
Changed
- Update
nalgebradependency to version 0.34 - Add advisory ignore for unmaintained transitive dependency
0.7.1 - 2026-02-11
Changed
- Update
tracingdependency to version 0.1.29
0.7.0 - 2026-02-11
Added
- CMA-ES (Covariance Matrix Adaptation Evolution Strategy) sampler behind
cma-esfeature flag - Sobol quasi-random sampler behind
sobolfeature flag - BOHB (Bayesian Optimization with HyperBand) sampler for budget-aware optimization
- Parameter importance analysis via Spearman rank correlation
- Constraint handling with feasibility-aware trial ranking
optimize_with_retries()for automatic retry of failed trialsoptimize_with_checkpoint()with atomic save writes for crash recoveryStudy::summary()andDisplayimpl for study overviewIntoIteratorfor&Studyanditer()method- Tracing integration behind
tracingfeature flag - Serde serialization support behind
serdefeature flag - Benchmark suite with criterion and standard test functions
0.6.0 - 2026-02-11
Added
- Pruning system with
Prunertrait andNopPrunerdefault implementation - Intermediate value reporting on trials for pruner integration
TrialPrunederror variant andPrunedtrial stateThresholdPrunerfor fixed-bound trial pruningMedianPrunerfor statistics-based trial pruningPercentilePrunerfor configurable percentile-based trial pruningPatientPrunerfor patience-based trial pruningSuccessiveHalvingPrunerfor SHA-based trial pruningHyperbandPrunerfor multi-bracket trial pruningWilcoxonPrunerfor statistics-based trial pruningStudy::minimize()andStudy::maximize()constructor shortcutsFrom<RangeInclusive>forFloatParamandIntParam- Timeout-based optimization with
optimize_until Study::top_trials(n)for retrieving the best N trials- Ask-and-tell interface with
ask()andtell()methods - Trial user attributes for logging and analysis
enqueue_trial()for pre-specified parameter evaluation
0.5.1 - 2026-02-10
Changed
- Update random number generation to use
rand::make_rng()and upgraderandto version 0.10
0.5.0 - 2026-02-06
Added
- Typed parameter API with
FloatParam,IntParam,CategoricalParam,BoolParam, andEnumParam #[derive(Categorical)]proc macro for deriving categorical parameters from enums (behindderivefeature).name()builder method on all parameter types for custom labelsCompletedTrial::get()for typed parameter accessDisplayimpl onParamValue- Prelude module at
optimizer::prelude::*
Changed
- Reorganize sampler module structure and update imports
- Remove
logdependency
0.4.0 - 2026-02-02
Added
- Multivariate TPE sampler for correlated parameter search
- Gamma strategies for TPE sampler (linear, sqrt, fixed) with examples
- Example: async API parameter optimization
- Example: ML hyperparameter tuning
Fixed
- Handle end value in
suggestmethod to avoid panic on underflow
0.3.1 - 2026-01-31
Added
- Grid search sampler for exhaustive parameter exploration
suggest_bool()method for boolean parameter suggestionSuggestableRangetrait andsuggest_range()method for parameter suggestion from ranges- Documentation, keywords, categories, and readme fields in
Cargo.toml
Changed
- Replace
TpeErrorwith unifiedErrortype across the library - Add permissions for read access to contents in CI and scheduled workflows
0.3.0 - 2026-01-30
Added
- Cross-target compilation checks in CI
Changed
- Internal code refactoring and cleanup
0.2.0 - 2026-01-30
Added
- CI step for unused dependencies check with
cargo-machete - CI step to publish to crates.io
- Default typo extension for 'Tpe'
Changed
- Remove
serdedependency (was unused) - Remove unused
ordered-floatdependency
0.1.1 - 2026-01-30
Fixed
- Minor release fixes
0.1.0 - 2026-01-30
Added
- Initial implementation of the optimization library
- TPE (Tree-structured Parzen Estimator) sampler with optional fixed bandwidth KDE
- Random sampler
- Async optimization support
- CI workflows for testing, coverage (Codecov), auditing, and publishing
- README with project overview, features, and quick start guide
Release Workflow
This changelog is maintained automatically with git-cliff.
- Write commits using Conventional Commits (
feat:,fix:,refactor:, etc.). - Tag the release:
git tag v0.X.0 - Regenerate the changelog:
make changelog - Commit the updated
CHANGELOG.mdand push.