Changelog

This package uses a variant of Semantic Versioning that makes additional promises during the initial development (major version 0): whenever breaking changes to the public API are published, the first non-zero version number will increase. This means that code that uses COI version 0.9.0 will continue to work with version 0.9.1, but may break with version 0.10.0.

Unreleased

No changes yet!

v0.9

See also

Migration Guide for COI v0.9

User guide page listing all breaking changes and how to adapt your code.

v0.9.4

Bug fixes

Other changes

  • The package is now tested on NumPy 2.0 and Matplotlib 3.10.

  • the Quickstart document has been expanded and more links have been added to guide newcomers.

v0.9.3

Bug fixes

v0.9.2

Bug fixes

  • Fix superfluous warnings in cernml.coi.checkers.check_problem() when looking for deprecated attributes.

  • The function cernml.coi.check() now loads all plugins first before executing them. It also logs faulty plugins, but otherwise ignores them. This should catch bugs quicker.

  • Restrict Gymnasium to versions below v1.0 until our compatibility story is figured out.

v0.9.1

Bug fixes

  • Relax dependencies to allow use of NumPy 2.0

  • Fix bug in which building the docs would fail due to double slashes in the URLs of other package documentations.

v0.9.0

Breaking changes

Additions

Bug fixes

Other changes

v0.8

v0.8.16

Additions

v0.8.15

v0.8.14

Additions

  • Config.add() now has a different default value for the type parameter in cases where value is a bool or numpy.bool_. The new value treats most inputs as before, but specifically the string "False" is converted to the boolean False of the correct type. This ensures that bools roundtrip through string conversion and makes config handling in host applications less error-prone.

Bug fixes

v0.8.13

Bug fixes

  • Add compatibility with importlib-metadata 5 and 6 if we’re on Python 3.8+. On Python 3.7 (Acc-Py 2020.11), we are still forced to use importlib-metadata 4.

v0.8.12

Bug fixes

  • Bad CI configuration that prevented the package from being released.

v0.8.11

Bug fixes

  • Bad CI configuration that prevented docs from being built.

v0.8.10

Bug fixes

  • Improve cross-linking in the docs.

  • Update packaging tutorial to latest version of tools.

  • General small rewrite of the docs.

Other changes

  • Documentation previously written in Markdown is now consistently written in ReST.

  • Open-source this package by adding the appropriate license notices.

v0.8.9

Additions

Other changes

  • The online docs are now built with Python 3.9. Consequently, type annotations like Union[str, List[str]] and Optional[str] now use the new type union syntax added in Python 3.10, and so look like str | List[str] and str | None respectively.

v0.8.8

Bug fixes

  • Improve various cross-references in the docs.

Other changes

  • The project’s Gitlab group has been renamed from be-op-ml-optimization to geoff. This also changes the URL of these docs inside CERN. Please adjust your links, bookmarks and Git clones.

v0.8.7

Additions

  • Support for Python 3.9 has been added.

Bug fixes

  • Do not require Matplotlib/PyJapc to build documentation

  • Drop the install extra “pyjapc”.

Other changes

  • Bump build dependencies.

  • Switch project layout to src-based and migrate almost all configs to pyproject.toml.

v0.8.6

Additions

v0.8.5

Additions

  • Variants AD and ELENA to enum Machine.

v0.8.4

Bug fixes

  • Change syntax highlighter for shell sessions in docs from bash to shell-session.

Other changes

  • Upgrade CI templates to v2.

  • Use Gitlab Releases and Gitlab badges.

  • Add key project_urls to setup.cfg.

v0.8.3

Additions

  • Add install extra doc_only to build docs in a non-CERN environment. (This skips the PyJapc dependency.)

Bug fixes

  • Restrict Gym compatibility, as Gym v0.22 removes GoalEnv.

  • v0.8.0 nominally increased the minimum required version of importlib-metadata, but this was never enforced. Now, at least version 3.6 is required.

v0.8.2

Additions

Bug fixes

v0.8.1

Additions

Bug fixes

v0.8.0

Breaking changes

Additions

v0.7

v0.7.6

Bug fixes

v0.7.5

Bug fixes

  • Increase the stacklevel of the v0.7.4 deprecation warnings so that they appear more reliably.

v0.7.4

Additions

Bug fixes

v0.7.3

Additions

Bug fixes

  • Improve the documentation of Env and other Gym classes.

Other changes

  • Upgraded docs. Switch markdown parser from Recommonmark to Myst. Change theme from Read the Docs to Sphinxdoc.

  • Changes to the CI pipeline. Version of code checkers are pinned now. Added Pycodestyle to the list of checkers to run.

v0.7.2

Additions

Bug fixes

v0.7.1

Additions

v0.7.0

Breaking changes

  • Remove Cancellation tokens. The stable API did not accommodate all required use cases and could not be fixed in a backwards-compatible manner.

Additions

  • Re-add Cancellation tokens as an unstable module. The new API supports cancellation completion and resets.

v0.6

v0.6.2

Additions

Bug fixes

v0.6.1

Additions

Bug fixes

v0.6.0

Breaking changes

Additions

v0.5

v0.5.0

Breaking changes

v0.4

v0.4.7

Bug fixes

v0.4.6

Breaking changes

  • Remove keyword arguments from the signature of render().

Additions

  • Start distributing wheels.

v0.4.5

Additions

  • Plugin entry point and logging to check().

v0.4.4

Additions

  • Export some (for now) undocumented helper functions from checkers.

v0.4.3

Breaking changes

  • Switch to setuptools-scm for versioning.

Additions

  • Unmark render() as an abstract method.

v0.4.2

Additions

  • Make dependency on Matplotlib optional.

Bug fixes

  • Add missing check for defined render modes to check().

v0.4.1

Bug fixes

  • Expose check() argument headless.

v0.4.0

Breaking changes

  • Mark the package as fully type-annotated.

  • Switch to pyproject.toml and setup.cfg based building.

  • Rewrite check_env() as check().

Additions

v0.3

v0.3.3

Bug fixes

  • Set window title in example configurable.py.

v0.3.2

Additions

v0.3.1

Breaking changes

  • Make all submodules private.

Additions

v0.3.0

Breaking changes

Additions

Bug fixes

v0.2

v0.2.1

Bug fixes

  • Fix broken CI tests.

v0.2.0

Breaking changes

Additions

  • Virtual inheritance: Any class that implements the required methods of our interfaces automatically subclass them, even if they are not direct bases.

Bug fixes

v0.1

v0.1.0

The dawn of time.