Replace the pgclirc ConfigObj parser while preserving configuration compatibility
- Lingua principale
- Python
- Stelle
- 13.4k
- Fork
- 612
- Merge medio
- 6g 14h
- PR unite (30g)
- 10
Descrizione
## 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.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start by locating Pgcli's main configuration parser and documenting its current compatibility behavior before changing the parser. Add characterization coverage for configuration compatibility, startup and DSN handling, and named-query round trips, then run the relevant existing test suite and formatting checks. Done means supported behavior and user comments are preserved or any intentional differences are documented in the PR and changelog.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- python
- Ambito
- cli
- Tipo di issue
- Refactoring
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Stato di attività
- Attiva
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 35/100