List

Why I'm Closing Your GitHub Issue

Why I'm Closing Your GitHub Issue

by Henning Koch

In his talk at RailsConf 2021 titled "Why I'm Closing Your GitHub Issue," Henning Koch addresses the stress and challenges faced by open source maintainers, particularly the risk of burnout. Koch shares his experiences and provides actionable advice on how maintainers can reclaim their motivation and improve their engagement with open source projects. Key points discussed include:

  • The Burden of Notifications: Koch explains how the influx of GitHub notifications and issues can lead maintainers to feel overwhelmed, comparing their roles to a second job that detracts from their original motivation for contributing.

  • Recognition and Burnout: He discusses the fine line between intrinsic motivation and burnout, emphasizing how passion for open source can sometimes result in excessive personal investment without adequate reward.

  • Personal Insights: Koch reflects on his personal journey with open source, describing the emotional highs and lows he experienced while maintaining numerous projects. He highlights the transition from enjoyment to a sense of obligation when faced with endless issues and requests.

  • Setting Boundaries: Koch shares his approach to mitigating burnout by focusing only on issues that align with his motivations and shutting down requests that do not. He provides examples of how he deals with feature requests and issues constructively, including asking users to contribute themselves if they want a feature or closing issues that do not align with the project's goals.

  • The Importance of Saying No: The talk emphasizes that it’s okay for maintainers to decline requests or close issues without feeling guilty. Koch shares techniques such as asking contributors to submit pull requests or closing stale issues to manage his workload effectively.

  • Promoting Positive Community Interaction: He encourages attendees to show appreciation for maintainers through gratitude and positive feedback, highlighting that acts of kindness can greatly uplift community morale.

Koch concludes with an affirmation that open source work can be fulfilling and energizing when aligned with personal motivations. He encourages maintainers to adopt strategies that preserve their passion for open source, rather than succumbing to stress and guilt associated with unfulfilled expectations. Overall, his key message is to prioritize personal well-being and clarify roles within open source communities to foster healthier contributions.

Do you feel panic when receiving a notification from your open-source project? Is a backlog of unanswered issues wearing you down?

You wanted to put something out there for others to use, but now it feels like a second job. Keep stressing out like this and you will burn out and leave another project abandoned on GitHub.

In my talk we will rediscover your personal reasons for doing open source in the first place. We will practice dealing with issues effectively to free up time for the work that motivates you.

RailsConf 2021

