Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

Use the shared calendaring-config parser for the configuration file

オープン
#786 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
5/5
見積もり時間
1週間以上
初心者へのやさしさ
35/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
python, yaml
領域
backend

調査の方向性

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 old caldav_* style.
  • secrets from a command or the system keyring: password_command: [pass, show, dav/work], password_keyring: work, and their caldav_ spellings. caldav keeps only the keys in CONNKEYS, so today caldav_password_command is dropped silently, and caldav connects without a password.
  • ~/.config/pycal/calendar.yaml as 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 only CALDAV_PASSWORD, to keep the password out of the file, gets {'password': …} and no URL. That is a bug either way.
  • refusing inherits across 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, plus keyring as an extra.
  • read_config, expand_config_section, config_section and expand_env_vars become thin wrappers, or deprecated aliases, around the package. plann imports some of them.
  • get_connection_params and get_all_file_connection_params take the CalDAV sections from calendaring_config.load(), and skip the other kinds.
  • Test-server handling, features resolution and CONNKEYS filtering 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 contains that 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 default that 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

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

python-caldav/caldav のほかの issue

python-caldav/caldav の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。