The first step

is admitting you have a problem; so with that in mind:

Hi. My name’s Jeff, I maintain several OSS projects you may be familiar with1, and I’m burned out.

I lie awake at night, unable to sleep, crippled by guilt. During the day, it’s anxiety and fear that cripple instead, making the thought of facing the issue tracker unbearable.

Development on my projects has slowed far more than I ever intended, and while I have excuses2, push has clearly come to shove. Something must change.

Until now, I’ve been a solo maintainer for various reasons, primarily a combination of extreme pickiness (re: code quality, formatting, defensive coding, etc) and trust issues (I have difficulty trusting others to exhibit that same pickiness).

With the burnout I’m feeling, it’s sometimes tempting to give up and walk away. But even that would require trusting others with the future of my projects! Surely I can act less drastically first – extending trust in ways that will get me back to productivity.

Walking before running

My biggest issue? Issues! There’s too much feedback to handle alone and get meaningful work done. The most valuable help I can get is ticket triage (and to a lesser degree, PR code review) so that I can focus on development and direction.

At a minimum, I need scouts, people who can alert me to significant events: serious new bug reports, flurries of interest in an open ticket, or well crafted PRs that are ready to merge. I’ll continue to keep my eyes off the notification queue and trust that these new collaborators will keep me informed.

Beyond that, I’d love to utilize Github’s triage role: having others labeling issues, closing duplicate or noise tickets, and asking submitters for details or PR alterations. I may continue doing this sort of thing myself, but typically only on tickets that otherwise cross my desk.

You

It’s easiest to start with those I recognize from existing engagement, and I’ll be reaching out today to folks who expressed prior interest. If you think you’re in that group and didn’t hear from me, please let me know (and accept my apologies for the oversight)!

For everyone else: if you can show you know your way around Python, the problem domains involved, and the projects themselves – feel free to introduce yourself, briefly explain how you believe you can help (or just point to existing contributions!), and let me know which project(s) you’re interested in supporting.

Me

The best way to get ahold of me is email to jeff (at) bitprophet [dot] org; please put something like “Re: triage blog post” in the subject. Or use this handy mailto: link.

I usually respond within a few days (more quickly on Fridays, which are my OSS time).

Us

I don’t have a clear picture yet of exactly how collaboration will occur (outside of Github-level features such as assignment and milestones). At the start I’m likely to try leveraging per-project email groups, or chat like IRC or Slack.

I’m open to other suggestions too, though unless something has changed recently, this (semiprivate group discussions) is still a poorly solved area for OSS projects.

Where to go next

Ideally, once I’ve learned to trust others with triage and review, I can take further steps until ending up with full-on co-maintainers. Time will tell.

I’ll leave off with some quick roadmaps.

Short term

  • Get folks set up with the triage role…
  • With their help, identify and tackle any new-to-me serious issues that have appeared in the last 6-9mo, whether that’s bugs, broken dependencies, Python 3.8 compat, or whatever.
  • Explore migrating to Circle-CI from Travis-CI, for various reasons (such as lack of confidence in the latter’s future after firing most of their senior talent post-acquisition).
    • Possibly Github Actions, but I’d rather not make myself even more dependent on that platform.
  • Rename master to main – something I’d intended to do sooner, but there is absolutely no time like the present!
  • Oversee merging of ‘Fabric3’ into Fabric’s v1 line; this is my olive branch to folks struggling with Python 3 but who are frustrated with the pace of Fabric 2 dev the last couple years.
    • This doesn’t mean that Fabric 1 is going to see more feature work; it’s just housekeeping.

Medium term

  • Get back to Fabric 2 feature work; I still want users to migrate off of v1 eventually!
  • Execute long-planned architectural improvements for Paramiko, eg improved authentication flow.
  • Ditto Invoke, again features that have been in the wings for years, such as task dependencies and intertask communication.

  1. The ‘big three’ being Fabric, Paramiko, and Invoke↩︎

  2. Even before the current double troubles of COVID-19 and “ah yes, my country really IS descending further into a police state”, I was:

    • still reeling from last year’s disruptive cross country move
    • trying to get used to a new job in a new sector
    • attempting to buy, fix up and furnish my first ever house
    • grappling with moderate depression
     ↩︎