Title:
GSoC 2025 Proposal: Automating Key Processes in Django’s Contribution Workflow
Category: Summer of Code
Tags: gsoc2025
, automation
, github-actions
, ci-cd
Title
Automating Key Processes in Django’s Contribution Workflow
Synopsis
This project aims to improve the efficiency and reliability of Django’s contribution process by automating key tasks that are currently performed manually. These include identifying active pull requests (PRs), managing stale PRs, streamlining parts of the release process, and improving CI notifications. Automating these repetitive tasks will save time for contributors and maintainers, reduce errors, and encourage greater engagement with Django’s open-source community.
Benefits to the Community
Django is maintained by a passionate and global group of contributors, including fellows who spend valuable time on manual, repetitive tasks. This project will:
- Speed up the PR review and contribution cycle.
- Minimize delays and oversight due to manual tracking.
- Encourage new contributors by providing clearer, automated guidance and issue labeling.
- Provide maintainers and mentors with actionable metrics and notifications to better track progress and needs.
Deliverables
A set of tools and automations to support Django’s contribution workflow:
- A GitHub Action bot to:
- Auto-label PRs based on activity.
- Ping reviewers when PRs become inactive for N days.
- Close or archive stale PRs.
- Jenkins script improvements for CI and release-related automation.
- Clear and accessible documentation for all tools created.
- (Optional, time-permitting) A dashboard or CLI tool for contributors to monitor or interact with automation tasks.
Technical Details
Technologies I plan to use include:
- GitHub Actions & GitHub API – for PR tracking, auto-labeling, stale PR notifications, etc.
- Jenkins Pipelines – for automating release processes and improving CI reliability.
- Python – for writing any CLI tools or custom GitHub bots.
- Django’s test framework – to perform integration testing.
- GitHub sandbox repositories – for safe and controlled experimentation.
Timeline
Community Bonding (May 20 – June 16)
- Connect with Django Fellows and active contributors.
- Explore the current workflow and identify key bottlenecks.
- Finalize project scope with mentors.
Phase 1 (June 17 – July 15)
- Implement GitHub Action bot to label active PRs and notify on inactivity.
- Set up stale PR detection and basic notification logic.
- Begin writing documentation.
- Deliverable: Working prototype of one automation component.
Phase 2 (July 16 – August 12)
- Extend automation to include Jenkins-based CI or release scripts.
- Build optional CLI tool or dashboard if feasible.
- Finalize testing framework and integrate with Django’s CI/CD.
- Deliverable: All key automation features completed and documented.
Final Week (August 13 – August 18)
- Polish documentation and UX.
- Gather and incorporate community feedback.
- Final bug fixes, clean-up, and submission of final report/code.
About Me
Hi! I’m Joseph, a Computer Science student at Macalester College.
I’m currently contributing to Django as part of a GSoC-aligned open-source internship. I have experience automating CI/CD pipelines and working with GitHub Actions from previous internships. My technical background includes:
- Python, GitHub Actions, Jenkins, Docker, Redis, and Git
- Experience writing backend automation scripts and maintaining large CI/CD flows
- Open-source contributions to Django and familiarity with its development workflow
Links:
GitHub: josaputra15 (Joseph Saputra) · GitHub
LinkedIn: https://www.linkedin.com/in/joseph-saputra/
Commitment
I will commit 30–35 hours/week to this project during the official GSoC period and remain active in the Django Forum and community channels throughout. I’m excited to work collaboratively and contribute meaningfully to the Django ecosystem.