Replace the pgclirc ConfigObj parser while preserving configuration compatibility
- Langage dominant
- Python
- Étoiles
- 13.4k
- Forks
- 612
- Merge moyen
- 6 j 14 h
- PR mergées (30 j)
- 10
Description
## 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.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Commencez par localiser le parseur de configuration principal de Pgcli et documenter son comportement actuel en matière de compatibilité avant de modifier le parseur. Ajoutez une couverture de caractérisation pour la compatibilité de la configuration, la gestion du démarrage et de DSN, ainsi que les allers-retours des requêtes nommées, puis exécutez la suite de tests existante pertinente et les vérifications de formatage. Le travail est terminé lorsque le comportement pris en charge et les commentaires des utilisateurs sont préservés, ou que toute différence intentionnelle est documentée dans le PR et le changelog.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- python
- Domaine
- cli
- Type d'issue
- Refactorisation
- Difficulté
- 5/5
- Temps estimé
- Plus d'une semaine
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100