From 7c091a3f8a7435964cbd2cfac045abf90f8da718 Mon Sep 17 00:00:00 2001 From: Ben Boeckel Date: Thu, 28 Aug 2025 21:19:25 -0400 Subject: [PATCH] Update to 0.20.0 --- .gitignore | 1 + aiostream-version-bump.patch | 11 --- remove-atomicwrites-dep.patch | 161 ---------------------------------- sources | 1 + vdirsyncer.spec | 11 ++- 5 files changed, 7 insertions(+), 178 deletions(-) delete mode 100644 aiostream-version-bump.patch delete mode 100644 remove-atomicwrites-dep.patch diff --git a/.gitignore b/.gitignore index 59e214c..131b402 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /vdirsyncer-0.18.0.tar.gz /vdirsyncer-0.19.2.tar.gz /vdirsyncer-0.19.3.tar.gz +/vdirsyncer-0.20.0.tar.gz diff --git a/aiostream-version-bump.patch b/aiostream-version-bump.patch deleted file mode 100644 index 97a1e87..0000000 --- a/aiostream-version-bump.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- a/setup.py -+++ b/setup.py -@@ -19,7 +19,7 @@ requirements = [ - # https://github.com/untitaker/python-atomicwrites/commit/4d12f23227b6a944ab1d99c507a69fdbc7c9ed6d # noqa - "atomicwrites>=0.1.7", - "aiohttp>=3.8.0,<4.0.0", -- "aiostream>=0.4.3,<0.5.0", -+ "aiostream>=0.4.3,<0.7.0", - ] - - diff --git a/remove-atomicwrites-dep.patch b/remove-atomicwrites-dep.patch deleted file mode 100644 index 5a37153..0000000 --- a/remove-atomicwrites-dep.patch +++ /dev/null @@ -1,161 +0,0 @@ -diff --git a/.builds/tests-archlinux.yml b/.builds/tests-archlinux.yml -index b11fe30d2..494f6c73c 100644 ---- a/.builds/tests-archlinux.yml -+++ b/.builds/tests-archlinux.yml -@@ -10,7 +10,6 @@ packages: - - python-installer - - python-setuptools-scm - # Runtime dependencies: -- - python-atomicwrites - - python-click - - python-click-log - - python-click-threading -diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml -index 7304056b9..6beb3a4ca 100644 ---- a/.pre-commit-config.yaml -+++ b/.pre-commit-config.yaml -@@ -21,7 +21,6 @@ repos: - - types-setuptools - - types-docutils - - types-requests -- - types-atomicwrites - - repo: https://github.com/charliermarsh/ruff-pre-commit - rev: 'v0.2.2' - hooks: -diff --git a/CHANGELOG.rst b/CHANGELOG.rst -index b43a33de9..bc32cfda0 100644 ---- a/CHANGELOG.rst -+++ b/CHANGELOG.rst -@@ -9,6 +9,11 @@ Package maintainers and users who have to manually update their installation - may want to subscribe to `GitHub's tag feed - `_. - -+Version 0.19.4 -+============== -+ -+- Remove dependency on abandoned ``atomicwrites`` library. -+ - Version 0.19.3 - ============== - -diff --git a/setup.py b/setup.py -index 47f45a4cc..30cdc9c3b 100644 ---- a/setup.py -+++ b/setup.py -@@ -16,8 +16,6 @@ - "click>=5.0,<9.0", - "click-log>=0.3.0, <0.5.0", - "requests >=2.20.0", -- # https://github.com/untitaker/python-atomicwrites/commit/4d12f23227b6a944ab1d99c507a69fdbc7c9ed6d # noqa -- "atomicwrites>=0.1.7", - "aiohttp>=3.8.0,<4.0.0", - "aiostream>=0.4.3,<0.7.0", - ] -diff --git a/vdirsyncer/cli/utils.py b/vdirsyncer/cli/utils.py -index 428a9c9a3..97f48edc2 100644 ---- a/vdirsyncer/cli/utils.py -+++ b/vdirsyncer/cli/utils.py -@@ -10,7 +10,6 @@ - - import aiohttp - import click --from atomicwrites import atomic_write - - from .. import BUGTRACKER_HOME - from .. import DOCS_HOME -@@ -21,6 +20,7 @@ - from ..sync.exceptions import StorageEmpty - from ..sync.exceptions import SyncConflict - from ..sync.status import SqliteStatus -+from ..utils import atomic_write - from ..utils import expand_path - from ..utils import get_storage_init_args - from . import cli_logger -diff --git a/vdirsyncer/storage/filesystem.py b/vdirsyncer/storage/filesystem.py -index ec0ab52e3..8785acc30 100644 ---- a/vdirsyncer/storage/filesystem.py -+++ b/vdirsyncer/storage/filesystem.py -@@ -5,9 +5,8 @@ - import os - import subprocess - --from atomicwrites import atomic_write -- - from .. import exceptions -+from ..utils import atomic_write - from ..utils import checkdir - from ..utils import expand_path - from ..utils import generate_href -diff --git a/vdirsyncer/storage/google.py b/vdirsyncer/storage/google.py -index 93b784872..ed496a06b 100644 ---- a/vdirsyncer/storage/google.py -+++ b/vdirsyncer/storage/google.py -@@ -11,9 +11,9 @@ - - import aiohttp - import click --from atomicwrites import atomic_write - - from .. import exceptions -+from ..utils import atomic_write - from ..utils import checkdir - from ..utils import expand_path - from ..utils import open_graphical_browser -diff --git a/vdirsyncer/storage/singlefile.py b/vdirsyncer/storage/singlefile.py -index 982763295..41e7e330e 100644 ---- a/vdirsyncer/storage/singlefile.py -+++ b/vdirsyncer/storage/singlefile.py -@@ -8,9 +8,8 @@ - import os - from typing import Iterable - --from atomicwrites import atomic_write -- - from .. import exceptions -+from ..utils import atomic_write - from ..utils import checkfile - from ..utils import expand_path - from ..utils import get_etag_from_file -diff --git a/vdirsyncer/utils.py b/vdirsyncer/utils.py -index 2e0fd9ce4..657d2d6a5 100644 ---- a/vdirsyncer/utils.py -+++ b/vdirsyncer/utils.py -@@ -1,8 +1,10 @@ - from __future__ import annotations - -+import contextlib - import functools - import os - import sys -+import tempfile - import uuid - from inspect import getfullargspec - from typing import Callable -@@ -220,3 +222,27 @@ def open_graphical_browser(url, new=0, autoraise=True): - return - - raise RuntimeError("No graphical browser found. Please open the URL " "manually.") -+ -+ -+@contextlib.contextmanager -+def atomic_write(dest, mode="wb", overwrite=False): -+ if "w" not in mode: -+ raise RuntimeError("`atomic_write` requires write access") -+ -+ fd, src = tempfile.mkstemp(prefix=os.path.basename(dest), dir=os.path.dirname(dest)) -+ file = os.fdopen(fd, mode=mode) -+ -+ try: -+ yield file -+ except Exception: -+ os.unlink(src) -+ raise -+ else: -+ file.flush() -+ file.close() -+ -+ if overwrite: -+ os.rename(src, dest) -+ else: -+ os.link(src, dest) -+ os.unlink(src) diff --git a/sources b/sources index dd8f01b..c25ba16 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ SHA512 (vdirsyncer-0.19.3.tar.gz) = 8651282302ad62b2bb6f7655429492dcff959cedc25e932d2e72deb2bb54406c6b5333fecdb14ae8c08ba3c20602856e8466198e24caee298fc9a08545fd3751 +SHA512 (vdirsyncer-0.20.0.tar.gz) = 8499440ce8ba036d40f5bbff9d7cadb485be8bb2419d1fbad947f244259dabba9f2527ffff24298f697dd10e6ccd39155ea9547a480c584f64da0eadb993dad7 diff --git a/vdirsyncer.spec b/vdirsyncer.spec index c15f5e6..61a051e 100644 --- a/vdirsyncer.spec +++ b/vdirsyncer.spec @@ -9,18 +9,14 @@ %global _docdir_fmt %{name} Name: vdirsyncer -Version: 0.19.3 -Release: 6%{?dist} +Version: 0.20.0 +Release: 1%{?dist} Summary: %{sum} License: BSD-3-Clause URL: https://github.com/pimutils/%{name} Source0: %{pypi_source} -Patch0: aiostream-version-bump.patch -# https://github.com/pimutils/vdirsyncer/commit/8b063c39cb3e26a2beef5b6beed7e99c9e9641ac -Patch1: remove-atomicwrites-dep.patch - BuildArch: noarch Obsoletes: python2-%{srcname} <= 0.12.1 @@ -150,6 +146,9 @@ sh build.sh tests %doc docs/_build/html docs/_build/text %changelog +* Thu Aug 28 2025 Ben Boeckel - 0.20.0-1 +- Update to 0.20.0 + * Mon Aug 18 2025 Ben Boeckel - 0.19.3-6 - Remove atomicwrites dependency (see rhbz#2385436)