Hi Everyone,
I am writing to give a bump to some of what was written in reply to
Andrew's thread on auto-creating JIRAs.  I would like to try to focus on
small (hopefully) short term achievable items, to make the community
friendlier to newcomers and reduce toil for regular contributors.

1.  I think creating a GitHub action that can automatically copy a GitHub
issue to a JIRA, close the issue and leave a note [1] would be useful.

The intent is to be friendlier to people interacting with the project for
the first time and letting them decide how invested they are in a bug to
create the necessary credentials to track it.

2.  Guidelines for trivial/minor patches (those not requiring a JIRA) and
updating the PR tool to accept a title indicating them as such.  I would
propose the following fall under the trivial guideline:
    a.  Grammar, usage and spelling fixes that affect no more than N files
    b.  Documentation updates affecting no more than N files and not more
than M words.

3.  Guidelines for when to use the auto-create JIRA tool:
    a.  Refactors (no functionality change) affect no more than N [2]
files.  If coding work required on the code is less than 1 or 2 hours,
JIRAs can be disruptive enough to one's workflow and don't really
contribute to the "openness" of the project in a meaningful way.  This can
be a slippery slope, but I think we can all be judicious on when to use it.
    b.  Small one-off bug fixes by new contributors to the project (ideally
this would be accompanied with a note pointing to the contributors guide).

4.  IIUC some of the angst on the thread from regular contributors was the
amount of duplication of effort it is to fill in details in multiple
places.  However, I do think transparent development is important and
migration away from our current tooling would be an expensive investment.

In my mind JIRA serves as a useful index of issues/feature backlog that is
tied into our development and release tooling.  I'm not sure it falls
within the "Apache Way" but it seems that as long as the necessary
discussion has already happened on list (possibly by way of reviewing
PRs/Google Docs and summarizing them back in the list) then minimal JIRAs
are sufficient (i.e. Title, Component, and a link to the discussed
artifact).

So for instance if we had an RFC process for a major feature I would
imagine the guideline would be something like:
   a.  Create JIRA for writing RFC (should be fairly minimal, I imagine
most content will actually go into a PR for the RFC).  This gives others
that might be interested in the area knowledge that one is being written
and an opportunity to collaborate ahead of time.
   b.  Send RFC for review and give a heads up to the mailing list.
   c.  Gain consensus on RFC
   d.  Create minimal JIRAs corresponding to work items to complete the RFC
and link back to it.

For less involved features I still think minimal JIRAs are still OK, if
other contributors/observers have particular concerns they can ask for more
details.

For me the key is expressing intent up-front to enable potential
collaboration, discussion and feedback before a lot of time is invested.
After the fact, understanding the rationale that went into decisions is
also useful.

Thoughts?  Anything other guidelines or norms we should try to socialize
around our development process?

Thanks,
Micah

[1] A note like: "This issue has been copied to JIRA item [ARROW-11111].
If you wish to discuss or further track it please track it there.  For more
details please see the [contributors guide](
https://arrow.apache.org/docs/developers/contributing.html)"

[2] I used N above because I think it is best to treat the number as a
guideline rather than a rule.  But I would pick N=2 if we wanted to force
the rule.

Reply via email to