1
0
forked from pool/python-caldav

Compare commits

...

2 Commits

Author SHA256 Message Date
Ana Guerrero
3a0530ef5e Accepting request 1226487 from devel:languages:python
OBS-URL: https://build.opensuse.org/request/show/1226487
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/python-caldav?expand=0&rev=15
2024-11-26 19:56:25 +00:00
573502298f - Update to 1.4.0
* Lots of work lifting the project up to more modern standards and improving code,
    thanks to Georges Toth (github @sim0nx), Matthias Urlichs (github @smurfix) and
    @ArtemIsmagilov.  While this shouldn't matter for existing users, it will make
    the library more future-proof.
  * Quite long lists of fixes, improvements and some few changes, nothing big, main
    focus is on ensuring compatibility with as many server implementations as possible.
    See below.
  * Partial workaround for https://github.com/python-caldav/caldav/issues/401 - some
    servers require comptype in the search query -
  * At least one bugfix, possibly fixing #399 - the `accept_invite`-method not working
    - https://github.com/python-caldav/caldav/pull/403
  * Fix/workaround for servers sending MAILTO in uppercase
    - https://github.com/python-caldav/caldav/issues/388,
      https://github.com/python-caldav/caldav/issues/399
      and https://github.com/python-caldav/caldav/pull/403
  * `get_duration`: make sure the algorithm doesn't raise an exception comparing dates
    with timestamps - https://github.com/python-caldav/caldav/pull/381
  * `set_due`: make sure the algorithm doesn't raise an exception comparing naive timestamps
    with timezone timestamps - https://github.com/python-caldav/caldav/pull/381
  * 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
    https://github.com/python-caldav/caldav/pull/386, issue https://github.com/python-caldav/caldav/issues/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

OBS-URL: https://build.opensuse.org/package/show/devel:languages:python/python-caldav?expand=0&rev=31
2024-11-26 11:20:26 +00:00
4 changed files with 113 additions and 8 deletions

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0eaf7537145383d89cf5b5802dea7d5669570741148fc572c53b70f286f1094a
size 106392

3
caldav-1.4.0.tar.gz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:4317131127d8793f740cff2fd256f369321fa49ad750f83d6f31780f7c16c67b
size 141012

View File

