I’ve been contributing to django-stubs recently (with Three merged PRs and more in progress) and I’m currently preparing my proposal for GSoC 2026. Before finalizing the formal document, I’d love to share my “Draft Ideas” and get your thoughts on whether this direction aligns with the community’s long-term vision.
Based on my research into DEP-14, the 2020 Technical Board statement, and recent discussions, I’m proposing a “Gradual Native Typing” roadmap. Here are the core ideas I’m exploring, backed by community insights:
1. The ‘Ratchet’ CI Strategy Implementing a hybrid Mypy/Pyright CI setup to enforce type-checking only on modified or new files. This prevents adding “untyped” debt without the impossible task of fixing the entire legacy codebase at once.
- Reference: Ryan Hiebert’s comment regarding incremental type enforcement.
2. Core Object Typing & Global Settings Prioritizing native types for “low-hanging fruit” like HttpRequest, HttpResponse, and global_settings.py (using dj-typed-settings as a technical reference).
- Reference: Apollo13’s feedback and Mariusz Felisiak’s summary on starting with these core components.
3. ORM Protocols & Structural Typing Implementing conceptual contracts like Resolvable and Compilable to make the ORM expression pipeline understandable for type checkers without breaking its dynamic nature.
- Reference: Simon Charette’s proposal regarding Structural Typing and exploring PEP 827 feasibility.
4. The Hover Fix & IDE Discoverability Adding concise one-liner docstrings to .pyi stubs to solve “discoverability” issues where IDEs fail to show helpful information on hover.
- Reference: Discussion on django-developers regarding IDE issues mentioned by Moshe Zadka.
5. Historical Alignment I’ve also studied the 2020 Technical Board Statement to ensure this roadmap respects the cautious and gradual approach established by the project’s leadership.
Why am I sharing this now? I want to ensure these tasks solve real pain points for Django developers and are achievable within a GSoC timeline.
- Does this roadmap feel like a “single, concrete project” (as per GSoC guidelines)?
- Are there other high-priority areas in
django-stubsI should consider?
I’m currently refining these ideas with my mentor, Thibaut Decombe, but I’d value any feedback from the wider developer community.
Looking forward to your thoughts!