Skip to content

Roadmap 1.4: Workspace.from_config() and the shared config file - #12

Merged
tobixen merged 2 commits into
mainfrom
roadmap-1.4-from-config
Oct 19, 2026
Merged

tobixen merged 2 commits into
mainfrom
roadmap-1.4-from-config

Conversation

@tobixen

@tobixen tobixen commented Oct 18, 2026

Copy link
Copy Markdown
Member

Disclaimer: Code and the text below the line are AI-generated, by Claude Opus 5.5


Implements roadmap item 1.4. The parser for the configuration file shared with caldav and calendaring-jmap now lives in its own package, calendaring-config (0.1.0 is on PyPI). Its docs/format.md specifies the format. Putting the parser in caldav (option B) would have made calendaring depend on caldav, and would have tied every config change to a caldav release.

  • Workspace.from_config() makes one backend per section, with the section name as its id (environment-<kind> for a connection from the environment). Any problem with the file, or with connecting a section, is a ConfigurationError naming the section, and the backends already connected are closed. In async mode it is a coroutine, since it awaits connect().
  • CONFIGURATION_PROPOSAL.md records option C. ROADMAP 1.4 is ticked except for settling the file with caldav: Use the shared calendaring-config parser for the configuration file python-caldav/caldav#786. API_DESIGN §2.2 leaves open which keys a backend ignores, to be decided with the CalDAV backend (2.1).

🤖 Generated with Claude Code

from_config() reads the configuration file shared with caldav and
calendaring-jmap through the new calendaring-config package, and makes
one backend per section, named after it.  It has to await connect(),
so in async mode it is now a coroutine; API_DESIGN §2.1 says so.
Any problem with the file, or with connecting a section, is a
ConfigurationError naming the section, and the backends already
connected are closed.

Prompt: (Discussions with Claude on how to deal with the configuration - it was decided to move the logic to a separate package)

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
The configuration proposal said calendaring already depends on caldav,
which was wrong, and left the parser's home open.  It now lives in
calendaring-config, released at calendaring's pace rather than
caldav's.  Roadmap 1.4 is ticked except for settling the file with
caldav, which has yet to adopt the package.

Prompt: (Discussions with Claude on how to deal with the configuration - it was decided to move the logic to a separate package)

Assisted-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Reviewed-by: Tobias Brox <tobias@redpill-linpro.com>
@tobixen
tobixen merged commit 015a05b into main Oct 19, 2026
7 checks passed
@tobixen
tobixen deleted the roadmap-1.4-from-config branch October 20, 2026 01:31
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant