Download raw body.
[update] productivity/py-caldav 1.2.1 -> 2.0.1
2025-09-26T18:33:38+0100 Stuart Henderson <stu@spacehopper.org>:
> On 2025/09/26 16:16, Johannes Thyssen Tishman wrote:
> > Please find below an update for productivity/py-caldav to version 2.0.1.
> >
> > To update, a port of productivity/py-recurring-ical-events is required,
> > which in turn depends on productivity/py-x-wr-timezone. I've attached
> > tarballs of both ports instead of sending them separately as both are
> > pretty small and straightforward. With these installed, all tests are
> > passing.
>
> license for py-x-wr-timezone is LGPLv3+ (top of x_wr_timezone.py),
> otherwise ok for that and py-recurring-ical-events
Yep, thanks. By running the tests for py-caldav I also found out that
py-x-wr-timezone needs devel/py-click in RUN_DEPENDS. See diff below
with the changes relative to the tarball I sent.
> py-caldav basically ok but a couple of small things,
>
> > +# skip tests that require against actual servers that require network and
> > +# additional dependencies, as well as tests for documentation which not
> > +# packaged
>
> I'd like not to disable tests just because they use network, it's
> usually pretty obvious what's going on and pf rules can be adjusted
> if needed. (But if the network tests are ones which also require
> fiddly extra deps then maybe kill those).
Yeah the additional deps are actual CalDAV servers such as radicale
(ported) and xandikos (not yet ported). See comment from
tests/test_caldav.py:
"""
Tests here communicate with third party servers and/or
internal ad-hoc instances of Xandikos and Radicale, dependent on the
configuration in conf_private.py.
Tests that do not require communication with a working caldav server
belong in test_caldav_unit.py
"""
and comment from conf_private.py:
## PRIVATE CALDAV SERVER(S) TO RUN TESTS TOWARDS
## Make a list of your own servers/accounts that you'd like to run the
## test towards. Running the test suite towards a personal account
## should generally be safe, it should not mess up with content there
## and it should clean up after itself, but don't sue me if anything
## goes wrong ...
so we'd have to configure a dummy server for these.
> Upstream dropped the vobject dep.
Ah, nice catch. Dropped from RUN_DEPENDS but left it in TEST_DEPENDS as
it is needed for tests. New diff below.
diff -rup productivity/py-x-wr-timezone/Makefile /usr/ports/mystuff/productivity/py-x-wr-timezone/Makefile
--- productivity/py-x-wr-timezone/Makefile Fri Sep 26 17:41:34 2025
+++ /usr/ports/mystuff/productivity/py-x-wr-timezone/Makefile Fri Sep 26 20:36:09 2025
@@ -10,7 +10,7 @@ GH_TAGNAME = v${MODPY_DISTV}
CATEGORIES = productivity
-# LGPLv3
+# LGPLv3+
PERMIT_PACKAGE = Yes
MODULES = lang/python
@@ -18,10 +18,10 @@ MODULES = lang/python
MODPY_PYBUILD = setuptools
RUN_DEPENDS = devel/py-icalendar \
+ devel/py-click \
devel/py-tzdata
-TEST_DEPENDS = devel/py-click \
- devel/py-tz \
+TEST_DEPENDS = devel/py-tz \
${FULLPKGNAME}:${BUILD_PKGPATH}
# test_readme.py is unnecessary and adds a dependency
Index: Makefile
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/Makefile,v
diff -u -p -r1.4 Makefile
--- Makefile 29 Apr 2025 10:39:40 -0000 1.4
+++ Makefile 26 Sep 2025 18:50:49 -0000
@@ -1,11 +1,10 @@
COMMENT = caldav client library for Python
-MODPY_DISTV = 1.2.1
+MODPY_DISTV = 2.0.1
GH_ACCOUNT = python-caldav
GH_PROJECT = caldav
GH_TAGNAME = v${MODPY_DISTV}
PKGNAME = py-${DISTNAME}
-REVISION = 2
CATEGORIES = productivity net
@@ -14,13 +13,23 @@ PERMIT_PACKAGE = Yes
MODULES = lang/python
-MODPY_PYBUILD = setuptools
+MODPY_PYBUILD = hatch-vcs
RUN_DEPENDS = devel/py-icalendar \
+ productivity/py-recurring-ical-events \
textproc/py-lxml \
- textproc/py-vobject \
www/py-requests
-TEST_DEPENDS = devel/py-tzlocal
+TEST_DEPENDS = devel/py-tzlocal \
+ textproc/py-vobject
+
+# skip tests that run against actual servers and that require network access
+# and additional dependencies, as well as tests for documentation which is not
+# packaged.
+MODPY_PYTEST_ARGS= --ignore 'tests/test_caldav.py' \
+ --ignore 'tests/test_docs.py' \
+ --ignore 'tests/test_examples.py'
+
+MAKE_ENV= SETUPTOOLS_SCM_PRETEND_VERSION=${MODPY_DISTV}
.include <bsd.port.mk>
Index: distinfo
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/distinfo,v
diff -u -p -r1.1.1.1 distinfo
--- distinfo 13 Aug 2023 05:57:00 -0000 1.1.1.1
+++ distinfo 26 Sep 2025 18:50:49 -0000
@@ -1,2 +1,2 @@
-SHA256 (caldav-1.2.1.tar.gz) = ShHZHjhhoMqAmXzTJZAOqUo4ddhpFD6eorBR9EaxHrA=
-SIZE (caldav-1.2.1.tar.gz) = 122700
+SHA256 (caldav-2.0.1.tar.gz) = Us+Qiww05nexrl+v2j9jts3YJBJ/CRVQcxkZuRFyjC8=
+SIZE (caldav-2.0.1.tar.gz) = 169649
Index: pkg/PLIST
===================================================================
RCS file: /cvs/ports/productivity/py-caldav/pkg/PLIST,v
diff -u -p -r1.3 PLIST
--- pkg/PLIST 29 Apr 2025 10:39:40 -0000 1.3
+++ pkg/PLIST 26 Sep 2025 18:50:49 -0000
@@ -7,18 +7,35 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/caldav-${MODPY_DISTV}.dist-info/licenses/
lib/python${MODPY_VERSION}/site-packages/caldav-${MODPY_DISTV}.dist-info/licenses/COPYING.APACHE
lib/python${MODPY_VERSION}/site-packages/caldav-${MODPY_DISTV}.dist-info/licenses/COPYING.GPL
-lib/python${MODPY_VERSION}/site-packages/caldav-${MODPY_DISTV}.dist-info/top_level.txt
lib/python${MODPY_VERSION}/site-packages/caldav/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}/
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}__init__.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}_version.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}_version.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}calendarobjectresource.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}calendarobjectresource.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}collection.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}collection.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}compatibility_hints.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}compatibility_hints.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}config.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davclient.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davclient.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davobject.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
+lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}davobject.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}objects.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}objects.${MODPY_PYC_MAGIC_TAG}pyc
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}requests.${MODPY_PYC_MAGIC_TAG}${MODPY_PYOEXTENSION}
lib/python${MODPY_VERSION}/site-packages/caldav/${MODPY_PYCACHE}requests.${MODPY_PYC_MAGIC_TAG}pyc
+lib/python${MODPY_VERSION}/site-packages/caldav/_version.py
+lib/python${MODPY_VERSION}/site-packages/caldav/calendarobjectresource.py
+lib/python${MODPY_VERSION}/site-packages/caldav/collection.py
+lib/python${MODPY_VERSION}/site-packages/caldav/compatibility_hints.py
+lib/python${MODPY_VERSION}/site-packages/caldav/config.py
lib/python${MODPY_VERSION}/site-packages/caldav/davclient.py
+lib/python${MODPY_VERSION}/site-packages/caldav/davobject.py
lib/python${MODPY_VERSION}/site-packages/caldav/elements/
lib/python${MODPY_VERSION}/site-packages/caldav/elements/__init__.py
${MODPY_COMMENT}lib/python${MODPY_VERSION}/site-packages/caldav/elements/${MODPY_PYCACHE}/
@@ -60,4 +77,5 @@ lib/python${MODPY_VERSION}/site-packages
lib/python${MODPY_VERSION}/site-packages/caldav/lib/url.py
lib/python${MODPY_VERSION}/site-packages/caldav/lib/vcal.py
lib/python${MODPY_VERSION}/site-packages/caldav/objects.py
+lib/python${MODPY_VERSION}/site-packages/caldav/py.typed
lib/python${MODPY_VERSION}/site-packages/caldav/requests.py
[update] productivity/py-caldav 1.2.1 -> 2.0.1