Version 0.16.6
==============
*released on 13 June 2018*
- **Packagers:** Documentation building no longer needs a working installation
of vdirsyncer.
Version 0.16.5
==============
*released on 13 June 2018*
- **Packagers:** click-log 0.3 is required.
- All output will now happen on stderr (because of the upgrade of ``click-log``).
Version 0.16.3
==============
*released on 03 October 2017*
- First version with custom Debian and Ubuntu packages. See :gh:`663`.
- Remove invalid ASCII control characters from server responses. See :gh:`626`.
- **packagers:** Python 3.3 is no longer supported. See :ghpr:`674`.
- Fix crash when using daterange or item_type filters in
:storage:`google_calendar`, see :gh:`657`.
- **Packagers:** Fixes for new version ``0.2.0`` of ``click-log``. The version
requirements for the dependency ``click-log`` changed.
Version 0.16.1
==============
*released on 8 August 2017*
- Removed remoteStorage support, see :gh:`647`.
- Fixed test failures caused by latest requests version, see :gh:`660`.
Version 0.16.0
==============
*released on 2 June 2017*
- Strip ``METHOD:PUBLISH`` added by some calendar providers, see :gh:`502`.
- Fix crash of Google storages when saving token file.
- Make DAV discovery more RFC-conformant, see :ghpr:`585`.
- Vdirsyncer is now tested against Xandikos, see :ghpr:`601`.
- Subfolders with a leading dot are now ignored during discover for
``filesystem`` storage. This makes it easier to combine it with version
control.
- Statuses are now stored in a sqlite database. Old data is automatically
migrated. Users with really large datasets should encounter performance
improvements. This means that **sqlite3 is now a dependency of vdirsyncer**.
- **Vdirsyncer is now licensed under the 3-clause BSD license**, see :gh:`610`.
- Vdirsyncer now includes experimental support for `EteSync
<https://www.etesync.com/>`_, see :ghpr:`614`.
- Vdirsyncer now uses more filesystem metadata for determining whether an item
changed. You will notice a **possibly heavy CPU/IO spike on the first sync
after upgrading**.
- **Packagers:** Reference ``systemd.service`` and ``systemd.timer`` unit files
are provided. It is recommended to install these as documentation if your
distribution is systemd-based.
Version 0.15.0
==============
*released on 28 February 2017*
- Deprecated syntax for configuration values is now completely rejected. All
values now have to be valid JSON.
- A few UX improvements for Google storages, see :gh:`549` and :gh:`552`.
- Fix collection discovery for :storage:`google_contacts`, see :gh:`564`.
- iCloud is now tested on Travis, see :gh:`567`.
Version 0.14.1
==============
*released on 05 January 2017*
- ``vdirsyncer repair`` no longer changes "unsafe" UIDs by default, an extra
option has to be specified. See :gh:`527`.
- A lot of important documentation updates.
Version 0.14.0
==============
*released on 26 October 2016*
- ``vdirsyncer sync`` now continues other uploads if one upload failed. The
exit code in such situations is still non-zero.
- Add ``partial_sync`` option to pair section. See :ref:`the config docs
<partial_sync_def>`.
- Vdirsyner will now warn if there's a string without quotes in your config.
Please file issues if you find documentation that uses unquoted strings.
- Fix an issue that would break khal's config setup wizard.
Version 0.13.1
==============
*released on 30 September 2016*
- Fix a bug that would completely break collection discovery.
Version 0.13.0
==============
*released on 29 September 2016*
- Python 2 is no longer supported at all. See :gh:`219`.
- Config sections are now checked for duplicate names. This also means that you
cannot have a storage section ``[storage foo]`` and a pair ``[pair foo]`` in
your config, they have to have different names. This is done such that
console output is always unambigous. See :gh:`459`.
- Custom commands can now be used for conflict resolution during sync. See
:gh:`127`.
- :storage:`http` now completely ignores UIDs. This avoids a lot of unnecessary
down- and uploads.
Version 0.12.1
==============
*released on 20 August 2016*
- Fix a crash for Google and DAV storages. See :ghpr:`492`.
- Fix an URL-encoding problem with DavMail. See :gh:`491`.
Version 0.12
============
*released on 19 August 2016*
- :storage:`singlefile` now supports collections. See :ghpr:`488`.
Version 0.11.3
==============
*released on 29 July 2016*
- Default value of ``auth`` parameter was changed from ``guess`` to ``basic``
to resolve issues with the Apple Calendar Server (:gh:`457`) and improve
performance. See :gh:`461`.
- **Packagers:** The ``click-threading`` requirement is now ``>=0.2``. It was
incorrect before. See :gh:`478`.
- Fix a bug in the DAV XML parsing code that would make vdirsyncer crash on
certain input. See :gh:`480`.
- Redirect chains should now be properly handled when resolving ``well-known``
URLs. See :ghpr:`481`.
Version 0.11.2
==============
*released on 15 June 2016*
- Fix typo that would break tests.
Version 0.11.1
==============
*released on 15 June 2016*
- Fix a bug in collection validation.
- Fix a cosmetic bug in debug output.
- Various documentation improvements.
Version 0.11.0
==============
*released on 19 May 2016*
- Discovery is no longer automatically done when running ``vdirsyncer sync``.
``vdirsyncer discover`` now has to be explicitly called.
- Add a ``.plist`` example for Mac OS X.
- Usage under Python 2 now requires a special config parameter to be set.
- Various deprecated configuration parameters do no longer have specialized
errormessages. The generic error message for unknown parameters is shown.
- Vdirsyncer no longer warns that the ``passwordeval`` parameter has been
renamed to ``password_command``.
- The ``keyring`` fetching strategy has been dropped some versions ago, but
the specialized error message has been dropped.
- A old status format from version 0.4 is no longer supported. If you're
experiencing problems, just delete your status folder.
Version 0.10.0
==============
*released on 23 April 2016*
- New storage types :storage:`google_calendar` and :storage:`google_contacts`
have been added.
- New global command line option `--config`, to specify an alternative config
file. See :gh:`409`.
- The ``collections`` parameter can now be used to synchronize
differently-named collections with each other.
- **Packagers:** The ``lxml`` dependency has been dropped.
- XML parsing is now a lot stricter. Malfunctioning servers that used to work
with vdirsyncer may stop working.
Version 0.9.3
=============
*released on 22 March 2016*
- :storage:`singlefile` and :storage:`http` now handle recurring events
properly.
- Fix a typo in the packaging guidelines.
- Moved to ``pimutils`` organization on GitHub. Old links *should* redirect,
but be aware of client software that doesn't properly handle redirects.
Version 0.9.2
=============
*released on 13 March 2016*
- Fixed testsuite for environments that don't have any web browser installed.
See :ghpr:`384`.
Version 0.9.1
=============
*released on 13 March 2016*
- Removed leftover debug print statement in ``vdirsyncer discover``, see commit
``3d856749f37639821b148238ef35f1acba82db36``.
- ``metasync`` will now strip whitespace from the start and the end of the
values. See :gh:`358`.
- New ``Packaging Guidelines`` have been added to the documentation.
Version 0.9.0
=============
*released on 15 February 2016*
- The ``collections`` parameter is now required in pair configurations.
Vdirsyncer will tell you what to do in its error message. See :gh:`328`.
Version 0.8.1
=============
*released on 30 January 2016*
- Fix error messages when invalid parameter fetching strategy is used. This is
important because users would receive awkward errors for using deprecated
``keyring`` fetching.
Version 0.8.0
=============
*released on 27 January 2016*
- Keyring support has been removed, which means that ``password.fetch =
["keyring", "example.com", "myuser"]`` doesn't work anymore.
For existing setups: Use ``password.fetch = ["command", "keyring", "get",
"example.com", "myuser"]`` instead, which is more generic. See the
documentation for details.
- Now emitting a warning when running under Python 2. See :gh:`219`.
Version 0.7.5
=============
*released on 23 December 2015*
- Fixed a bug in :storage:`remotestorage` that would try to open a CLI browser
for OAuth.
- Fix a packaging bug that would prevent vdirsyncer from working with newer
lxml versions.
Version 0.7.4
=============
*released on 22 December 2015*
- Improved error messages instead of faulty server behavior, see :gh:`290` and
:gh:`300`.
- Safer shutdown of threadpool, avoid exceptions, see :gh:`291`.
- Fix a sync bug for read-only storages see commmit
`ed22764921b2e5bf6a934cf14aa9c5fede804d8e`.
- Etag changes are no longer sufficient to trigger sync operations. An actual
content change is also necessary. See :gh:`257`.
- :storage:`remotestorage` now automatically opens authentication dialogs in
your configured GUI browser.
- **Packagers:** ``lxml>=3.1`` is now required (newer lower-bound version).
Version 0.7.3
=============
*released on 05 November 2015*
- Make remotestorage-dependencies actually optional.
Version 0.7.2
=============
*released on 05 November 2015*
- Un-break testsuite.
Version 0.7.1
=============
*released on 05 November 2015*
- **Packagers:** The setuptools extras ``keyring`` and ``remotestorage`` have
been added. They're basically optional dependencies. See ``setup.py`` for
more details.
- Highly experimental remoteStorage support has been added. It may be
completely overhauled or even removed in any version.
- Removed mentions of old ``password_command`` in documentation.
Version 0.7.0
=============
*released on 27 October 2015*
- **Packagers:** New dependencies are ``click_threading``, ``click_log`` and
``click>=5.0``.
- ``password_command`` is gone. Keyring support got completely overhauled. See
:doc:`keyring`.
Problems found with mismatching existing digests for:
distfiles/asclock-classic-1.0.tar.gz
distfiles/asclock-gtk-2.1.10beta.tar.gz
distfiles/asclock-xlib-2.0.11.tar.gz
distfiles/emiclock-2.0.2.tar.gz
Otherwise, existing SHA1 digests verified and found to be the same on
the machine holding the existing distfiles (morden). All existing
SHA1 digests retained for now as an audit trail.
Version 0.6.0
=============
*released on 06 August 2015*
- ``password_command`` invocations with non-zero exit code are now fatal (and
will abort synchronization) instead of just producing a warning.
- Vdirsyncer is now able to synchronize metadata of collections. Set ``metadata
= ["displayname"]`` and run ``vdirsyncer metasync``.
- **Packagers:** Don't use the GitHub tarballs, but the PyPI ones.
- **Packagers:** ``build.sh`` is gone, and ``Makefile`` is included in
tarballs. See the content of ``Makefile`` on how to run tests post-packaging.
- ``verify_fingerprint`` doesn't automatically disable ``verify`` anymore.
Version 0.5.2
=============
*released on 15 June 2015*
- Vdirsyncer now checks and corrects the permissions of status files.
- Vdirsyncer is now more robust towards changing UIDs inside items.
- Vdirsyncer is now handling unicode hrefs and UIDs correctly. Software that
produces non-ASCII UIDs is broken, but apparently it exists.
Version 0.5.1
=============
*released on 29 May 2015*
- **N.b.: The PyPI upload of 0.5.0 is completely broken.**
- Raise version of required requests-toolbelt to ``0.4.0``.
- Command line should be a lot faster when no work is done, e.g. for help
output.
- Fix compatibility with iCloud again.
- Use only one worker if debug mode is activated.
- ``verify=false`` is now disallowed in vdirsyncer, please use
``verify_fingerprint`` instead.
- Fixed a bug where vdirsyncer's DAV storage was not using the configured
useragent for collection discovery.
* Support for client certificates via the new auth_cert parameter,
see issue #182 and pull request #183.
* The icalendar package is no longer required.
* Several bugfixes related to collection creation.
Version 0.4.3
=============
- More performance improvements to ``singlefile``-storage.
- Add ``post_hook`` param to ``filesystem``-storage.
- Collection creation now also works with SabreDAV-based servers, such as
Baikal or ownCloud.
- Removed some workarounds for Radicale. Upgrading to the latest Radicale will
fix the issues.
- Fixed issues with iCloud discovery.
- Vdirsyncer now includes a simple ``repair`` command that seeks to fix some
broken items.
Version 0.4.2
=============
*released on 30 January 2015*
- Vdirsyncer now respects redirects when uploading and updating items. This
might fix issues with Zimbra.
- Relative ``status_path`` values are now interpreted as relative to the
configuration file's directory.
- Fixed compatibility with custom SabreDAV servers. See :gh:`166`.
- Catch harmless threading exceptions that occur when shutting down vdirsyncer.
See :gh:`167`.
- Vdirsyncer now depends on ``atomicwrites``.
- Massive performance improvements to ``singlefile``-storage.
- Items with extremely long UIDs should now be saved properly in
``filesystem``-storage. See :gh:`173`.
Version 0.4.1
=============
*released on 05 January 2015*
- All ``create`` arguments from all storages are gone. Vdirsyncer now asks if
it should try to create collections.
- The old config values ``True``, ``False``, ``on``, ``off`` and ``None`` are
now invalid.
- UID conflicts are now properly handled instead of ignoring one item. Card-
and CalDAV servers are already supposed to take care of those though.
- Official Baikal support added.
Version 0.4.0
=============
*released on 31 December 2014*
- The ``passwordeval`` parameter has been renamed to ``password_command``.
- The old way of writing certain config values such as lists is now gone.
- Collection discovery has been rewritten. Old configuration files should be
compatible with it, but vdirsyncer now caches the results of the collection
discovery. You have to run ``vdirsyncer discover`` if collections were added
or removed on one side.
- Pair and storage names are now restricted to certain characters. Vdirsyncer
will issue a clear error message if your configuration file is invalid in
that regard.
- Vdirsyncer now supports the XDG-Basedir specification. If the
``VDIRSYNCER_CONFIG`` environment variable isn't set and the
``~/.vdirsyncer/config`` file doesn't exist, it will look for the
configuration file at ``$XDG_CONFIG_HOME/vdirsyncer/config``.
- Some improvements to CardDAV and CalDAV discovery, based on problems found
with FastMail. Support for ``.well-known``-URIs has been added.
Version 0.3.4
=============
*released on 8 December 2014*
- Some more bugfixes to config handling.
Version 0.3.3
=============
*released on 8 December 2014*
- Vdirsyncer now also works with iCloud. Particularly collection discovery and
etag handling were fixed.
- Vdirsyncer now encodes Cal- and CardDAV requests differently. This hasn't
been well-tested with servers like Zimbra or SoGo, but isn't expected to
cause any problems.
- Vdirsyncer is now more robust regarding invalid responses from CalDAV
servers. This should help with future compatibility with Davmail/Outlook.
- Fix a bug when specifying ``item_types`` of
:py:class:`vdirsyncer.storage.CaldavStorage` in the deprecated config format.
- Fix a bug where vdirsyncer would ignore all but one character specified in
``unsafe_href_chars`` of :py:class:`vdirsyncer.storage.CaldavStorage` and
:py:class:`vdirsyncer.storage.CarddavStorage`.
Version 0.3.2
=============
- The current config format has been deprecated, and support for it will be
removed in version 0.4.0. Vdirsyncer warns about this now.
Version 0.3.1
=============
*released on 24 November 2014*
- Fixed a bug where vdirsyncer would delete items if they're deleted on side A
but modified on side B. Instead vdirsyncer will now upload the new items to
side A. See :gh:`128`.
- Synchronization continues with the remaining pairs if one pair crashes, see
:gh:`121`.
- The ``processes`` config key is gone. There is now a ``--max-workers`` option
on the CLI which has a similar purpose. See :ghpr:`126`.
- The Read The Docs-theme is no longer required for building the docs. If it is
not installed, the default theme will be used. See :gh:`134`.