Replace the pgclirc ConfigObj parser while preserving configuration compatibility
- 主要语言
- Python
- 星标
- 13.4k
- 派生
- 612
- 平均合并
- 6 天 14 小时
- 30 天内合并 PR
- 10
描述
## Description
Following up on the maintainer's [request to investigate replacing ConfigObj with configparser](https://github.com/dbcli/pgcli/pull/1631#discussion_r3954767886), this tracks a separate migration of Pgcli's main configuration parser.
The first step is to document compatibility differences and add characterization tests. The migration should preserve default/user override precedence, typed settings, case-sensitive names, quoting and literal percent/hash characters, lists, and named-query save/delete behavior. User comments must survive writes, as discussed in [#1162](https://github.com/dbcli/pgcli/issues/1162#issuecomment-605095240). Any intentionally unsupported syntax or changed behavior should be explicit in the proposed PR and changelog.
This is separate from #1631's service-file password fix. While that PR remains unmerged, removing ConfigObj from the main configuration parser alone does not remove its remaining service-file use; the dependency must remain until all runtime consumers are addressed.
Proposed validation: configuration compatibility cases, startup and DSN tests, named-query round trips, and the relevant existing test suite and formatting checks. The follow-up PR will state exactly what ran and any remaining validation limits.
## Your environment
This is a maintainer-requested enhancement for the current main branch, rather than a new environment-specific bug report. Pgcli currently supports Python 3.10 and newer; compatibility should be retained across the supported versions.
贡献指南
调研方向
先定位 Pgcli 的主配置解析器,并在修改解析器之前记录其当前的兼容性行为。为配置兼容性、启动和 DSN 处理以及命名查询往返添加特征测试覆盖,然后运行相关的现有测试套件和格式检查。完成的标准是保留受支持的行为和用户注释,或者在 PR 和 changelog 中记录任何有意的差异。
由索引模型根据 Issue 内容生成。
评估
- 技术栈
- python
- 领域
- cli
- Issue 类型
- 重构
- 难度
- 5/5
- 预计耗时
- 一周以上
- 活跃度
- 活跃
- 描述清晰度
- 基本清楚
- 新手友好度
- 35/100