Changelog
=========

All notable changes to this project will be documented in this file.
The format is inspired by `Keep a Changelog <https://keepachangelog.com/en/1.0.0/>`_
and this project adheres to `Semantic Versioning <https://semver.org/spec/v2.0.0.html>`_.

`v0.11.2`_ - 1-September-2023
-------------------------------
Fixed
+++++
- Revert "Add variable expansion." feature
  due to `#490 <https://github.com/joke2k/django-environ/issues/490>`_.


`v0.11.1`_ - 30-August-2023
---------------------------
Fixed
+++++
- Revert "Add interpolate argument to avoid resolving proxied values." feature
  due to `#485 <https://github.com/joke2k/django-environ/issues/485>`_.


`v0.11.0`_ - 30-August-2023
---------------------------
Added
+++++
- Added support for Django 4.2
  `#456 <https://github.com/joke2k/django-environ/pull/456>`_.
- Added support for secure Elasticsearch connections
  `#463 <https://github.com/joke2k/django-environ/pull/463>`_.
- Added variable expansion
  `#468 <https://github.com/joke2k/django-environ/pull/468>`_.
- Added capability to handle comments after #, after quoted values,
  like ``KEY= 'part1 # part2' # comment``
  `#475 <https://github.com/joke2k/django-environ/pull/475>`_.
- Added support for ``interpolate`` parameter
  `#415 <https://github.com/joke2k/django-environ/pull/415>`_.

Changed
+++++++
- Used ``mssql-django`` as engine for SQL Server
  `#446 <https://github.com/joke2k/django-environ/pull/446>`_.
- Changed handling bool values, stripping whitespace around value
  `#475 <https://github.com/joke2k/django-environ/pull/475>`_.
- Use ``importlib.util.find_spec`` to ``replace pkgutil.find_loader``
  `#482 <https://github.com/joke2k/django-environ/pull/482>`_.


Removed
+++++++
- Removed support of Python 3.5.


`v0.10.0`_ - 2-March-2023
-------------------------
Added
+++++
- Use the core redis library by default if running Django >= 4.0
  `#356 <https://github.com/joke2k/django-environ/issues/356>`_.
- Value of dict can now contain an equal sign
  `#241 <https://github.com/joke2k/django-environ/pull/241>`_.
- Added support for Python 3.11.
- Added ``CONN_HEALTH_CHECKS`` to database base options
  `#413 <https://github.com/joke2k/django-environ/issues/413>`_.
- Added ``encoding`` parameter to ``read_env`` with default value 'utf8'
  `#442 <https://github.com/joke2k/django-environ/pull/442>`_.
- Added support for Django 4.1
  `#416 <https://github.com/joke2k/django-environ/issues/416>`_.

Deprecated
++++++++++
- Support of Python < 3.6 is deprecated and will be removed
  in next major version.

Changed
+++++++
- Used UTF-8 as a encoding when open ``.env`` file.
- Provided access to ``DB_SCHEMES`` through ``cls`` rather than
  ``Env`` in ``db_url_config``
  `#414 <https://github.com/joke2k/django-environ/pull/414>`_.
- Correct CI workflow to use supported Python versions/OS matrix
  `#441 <https://github.com/joke2k/django-environ/pull/441>`_.
- Reworked trigger CI workflows strategy
  `#440 <https://github.com/joke2k/django-environ/pull/440>`_.

Fixed
+++++
- Fixed logic of ``Env.get_value()`` to skip parsing only when
  ``default=None``, not for all default values that coerce to ``False``
  `#404 <https://github.com/joke2k/django-environ/issues/404>`_.
- Deleted duplicated include in docs/quickstart.rst
  `#439 <https://github.com/joke2k/django-environ/pull/439>`_.

Removed
+++++++
- Removed deprecated ``Env.unicode()``.
- Removed ``environ.register_schemes`` calls and do not modify global
  ``urllib.parse.urlparse``'s ``uses_*`` variables as this no longer needed
  `#246 <https://github.com/joke2k/django-environ/pull/246>`_.


`v0.9.0`_ - 15-June-2022
------------------------
Added
+++++
- Added support for Postgresql cluster URI
  `#355 <https://github.com/joke2k/django-environ/pull/355>`_.
- Added support for Django 4.0
  `#371 <https://github.com/joke2k/django-environ/issues/371>`_.
- Added support for prefixed variables
  `#362 <https://github.com/joke2k/django-environ/issues/362>`_.
- Amended documentation.

Deprecated
++++++++++
- ``Env.unicode()`` is deprecated and will be removed in the next
  major release. Use ``Env.str()`` instead.

Changed
+++++++
- Attach cause to ``ImproperlyConfigured`` exception
  `#360 <https://github.com/joke2k/django-environ/issues/360>`_.

Fixed
+++++
- Fixed ``_cast_urlstr`` unquoting
  `#357 <https://github.com/joke2k/django-environ/issues/357>`_.
- Fixed documentation regarding unsafe characters in URLs
  `#220 <https://github.com/joke2k/django-environ/issues/220>`_.
