Changelog

All notable changes to this project will be documented in this file.

This project adheres to Calendar Versioning with a strict backwards-compatibility policy.

The first number of the version is the year. The second number is incremented with each release, starting at 1 for each year. The third number is when we need to start branches for older releases (only for emergencies).


You shouldn’t ever be afraid to upgrade environ-config if you’re using its public APIs and pay attention to DeprecationWarnings. Whenever there is a need to break compatibility, it is announced here in the changelog and raises a DeprecationWarning for a year (if possible) before it’s finally really broken.

Unreleased

Fixed

  • Type hints for environ.group() now respects the optional argument. #98

Changes

  • Secrets are now handled like environment variables in optional groups, so that if all secrets (and environment variables) are missing, the group becomes None. This change also causes the MissingSecretError exceptions to include all missing secrets, not just the first one. #100

24.1.0 - 2024-08-08

Added

  • Support for Python 3.13.

  • Support for Moto 5. #76

Removed

  • Support for Python 3.7.

23.2.0 - 2023-04-24

Fixed

  • Type hints for environ.config() now allow for arguments (e.g. @environ.config(prefix="")). #56

23.1.0 - 2023-01-27

Backwards-incompatible Changes

none

Deprecations

none

Changes

  • environ.secrets.DirectorySecrets.from_path() now works when loading from os.environ. #45

  • Public APIs now carry type hints (except in-class methods like AppConfig.from_environ()). #49

22.1.0 - 2022-04-02

Deprecations:

  • Python 2.7, 3.5, and 3.6 support has been dropped. environ-config now requires Python 3.7 or later.

Changes:

  • Lazily init the AWS Secrets Manager client to make unit testing easier. #25

21.2.0 - 2021-05-17

Deprecations:

  • This is the last release supporting Python versions older than 3.7.

Changes:

21.1.0 - 2021-04-14

Backwards-incompatible Changes

none

Deprecations:

none

Changes:

  • Fixed environment variables’ names when prefix is empty. #14

  • Added the optional keyword argument to environ.group() #17

  • Added DirectorySecrets secret reader, which can read secrets from a directory of files. Useful for Docker or Kubernetes mounted secrets inside a container. #19

20.1.0 - 2020-03-23

Backwards-incompatible Changes

none

Deprecations:

none

Changes:

  • Configurations can be immutable now. #12

19.1.0 - 2019-09-02

Backwards-incompatible Changes

  • Changed license from MIT to Apache License 2.

Deprecations:

none

Changes:

  • Added AppConfig.from_environ() to instantiate the configuration class. This is an alternative to environ.from_environ(AppConfig). #5

  • Added environ.generate_help(AppConfig) and AppConfig.generate_help() to create a help string based on the configuration.

  • Allow passing customization of the "from_environ" and "generate_help" class methods. #7

  • If environ.var is passed an attr.Factory, the callable is used to generate the default value. #10

18.2.0 - 2018-01-12

Backwards-incompatible Changes

  • Use RawConfigParser for ini-style secrets to avoid interpolation errors.

Changes:

none

18.1.0 - 2018-01-04

Backwards-incompatible Changes

  • convertconverter

Changes:

  • Fix for attrs 17.4.0.

17.1.0 - 2017-12-14

Initial release.