Use the shared calendaring-config parser for the configuration file
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 5/5
- 見積もり時間
- 1週間以上
- 初心者へのやさしさ
- 35/100
調査の方向性
Start with caldav/config.py and the read_config, expand_config_section, config_section, expand_env_vars, get_connection_params, and get_all_file_connection_params entry points; compare the shared parser’s behavior with docs/format.md in calendaring-config. Decide how to handle each listed behavior change, then route CalDAV sections through the shared parser while retaining test-server handling, features resolution, and CONNKEYS filtering. Done means caldav supports the agreed format and existing configuration behavior changes have explicit decisions; the issue names no tests to run.
索引モデルが issue の本文から書いたものです。
説明
Human-written summary
The configuration file is to be used by the new calendaring package - it's aiming to be a general API for any calendar and task system, even including locally stored ics-files. The format will be expanded to support this, and caldav will no longer be the natural home for this logic. It would also break as caldav is supposed to be an optional dependency of calendaring. Moving the logic to calendaring would also be difficult, then the caldav library would depend on calendaring, which could cause a circular dependency.
Details written by Claude Opus 5.5
caldav's configuration file (caldav/config.py) is shared with plann, and is now meant to be shared with calendaring and calendaring-jmap as well: one file describing a CalDAV server, a JMAP account, a directory of .ics files and a GitHub repository. The format was agreed in https://github.com/pycalendar/calendaring/pull/6 and is now specified, and parsed, in a package of its own: https://github.com/pycalendar/calendaring-config (docs/format.md). calendaring reads the file through it.
Until caldav reads the file through that package too, plann and caldav users don't get the new parts of the format:
kind:sections with unprefixed keys (kind: caldav,url:,username:). caldav ignores them today, so a user who wants plann to see a server keeps that section in the oldcaldav_*style.- secrets from a command or the system keyring:
password_command: [pass, show, dav/work],password_keyring: work, and theircaldav_spellings. caldav keeps only the keys inCONNKEYS, so todaycaldav_password_commandis dropped silently, and caldav connects without a password. ~/.config/pycal/calendar.yamlas the first place searched, with caldav's current paths as fallbacks.- the environment applied key by key. Today any one
CALDAV_*connection variable replaces the whole file: a user who sets onlyCALDAV_PASSWORD, to keep the password out of the file, gets{'password': …}and no URL. That is a bug either way. - refusing
inheritsacross kinds.
The YAML loader is fixed separately, in https://github.com/python-caldav/caldav/pull/785.
What adopting it would mean
- caldav depends on
calendaring-config. It is small: PyYAML, pluskeyringas an extra. read_config,expand_config_section,config_sectionandexpand_env_varsbecome thin wrappers, or deprecated aliases, around the package. plann imports some of them.get_connection_paramsandget_all_file_connection_paramstake the CalDAV sections fromcalendaring_config.load(), and skip the other kinds.- Test-server handling,
featuresresolution andCONNKEYSfiltering stay in caldav.
Behaviour that changes for existing files
calendaring-config's docs/format.md lists these differences:
- an empty file found first is used, and no longer skipped in favour of the next path;
- a name in
containsthat matches nothing gives a warning; - a glob that matches nothing is an error, and so is a section named directly that is missing or disabled (an implicit
defaultthat is missing still means "no configuration"); - a disabled meta-section is left out together with its members;
*expands to the leaf sections only;- the environment variables listed in the spec are fewer than every
CALDAV_<CONNKEY>.
Each of these needs a decision: accept it, or change the spec. For a 3.x release, possibly behind a deprecation period.
- 主要言語
- Python
- スター
- 412
- フォーク
- 113
- 平均マージ
- 11時間 37分
- マージ済み PR(30日)
- 50
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートなし
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
python-caldav/caldav のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
python-caldav/caldav#799 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
python-caldav/caldav#792 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
python-caldav/caldav#788 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 62/100
python-caldav/caldav#687 ·
メンテナーはふだん 1 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 75/100
python-caldav/caldav#796 ·
メンテナーはふだん 1 日以内に返信
python-caldav/caldav の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 77/100
mihai-vlc/sublime-jsfmt#56 ·
-
comp/cli comp/plugins P2 type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
NousResearch/hermes-agent#141917 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
Go device SDK: Whisper transcriber keeps buffering and transcribing audio appended after Stop()対応中かも @apoorvdarshan が今日担当しました。 オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
BasedHardware/omi#22770 ·
メンテナーはふだん 1 日以内に返信
-
bug needs-acceptance wg/router-models-inference-runtime
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
vllm-project/semantic-router#5295 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
huggingface/huggingface_hub#5210 ·
メンテナーはふだん 1 日以内に返信