Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Journey to Maintainer- GitHub
Search
KatherineMichel
June 11, 2021
Technology
32
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Journey to Maintainer- GitHub
KatherineMichel
June 11, 2021
More Decks by KatherineMichel
See All by KatherineMichel
DjangoCon US 2023 Recap
katherinemichel
0
66
Maintaining Demystified- DjangoCon US
katherinemichel
0
34
Desmitificando el Mantenimiento- DjangoCon US
katherinemichel
0
32
Bringing Pinax Back to Life- PyCon US Maintainers Summit
katherinemichel
0
38
Bringing Pinax Back to Life- FOSDEM
katherinemichel
0
33
Pinax Lessons Learned- DevICT
katherinemichel
0
67
Get a Jumpstart on Collaboration and Code Review in GitHub- PyLadies Southwest Florida
katherinemichel
0
55
Get a Jumpstart on Collaboration and Code Review in GitHub- devICT Hacktoberfest
katherinemichel
0
47
Get a Jumpstart on Collaboration and Code Review in GitHub- PyLadies Remote
katherinemichel
0
47
Other Decks in Technology
See All in Technology
2026-09-04 SRE Tech Talk #15 怠惰なTerraform / Lazy Terraform
masasuzu
0
230
module Synths; end
asonas
1
130
Claude in Chrome 入門 / Introduction to Claude in Chrome
cielo1985
0
140
AI 駆動 Terraform 開発/SRE_BizReach_MIXI_2
visional_engineering_and_design
3
2k
SQL文一行も書けない人事がCortexもろもろを使って人事業務を楽にしてみる
ponponmikankan
1
210
#jawssonic2026 あの時代が悪かった ~動かなかったSageMakerと共に迎えたイベント当日~
ktkn1129
0
140
コスト最適化の「めんどくさい」を AWS FinOps Agent でチョット楽にする
classmethod_kaz
0
300
プロダクト思考 × 基盤思考を AIで実現する Compound Engineering
tkc66buzz
1
310
Adaptive Warehouse を今すぐ導入すべき理由と迷ったときの判断基準
__allllllllez__
0
160
アプリをもっと"iOSアプリっぽく"する小さな工夫 / Small Touches That Make Your App Feel More Like an iOS App
matsuji
1
370
クロスボーダーM&AのValue Upを支えるプロダクト開発。日米チームのハブになったプロダクトエンジニアの実践 / Product Engineering Conference 2026
genda
0
110
目の前の楽しいが人生を変える - コミュニティの螺旋の歩き方と楽しむコツ / change your life
soudai
PRO
4
370
Featured
See All Featured
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
45k
Marketing Yourself as an Engineer | Alaka | Gurzu
gurzu
0
300
Build your cross-platform service in a week with App Engine
jlugia
234
19k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
12
1.3k
The SEO Collaboration Effect
kristinabergwall1
1
550
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
380
Neural Spatial Audio Processing for Sound Field Analysis and Control
skoyamalab
0
480
Making Projects Easy
brettharned
120
6.7k
Building Experiences: Design Systems, User Experience, and Full Site Editing
marktimemedia
0
600
Have SEOs Ruined the Internet? - User Awareness of SEO in 2025
akashhashmi
0
490
Bash Introduction
62gerente
615
220k
The browser strikes back
jonoalderson
0
1.7k
Transcript
Journey to Maintainer By Katherine “Kati” Michel
About Me 2
Talk Goals • How I got my start in open
source and maintaining • Technical aspects of being a Python package maintainer • Maintaining report card • Lessons learned
Milestone: Django Was Born, 2003
Django is Invented at LJW
If Only I Had Known
If Only I Had Known I was driving around the
birthplace of Django and didn’t know it existed
Milestone: Becoming Interested in Tech, 2010
Intro to Tech
Milestone: Getting Started in Open Source, 2013
Announcing TacoFancy!
One Life Changing Question
My First Pull Request
Milestone: Learning the Fundamentals of Maintaining, 2017
DjangoCon US: The Conference with a Heart
DjangoCon US: The Conference with a Heart From my friend
Mariatta’s ReadME Project page
DjangoCon US Website Pinax to... Jekyll
The Sites I’ve Overseen
Increase in Number of Contributors From 23 in 2016 To
65 in 2020
“Low Hanging Fruit” PRs 67 commits, including merging 28 PRs
That time I accidentally deleted the `dev` Branch One of
the first things I did was the worst thing I ever thought I could do and it was liberating
I Learned So Much After that…
• Fetch a PR locally • Run the code •
Merge a PR locally • Push a PR to a `master` branch • Push an update to a PR from a fork How To...
Created contributing docs and helped newcomers Also Became a Mentor
OS and Life Lesson: The Mistakes Disappear into the History
• Open source has taught me it’s ok to have a beginner mindset; make mistakes, keep improving
First Tech Talk Photo by Adam Gregory of https://atomimages509.wixsite.com/atom
Get a Jumpstart on Collaboration and Code Review in GitHub
• I made a talk about the mental model I had developed of how Git and GitHub work • I have given the talk to PyLadies, in particular
Mental Model • What GitHub is • “Shared Repository” versus
“Fork and Pull” • A local development process • How to review pull requests as a maintainer • Tips for getting started
My All Time Favorite Piece of Git Code Push to
a forked repo PR branch $ git push https://github.com/<user-name>/<repo-name> <local-branch-name>:<remote-branch-name>
Quality of Life • Technical skill set • Better pay
• Attend conferences • Meet smart, interesting people • Travel to cool places
Second Chances On a “State of Django” panel with 3
LJW friends Me Frank Wiles, early LJW Simon Willison, Django co-creator Jeff Triplett, early LJW
Eating Dinner with Guido Me Guido
Milestone: Becoming a Python Package Maintainer, 2017
I Was Hired by Eldarion to Maintain Pinax Pinax: an
open-source library of reusable Django starter projects, apps, and themes for building websites
The “Hot Club” Formed: 2007
Pinax Was Born: 2008
How It Began Personal Sites Inspiring Reusable Features
How It Began “Pinax is every idea I’ve ever had.”
How It Was Going 80 Projects and Apps account blog
static stripe waitinglist zero company documents team-wiki wiki forums socialauth Pinax Themes Popular Pinax Apps Pinax Starter Projects django-user-accounts pinax-stripe pinax-announcements pinax-badges pinax-blog pinax-calendars pinax-cohorts pinax-comments pinax-documents pinax-eventlog pinax-events pinax-forums pinax-images pinax-invitations pinax-likes pinax-messages pinax-news pinax-notifications pinax-points pinax-ratings pinax-referrals pinax-submissions pinax-teams pinax-testimonials pinax-types pinax-waitinglist pinax-webanalytics pinax-wiki pinax-templates pinax-theme-bootstrap
How It Was Going GitHub Organization, Global Docs, and Slack
How It Was Going Sustainability lacking
Beginner Mindset
Simplified, Self-Service, Self-Sustaining
Vanilla Django Project Project Files Terminal $ django-admin startproject mysite
.
Vanilla Django Apps Project and App Files Terminal $ python
manage.py startapp myapp
Pinax CLI Terminal $ pip install pinax-cli $ pinax projects
Pinax CLI `startproject` is called from within the pinax-cli codebase
Code Snippet
Pinax CLI Code Snippet starter project URL is passed in
as a parameter
`projects.json` File File Snippet
Pinax Starter Projects • Pinax starter projects are in one
repo • Each starter project is in an individual branch
Pinax Apps in Starter Projects Each starter project contains the
relevant Pinax apps, to be installed from PyPI (the Python Package Index)
Pinax Apps Stand Alone Alternatively, Pinax apps can be used
independently of any Pinax starter project Search “pinax” on PyPI
Maintaining Pinax Apps • GitHub Flow workflow • CalVer at
release-level (year.month) • SemVer at app-level (major.minor.patch)
Pinax App Codebases Each Pinax app codebase lives in a
GitHub repo
Professional Level Configs tox for testing CircleCI for continuous integration
`setup.py` for packaging
Update the Test Matrix CircleCI Boilerplate tox Boilerplate
pyenv and tox pyenv can be used to install multiple
global Python versions Then tox can run the test matrix Terminal
Python/Django Release Notes Tell you what changes have been made
to the codebase in the release
Update SemVer Version and Changelog
Tag and Publish Tagging a release Published to PyPI
Pinax Report Card GitHub Open Source Guide “A Checklist Before
You Contribute” is a good starting point
Pinax Seems Dead... TODO Group: “Shutting Down an Open Source
Project”
But, Pinax is Still Being Used… A Lot? pinax-ratings has
1045 downloads per week and last release was by far most popular
But, Pinax is Still Being Used… A Lot? A query
via BigQuery pinax-ratings has 27,550 downloads over 6 months!
Pinax Releases • Happening more regularly now • Keeps the
code secure • Plus, access to new features
Docs and Standardization • Documented tribal knowledge • Made one
source of docs, easy to find, use • Created detailed release and maintainer docs • Created community health files • Chose one configuration approach across projects
Community Engagement • Reduced the backlog of issues and PRs
• Wrote more blog posts and publicized them
How It’s Going: 20.07 Release • 28 apps included •
Support for Python 2.7 dropped • A huge milestone for me personally and professionally
How It’s Going: 21.05 Release
Updating the Test Matrix • Drop support for Django 3.0
• Continue support for Django 2.2, and Python 3.6, 3.7, and 3.8 • Add support for Django 3.1, 3.2, and Python 3.9
Small Improvements • Fix `setup.py test` deprecation • Fix isort
deprecation • Add Black formatter
Documentation • Global documentation is in need of improvement •
App specific docs should be double checked
Additional Automation • GitHub Action that runs tox • GitHub
Action to auto-publish to PyPI upon tagging
Creating a Fork • pinax-starter-projects • pinax-cli
Lessons Learned • How to make a community self-sustaining
OS Social Contract “... open source maintainers owe you quite
literally nothing when it comes to their open source code, and treating them poorly is unethical.” - Brett Cannon, Python Core Dev
The Link Between Django Core Dev and Pinax
Centralize Access and Knowledge • Centralize access • Be willing
to hand access over • Avoid solutions that create gatekeeping
Managing Volunteer Maintainers • Give selective permissions • Protect branches
• Require reviews
Reduce Scope • Mark repos as deprecated • Archive repos
• Disable issues • Communicate that the code is maintained sporadically
Additional Automation • GitHub Actions • GitHub Apps • Probot
Is it Worth It? Yes :)
Is it Worth It? Yes :)
Q & A