Skip to content

Latest commit

 

History

History
133 lines (91 loc) · 9.68 KB

CHANGELOG.md

File metadata and controls

133 lines (91 loc) · 9.68 KB

Changelog

All notable changes to this project starting from v1.2 will be documented in this file.

Changelogs prior to v1.2 has been removed, but are available in the v1.2-release. (The project started with a GNU ChangeLog, but it was useless and horrible to maintain. Then an improvised changelog format was used, until the maintainer was pointed towards https://keepachangelog.com. The format of this file should adhere to Keep a Changelog.

This project should more or less adhere to Semantic Versioning.

[1.4.0] - unreleased

  • Georges Toth (@sim0nx) did a lot of efforts lifting up the project to more modern standards.
  • A hook for collecting debug information has been in the pull request queue for ages. I've decided to include it in 1.4.0.

Fixed

  • get_duration: make sure the algorithm doesn't raise an exception comparing dates with timestamps
  • set_due: make sure the algorithm doesn't raise an exception comparing naive timestamps with timezone timestamps
  • Code formatting / style fixes.
  • Jason Yau introduced the possibility to add arbitrary headers - but things like User-Agent would anyway always be overwritten. Now the custom logic takes precedence. Pull request python-caldav#386, issue python-caldav#385
  • Search method has some logic handling non-conformant servers (loading data from the server if the search response didn't include the icalendar data, ignoring trash from the Google server when it returns data without a VTODO/VEVENT/VJOURNAL component), but it was inside an if-statement and applied only if Expanded-flag was set to True. Moved the logic out of the if, so it always applies.
  • Revisited a problem that Google sometimes delivers junk when doing searches - credits to github user @zhwei in python-caldav#366
  • There were some compatibility-logic loading objects if the server does not deliver icalendar data (as it's suppsoed to do according to the RFC), but only if passing the expand-flag to the search-method. Fixed that it loads regardless of weather expand is set or not. Also in python-caldav#366
  • Tests - a breakage was introduced for servers not supporting MKCALENDAR - details in python-caldav#368
  • Tests - all tests passes for python 3.12 as well - as expected.
  • The vcal fixup method was converting implicit dates into timestamps in the COMPLETED property, as it should be a timestamp according to the RFC - however, the regexp failed on explicit dates. Now it will take explicit dates too.

Changed

  • In python-caldav#366, I optimized the logic in search a bit, now all data from the server not containing a VEVENT, VTODO or VJOURNAL will be thrown away. I believe this won't cause any problems for anyone, as the server should only deliver such components, but I may be wrong.

Added

Security

The debug information gathering hook has been in the limbo for a long time, due to security concerns:

  • An attacker that has access to alter the environment the application is running under may cause a DoS-attack, filling up available disk space with debug logging.
  • An attacker that has access to alter the environment the application is running under, and access to read files under /tmp (files being 0600 and owned by the uid the application is running under), will be able to read the communication between the server and the client, communication that may be private and confidential.

Thinking it through three times, I'm not too concerned - if someone has access to alter the environment the process is running under and access to read files run by the uid of the application, then this someone should already be trusted and will probably have the possibility to DoS the system or gather this communication through other means.

[1.3.9] - 2023-12-12

Some bugfixes.

Fixed

  • Some parts of the library would throw OverflowError on very weird dates/timestamps. Now those are converted to the minimum or maximum accepted date/timestamp. Credits to github user @tamarinvs19 in python-caldav#327
  • DAVResponse.davclient was always set to None, now it may be set to the DAVClient instance. Credits to github user @sobolevn in python-caldav#323
  • DAVResponse.davclient was always set to None, now it may be set to the DAVClient instance. Credits to github user @sobolevn in python-caldav#323
  • examples/sync_examples.py, the sync token needs to be saved to the database (credits to Savvas Giannoukas)
  • Bugfixes in set_relations, credits to github user @Zocker1999NET in python-caldav#335 and python-caldav#333
  • Dates that are off the scale are converted to min_date and max_date (and logging en error) rather than throwing OverflowError, credits to github user @tamarinvs19 in python-caldav#327
  • Completing a recurring task with a naïve or floating DTSTART would cause a runtime error
  • Tests stopped working on python 3.7 and python 3.8 for a while. This was only an issue with libraries used for the testing, and has been mended.
  • Bugfix that a 500 internal server error could cause an recursion loop, credits to github user @bchardin in python-caldav#344
  • Compatibility-fix for Google calendar, credits to github user @e-katov in python-caldav#344
  • Spelling, grammar and removing a useless regexp, credits to github user @scop in python-caldav#337
  • Faulty icalendar code caused the code for fixing faulty icalendar code to break, credits to github user @yuwash in python-caldav#347 and python-caldav#350
  • Sorting on uppercase attributes didn't work, ref issue python-caldav#352 - credits to github user @ArtemIsmagilov.
  • The sorting algorithm was dependent on vobject library - refactored to use icalendar library instead
  • Lots more test code on the sorting, and fixed some corner cases
  • Creating a task with a status didn't work

[1.3.8] - 2023-12-10 [YANKED]

Why do I never manage to do releases right ..

[1.3.7] - 2023-12-10 [YANKED]

I managed to tag the wrong commit

[1.3.6] - 2023-07-20

Very minor test fix

Fixed

One of the tests has been partially disabled, ref python-caldav#300 , python-caldav#320 and python-caldav#321

[1.3.5] - 2023-07-19 [YANKED]

Seems like I've been using the wrong procedure all the time for doing pypi-releases

[1.3.4] - 2023-07-19 [YANKED]

... Github has some features that it will merge pull requests only when all tests passes ... but somehow I can't get it to work, so 1.3.4 broke the style test again ...

[1.3.3] - 2023-07-19

Summary: Some few workarounds to support yet more different calendar servers and cloud providers, some few minor enhancements needed by various contributors, and some minor bugfixes.

Added

  • Support for very big events, credits to github user @aaujon in python-caldav#301
  • Custom HTTP headers was added in v1.2, but documentation and unit test is added in v1.3, credits to github user @JasonSanDiego in python-caldav#306
  • More test code in python-caldav#308
  • Add props parameter to search function, credits to github user @ge-lem in python-caldav#315
  • Set an id field in calendar objects when populated through CalendarSet.calendars(), credits to github user @shikasta-net in python-caldav#314
  • get_relatives-method, python-caldav#294
  • get_dtend-method

Fixed

Changes

  • Refactored relation handling in set_due

[1.3.2] - 2023-07-19 [YANKED]

One extra line in CHANGELOG.md caused style tests to break. Can't have a release with broken tests. Why is it so hard for me to do releases correctly?

[1.3.1] - 2023-07-19 [YANKED]

I forgot bumping the version number from 1.3.0 to 1.3.1 prior to tagging

[1.3.0] - 2023-07-19 [YANKED]

I accidentally tagged the wrong stuff in the git repo