From: Johannes Thyssen Tishman Subject: Re: [update] productivity/py-caldav 1.2.1 -> 2.0.1 To: ports@openbsd.org Date: Fri, 26 Sep 2025 18:55:41 +0000 2025-09-26T18:33:38+0100 Stuart Henderson : > 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 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