@ -1,3 +1,106 @@
-------------------------------------------------------------------
Mon Nov 25 12:54:36 UTC 2024 - John Paul Adrian Glaubitz <adrian.glaubitz@suse.com>
- Update to 1.4.0
* Lots of work lifting the project up to more modern standards and improving code,
thanks to Georges Toth (github @sim0nx), Matthias Urlichs (github @smurfix) and
@ArtemIsmagilov. While this shouldn't matter for existing users, it will make
the library more future-proof.
* Quite long lists of fixes, improvements and some few changes, nothing big, main
focus is on ensuring compatibility with as many server implementations as possible.
See below.
* Partial workaround for https://github.com/python-caldav/caldav/issues/401 - some
servers require comptype in the search query -
* At least one bugfix, possibly fixing #399 - the `accept_invite`-method not working
- https://github.com/python-caldav/caldav/pull/403
* Fix/workaround for servers sending MAILTO in uppercase
- https://github.com/python-caldav/caldav/issues/388,
https://github.com/python-caldav/caldav/issues/399
and https://github.com/python-caldav/caldav/pull/403
* `get_duration`: make sure the algorithm doesn't raise an exception comparing dates
with timestamps - https://github.com/python-caldav/caldav/pull/381
* `set_due`: make sure the algorithm doesn't raise an exception comparing naive timestamps
with timezone timestamps - https://github.com/python-caldav/caldav/pull/381
* 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
https://github.com/python-caldav/caldav/pull/386, issue https://github.com/python-caldav/caldav/issues/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 https://github.com/python-caldav/caldav/pull/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 https://github.com/python-caldav/caldav/pull/366
* Tests - lots of work getting as much test code as possible to pass on different servers, and
now testing also for Python 3.12 - ref https://github.com/python-caldav/caldav/pull/368
https://github.com/python-caldav/caldav/issues/360 https://github.com/python-caldav/caldav/pull/447
https://github.com/python-caldav/caldav/pull/369 https://github.com/python-caldav/caldav/pull/370
https://github.com/python-caldav/caldav/pull/441 https://github.com/python-caldav/caldav/pull/443a
* 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. https://github.com/python-caldav/caldav/pull/387
* Code cleanups and modernizing the code - https://github.com/python-caldav/caldav/pull/404
https://github.com/python-caldav/caldav/pull/405 https://github.com/python-caldav/caldav/pull/406
https://github.com/python-caldav/caldav/pull/407 https://github.com/python-caldav/caldav/pull/408
https://github.com/python-caldav/caldav/pull/409 https://github.com/python-caldav/caldav/pull/412
https://github.com/python-caldav/caldav/pull/414 https://github.com/python-caldav/caldav/pull/415
https://github.com/python-caldav/caldav/pull/418 https://github.com/python-caldav/caldav/pull/419
https://github.com/python-caldav/caldav/pull/417 https://github.com/python-caldav/caldav/pull/421
https://github.com/python-caldav/caldav/pull/423 https://github.com/python-caldav/caldav/pull/430
https://github.com/python-caldav/caldav/pull/431 https://github.com/python-caldav/caldav/pull/440
https://github.com/python-caldav/caldav/pull/365
* Doc - improved examples, https://github.com/python-caldav/caldav/pull/427
* Purelymail sends absolute URLs, which is allowed by the RFC but was not supported by the library.
Fixed in https://github.com/python-caldav/caldav/pull/442
* In https://github.com/python-caldav/caldav/pull/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.
* Default User-Agent changed from `Mozilla/5` to `python-caldav/{__version__}`
- https://github.com/python-caldav/caldav/pull/392
* Change fixup log lvl to warning and merge diff log messages into related parent log by @MrEbbinghaus
in https://github.com/python-caldav/caldav/pull/438
* Mandatory fields are now added if trying to save incomplete icalendar data,
https://github.com/python-caldav/caldav/pull/447
* Allow to reverse the sorting order on search function by @twissell
- in https://github.com/python-caldav/caldav/pull/433
* Work on integrating typing information. Details in
https://github.com/python-caldav/caldav/pull/358
* Remove dependency on pytz. Details in https://github.com/python-caldav/caldav/issues/231
and https://github.com/python-caldav/caldav/pull/363
* Use setuptools-scm / pyproject.toml (modern packaging). Details in
https://github.com/python-caldav/caldav/pull/364 and https://github.com/python-caldav/caldav/pull/367
* Debugging tool - an environment variable can be set, causing the library to spew out server
communications into files under /tmp. Details in https://github.com/python-caldav/caldav/pull/249
and https://github.com/python-caldav/caldav/issues/248
* Comaptibility matrix for posteo.de servers in `tests/compatibility_issues.py`
* Added sort_reverse option to the search function to reverse the sorting order of the found objects.
* It's now possible to specify if `expand` should be done on the server side or client side. Default
is as before, expanding on server side, then on the client side if unexpanded data is returned.
It was found that some servers does expanding, but does not add `RECURRENCE-ID`.
https://github.com/python-caldav/caldav/pull/447
* 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.
- Switch build system from setuptools to pyproject.toml
* Add python-pip and python-wheel to BuildRequires
* Replace %python_build with %pyproject_wheel
* Replace %python_install with %pyproject_install
* Update name for dist directory in %files section
-------------------------------------------------------------------
Sun Jan 14 17:12:14 UTC 2024 - Axel Braun <axel.braun@gmx.de>

View File

@ -1,5 +1,5 @@
#
# spec file
# spec file for package python-caldav
#
# Copyright (c) 2024 SUSE LLC
#
@ -20,7 +20,7 @@
%global modname caldav
Name: python-%{modname}
Version: 1.3.9
Version: 1.4.0
Release: 0
Summary: CalDAV (RFC4791) client library for Python
License: Apache-2.0 AND GPL-3.0-or-later
@ -28,9 +28,11 @@ Group: Development/Languages/Python
URL: https://pypi.python.org/pypi/%{modname}
Source: https://files.pythonhosted.org/packages/source/c/caldav/%{modname}-%{version}.tar.gz
BuildRequires: %{python_module lxml}
BuildRequires: %{python_module pip}
BuildRequires: %{python_module requests}
BuildRequires: %{python_module setuptools}
BuildRequires: %{python_module vobject}
BuildRequires: %{python_module wheel}
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: python-icalendar
@ -56,19 +58,19 @@ events, modify events and properties).
find caldav -name "*.py" | xargs sed -i '1 {/^#!/d}'
%build
%python_build
%pyproject_wheel
%check
# almost all tests are online, would require
# caldav server to run
%install
%python_install
%pyproject_install
%python_expand %fdupes %{buildroot}%{$python_sitelib}
%files %{python_files}
%license COPYING.APACHE COPYING.GPL
%{python_sitelib}/%{modname}-%{version}-py*.egg-info
%{python_sitelib}/%{modname}-*.dist-info
%{python_sitelib}/%{modname}/
%changelog