-
-
Notifications
You must be signed in to change notification settings - Fork 1.6k
Open
Labels
infraCore infrastructure for building and rendering PEPsCore infrastructure for building and rendering PEPs
Description
As a followup to #2584 and #2585 and as I've already been thinking about lately and discussed with @JelleZijlstra and @warsaw at PyCon, right now we parse the headers three different places with three different sets of logic:
pep_zero_generator.parser
for PEP 0, the JSON and the RSS with some additional sub-parsing in those callerspep_processor.transforms.header_transform
for the PEP renderingThe .pre-commit-config.yaml
pygrep hooks for linting),
Instead, we should just use the structured format I suggest in #2584 (with the parsing presumably in the PEP
class) for all of them (starting with PEP rendering initially), for several reasons:
- Simpler, more DRY, reliable and maintainable in the long run
- Easier to add new headers in one central place, as in Sub-index pages for specific categories of PEPs (Packaging, etc) #2572
- Enables simplifying/loosening the allowed input syntax for authors without fear of breaking anything
- Simplifies adding requested features in the various outputs (e.g.
:abbr:
from Waste less vertical space at top of rendered PEP #2514 ) - Decouples the header format from reST/Sphinx and ensures the format-independence @AA-Turner originally wanted in PEP 1 & 12: Have Post-History link posts to preserve Discussions-To history #2358
- Avoids cryptic regexes for linting (as @hugovk requested on Lint: Update headers and checks per current guidance & provide helpful feedback #2484)
Of course, we should decide on and implement the structured format proposed in #2584 first, as it is a perquisite for this (alongside the changes in #2585 and #2579 needing to be merged before work on this begins), but I've opened this to keep track of it.
Metadata
Metadata
Assignees
Labels
infraCore infrastructure for building and rendering PEPsCore infrastructure for building and rendering PEPs