Skip to content

Releases: icaros-usc/pyribs

pyribs 0.9.0

18 Dec 11:58
00586e6

Choose a tag to compare

To learn about this release, see our page on What's New in v0.9.0:
https://docs.pyribs.org/en/stable/whats-new.html

Changelog

API

  • Add replace parameter to sample_elites in archives (#682)
  • Require numpy to be at least 2.0.0 (#681)
  • Allow specifying centroids with filenames in CVTArchive (#679)
  • Add kdtree_query_kwargs parameter to CVTArchive (#677)
  • Backwards-incompatible: Replace ckdtree_kwargs with kdtree_kwargs in
    CVTArchive and ProximityArchive (#676)
  • Add sklearn_nn as an option for nearest_neighbors in CVTArchive
    (#675)
  • Backwards-incompatible: Replace use_kd_tree with nearest_neighbors in
    CVTArchive (#674)
  • Drop Python 3.9 support and add 3.14 support (#672)
  • Separate centroid generation from init in CVTArchive (#663)
    • Backwards-incompatible: Replace the cells and custom_centroids
      parameters with a new centroids parameter in CVTArchive
    • Backwards-incompatible: Remove the samples property from CVTArchive
    • Backwards-incompatible: Remove plot_samples from cvt_archive_heatmap
      and cvt_archive_3d_plot
  • Add k_means_centroids function (#665)
  • Backwards-incompatible: Remove centroid_method from CVTArchive
    (#662)
  • Support multi-dimensional solutions in GaussianEmitter and IsoLineEmitter
    (#650)
  • Allow specifying emitter bounds with lower_bounds and upper_bounds
    (#649, #657)
  • Backwards-incompatible: Deprecate dict dtype in archives and instead use
    solution_dtype, objective_dtype, and measures_dtype (#639,
    #643, #661)
  • Raise KeyError in ArchiveDataFrame.get_field when field not found
    (#626)
  • Support array backends in ArrayStore via Python array API Standard
    (#570, #645)
  • Backwards-incompatible: Remove raw_dict methods from ArrayStore
    (#575)

Improvements

  • Use dtypes when calling asarray in archive methods (#673)
  • Replace cKDTree usage with KDTree (#669)
  • Support ProximityArchive in parallel_axes_plot (#647)
  • Cast dtype when validating arguments (#646)
  • Add type annotations and use ty for type checking (#624)
  • Migrate from pylint to ruff for linting (#605, #607, #612,
    #619, #666)
  • Replace isort with ruff import check (#603)

Documentation

  • Add tutorial on centroid specification for CVTArchive (#662, #680)
  • Update DQD and QDHF tutorials (#659)

pyribs 0.8.3

01 Sep 02:58
844181e

Choose a tag to compare

Small bugfix release.

Changelog

Bugs

  • Add best_elite back to SlidingBoundariesArchive (#623)
  • Correct types of ArchiveStats obj_max and obj_mean (#617)
  • Fix bug in ribs.visualize args tests (#615)

pyribs 0.8.2

13 Aug 02:20
dda7048

Choose a tag to compare

This release focuses on improving documentation for pyribs, particularly by
adding the
QDAIF tutorial.

Changelog

Documentation

  • Migrate docs to sphinx-immaterial theme (#596)
  • Misc documentation fixes (#588, #595, #597)
  • Add QDAIF tutorial (#587, #589, #590, #594, #600)
  • Make all metrics start from values in archive stats (#586)
  • Update dependencies for lunar lander (#585)

Improvements

  • Migrate from yapf to ruff for formatting (#581, #582, #583)

pyribs 0.8.1

30 Jun 04:33
a5fda2c

Choose a tag to compare

This release makes some minor updates to 0.8.0.

Changelog

API

  • Backwards-incompatible: Remove convenience extras ribs[pymoo] and
    ribs[pycma] (#567)

Documentation

  • Update Discord and X links in README (#566)

pyribs 0.8.0

26 Jun 20:35

Choose a tag to compare

To learn about this release, see our page on What's New in v0.8.0:
https://docs.pyribs.org/en/stable/whats-new.html

Thanks to @szhaovas, @gresavage, and @Tekexa for contributing to this release!

Changelog

API

  • Implement BOP-Elites by adding BayesianOptimizationEmitter and
    BayesianOptimizationScheduler; add BOP-Elites demo (#496)
  • Allow result_archive to be positional arg in schedulers (#557)
  • Backwards-incompatible: Make num_active a keyword-only arg in
    BanditScheduler (#557)
  • Add CategoricalArchive (#549)
  • Support solutions with non-1D shapes (#550)
  • Backwards-incompatible: Move cqd_score into a separate function
    (#537)
  • Backwards-incompatible: Make archive field_list and dtypes props include
    index (#532)
  • Backwards-incompatible: Remove thresholds from SlidingBoundariesArchive
    (#527)
  • Backwards-incompatible: Remove transforms from archive add operations
    (#525)
  • Add retessellate method to GridArchive (#516)
  • Backwards-incompatible: Tidy up operator implementation (#507,
    #510)
  • Drop Python 3.8 support and remove pinned requirements {#497)
  • Backwards-incompatible: BanditScheduler: Add emitter_pool and active attr;
    remove emitters attr (#494)
  • Add DensityArchive and DensityRanker for Density Descent Search (#483,
    #504, #487, #543, #546)
  • Add NoveltyRanker for novelty search (#477)
  • Add proximity_archive_plot for visualizing ProximityArchive (#476,
    #480, #523)
  • Support novelty search with local competition in ProximityArchive (#481)
  • Add ProximityArchive for novelty search (#472, #479, #484,
    #521, #527)
  • Support diversity optimization in Scheduler.tell (#473)
  • Allow specifying separate dtypes for solution, objective, and measures
    (#471)
  • Replace archive.dtype with archive.dtypes dict that holds dtype of every field
    (#470)

Bugs

  • Make emitter bounds dtype match solution dtype (#519)
  • Fix BanditScheduler behaviour: the number of active emitters remains stable
    (#489)

Documentation

  • Add Novelty Search with Kheperax tutorial (#552)
  • Add Supported Algorithms page (#559)
  • Add cqd_score example (#537)
  • Update sphere example for consistency (#505)
  • Tutorial edits (#500, #553, #554)
  • Add version selector to docs (#495)
  • Update gymnasium and lunar lander version (#493)
  • Add tutorial page on Optuna integration (#492)
  • Switch from std to var in arm tutorial (#486)
  • Fix documentation conf for readthedocs deprecations (#485)
  • Add novelty search with CMA-ES to sphere example (#478, #482)
  • Clarify errors in scheduler docstrings (#488)

Improvements

  • Remove np_scalar util by making archive dtypes be numpy scalar types
    (#534)
  • Refactor archives into single-file implementations (#518, #521,
    #526, #528, #529, #530, #533, #535)
  • Make ArrayStore.data return ArchiveDataFrame instead of DataFrame (#522)
  • Migrate to pyproject.toml (#514)
  • Set vmin and vmax to None if archive is empty in ribs.visualize (#513,
    #523)
  • Remove operators from GaussianEmitter and IsoLineEmitter (#508)
  • Update QDax visualizations to match QDax 0.5.0 (#502)
  • Skip qdax tests if qdax not installed (#491)
  • Move yapf after isort in pre-commit (#490)
  • Remove _cells attribute from ArchiveBase (#475)
  • Upgrade setup-miniconda to v3 due to deprecation (#464)

pyribs 0.7.1

14 Mar 09:44
a185775

Choose a tag to compare

This release introduces the
QDHF tutorial! It also
makes a couple of minor usability improvements, such as better error checking.

Changelog

API

  • Support Python 3.12 (#390)

Improvements

  • Add qd score to lunar lander example (#458)
  • Raise error if result_archive and archive have different fields
    (#461)
  • Warn user if resampling for bounds takes too long in ESs (#462)

Documentation

  • Add QDHF tutorial (#459)

Bugs

  • Fix solution retrieval in lunar lander eval (#457)

pyribs 0.7.0

27 Jan 10:42
c536d90

Choose a tag to compare

To learn about this release, see our page on What's New in v0.7.0:
https://docs.pyribs.org/en/stable/whats-new.html

Special thanks to our new contributors! @HenryChen4, @svott03, @yutaizhou, @vbhatt-cs

Changelog

API

  • Support alternative centroid generation methods in CVTArchive (#417,
    #437)
  • Add PyCMAEvolutionStrategy for using pycma in ES emitters (#434)
  • Backwards-incompatible: Add ranking values to evolution strategy tell
    method (#438)
  • Backwards-incompatible: Move evolution strategy bounds to init (#436)
  • Backwards-incompatible: Use seed instead of rng in ranker (#432)
  • Backwards-incompatible: Replace status and value with add_info (#430)
  • Support custom data fields in archive, emitters, and scheduler (#421,
    #429)
  • Backwards-incompatible: Remove _batch from parameter names (#422,
    #424, #425, #426, #428)
  • Add Gaussian, IsoLine Operators and Refactor GaussianEmitter/IsoLineEmitter
    (#418)
  • Backwards-incompatible: Remove metadata in favor of custom fields
    (#420)
  • Add Base Operator Interface and Emitter Operator Retrieval (#416)
  • Backwards-incompatible: Return occupied booleans in retrieve (#414)
  • Backwards-incompatible: Deprecate as_pandas in favor of
    data(return_type="pandas") (#408)
  • Backwards-incompatible: Replace ArchiveDataFrame batch methods with
    get_field (#413)
  • Add field_list and data methods to archives (#412)
  • Include threshold in archive.best_elite (#409)
  • Backwards-incompatible: Replace Elite and EliteBatch with dicts
    (#397)
  • Backwards-incompatible: Rename measure_* columns to measures_* in
    as_pandas (#396)
  • Add ArrayStore data structure (#395, #398, #400, #402,
    #403, #404, #406, #407, #411)
  • Add GradientOperatorEmitter to support OMG-MEGA and OG-MAP-Elites (#348)

Improvements

  • Raise error when threshold_min is set but learning_rate is not (#453)
  • Fix interval_size in CVTArchive and SlidingBoundariesArchive (#452)
  • Allow overriding ES in sphere example (#439)
  • Use NumPy SeedSequence in emitters (#431, #440)
  • Use numbers types when checking arguments (#419)
  • Reimplement ArchiveBase using ArrayStore (#399)
  • Use chunk computation in CVT brute force calculation to reduce memory usage
    (#394)
  • Test pyribs installation in tutorials (#384)
  • Add cron job for testing installation (#389, #401)
  • Fix broken cross-refs in docs (#393)

Documentation

  • Tidy up LSI MNIST notebook (#444)

pyribs 0.6.4

17 Dec 02:05
7a282ef

Choose a tag to compare

Small release that adds the scalable CMA-MAE tutorial.

Changelog

Documentation

  • Add tutorial on scalable CMA-MAE variants (#433, #443)

pyribs 0.6.3

25 Sep 21:58
3616bad

Choose a tag to compare

Small patch release due to deprecation issues.

Changelog

Improvements

  • Replace np.product with np.prod due to deprecation (#385)

pyribs 0.6.2

22 Sep 02:50
efdb1be

Choose a tag to compare

Small patch release due to installation issues in our tutorials.

Changelog

API

  • Import ribs[visualize] in tutorials that need it (#379)

Improvements

  • Switch to a branch-based release model (#382)