bergercookie / syncall

Bi-directional synchronization between services such as Taskwarrior, Google Calendar, Notion, Asana, and more
MIT License
456 stars 41 forks source link

[BUG] Using combinations results in error: combination_name and combination_of_tw_filters_and_caldav_calendar are incompatible with each other #137

Open tjex opened 2 days ago

tjex commented 2 days ago

❗❗❗ Please have a close look at the logs before posting them here. Amend the logs if you see your username or password there.

Describe the bug

I run the command to do the initial sync with caldav:

tw_caldav_sync --caldav-calendar Tasks --caldav-url https://dav.mailbox.org/caldav --caldav-user <my email> --caldav-passwd 'email/<my email>.gpg' -p tasks -s tasks

The combination gets saved correctly, and is stored as ~/.config/syncall/tasks.yaml.

When running the suggested command tw_caldav_sync --combination tasks.yaml, immediately after (no changes made to taskwarrior tasks or through other caldav clients), the command fails with the below output.

If I run the same initial command, everything works as expected, no errors or warning output.

To Reproduce

Steps to reproduce the behavior:

As above.

Expected Behavior

Running the saved combination, should run without without error, just as the original command that created the combination did.

📸 Screenshots

Terminal output:

15:00:11.79 | SUCCESS   | Sync completed successfully. You can now use the -b/--combination option to refer to this particular combination

  tw_caldav_sync --combination tasks.yaml

~
base > tw_caldav_sync -b tasks.yaml
Traceback (most recent call last):
  File "/home/tjex/.local/share/miniconda3/bin/tw_caldav_sync", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/syncall/scripts/tw_caldav_sync.py", line 95, in main
    check_optional_mutually_exclusive(
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/bubop/cli.py", line 46, in check_optional_mutually_exclusive
    raise CliIncompatibleOptionsError(
bubop.exceptions.CliIncompatibleOptionsError: Provided option groups combination_name and combination_of_tw_filters_and_caldav_calendar are incompatible with each other

~
base > tw_caldav_sync -b .config/syncall/tasks.yaml
Traceback (most recent call last):
  File "/home/tjex/.local/share/miniconda3/bin/tw_caldav_sync", line 8, in <module>
    sys.exit(main())
             ^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1157, in __call__
    return self.main(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1078, in main
    rv = self.invoke(ctx)
         ^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 1434, in invoke
    return ctx.invoke(self.callback, **ctx.params)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/click/core.py", line 783, in invoke
    return __callback(*args, **kwargs)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/syncall/scripts/tw_caldav_sync.py", line 95, in main
    check_optional_mutually_exclusive(
  File "/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/bubop/cli.py", line 46, in check_optional_mutually_exclusive
    raise CliIncompatibleOptionsError(
bubop.exceptions.CliIncompatibleOptionsError: Provided option groups combination_name and combination_of_tw_filters_and_caldav_calendar are incompatible with each other

Versions

OS Version (cat /etc/*-release; uname -a)

Fedora Asahi Remix release 40 (Forty) NAME="Fedora Linux Asahi Remix" VERSION="40 (Forty)" ID=fedora-asahi-remix ID_LIKE=fedora VERSION_ID=40 VERSION_CODENAME="" PLATFORM_ID="platform:f40" PRETTY_NAME="Fedora Linux Asahi Remix 40 (Forty)" ANSI_COLOR="0;38;2;60;110;180" LOGO=fedora-logo-icon CPE_NAME="cpe:/o:fedoraproject:fedora-asahi-remix:40" DEFAULT_HOSTNAME="fedora" HOME_URL="https://fedora-asahi-remix.org/" DOCUMENTATION_URL="https://docs.fedoraproject.org/en-US/fedora/f40/system-administrators-guide/" SUPPORT_URL="https://discussion.fedoraproject.org/c/neighbors/asahi/asahi-help/94" BUG_REPORT_URL="https://bugzilla.redhat.com/" REDHAT_BUGZILLA_PRODUCT="Fedora" REDHAT_BUGZILLA_PRODUCT_VERSION=40 REDHAT_SUPPORT_PRODUCT="Fedora" REDHAT_SUPPORT_PRODUCT_VERSION=40 Fedora Asahi Remix release 40 (Forty) Fedora Asahi Remix release 40 (Forty) Linux fedora 6.11.8-400.asahi.fc40.aarch64+16k #1 SMP PREEMPT_DYNAMIC Sat Nov 16 21:59:53 UTC 2024 aarch64 GNU/Linux

Python version (python --version; python3 --version)

Python 3.12.7 Python 3.12.7

--version of your executable

This is all the output... doesn't seem right. Ran tw_caldav_sync --version

tw_caldav_sync, version <module 'syncall.__version__' from '/home/tjex/.local/share/miniconda3/lib/python3.12/site-packages/syncall/__version__.py'>

Additional context

Installed tw_caldav_sync with pip3 install 'syncall[caldav, tw]' taskwarrior version: 3.2.0