0.3.7	2026-04-11

 * Cache etag computation in VdirStore using stat metadata.
   (Jelmer Vernooĳ)

 * Add parsed file cache to VdirStore. (Jelmer Vernooĳ)

 * Populate index values during import. (Jelmer Vernooĳ)

 * Skip RRULE expansion for non-recurring calendar events.
   (Jelmer Vernooĳ)

 * Don't install benchmarks package. (Jelmer Vernooĳ)

 * Support EAGER environment variable in WSGI mode.
   (Jelmer Vernooĳ)

 * Add --eager flag for background index pre-population at startup.
   (Jelmer Vernooĳ)

 * Fix index-based time-range filtering for all-day recurring events.
   (Jelmer Vernooĳ)

 * Fix RECURRENCE-ID timezone in expanded recurrences.
   (Jelmer Vernooĳ)

 * Support time-range filter on VCALENDAR without comp-filter.
   (Jelmer Vernooĳ)

 * Support RRULE expansion for recurring VTODOs in time-range filters.
   (Jelmer Vernooĳ)

 * Fix VTODO time-range filter returning false positives.
   (Jelmer Vernooĳ)

 * Cache guessed store type with ctag-based invalidation.
   (Jelmer Vernooĳ)

 * Cache git config in RepoCollectionMetadata. (Jelmer Vernooĳ)

0.3.6	2026-04-09

 * Cache ctag (tree SHA) alongside the git index to avoid redundant
   tree builds. (Jelmer Vernooĳ)

 * Defer file parsing in index-based filtering until filter matches.
   (Jelmer Vernooĳ)

 * Cache store objects to avoid reopening git repos on every resource
   lookup. (Jelmer Vernooĳ)

 * Log key dependency versions at startup and on crashes.
   (Jelmer Vernooĳ)

