Skip to content

Changelog and upgrading

Unreleased

  • Drupal 12 is supported. core_version_requirement is ^10.3 || ^11 || ^12.

2.1.0 (2026-10-09)

Upgrading from 2.0.0

No update hooks are needed, and stored values do not change. Rebuild caches after updating. Check these behavior changes:

  • Drupal 8 and 9 support is dropped. core_version_requirement is ^10.3 || ^11.
  • Values are validated. Values that are not ISO 4217 alphabetic codes, such as usd or ZZZ, now fail entity validation. Existing invalid values are reported the next time the entity is validated, for example when it is edited.
  • The widget lists current currencies only, sorted by label, with an empty option. Withdrawn currencies stay selectable on items that already store them.
  • NumericCode is always a string in currency_field_currencies(). In 2.0.0 it was a string only when it had a leading zero.
  • Option labels prefer current names. For example PEN is "Sol", not "Nuevo Sol", and TRY is "Turkish Lira", not "New Turkish Lira".

Fixed

  • Optional fields could not be left empty: the browser preselected Afghani.
  • Field storage had no configuration schema, which failed config validation and strict schema checks in tests.
  • Sample values were integer indexes instead of currency codes.
  • Withdrawn entries overwrote the labels of current currencies.
  • Country names with accented capitals were cased wrongly, for example "CÔte D'ivoire".
  • The currency list was decoded from YAML on every call, about 58 ms each time.

Added

  • Formatter setting Show: alphabetic code, currency name or country name.
  • Validation against the bundled ISO 4217 codes.
  • $include_withdrawn argument for currency_field_currency_options().
  • scripts/update-currencies.php and current ISO 4217 data (List One of 2026-09-17).
  • Kernel tests, composer.json, README.md, GitLab CI, and this documentation.

Changed

  • Plugins use attributes and hook_help() uses a hook class, ready for Drupal 12.

2.0.0

The first 2.0.x release. Drupal 8, 9, 10 and 11.