- Fixed ``environ.Path.__eq__()`` to compare paths correctly
  `#86 <https://github.com/joke2k/django-environ/issues/86>`_,
  `#197 <https://github.com/joke2k/django-environ/issues/197>`_.


`v0.8.1`_ - 20-October-2021
---------------------------
Fixed
+++++
- Fixed "Invalid line" spam logs on blank lines in env file
  `#340 <https://github.com/joke2k/django-environ/issues/340>`_.
- Fixed ``memcache``/``pymemcache`` URL parsing for correct identification of
  connection type `#337 <https://github.com/joke2k/django-environ/issues/337>`_.


`v0.8.0`_ - 17-October-2021
---------------------------
Added
+++++
- Log invalid lines when parse ``.env`` file
  `#283 <https://github.com/joke2k/django-environ/pull/283>`_.
- Added docker-style file variable support
  `#189 <https://github.com/joke2k/django-environ/issues/189>`_.
- Added option to override existing variables with ``read_env``
  `#103 <https://github.com/joke2k/django-environ/issues/103>`_,
  `#249 <https://github.com/joke2k/django-environ/issues/249>`_.
- Added support for empty var with None default value
  `#209 <https://github.com/joke2k/django-environ/issues/209>`_.
- Added ``pymemcache`` cache backend for Django 3.2+
  `#335 <https://github.com/joke2k/django-environ/pull/335>`_.

Fixed
+++++
- Keep newline/tab escapes in quoted strings
  `#296 <https://github.com/joke2k/django-environ/pull/296>`_.
- Handle escaped dollar sign in values
  `#271 <https://github.com/joke2k/django-environ/issues/271>`_.
- Fixed incorrect parsing of ``DATABASES_URL`` for Google Cloud MySQL
  `#294 <https://github.com/joke2k/django-environ/issues/294>`_.


`v0.7.0`_ - 11-September-2021
------------------------------
Added
+++++
- Added support for negative float strings
  `#160 <https://github.com/joke2k/django-environ/issues/160>`_.
- Added Elasticsearch5 to search scheme
  `#297 <https://github.com/joke2k/django-environ/pull/297>`_.
- Added Elasticsearch7 to search scheme
  `#314 <https://github.com/joke2k/django-environ/issues/314>`_.
- Added the ability to use ``bytes`` or ``str`` as a default value for ``Env.bytes()``.

Fixed
+++++
- Fixed links in the documentation.
- Use default option in ``Env.bytes()``
  `#206 <https://github.com/joke2k/django-environ/pull/206>`_.
- Safely evaluate a string containing an invalid Python literal
  `#200 <https://github.com/joke2k/django-environ/issues/200>`_.

Changed
+++++++
- Added 'Funding' and 'Say Thanks!' project urls on pypi.
- Stop raising ``UserWarning`` if ``.env`` file isn't found. Log a message with
  ``INFO`` log level instead `#243 <https://github.com/joke2k/django-environ/issues/243>`_.


`v0.6.0`_ - 4-September-2021
----------------------------
Added
+++++
- Python 3.9, 3.10 and pypy 3.7 are now supported.
- Django 3.1 and 3.2 are now supported.
- Added missed classifiers to ``setup.py``.
- Accept Python 3.6 path-like objects for ``read_env``
  `#106 <https://github.com/joke2k/django-environ/issues/106>`_,
  `#286 <https://github.com/joke2k/django-environ/issues/286>`_.

Fixed
+++++
- Fixed various code linting errors.
- Fixed typos in the documentation.
- Added missed files to the package contents.
- Fixed ``db_url_config`` to work the same for all postgres-like schemes
  `#264 <https://github.com/joke2k/django-environ/issues/264>`_,
  `#268 <https://github.com/joke2k/django-environ/issues/268>`_.

Changed
+++++++
- Refactor tests to use pytest and follow DRY.
- Moved CI to GitHub Actions.
- Restructuring of project documentation.
- Build and test package documentation as a part of CI pipeline.
- Build and test package distribution as a part of CI pipeline.
- Check ``MANIFEST.in`` in a source package for completeness as a part of CI
  pipeline.
- Added ``pytest`` and ``coverage[toml]`` to setuptools' ``extras_require``.


`v0.5.0`_ - 30-August-2021
--------------------------
Added
+++++
- Support for Django 2.1 & 2.2.
- Added tox.ini targets.
- Added secure redis backend URLs via ``rediss://``.
- Added ``cast=str`` to ``str()`` method.

Fixed
+++++
- Fixed misspelling in the documentation.

Changed
+++++++
- Validate empty cache url and invalid cache schema.
- Set ``long_description_content_type`` in setup.
- Improved Django 1.11 database configuration support.


`v0.4.5`_ - 25-June-2018
------------------------
Added
+++++
- Support for Django 2.0.
- Support for smart casting.
- Support PostgreSQL unix domain socket paths.
- Tip: Multiple env files.

Changed
+++++++
- Fix parsing option values ``None``, ``True`` and ``False``.
- Order of importance of engine configuration in ``db_url_config``.

