Changelog
=========

1.7.0 (2018-01-29)
------------------

- `git.Clone` uses `git reset` instead of merge/checkout to get the defined
   state.

- batou uses `git reset` instead of merge/checkout to update the remote
  deployment repository.

- Improve error message when deploying a wrong branch.

1.6.1 (2017-11-27)
------------------

- Log very large (100k+) templates as dangerous. We've seen Jinja/Python
  segfault when users started using massively large (8MiB+) template files
  and this really isn't a good idea to start with. For example it increases
  computing time even at 100k quite a lot.

  We try to keep going, though. But in the case of segfaults the user sees a
  reasonable error message and knows what to do.

- Improve error reporting for missing our superfluous resources.

- Using File('foo') with implicitly picking up the source `foo` was confusing
  as it also would create (and enforce!) an empty file silently
  if the source did not exist.

  File('foo') now expects that the source `foo` exists and if you really want
  an empty file you have to explicitly say File('foo', content='') or if you
  don't care about the content use Presence('foo').

- Using File('foo') with implicitly picking up the source `foo` was confusing
  as it also would create (and enforce!) an empty file silently
  if the source did not exist.

  File('foo') now expects that the source `foo` exists and if you really want
  an empty file you have to explicitly say File('foo', content='') or if you
  don't care about the content use Presence('foo').

- Do not use '--always-copy' in VirtualEnv's any longer. This caused more pain
  and inconsistencies than it provided value.

1.6.0 (2017-11-07)
------------------

- Fix `self.log()` after `configure()` when no log was emitted during
  `configure()`

- The Purge component now includes directories.

  This is not made an option as previously trying to purge directories would
  have raised an error and thus made deployments unusable anyway. Relying
  on this would be considered at least very bad practice and was never promised
  anyway.

- The `rsync` update method now deletes files on the target.

- The supervisor component uses current versions of buildout and setuptools,
  so they still work after PyPI recently disabled http without ssl.


1.6.0a3 (2017-08-09)
--------------------

- Ignore link-local (fe80::/64) IPv6 addresses in ``batou.utils.Address``.

- Fix: Grant database.* when using ``mysql.Grant``


1.6.0a2 (2017-07-04)
--------------------

- General update of batou's dependencies.

- Fix: Don't update ``git.Clone`` when there are incoming changes but the
  revision is fixed.


1.6.0a1 (2017-07-03)
--------------------

- Add a way to override DNS lookup during configuration, to better support
  migration scenarios.


The change log of older releases is in `Historical releases`_.

.. _`Historical releases` : https://bitbucket.org/flyingcircus/batou/raw/tip/HISTORY.old.txt