00:00:06.000 hello raceconf welcome to my talk why
00:00:09.240 I'm closing your GitHub issue
00:00:11.460 today I'm going to speak about stress
00:00:13.860 and open source projects and what
00:00:15.599 maintainers can do to avoid burnout and
00:00:18.240 to stay motivated
00:00:20.699 a little about my context my name is
00:00:23.100 Henning I'm heading development over at
00:00:25.199 makundra we are a ruby consultancy in
00:00:27.900 Germany we build and host bespoke web
00:00:30.960 applications
00:00:32.579 we also maintain very old versions of
00:00:35.340 European rails for our rails RTS service
00:00:39.059 I spent most of my day training Junior
00:00:41.579 developers and maintaining our tool
00:00:43.800 chain
00:00:44.520 like most development teams we have a
00:00:46.620 kit of ruby gems and npm packages that
00:00:49.320 we use in our daily work
00:00:52.620 and boy do rails apps use a lot of Open
00:00:55.079 Source components so these are numbers I
00:00:58.440 pulled from a few applications that we
00:01:00.360 built in the last years
00:01:02.460 you can see that we use around 200 ruby
00:01:05.220 gems and around 900 npm packages in
00:01:08.040 every single project that we put out
00:01:09.659 there and who built these packages
00:01:12.360 well
00:01:13.740 that is us
00:01:16.020 because when people speak about the open
00:01:18.659 source Community they usually mean
00:01:20.340 everybody
00:01:22.380 and there are a number of great reasons
00:01:26.460 to start an open source project
00:01:29.580 first it's a fantastic way to learn
00:01:31.680 about a domain or a language
00:01:35.340 or maybe you have a strong mission for a
00:01:38.280 solution and you want to share it
00:01:41.280 you may find joy in crafting software
00:01:44.220 just the way you think is right without
00:01:46.140 any requirements from a customer
00:01:50.040 I know that some people contribute to
00:01:52.259 open source to improve their resume and
00:01:54.840 while that's not a requirement to get a
00:01:57.060 job it is certainly a way to stand out
00:02:00.240 maybe you're craving recognition from
00:02:03.000 your peers like from people who are not
00:02:05.340 your boss and not your customer
00:02:07.799 I know that some people just like
00:02:09.539 building communities
00:02:11.459 and for some there's even overlap
00:02:13.739 between the open source project and the
00:02:15.599 day job so they can use their project to
00:02:18.120 help the team at work
00:02:20.640 not a great reason in my eyes is money
00:02:23.239 that only works for very few people
00:02:33.540 for the past 10 years I've been
00:02:35.760 investing a lot of time
00:02:37.560 in open source projects I started around
00:02:40.260 25 projects not all of them are
00:02:42.420 selective but many still are
00:02:44.640 and this chart is going to show you how
00:02:46.620 I felt about my open source work over
00:02:49.019 time
00:02:50.220 the horizontal axis is obviously time
00:02:53.400 the vertical axis is smooth and higher
00:02:56.640 mode is better mood this line here is
00:02:59.640 neutral mood
00:03:01.080 and this is how I felt
00:03:03.660 so
00:03:06.060 what happened here why does it go up and
00:03:09.239 then crash down again
00:03:11.940 well when you build your first Library
00:03:14.159 you may realize that this can be a lot
00:03:17.280 of fun
00:03:18.480 you can do everything just the way you
00:03:20.760 think is right
00:03:23.280 and releasing something for the first
00:03:24.780 time is a rush because you're putting
00:03:26.700 something of yourself out there for
00:03:28.440 other people to see and use and that is
00:03:30.599 exciting
00:03:31.920 you will probably be even rewarded with
00:03:34.739 a few GitHub storage which is like the
00:03:36.720 smallest unit of recognition in our
00:03:39.480 community
00:03:40.739 and the high point is when people
00:03:44.220 actually start using your thing and the
00:03:46.080 download numbers are going up
00:03:47.700 this feels amazing when it happens the
00:03:50.159 first time
00:03:53.580 I mean then you'll probably get your
00:03:57.239 first GitHub issue eventually
00:03:59.640 um so someone has a problem with your
00:04:00.959 library
00:04:02.400 I guess you're just going to fix it for
00:04:04.620 them but then you're going to get more
00:04:07.140 issues and then you're going to get so
00:04:09.659 many issues and eventually you realize
00:04:13.200 I now have a second job I have my
00:04:15.299 regular job and then I have my open
00:04:17.040 source job
00:04:18.120 and that doesn't feel great
00:04:21.419 this area here belong the zero line I
00:04:24.660 call the dark Zone
00:04:26.699 um
00:04:27.600 it's a place where you can dip into but
00:04:30.300 if you stay in it for too long you run
00:04:32.699 the risk of burning out
00:04:34.500 and I believe that open source
00:04:36.300 maintainers have a certain disposition
00:04:38.460 to burning out because open
00:04:43.680 Source work has to do with passion
00:04:46.919 I mean no one forces you to work on open
00:04:50.759 source right
00:04:52.080 you do it because you have an intrinsic
00:04:54.300 motivation that drives you
00:04:56.280 and while it's always great to burn
00:04:58.259 something driven people don't always
00:05:00.180 notice when they're giving away more
00:05:01.860 than they have to give
00:05:04.860 so
00:05:07.259 as I learned publishing an open source
00:05:10.440 project is only the beginning of the
00:05:12.479 work
00:05:13.380 because GitHub has this button here
00:05:16.680 it is labeled a new issue and everyone
00:05:19.620 who falls on that button can make emails
00:05:22.800 appear in your inbox
00:05:25.680 and this never-ending flood of issue
00:05:28.080 notifications can be very draining
00:05:32.039 especially since not all of these issues
00:05:34.560 are nice you are going to encounter
00:05:36.960 people who are rude or entitled and
00:05:39.419 while those may not even be the majority
00:05:42.240 it is those that are going to wait waste
00:05:44.759 a lot of energy on
00:05:47.639 so
00:05:49.979 if you find yourself struggling with
00:05:51.600 this
00:05:52.320 know that it's not you alone
00:05:55.080 here is a tweet from Brian J Brennan
00:06:00.900 he writes
00:06:02.940 I experience an acute combination of
00:06:04.860 panic guilt and shame every time I see
00:06:06.900 an email from GitHub in my personal
00:06:08.220 inbox that is normal right
00:06:10.919 I rarely put stuff out there for other
00:06:12.780 people to use because I just can't
00:06:14.639 commit to supporting it perpetually and
00:06:16.740 that is the new expectation
00:06:19.680 here is another tweet thread
00:06:23.340 this time from Aaron Patterson and I
00:06:26.639 believe many of you know Aaron he's
00:06:28.020 keynoting this conference and I believe
00:06:30.720 Aaron is among the most accomplished
00:06:33.060 rubies of our time
00:06:34.800 but even with all of his experience and
00:06:36.660 all of his skills he still tweets this
00:06:40.560 user entitlement is a huge source of
00:06:42.660 burnout for me on open source software
00:06:44.520 projects
00:06:45.840 I think it's because I don't know how to
00:06:48.120 deal efficiently I don't want to be mean
00:06:50.100 so I say I don't owe you anything very
00:06:52.740 long-windedly
00:06:55.080 or hypocratically to the thing they
00:06:57.240 wanted either way I feel terrible your
00:06:59.880 life is now easier but at the expense of
00:07:01.860 mine is what it feels like
00:07:05.340 so Aaron Aaron even realizes what's the
00:07:08.340 problem it's that saying no is hard but
00:07:12.060 he finds himself in a place where he
00:07:13.919 either needs to invest a lot of energy
00:07:15.600 into saying no or he does it against his
00:07:17.819 will
00:07:21.360 so six years ago I was pretty deep in
00:07:24.240 the dark Zone and I was grumpy all the
00:07:27.240 time at night and over weekends I
00:07:30.060 brooded over GitHub issues and what
00:07:32.400 other people demanded that I do and
00:07:35.460 when I asked asked me hey Henning what's
00:07:37.680 up
00:07:39.000 I was like ah nothing
00:07:41.280 and
00:07:43.259 the grumpiness reached a point where I
00:07:45.599 either had to change something or I had
00:07:47.460 to stop doing it
00:07:48.900 and before I stopped doing it all
00:07:50.639 together I wanted to try it one more
00:07:52.740 time with my own rules and to my
00:07:54.419 surprise this actually worked
00:07:57.599 so what has worked for me
00:08:00.360 and what may work for some of you
00:08:07.080 I gave myself permission to be a little
00:08:09.840 self-serving
00:08:11.099 I allowed myself to spend my open source
00:08:13.740 time with the things that motivate me
00:08:15.419 with the things that give me energy
00:08:19.080 earlier we saw this long list of
00:08:21.840 motivations
00:08:24.000 and not all of them will be your
00:08:26.340 motivations not all of them are my
00:08:27.900 motivations
00:08:29.220 these are my motivations here
00:08:31.379 so
00:08:32.399 I have
00:08:34.800 a very strong vision for my current
00:08:36.419 project and poly I totally think that
00:08:39.479 this is the way that web front end
00:08:41.339 should be built and if that Vision
00:08:44.760 motivates me I guess I should do more
00:08:47.160 things that align with that vision
00:08:50.220 I'm also a perfectionist person I like
00:08:52.740 dumping a lot of time in the challenging
00:08:54.480 problems and producing a precise
00:08:56.940 solution so I guess I should do things
00:09:00.060 that have an elegant challenging or
00:09:02.160 interesting implementation
00:09:04.560 and for me there's also overlap
00:09:07.440 between my open source projects and my
00:09:09.600 day job and I'd love to see my team
00:09:11.820 succeed with the tools I built so I
00:09:14.040 guess I should do more things that we
00:09:16.500 need at work
00:09:18.360 and once
00:09:20.160 you know what the things are you want to
00:09:22.620 do you need to stop doing all the other
00:09:25.019 things
00:09:26.040 because time is limited when you do one
00:09:28.560 thing you are not doing all the other
00:09:30.240 things
00:09:31.380 I mean if you're still young you may
00:09:33.420 still have a lot of time on your hands
00:09:35.399 but the older you become the more busy
00:09:37.980 you become with work family
00:09:39.120 responsibilities
00:09:40.980 so
00:09:43.560 doing something always means deciding
00:09:46.200 against doing the other things and
00:09:49.320 so what does not doing things look like
00:09:54.779 for me it looks like closing a lot of
00:09:57.540 GitHub issues without making a change
00:10:08.240 here is a list of issue types that I
00:10:11.040 would just have taken care of in the
00:10:12.660 past but now I just close
00:10:16.740 so you have an idea for a feature that
00:10:18.779 is great but I also have a lot of ideas
00:10:21.240 of my own and if you are not willing to
00:10:24.180 do the work I will just close the issue
00:10:28.800 have you discovered an edge case in my
00:10:30.600 software well unless this thing affects
00:10:33.540 me or the majority of my users I will
00:10:35.760 just close the issue
00:10:37.620 I also won't write your tests anymore
00:10:40.320 this is something that I did in the past
00:10:42.839 um I would just have written tests if
00:10:44.459 they were missing from a PR I no longer
00:10:46.740 do this and I need tests to keep
00:10:48.899 maintaining this project so instead I'm
00:10:51.300 just going to close your issue
00:10:53.160 and
00:10:55.380 last big one
00:10:57.660 you never talk to me and now you sent me
00:10:59.700 this huge pull request
00:11:02.220 with a giant feature that I don't need
00:11:04.380 making a million decisions I disagree
00:11:06.899 with and now
00:11:08.519 I'm supposed to merge that thing and
00:11:10.500 maintain it forever
00:11:13.079 um I will just close this
00:11:15.660 now
00:11:16.740 I know all of this sounds a little rude
00:11:19.320 but I actually believe I'm a somewhat
00:11:21.420 polite person so I am going to be very
00:11:24.120 nice when I close issues but I'm also
00:11:27.720 very clear about what I'm willing to do
00:11:30.600 and what I'm not willing to do
00:11:34.560 so
00:11:37.019 if you want to close a lot of issues you
00:11:39.600 realize that it's not easy because it
00:11:41.339 means saying no a lot
00:11:43.140 and saying no is never easy it's so much
00:11:45.779 easier to say yes
00:11:47.700 so maybe we can learn from people who
00:11:51.180 are good at saying no and maybe such a
00:11:53.880 person is Sam Stevenson
00:11:57.180 Sam works at base camp and if you have
00:12:00.959 work with raids for any amount of time
00:12:02.940 you have probably used tools that Sam
00:12:05.100 created or that Sam contributed to
00:12:08.880 and
00:12:10.740 five years ago at this race conf Sam
00:12:14.220 presented a tool called turbo links 5.
00:12:17.360 turbulinks is a way to accelerate to
00:12:20.279 accelerate page loads in
00:12:22.260 web applications and
00:12:25.140 it shipped with these native app
00:12:26.760 adapters that allowed you to build
00:12:28.380 smartphone apps on top of your
00:12:30.420 server-side web application so you could
00:12:32.640 Implement a few interaction natively
00:12:34.740 while keeping most of the logic on the
00:12:36.899 server it was a pretty clever solution
00:12:39.480 really
00:12:40.620 and turbo links 5 ship with adapters for
00:12:44.220 IOS and Android
00:12:46.500 after Sam's talk an audience member had
00:12:49.200 a question about Windows phone support I
00:12:51.720 mean Windows phone was still a thing in
00:12:52.980 2016.
00:12:54.600 and I think we can learn a lot from
00:12:57.180 Sam's answer so let's have a look
00:13:04.740 yes
00:13:07.800 any plans to support Windows fun
00:13:10.680 I don't have any plans but I if someone
00:13:13.980 wants to look into that
00:13:15.480 you can take a look at the way we built
00:13:17.160 the IOS and Android
00:13:19.079 adapters so there's a JavaScript
00:13:21.300 component that's bundled with each one
00:13:23.760 that basically communicates with the
00:13:26.940 webview over a bridge
00:13:28.500 so you could take the same approach on
00:13:30.540 other platforms
00:13:32.579 we'd love to see that happen
00:13:38.880 all right so the person in the audience
00:13:41.639 asks
00:13:43.380 do you have any plans to support Windows
00:13:45.839 phone
00:13:47.160 and let's review what Sam says in
00:13:49.019 response and I think he says three
00:13:50.940 things
00:13:54.180 first she says
00:13:55.740 don't expect me to build this for you
00:13:59.040 but then he gives
00:14:01.320 actional advice so the audience members
00:14:04.139 the audience member may use it to help
00:14:06.779 themselves
00:14:08.100 and in the end he's just a friendly
00:14:09.839 person and is encouraging
00:14:13.139 note all the things that Sam does not
00:14:15.959 say or do
00:14:17.519 at no point does Sam offer to build
00:14:21.959 Windows phone support or admit that the
00:14:24.660 lack of support is somehow his
00:14:26.040 responsibility
00:14:27.720 but his answer is so nice and helpful
00:14:30.360 and encouraging that it makes a great
00:14:32.040 template for dealing with feature
00:14:33.600 requests
00:14:35.160 so let's practice this
00:14:39.240 for this purpose I made an app I made a
00:14:42.839 clock it's called superclock and it's a
00:14:44.519 clock for your terminal
00:14:46.079 it has this retro 90s NC art aesthetic
00:14:50.399 and let's see if we get any issues if we
00:14:53.699 put it on GitHub and I'm certain we're
00:14:55.800 going to get any issues because there
00:14:57.959 are always issues on guitar right
00:14:59.940 so
00:15:01.199 first issue
00:15:02.880 add 12 hour clock from Fubar and Fubar
00:15:06.720 writes hi
00:15:08.040 loving the style of this clock but I'm
00:15:10.380 from the US and the 24 hour clock is
00:15:12.720 very uncommon here please add a feature
00:15:15.180 for a 12 hour Am Pm display
00:15:18.720 so let's take a moment and think what we
00:15:20.699 want here
00:15:23.160 so I personally don't need a 12 hour
00:15:26.760 clock because I'm living in Europe
00:15:29.339 um but I know that many clocks have this
00:15:31.740 feature and I think it's a good fit for
00:15:33.779 the for the application so
00:15:38.339 it would be okay for me to edit but I'm
00:15:40.320 not not going to do it myself so this is
00:15:43.199 what I answer haifoo bar I think an AMPM
00:15:47.160 option would be a great addition can you
00:15:49.380 prepare a pull request for that
00:15:51.660 and now one of two things is going to
00:15:53.760 happen
00:15:54.660 in 10 of all cases
00:15:57.120 you will actually get a pull request
00:15:59.160 just by asking and that's surprising
00:16:02.279 because in her initial issue Fubar
00:16:04.680 didn't offer to contribute but it's
00:16:07.500 amazing how often people just do
00:16:09.959 something when you ask them to
00:16:12.060 but in most cases
00:16:14.880 honestly you will never hear from the
00:16:16.440 person again because they never plan to
00:16:18.120 contribute they just want to leave a
00:16:19.620 feature request with you
00:16:21.360 in that case
00:16:23.040 I will leave this issue open for a while
00:16:26.579 see if there's any activity but if it if
00:16:30.240 it has been stated for a time like a
00:16:33.000 year
00:16:33.720 I'm just going to close it
00:16:35.940 and um
00:16:37.740 I'm going to add a comment like hey no
00:16:41.040 one wants to see spectacle this right
00:16:42.360 now so I'm closing the issue feel free
00:16:43.980 to reopen to reopen when you're working
00:16:45.899 on a PR
00:16:47.459 and then I close it
00:16:50.160 okay let's see if we get another issue
00:16:52.560 yes
00:16:54.300 issue number two
00:16:56.639 Oracle Enterprise Time server is
00:16:58.800 unsupported
00:17:00.540 architect 64 writes
00:17:03.360 this clock doesn't support Oracle
00:17:05.520 Enterprise Time server 2018 which makes
00:17:07.740 it completely unusable in an Enterprise
00:17:09.660 environment
00:17:11.339 okay so what do we want here
00:17:16.679 so I don't use Oracle Enterprise
00:17:19.199 products and I don't want to use them
00:17:21.299 and I also don't want to complicate my
00:17:23.100 project by supporting an oracle product
00:17:25.439 I mean I couldn't maintain that even if
00:17:27.179 I wanted because I just don't have that
00:17:29.700 access to those tools
00:17:32.040 so
00:17:33.059 I'm going to be clearer and honest about
00:17:35.520 this and just answers this
00:17:38.880 I unfortunately I cannot build or
00:17:41.100 maintain integration with Oracle
00:17:42.480 Enterprise Products feel free to Fork
00:17:44.340 this repository with your changes and I
00:17:46.320 will link to it from our readme for
00:17:47.880 other interested users
00:17:50.220 so I make one more suggestion with the
00:17:53.280 fork and then I close it immediately and
00:17:56.400 this feels really strange when you're
00:17:59.039 working as software developer in your
00:18:00.480 day job because as developers we are so
00:18:03.840 used to waiting for customer acceptance
00:18:05.820 when we deliver a change right
00:18:08.220 but the users of your open source
00:18:10.200 repository they are not your customers
00:18:12.120 and you don't work for them so it's okay
00:18:14.340 to close immediately you do not do not
00:18:17.700 need to wait for acceptance
00:18:22.860 okay so one last issue and this one is a
00:18:26.580 pull request attached
00:18:28.500 um and boy this is a big pull request he
00:18:31.080 changed every single line of our
00:18:32.760 Repository
00:18:36.000 this sometimes happens people have
00:18:37.980 strong opinions and rewrite per project
00:18:39.240 but take a look at this
00:18:41.880 um
00:18:43.620 use cloud script instead of Ruby
00:18:45.840 hip hip rights this project is using
00:18:48.000 Ruby
00:18:50.220 but clearly Cloud script is the future
00:18:52.740 and converted the entire report to Cloud
00:18:55.080 script you're welcome
00:18:57.360 okay
00:18:58.919 what do we want here
00:19:01.320 so I know when what I don't want I don't
00:19:04.080 really want to use cloud script but this
00:19:06.900 is really
00:19:08.700 awkward now because
00:19:10.740 obviously hip hip invested so much time
00:19:12.660 into rewriting my app
00:19:15.480 and
00:19:17.280 um I wish he would have talked to me
00:19:19.620 about this before
00:19:21.780 so it's now really awkward to reject
00:19:24.000 this thing but I also know that
00:19:26.400 accepting this now will cause me so much
00:19:28.740 more pain in the future
00:19:30.299 so
00:19:32.100 I just close it
00:19:33.840 hey thanks for the pr unfortunately I'm
00:19:36.539 not using Cloud script and I don't want
00:19:38.220 to change the language to maintain the
00:19:39.539 repo sorry
00:19:41.400 and I close it again I don't wait for
00:19:44.160 acceptance I don't wait until it's okay
00:19:46.620 for hiphop I just close it
00:19:52.020 so
00:19:54.600 what did we learn here
00:19:58.140 are some permissions you may give
00:20:00.360 yourself
00:20:01.980 first it is okay to ask users to fix
00:20:05.100 their own issues
00:20:08.340 second it is okay to close issues
00:20:10.919 without permission you don't have to
00:20:13.080 wait
00:20:14.460 until it's okay for the user
00:20:17.400 and third it is okay to reject a change
00:20:20.280 that you do not want
00:20:22.260 because you are the one who needs to
00:20:24.059 maintain it forever
00:20:27.539 so you may ask
00:20:30.960 am I using GitHub issues at all anymore
00:20:33.780 am I just closing everything and no I'm
00:20:36.419 not closing everything there there are
00:20:38.220 still
00:20:39.419 I still see your purpose for GitHub
00:20:41.160 issues and here is how I'm using adap
00:20:43.980 issues first I use them to discuss
00:20:47.400 whether a feature is a good fit for the
00:20:49.200 library
00:20:52.260 and then
00:20:54.660 I help you make the best for request you
00:20:56.580 can do so if you need help setting up
00:20:58.500 the project I will help you if that will
00:21:01.740 help you find the best place where to
00:21:04.200 make the change and if you need any help
00:21:06.120 getting the test runs or whatever I'm
00:21:07.980 going to help you out I'm just not going
00:21:09.480 to do it for you
00:21:11.160 um you need to try you need to drive it
00:21:14.280 so
00:21:15.900 that is an exhaustive list I'm not using
00:21:18.660 it up it's just for anything else today
00:21:21.600 and we talked about my mood curve
00:21:24.780 earlier and you see how it crashed deep
00:21:27.480 into the dark Zone but then it goes up
00:21:29.460 again
00:21:30.299 and this point here is when I started to
00:21:33.360 align my open source work with my
00:21:35.039 motivations
00:21:36.120 and voila never again reached that
00:21:38.940 initial Rush of my first year I'm pretty
00:21:41.159 happy with my open source work now I'm
00:21:44.520 definitely getting more energy out of it
00:21:46.440 than I put in and that's a good place to
00:21:48.539 be
00:21:49.740 and if you feel worn down by your own
00:21:51.539 project I hope that I could give you
00:21:53.760 some ideas for improving your own
00:21:56.100 situation
00:22:04.799 so
00:22:06.360 all of us use open source every day
00:22:10.380 and I'm sure that every one of us of us
00:22:13.860 know the frustration
00:22:15.900 when you have posted an issue that is
00:22:18.059 important to us only to see it being
00:22:20.039 ignored for
00:22:21.780 months or years
00:22:23.820 I know I have felt that frustration
00:22:26.640 and
00:22:28.080 there is this strange tradition on the
00:22:29.820 internet where people drive by old bug
00:22:31.919 reports and make fun of how long they've
00:22:34.740 been open
00:22:39.480 these are actual comments real comment I
00:22:42.240 found this week
00:22:43.919 for instance
00:22:45.419 my apologies but this is insane that it
00:22:48.120 hasn't been fixed in approaching 12
00:22:49.559 years
00:22:50.940 or holy mother of God 10 years and you
00:22:54.120 still haven't fixed it I am having a
00:22:56.039 good laugh here
00:22:58.440 I say it's a strange tradition because
00:23:00.659 these comments reveal so much more about
00:23:03.000 the commentary than they do about the
00:23:04.740 project
00:23:05.820 they show a major misconception about
00:23:08.039 what an open source project is and what
00:23:10.320 an issue is
00:23:12.240 so what is an issue an issue is
00:23:16.080 a request for a change
00:23:19.020 and it can be used to discover
00:23:21.299 requirements
00:23:22.740 and it can be a place to cooperate at a
00:23:25.020 pull request
00:23:26.460 but what an issue is not
00:23:28.700 it's not a work order to the maintainer
00:23:31.679 because you do not employ the maintainer
00:23:33.840 the maintainer does not work for you
00:23:37.559 it's also not a guarantee that a change
00:23:39.960 will be made and it's never a deadline
00:23:43.620 so if you need any of the items on the
00:23:47.100 right
00:23:47.940 you need to either be very friendly and
00:23:51.000 convincing and convincing or you need to
00:23:54.000 pay someone or you need to do the work
00:23:56.460 yourself
00:24:01.740 so even if you don't have issues that
00:24:04.740 are a decade old you probably have seen
00:24:07.200 comments like this
00:24:08.880 any update
00:24:10.500 bump plus one
00:24:12.840 and these are really the same thing
00:24:19.080 here's
00:24:20.460 a tip from Nicholas sackers the creative
00:24:23.340 ears lint
00:24:25.200 if you ask any update on this on an open
00:24:28.500 source issue the answer is always no
00:24:31.039 updates are in the issue
00:24:34.440 an issue with no reason activity is a
00:24:36.840 clear indication that it's blocked
00:24:38.400 because of lack of time interest or
00:24:40.559 other
00:24:41.760 there is no value in asking which of
00:24:44.520 those is the case or plus ones if you
00:24:47.280 are willing to help go ahead and offer
00:24:49.200 you will get better responses
00:24:54.960 before I leave you
00:24:56.880 here's an idea an idea how you can make
00:24:59.280 a maintain a smile and you can do it
00:25:01.020 tonight
00:25:01.919 with very very little effort
00:25:05.400 and I give you one last tweet this time
00:25:09.120 for Nolan Lawson was worked on Countess
00:25:11.340 open source projects but you may know
00:25:13.200 him from his work on pouchdb and Nolan
00:25:15.840 wrote The Following
00:25:17.940 it is really rare in open source
00:25:20.039 software to see feedback from people who
00:25:21.960 are a long time mostly happy users of
00:25:23.700 the product about what their pain points
00:25:25.440 are
00:25:26.340 if you only pay attention to GitHub
00:25:28.799 issues you'd swear nobody could
00:25:31.080 understand your project and everyone was
00:25:33.419 running into weird edge cases
00:25:36.299 and he has a point right
00:25:38.340 because on GitHub
00:25:40.679 there's only a button that says I have
00:25:42.960 an issue
00:25:44.340 but there is not a button that says
00:25:47.400 I have no issue that button doesn't
00:25:49.320 exist I just fake it into the screenshot
00:25:52.080 and there are always many more people
00:25:55.020 who don't have issues but you never hear
00:25:57.179 from them
00:25:58.440 so what I'd like to encourage you to do
00:26:01.320 tonight is go through your gem file pick
00:26:04.380 some gem that you've been using
00:26:05.580 successfully and just make an issue
00:26:07.679 where you say hey thank you for the
00:26:10.380 thing it's been working for me bye
00:26:13.140 here's an example where some friendly
00:26:16.320 people did this for rails and I assure
00:26:18.720 you this will make a maintainer very
00:26:20.400 happy for a day even if they're just
00:26:22.740 going to close it with a smile
00:26:23.760 afterwards
00:26:26.460 so thank you resconf this has been great
00:26:29.340 if you would like to follow me here is
00:26:31.799 my handle on Twitter and GitHub you can
00:26:34.080 also send me an email
00:26:35.700 and I would like to take this
00:26:37.020 opportunity to make a very short pitch
00:26:38.820 for my own open source project it's
00:26:40.320 called anpoli and antoli is an
00:26:44.100 unobtrusive JavaScript framework for
00:26:45.779 server-side web applications it allows
00:26:47.640 you to build fast Spa like front-ends
00:26:50.640 while keeping all your rendering Logic
00:26:52.320 on the server
00:26:53.520 and right now in a community there's a
00:26:56.100 big interest in HTML over the wire
00:26:58.500 techniques ever since the release of
00:27:00.659 Hotwire last Christmas
00:27:02.059 antoli also sends a Gmail over the wire
00:27:04.559 but we took a very different approach to
00:27:07.380 Turbo that you may find interesting and
00:27:09.120 when not using websockets
00:27:11.520 we've been polishing this thing for five
00:27:13.860 years
00:27:14.760 though it's a very mature and stable
00:27:16.380 solution if you're interested you can
00:27:18.299 check it out on unpoli.com
00:27:21.720 alright thank you for listening racecon
00:27:23.640 bye bye