Removed
+++++++
- Remove ``django`` and ``six`` dependencies.


`v0.4.4`_ - 21-August-2017
--------------------------

Added
+++++
- Support for ``django-redis`` multiple locations (master/slave, shards).
- Support for Elasticsearch2.
- Support for Mysql-connector.
- Support for ``pyodbc``.
- Added ``__contains__`` feature to Environ class.

Fixed
+++++
- Fix Path subtracting.

`v0.4.3`_ - 21-August-2017
--------------------------
Changed
+++++++
- Rollback the default Environ to ``os.environ``.


`v0.4.2`_ - 13-April-2017
-------------------------
Added
+++++
- Confirm support for Django 1.11.
- Support for Redshift database URL.

Changed
+++++++
- Fixed uwsgi settings reload problem
  `#55 <https://github.com/joke2k/django-environ/issues/55>`_.
- Update support for ``django-redis`` urls
  `#109 <https://github.com/joke2k/django-environ/pull/109>`_.


`v0.4.1`_ - 13-November-2016
----------------------------
Added
+++++
- Add support for Django 1.10.

Changed
+++++++
- Fixed for unsafe characters into URLs.
- Clarifying warning on missing or unreadable file.
  Thanks to `@nickcatal <https://github.com/nickcatal>`_.
- Fixed support for Oracle urls.
- Fixed support for ``django-redis``.


`v0.4`_ - 23-September-2015
---------------------------
Added
+++++
- New email schemes - ``smtp+ssl`` and ``smtp+tls`` (``smtps`` would be deprecated).
- Added tuple support. Thanks to `@anonymouzz <https://github.com/anonymouzz>`_.
- Added LDAP url support for database. Thanks to
  `django-ldapdb/django-ldapdb <https://github.com/django-ldapdb/django-ldapdb>`_.

Changed
+++++++
- Fixed non-ascii values (broken in Python 2.x).
- ``redis_cache`` replaced by ``django_redis``.
- Fixed psql/pgsql url.


`v0.3.1`_ - 19 Sep 2015
-----------------------
Added
+++++
- Added ``email`` as alias for ``email_url``.
- Django 1.7 is now supported.
- Added LDAP scheme support for ``db_url_config``.

Fixed
+++++
- Fixed typos in the documentation.
- Fixed ``environ.Path.__add__`` to correctly handle plus operator.
- Fixed ``environ.Path.__contains__`` to correctly work on Windows.


`v0.3`_ - 03-June-2014
----------------------
Added
+++++
- Added cache url support.
- Added email url support.
- Added search url support.

Changed
+++++++
- Rewriting README.rst.


v0.2.1 - 19-April-2013
----------------------
Changed
+++++++
- ``Env.__call__`` now uses ``Env.get_value`` instance method.


v0.2 - 16-April-2013
--------------------
Added
+++++
- Added advanced float parsing (comma and dot symbols to separate thousands and decimals).

Fixed
+++++
- Fixed typos in the documentation.


v0.1 - 2-April-2013
-------------------
Added
+++++
- Initial release.


.. _v0.11.2: https://github.com/joke2k/django-environ/compare/v0.11.1...v0.11.2
.. _v0.11.1: https://github.com/joke2k/django-environ/compare/v0.11.0...v0.11.1
.. _v0.11.0: https://github.com/joke2k/django-environ/compare/v0.10.0...v0.11.0
.. _v0.10.0: https://github.com/joke2k/django-environ/compare/v0.9.0...v0.10.0
.. _v0.9.0: https://github.com/joke2k/django-environ/compare/v0.8.1...v0.9.0
.. _v0.8.1: https://github.com/joke2k/django-environ/compare/v0.8.0...v0.8.1
.. _v0.8.0: https://github.com/joke2k/django-environ/compare/v0.7.0...v0.8.0
.. _v0.7.0: https://github.com/joke2k/django-environ/compare/v0.6.0...v0.7.0
.. _v0.6.0: https://github.com/joke2k/django-environ/compare/v0.5.0...v0.6.0
.. _v0.5.0: https://github.com/joke2k/django-environ/compare/v0.4.5...v0.5.0
.. _v0.4.5: https://github.com/joke2k/django-environ/compare/v0.4.4...v0.4.5
.. _v0.4.4: https://github.com/joke2k/django-environ/compare/v0.4.3...v0.4.4
.. _v0.4.3: https://github.com/joke2k/django-environ/compare/v0.4.2...v0.4.3
.. _v0.4.2: https://github.com/joke2k/django-environ/compare/v0.4.1...v0.4.2
.. _v0.4.1: https://github.com/joke2k/django-environ/compare/v0.4...v0.4.1
.. _v0.4: https://github.com/joke2k/django-environ/compare/v0.3.1...v0.4
.. _v0.3.1: https://github.com/joke2k/django-environ/compare/v0.3...v0.3.1
.. _v0.3: https://github.com/joke2k/django-environ/compare/v0.2.1...v0.3