0.3.5	2026-04-06

 * Add multi-user mode with automatic principal creation and
   path-based authorization. (Jelmer Vernooĳ, #469)

 * Add help subcommand. (Jelmer Vernooĳ)

 * Support icalendar 7.x. (Jelmer Vernooĳ, #596)

 * Cache the git index in TreeGitStore to avoid re-reading from disk.
   (Jelmer Vernooĳ, #613)

 * Cache the current tree in BareGitStore to avoid repeated object lookups.
   (Jelmer Vernooĳ, #614)

 * Use direct etag lookup in get_member() instead of linear scan.
   (Jelmer Vernooĳ, #612)

 * Log Remote-User in git commit message. (Yufei Zhang, #602)

 * Pass requester (User-Agent) through to git commit messages for all
   operations. (Jelmer Vernooĳ, #603)

 * Rename backends and factor out FilesystemBackend base class.
   (Jelmer Vernooĳ, #469)

 * Add --hide-principals flag to hide principals list on root page.
   (Jelmer Vernooĳ, #469)

 * Drop Python 3.8 support. (Jelmer Vernooĳ)

 * Fix icalendar compatibility with older versions by removing
   component_factory dependency. (Jelmer Vernooĳ, #589)

 * Fix logging. (Jelmer Vernooĳ, #579)

 * Fix sup5 formatting. (Jelmer Vernooĳ, #578)

0.3.4	2026-01-24

 * Add --socket-mode and --socket-group flags to set Unix domain socket
   permissions and group ownership. (Jelmer Vernooĳ, #331)

 * Fix OverflowError with date-only events at max date boundary.
   (Jelmer Vernooĳ, #577)

 * Fix DAV5x in HTML. (Jelmer Vernooĳ, #575)

 * Add xandikos container systemd file. (Jelmer Vernooĳ, #574)

 * Fix recurring events with non-UTC UNTIL when DTSTART is timezone-aware.
   (Jelmer Vernooĳ, #572)

0.3.3	2026-01-22

 * Support VALARM searching in calendar queries. (Jelmer Vernooĳ, #568)

 * Bump minimum dulwich version to 0.25. (Jelmer Vernooĳ)

 * Add python3-qrcode to container image. (Jelmer Vernooĳ)

 * Trigger docker container build on tags. (Jelmer Vernooĳ)

 * Fix container build failing on release events. (Jelmer Vernooĳ)

0.3.2	2026-01-21

 * Fix TypeError with mixed date/datetime types in EXDATE/RDATE.
   (Jelmer Vernooĳ, #537)

 * Allow escaped newlines in calendar text fields. (Jelmer Vernooĳ, #565)

0.3.1	2025-12-18

 * Fix console script entrypoint compatibility with setuptools.
   (Jelmer Vernooĳ, #563)

 * Add extensible validation error handling for different content types.
   (Jelmer Vernooĳ)

 * Implement calendar-description property modification. (Jelmer Vernooĳ, #555)

 * Implement refreshrate and calendar-timezone property support.
   (Jelmer Vernooĳ, #556)

 * Implement full CalDAV text-match support for all match types.
   (Jelmer Vernooĳ, #552)

 * Implement limit-freebusy-set support. (Jelmer Vernooĳ, #540)

 * Add support for chunked transfer encoding in HTTP requests.
   (Jelmer Vernooĳ, #535)

 * Add streaming response support for aiohttp. (Jelmer Vernooĳ, #535)

 * Add ARMv7 platform support to container builds. (Jelmer Vernooĳ, #534)

 * Publish Docker images for every commit with commit SHA tags.
   (Jelmer Vernooĳ, #533)

 * Fix Depth header validation for multiget REPORT operations.
   (Jelmer Vernooĳ, #559)

 * Fix dead property error responses per RFC 4918. (Jelmer Vernooĳ, #552)

 * Fix URI fragment handling in DELETE operations. (Jelmer Vernooĳ, #551)

 * Fix RFC 6578 sync-collection limit element bug. (Jelmer Vernooĳ, #550)

 * Fix precondition error responses to return correct status codes.
   (Jelmer Vernooĳ, #546)

 * Fix timezone awareness mismatch in RRULE occurrence generation.
   (Jelmer Vernooĳ, #529)

 * Fix EXDATE/RDATE handling to extract datetime values. (Jelmer Vernooĳ, #529)

 * Fix compatibility with Dulwich 1. (Jelmer Vernooĳ, #557)

 * Limit recurrence expansion for unbounded queries. (Jelmer Vernooĳ, #539)

 * Improve error messages for file parsing failures and RRULE parsing.
   (Jelmer Vernooĳ, #536)

 * Restrict supported dulwich versions. (Jelmer Vernooĳ, #541)

 * Clarify resource type validation in multiget and calendar-query reporters.
   (Jelmer Vernooĳ, #553, #554)

 * Document file format specification with complete metadata property reference.
   (Jelmer Vernooĳ, #561)

 * Move tests to root directory and don't install them. (Jelmer Vernooĳ, #532)

0.3.0	2025-11-26

 * Add RFC 7953 (Calendar Availability) support. (Jelmer Vernooĳ, #483)

 * Add WebDAV MOVE and COPY method support for collections and resources.
   (Jelmer Vernooĳ, #458, #460, #466)

 * Add CardDAV indexing support for improved search performance.
   (Jelmer Vernooĳ, #451)

 * Add support for CALDAV:limit-recurrence-set. (Jelmer Vernooĳ, #450)

 * Add support for VALARM search. (Jelmer Vernooĳ, #447)

 * Add support for filtering on recurring (rrule) events.
   (Jelmer Vernooĳ, #224)

 * Add caldav-server-tester integration for RFC4791 compliance testing.
   (Jelmer Vernooĳ, #516)

 * Add MemoryStore implementation. (Jelmer Vernooĳ, #464)

 * Add create-collection subcommand. (Jelmer Vernooĳ, #454)

 * Add 'serve' subcommand. (Jelmer Vernooĳ, #361, #362)

 * Show CalDAV URLs and QR barcode on homepage. (Jelmer Vernooĳ, #448)

 * Store User-Agent header in commit messages. (Jelmer Vernooĳ, #456)

 * Add Docker healthchecks. (Jelmer Vernooĳ, #506, #504)

 * Improve Docker configuration with environment variables and graceful shutdown.
   (Jelmer Vernooĳ, #485)

 * Ensure /data directory has correct ownership for named volumes in Docker.
   (Jelmer Vernooĳ)

 * Add per-store LRU cache for parsed files in GitStore for improved performance.
   (Jelmer Vernooĳ, #473)

 * Fix WebDAV litmus test failures and improve compliance. (Jelmer Vernooĳ, #497)

 * Fix contradictory POST Allow header behavior. (Jelmer Vernooĳ, #498, #495)

 * Fix high CPU usage from recurring events without bounds. (Jelmer Vernooĳ, #473)

 * Fix text search to use substring matching per RFC. (Jelmer Vernooĳ, #468)

 * Fix QR code URLs. (Jelmer Vernooĳ, #470)

 * Fix rrule filtering bug where expand_calendar_rrule modified the original calendar.
   (Jelmer Vernooĳ)

 * Fix index_keys() return type inconsistency causing paranoid mode assertion error.
   (Jelmer Vernooĳ, #457)

 * Fix handling of %2f in item names. (Jelmer Vernooĳ, #440)

 * Fix handling of whole-day recurring events. (Jelmer Vernooĳ, #442)

 * Fix property removal returning 500 error. (Jelmer Vernooĳ, #441)

 * Fix CardDAV/CalDAV report not returning 404 when no content type is available.
   (Jelmer Vernooĳ, #443)

 * Install dulwich from pip to fix Docker compatibility issue. (Jelmer Vernooĳ)

 * Disable autogc to prevent requests from timing out. (Jelmer Vernooĳ, #439)

 * Bump icalendar dependency, prevent upgrading beyond 7.0. (Jelmer Vernooĳ, #436)

 * Drop Python 3.9 support, add Python 3.14 support. (Jelmer Vernooĳ, #517)

 * Add documentation for installation, configuration, troubleshooting, and client setup.
   (Jelmer Vernooĳ, #459, #461, #453, #452)

0.2.12	2024-10-07

 * Migrate from pytz to zoneinfo (#353, Jelmer Vernooĳ)

 * Fix compatibility with newer icalendar. (#351, Jelmer Vernooĳ)

 * Fix docker command. (Artur Neumann)

 * web: Don't assume particular directory layout. (Jelmer Vernooĳ)

 * git: don't assume default branch is named 'master'.
   (Jelmer Vernooĳ)

 * Add git clone support for WSGI (Daniel Hőxtermann)

 * Document the valid settings for AUTOCREATE in the WSGI app
   (Jelmer Vernooĳ, #342)

 * Disable metrics port by default. (Jelmer Vernooĳ)

 * docs: Drop mention that Thunderbird doesn't support discovery,
   which is no longer true. (Jelmer Vernooĳ)

 * Update requirements to add vobject dependency (Wilco Baan Hofman)

0.2.11	2024-03-29

 * Various build cleanups/fixes. (Jelmer Vernooĳ)

 * Add multi-arch docker builds. (Maya)

 * do not listen on default address if systemd sockets (schnusch)

 * Use correct port in kubernetes to not conflict with the metrics port (Marcel, #286)

0.2.10	2023-09-04

 * Add support for systemd socket activation.
   (schnusch, #136, #155)

 * Add basic documentation.
   (Jelmer Vernooĳ)

 * Use entry points to install xandikos script.
   (Jelmer Vernooĳ, #163)

 * ``sync-collection``: handle invalid tokens.
   (Jelmer Vernooĳ)

0.2.8	2022-01-09

0.2.7	2021-12-27

 * Add basic XMP property support. (Jelmer Vernooĳ)

 * Add a /health target. (Jelmer Vernooĳ)

0.2.6	2021-03-20

 * Don't listen on TCP port (defautlting to 0.0.0.0) when a UNIX domain socket
   is specified. (schnusch, #134)

0.2.5	2021-02-18

 * Fix support for uwsgi when environ['wsgi.input'].read() does not
   accept a size=None. (Jelmer Vernooĳ)

0.2.4	2021-02-16

 * Wait for entire body to arrive. (Michael Alyn Miller, #129)

0.2.3	2020-07-25

 * Fix handling of WSGI - not all versions of start_response take
   keyword arguments. (Jelmer Vernooĳ, #124)

 * Add --no-strict option for clients that don't follow
   the spec. (Jelmer Vernooĳ)

 * Add basic support for expanding RRULE. (Jelmer Vernooĳ, #8)

 * Add parsing support for CALDAV:schedule-tag property.
   (Jelmer Vernooĳ)

 * Fix support for HTTP Expect. (Jelmer Vernooĳ, #126)

0.2.2	2020-05-14

 * Fix use of xandikos.wsgi module in uwsgi. (Jelmer Vernooĳ)

0.2.1	2020-05-06

 * Add missing dependencies in setup.py. (Jelmer Vernooĳ)

 * Fix syntax errors in xandikos/store/vdir.py.
   (Unused, but breaks bytecompilation). (Jelmer Vernooĳ)

0.2.0	2020-05-04

 * Fix <calendar-data> subelement filtering. (Jelmer Vernooĳ)

 * Skip non-calendar files for calendar-query operations.
   (Jelmer Vernooĳ, #108)

 * Switch to using aiohttp rather than uWSGI.
   (Jelmer Vernooĳ)

 * Query component's SUMMARY in ICalendarFile.describe().
   (Denis Laxalde)

 * Add /metrics support. (Jelmer Vernooĳ)

 * Drop support for Python 3.4, add support for 3.8.
   (Jelmer Vernooĳ)

0.1.0	2019-04-07

Initial release.
