Jarek

Nice summary. I can learn many from it.
And setting up a robot to resolve this kind of problems seems a very
productive way.
Look forward to it. SkyWalking community faces very similar scenarios as
Airflow.
GitHub discussion does help.

Jarek Potiuk <ja...@potiuk.com>于2021年8月29日 周日上午12:47写道:

> Some update from the most recent attempt of Apache Airflow to improve our
> issue handling using some "new-ish" features available in GitHub: Issue
> Forms and GitHub Discussions.
>
> TL;DR; We don not have yet results but we think in Airflow making the full
> use of GitHub Form Templates and endorsing the use of GitHub Discussions
> where appropriate (and at the issue entry time), should help us a lot by
> "gating" issues better, improving their quality and getting our users into
> "pre-clasifying" the issues (or indeed using Discussions where it is a
> better choice).
>
> *Problems we observed:*
>
> * with the standard MARKDOWN templates we have many issues where people did
> not provide useful information (version of airflow, operating system etc.)
> * we had a number of issues where users would simply delete the markdown
> template content straight away and replaced with their own issue
> description - without "reproducible steps", or really to ask a question
> about their deployment problems without even trying to attempt to
> investigate it.
>    We've ended up with many "discussion" kind of question posted as issues.
> Then we would "convert" such issues into discussion but it required
> maintainers comment and explanation. Mostly it was because the users did
> not even know they can (and should) open a discussion instead.
> * the markdown templates were difficult to read/fill in - it was not clear
> what you should do with the parts which were relevant - we left
> instructions in the comments, which were sometimes left/sometimes deleted,
> generally the issues were "structur-ish" rather than "structured".
> * often people opened Airflow 1.10 issues even if it reached End-Of-Life in
> June (they should open discussions instead - which is still great because
> even if there are no way we will handle the issues but either us or other
> users can help them still for workaround or even directing t)
>
> *Discovery*
>
> Then we discovered that we already can use "Forms for GitHub Issues" (beta
> feature but it is available for everyone now -
>
> https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/syntax-for-issue-forms
> ).
> This looked like not only a great way to structure and pre-classify the
> issues (by the users) but also seems to be a great communication tool with
> the users. We believe it will allow us to address most of the issues above.
> Basically instead of committers having to explain the rules over and over
> and instruct the users how they should report the issues - it's all there
> explained really clearly and nicely while the user enters the issue.
>
> *Solution*
>
> We defined forms with required fields that cannot be "skipped". also when
> you do not fill a "textarea" entry it is marked as "Not Provided" rather
> than deleted. We added helpful comments and hints as well as explanation in
> which cases you should use GitHub Discussions (including lack of ability to
> select 1.10 version and link to open GitHub Discussions) instead of issues
> (with direct link). We've added logo and welcoming message to "soften" the
> "more formalized form entry need. We made it clear that if there is no
> reproduction steps, the users should open GitHub Discussion instead. We've
> added more issue types - we've separated "Airflow Core", "Airflow
> Providers" (we have more than 70 providers that extend Airflow's
> capabilities) and "Airflow Docs" issues - automatically applying correct
> labels, so we do not have to do triage ourselves. We also created a
> "maintainer only" issue type with allows to enter pretty much free-form
> information (for tasks/todos etc.) and we've added a required "checkbox" to
> confirm you are maintainer, to discourage people from using it to raise
> their "free form" questions there. We wanted it to be "easy" for committers
> to enter such "free form" issue but "not easy" to skip structured
> information by the users - at the same time guiding them to use
> "Discussions" which are much "easier" to enter any content and ask
> questions.
>
> What is even more - this structured form will allow us to automate some
> stuff if we find it is  needed. For example if someone submits an entry
> without providing "reproduction steps" we can write a bot to automatically
> convert such issue into discussion. Or automatically close an issue if
> someone opens a "free-form" one while not being maintainer.
>
> *Demo/Take a look yourselves*
>
> You can try it yourself here:
> https://github.com/apache/airflow/issues/new/choose
>
> And see some screenshots how our issue form entries looks like:
>
>    - https://ibb.co/Lxgx7xn
>    - https://ibb.co/0rYqm1Q
>    - https://ibb.co/fX45nBB
>    - https://ibb.co/dbTR9GV
>
> PR introducing it is here: https://github.com/apache/airflow/pull/17855
>
> We really hope it will drive the issue quality up and issue number down
> eventually.
>
> J.
>
>
> On Thu, Jul 15, 2021 at 5:17 PM Jarek Potiuk <ja...@potiuk.com> wrote:
>
> > Good luck :).
> >
> > On Thu, Jul 15, 2021 at 3:53 PM Erik Ritter <erik...@apache.org> wrote:
> >
> >> Thank you all for the great advice and thoughts! I see a lot of
> alignment
> >> between items suggested here and things we've tried or thought about.
> >>
> >> Being proactive about closing issues against old versions of Superset is
> >> definitely something we want to do, but haven't gone through and done a
> >> mass issue closing yet. That could certainly help cull the issue count.
> >>
> >> We have set up some bots on github to close stale issues, but their
> >> timeline is probably too long (I think we wait 3 or even 6 months before
> >> closing a stale issue). Setting a more aggressive timeline for closing
> >> feels like a reasonable approach.
> >>
> >> A lot of the issues we see seem to be legitimate bugs/issues with the
> >> product, but Superset has such a large surface area (supporting dozens
> of
> >> database query engines) that many committers don't have the time or
> ability
> >> to replicate someone's environment to truly repro an issue. I'd imagine
> >> making it easier for new contributors to set up a dev environment and
> test
> >> with their own data could help solve this issue. Our new developer
> >> onboarding docs/workflow is somewhat lacking, but enabling more
> community
> >> members to resolve issues could provide the incentives to improve it.
> >>
> >> Finally, I do think we have an issue with committers/PMC members paying
> >> attention to issues filed, probably because Github email spam is all too
> >> common, and we pretty much all have jobs that touch more than only
> >> Superset. As mentioned, assigning work isn't really possible for an open
> >> source Apache project, but I would hope that we could improve the
> triaging
> >> rate of issues at least. Perhaps gamifying in some way, or creating a
> >> volunteer group to do a bi-weekly or monthly triage session could help
> us
> >> start to get some control over the issues filed.
> >>
> >> Thanks again for all the great advice, and I'm glad to know it's not
> only
> >> us having these issues. We've got some plans in the works to improve
> this
> >> state, and hopefully in a few months I can follow up on this thread
> with a
> >> success story!
> >>
> >> Erik
> >>
> >> On 2021/07/09 12:01:06, Paul Angus <p...@angus.uk.com.INVALID> wrote:
> >> > Hi Erik,
> >> >
> >> > My 2c - you (the project) may have to 'take a view' on some of the
> >> issues if they date back to older versions.
> >> >
> >> > In my experience fixing bugs obviously requires replicating the
> >> problem, fixing it and confirming that its fixed,  but if the issue was
> >> reported against an old version, then someone needs to replicate it in
> the
> >> old version (to be sure its not PICNIC - Problem In Chair Not In
> Computer)
> >> then replicate it in the current version to check that its still a bug,
> >> and _then_ start fixing it...
> >> >
> >> > Volunteers are unlikely to want to take on all that effort, so it does
> >> mean an ever increasing number of old bugs (as Jarek says, only
> >> stakeholders tend to allocate resources to that kind of thing).
> >> >
> >> > So I would start by seeing if you have a lot of really old bug reports
> >> and consider closing them as a matter of course.  Huge bug lists also
> tend
> >> to put people of as they don't know where to start and don't feel that
> they
> >> can even make a dent in the pile.
> >> >
> >> > Kind Regards
> >> >
> >> >
> >> > Paul Angus
> >> >
> >> > -----Original Message-----
> >> > From: Jarek Potiuk <ja...@potiuk.com>
> >> > Sent: Friday, July 9, 2021 12:51 PM
> >> > To: dev <dev@community.apache.org>
> >> > Subject: Re: Issue Management in Apache Projects
> >> >
> >> > We are struggling with it as well in Apache Airflow.
> >> >
> >> > I can write about some of the things we actively do to try to bring it
> >> down (and we can see how it will work after some time).
> >> > We have not succeeded yet (we also have ~800 issues opened) but we for
> >> example have ~130 opened PR and we used to have > 200 of them so we see
> the
> >> sign of improvement.
> >> >
> >> > * we triage and respond to the issues pretty quickly and
> "aggressively".
> >> > I.e when there is not enough information or the issue is very likely
> to
> >> be caused by external factor, we close the issue explaining what's
> missing,
> >> what the author should do, what information should be provided and add
> info
> >> that it will re-open as soon as more information is provided. I found
> >> closing issues in this case works much better for motivation of the
> user to
> >> add more information (or save the hassle of maintaining status and
> closing
> >> the issue later).
> >> >
> >> > * we have automated stale-bot that closes inactive issues and PRs
> after
> >> (30 day inactivity = notice, + 7 day = closing)
> >> >
> >> > * when the user raises the issue which is a question, we actively
> >> redirect the user to "Discussions" rather than issue and .... close the
> >> issue :). We found "GitHub Discussions" pretty useful and active, and
> more
> >> and more users are opening discussions rather than issues. This keeps
> the
> >> "issues"
> >> > down to some "real" issues.
> >> >
> >> > * we have a triage team that virtually meets from time to time and
> >> actively reviews, classifies the issues (adds labels) but also runs some
> >> stats on which areas are "under-staffed". They meet semi-regularly and
> >> discuss and send some summaries.
> >> >
> >> > * we continuously encourage new users to contribute and add more
> >> committers especially in the areas that are "under-staffed" (recently UI
> >> committers "team" and "Kubernetes" team has greatly increased in
> capacity)
> >> and it immediately improved the situation there)
> >> >
> >> > * what helps there is that some of those committers are full-time
> >> employed or part-time paid as freelancers by important stakeholders in
> the
> >> project (Astronomer, Google). Also those stakeholders are fully aware of
> >> the value it brings, so they gladly pay the committers for their
> community
> >> effort, even if it is not directly responding to their needs
> (disclaimer -
> >> I am one of those freelancers that is part-time paid by the
> stakeholders)
> >> >
> >> > * the rule we have is that we do not need issues at all. People are
> >> encouraged (in the docs and workshops) to open directly PRs rather than
> >> issues
> >> >
> >> > * we added "Are you willing to submit PR?" question in the issue
> >> template.
> >> > When the issue is relatively simple and the user says "yes" we assign
> >> the user to it. When the answer is missing - we actively ask the user if
> >> there is a will to submit the PR. More often than not, the users are
> >> willing to when encouraged (at least initially).
> >> >
> >> > * we mark the issues that are simple as "good-first-issue" which then
> >> lands in http://github.com/apache/airflow/contribute . More often than
> >> not we have people commenting "Hey I want to implement this, can you
> assign
> >> me?"
> >> > which we do pretty immediately when they ask. That often works and we
> >> have new contributors :).
> >> >
> >> > * we have a "really quick to start" development environment for
> Airflow
> >> (Called Breeze) that we continuously improve and try to make easier to
> >> start contributing.
> >> >
> >> > Last but not least. We put a lot of effort into training, guiding and
> >> encouraging new contributors to contribute to Airflow:
> >> >
> >> > * we run semi-regular workshops for new contributors - we **just**
> >> started Airflow Summit 2021 yesterday and for example today we have the
> >> "first time contributor's workshop"
> >> >
> >>
> https://airflowsummit.org/sessions/2021/workshop-contributing-apache-airflow/
> >> > - 3 hours hands-on when we teach the new contributors how to
> contribute.
> >> > This is I think 5th or 6th time we do it (we have a few physical
> events
> >> and over last 1.5 year we had I think 4 online ones). This time we have
> 20
> >> people who signed up  - from literally all over the world (and BTW. all
> >> proceedings from that cheap 50 USD workshop go to Apache Software
> >> Foundation as donation).
> >> >
> >> > * yesterday was a "community" day  at the Summit where we had three
> >> talks encouraging people to contribute:
> >> >
> >> >
> >>
> https://airflowsummit.org/sessions/2021/contributing-journey-becoming-leading-contributor/
> >> > - the road of Kaxil, the PMC of Airflow through committership
> >> https://airflowsummit.org/sessions/2021/contributing-first-steps/ - the
> >> first steps by a fresh contributor to Airlfow who shared his experiences
> >> https://airflowsummit.org/sessions/2021/dont-have-to-wait/  - "You
> don't
> >> have to wait for someone to fix it for you"  - the talk from one of the
> >> committers to Airflow, Leah and her co-worker Rachel
> >> >
> >> > And we have quite few more talks for those who want to start
> >> contributing to Airflow:
> >> >
> >> > https://airflowsummit.org/sessions/2021/guide-airflow-architecture/
> -
> >> The newcomer's guide to Airflow Architecture
> >> >
> >> > And finally, there are things we plan based on some upcoming features
> in
> >> > GitHub:
> >> >
> >> > * we are eyeing very closely the new GitHub Issues introduced
> recently:
> >> > https://github.blog/2021-06-23-introducing-new-github-issues/ . They
> >> seem to be much more developer-friendly and automation-friendly and they
> >> might help with better organizing/handling the issues. I am working with
> >> Github Issues Product Manager (we are going to have a meeting about it
> next
> >> week) to enable the new GitHub Issues for the whole Apache Software
> >> Foundation (I agreed that with Infra) and I hope very soon we will get
> it
> >> for all ASF projects (as an option to use)
> >> >
> >> > * we are waiting for Codespaces General Availability and our
> >> development environment is prepared to be used there out-of-the-box.
> This
> >> will make even easier path for new contributors to start contributing
> their
> >> code straight from the GitHub UI.
> https://github.com/features/codespaces.
> >> >
> >> > Sorry for such a long mail - this is basically a summary of ~ year of
> >> discussing and acting in this area.
> >> >
> >> > I hope some of those might be helpful :)
> >> >
> >> > J.
> >> >
> >> >
> >> > On Thu, Jul 8, 2021 at 11:33 PM Christopher <ctubb...@apache.org>
> >> wrote:
> >> >
> >> > > Hi Erik,
> >> > >
> >> > > Do you have a good understanding of *why* there are more issues
> being
> >> > > opened than being closed? If so, that might hint at some possible
> >> > > solutions.
> >> > >
> >> > > For example, if you just don't have enough people to write code,
> then
> >> > > the PMC could focus on inviting new committers to try to grow the
> >> > > community, or mentoring new developers.
> >> > >
> >> > > If, on the other hand, the quality of the issues is poor, such that
> >> > > they aren't very actionable, you could ask for more information from
> >> > > the reporter, and add a label that shows its status, such as
> "waiting
> >> > > on reporter". If no response is given in a reasonable time, you can
> >> > > close old issues. You can also try to address issue quality using
> >> > > GitHub issue templates:
> >> > >
> >> > >
> >> https://docs.github.com/en/communities/using-templates-to-encourage-us
> >> > >
> eful-issues-and-pull-requests/configuring-issue-templates-for-your-rep
> >> > > ository
> >> > >
> >> > > You could also set up something to auto-close very old issues that
> >> > > haven't been updated in a long time, under the premise that they are
> >> > > probably not relevant anymore. If they are, they can always be
> >> > > re-opened.
> >> > >
> >> > > You can also use GitHub "projects" (which I see you're already
> using:
> >> > > https://github.com/apache/superset/projects) to help organize
> >> related
> >> > > tasks, so they can be closed when the overall project is done.
> >> > >
> >> > > If the problem is that your committers aren't paying attention to
> >> open
> >> > > issues, you can try to ping your community's dev@ list to remind
> >> > > people of how many issues are outstanding, as a way of encouraging
> >> > > people to help triage, close, and bring down the number. You could
> >> try
> >> > > to find other ways to "gamify" the count, too. But, ultimately, it
> >> > > comes down to volunteer effort.
> >> > >
> >> > > If the problem is that your committers are having trouble tracking
> >> the
> >> > > activity on GitHub, you can double check your mailing list
> >> > > configuration to ensure activity gets copied to a notifications@ or
> >> > > issues@ list that your committers can track (you can also configure
> >> > > them to go to dev@, but that tends to get spammy and redundant,
> >> > > especially for your committers who are happy seeing the notification
> >> > > dots and/or emails directly from GitHub).
> >> > >
> >> > > Ultimately, you'll need to figure out why the situation is the way
> it
> >> > > is, and address it accordingly. You won't be able to force volunteer
> >> > > community members to participate to bring the number down, but
> >> perhaps
> >> > > there's ways to encourage them, depending on why it's happening in
> >> the
> >> > > first place.
> >> > >
> >> > > On Thu, Jul 8, 2021 at 5:04 PM Erik Ritter <erik.t.rit...@gmail.com
> >
> >> > > wrote:
> >> > > >
> >> > > > Hi all,
> >> > > >
> >> > > > I'm a PMC member for Apache Superset, and we've recently been
> >> > > > struggling with the number of issues reported in our Github repo.
> >> > > > We're currently
> >> > > at >
> >> > > > 800 open issues, and are having trouble keeping up with responding
> >> > > > and addressing all the user issues and feedback. We were curious
> if
> >> > > > any other Apache projects had a way of managing Github issues that
> >> works for them.
> >> > > We
> >> > > > were considering setting up a bot that assigns new issues to a
> >> > > > random committer/PMC member, but are open to other ideas too.
> >> Thanks
> >> > > > for your
> >> > > help
> >> > > > and advice!
> >> > > >
> >> > > > Best,
> >> > > > Erik Ritter
> >> > >
> >> > >
> ---------------------------------------------------------------------
> >> > > To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
> >> > > For additional commands, e-mail: dev-h...@community.apache.org
> >> > >
> >> > >
> >> >
> >> > --
> >> > +48 660 796 129
> >> >
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: dev-unsubscr...@community.apache.org
> >> For additional commands, e-mail: dev-h...@community.apache.org
> >>
> >>
> >
> > --
> > +48 660 796 129
> >
>
>
> --
> +48 660 796 129
>
-- 
Sheng Wu 吴晟

Apache SkyWalking
Apache Incubator
Apache ShardingSphere, ECharts, DolphinScheduler podlings
Zipkin
Twitter, wusheng1108

Reply via email to