Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Journey to Maintainer- GitHub

Journey to Maintainer- GitHub

KatherineMichel

June 11, 2021
Tweet

More Decks by KatherineMichel

Other Decks in Technology

Transcript

  1. 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
  2. If Only I Had Known I was driving around the

    birthplace of Django and didn’t know it existed
  3. 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
  4. • 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...
  5. 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
  6. 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
  7. 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
  8. 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>
  9. Quality of Life • Technical skill set • Better pay

    • Attend conferences • Meet smart, interesting people • Travel to cool places
  10. 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
  11. I Was Hired by Eldarion to Maintain Pinax Pinax: an

    open-source library of reusable Django starter projects, apps, and themes for building websites
  12. 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
  13. Pinax Starter Projects • Pinax starter projects are in one

    repo • Each starter project is in an individual branch
  14. Pinax Apps in Starter Projects Each starter project contains the

    relevant Pinax apps, to be installed from PyPI (the Python Package Index)
  15. Pinax Apps Stand Alone Alternatively, Pinax apps can be used

    independently of any Pinax starter project Search “pinax” on PyPI
  16. Maintaining Pinax Apps • GitHub Flow workflow • CalVer at

    release-level (year.month) • SemVer at app-level (major.minor.patch)
  17. pyenv and tox pyenv can be used to install multiple

    global Python versions Then tox can run the test matrix Terminal
  18. Pinax Report Card GitHub Open Source Guide “A Checklist Before

    You Contribute” is a good starting point
  19. But, Pinax is Still Being Used… A Lot? pinax-ratings has

    1045 downloads per week and last release was by far most popular
  20. But, Pinax is Still Being Used… A Lot? A query

    via BigQuery pinax-ratings has 27,550 downloads over 6 months!
  21. Pinax Releases • Happening more regularly now • Keeps the

    code secure • Plus, access to new features
  22. 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
  23. Community Engagement • Reduced the backlog of issues and PRs

    • Wrote more blog posts and publicized them
  24. How It’s Going: 20.07 Release • 28 apps included •

    Support for Python 2.7 dropped • A huge milestone for me personally and professionally
  25. 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
  26. Additional Automation • GitHub Action that runs tox • GitHub

    Action to auto-publish to PyPI upon tagging
  27. 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
  28. Centralize Access and Knowledge • Centralize access • Be willing

    to hand access over • Avoid solutions that create gatekeeping
  29. Reduce Scope • Mark repos as deprecated • Archive repos

    • Disable issues • Communicate that the code is maintained sporadically