(I've cc-ed user ML to gather feedback from users for this email as well.)
All,
Thank you for your feedbacks, discussions, and suggestions. I have tried to 
take on board all the feedback from the discussion and I propose the following:
# Problem
Let me summarize the problems we're facing and propose some solution (which may 
require voting) in the next section:
- Search:
The source of truth is in the git repository (Github or asf mirror), however, 
our issue tracking and wiki systems are different. Therefore any task requires 
us to move back and forth between these various portals/systems. As an example 
- a contributor trying to find whether an issue was fixed, requires them to 
search both JIRA, Github for pull requests or commits (and sometimes the 
release notes and MLs).
- Audience/Platform:
From an audience's perspective, the user ML and JIRA issue are for users to be 
able to reach the community and seek help with a bug or request a new feature.
The dev ML, and github PR are ways that developers usually use to fix/address 
an issue or develop a new feature, and get them accepted towards a release.
CWiki is used by both to track articles, documentation and FSs, the docs 
website hosts docs for install/admin/release notes is user-facing. Both JIRA 
and Confluence are slow compared to Github. The docs website is a static 
website and is fast.
- Relationship and discovery:
Historically, the main reason for having a JIRA id with a PR/commit is to be 
able to track changes for an open bug and gather such a list in the release 
notes. It also helps with cross-searching of a PR against a JIRA ticket and 
searching a JIRA id for possible discussion from an accepted PR. A git commit 
(for example on github) can also help by telling us which tags or branches the 
commit was included in, so helps in knowing which version of ACS will have that 
in.
 - Behaviours:
With the current strict requirement of JIRA ids for each PR, we see these 
behaviours:
(a) many times the author may not engage after sending the PR and may not add a 
JIRA id causing that PR to get blocked indefinitely,
(b) the author would create a JIRA id just for the sake of it with minimal 
description and not filling all available fields such as affects and/or fix 
version.
After a PR is accepted the JIRA ticket may not be properly closed/resolved to 
leave us with several open tickets which are in fact close-able.
- Pollution:
Due to JIRA-caused behaviours 'administrative' changes such as changing of 
versions, addition of upgrade paths after a version is cut, changes to update 
the iso url, dependency version in pom.xml etc end up creating '00s of new JIRA 
ticket. We're already in our 10k numbers. At this point in time it is not 
likely that all these tickets will be addressed, the workload involved would 
simply not make this feasible.
# Let's discuss Solutions
Let me acknowledge here that enforcing any process in the community is a 
challenge and to some extent not possible in a community of contributors doing 
work in their *free time*. In an ideal world, I understand we would want all 
procedures to be followed (as some of mentioned in favour of that) but 
practically if there are other ways to fix our problems and reduce red-tape we 
should explore that. Let me propose a comprehensive solution and request your 
feedback and thoughts:
- Search:
We've all organically made great progress with higher cadence after switching 
to a Github based contribution workflow. I hope nobody disagrees how easy it is 
now to contribute and review, compared to what we did in past with 
"reviewboard". With the final/ultimate source of truth stored in the git 
repository, it only make sense to stick to one platform that is easier to use. 
Github, I think, is usually faster than both ASF jira and cwiki.
- Audience/Platform:
Based on a query with ASF INFRA, I was adivsed that a project can use all the 
features of Github (see https://issues.apache.org/jira/browse/INFRA-16186). I 
also checked and confirmed that any changes to Github repo goes to the commits 
ML.
I propose we stick with Github and for starters explore using the 'github 
issues' for issue tracking. We may explore wiki and projects in future (or on 
an experimental basis). Having both issues and pull requests/reviewing on the 
same platform will make it easier for both users and developers to use one 
platform for searching, logging, and use.
I propose to limit our scope of changes and start with Github issues first. A 
discussion of moving away from cwiki can be held in future.
Historical data in existing systems will be kept for reference, but may be 
deprecated in the future. The legacy systems can avoid taking new additions, 
and all users and developers encouraged to use the Github equivalents
- Discovery and relationships:
As experimented with 4.11.0.0, we can use Github milestone (that are basically 
CloudStack versions) to track PRs that should go towards a release. Github 
project boards may also be used to track and triage issues/pull-requests 
towards a release which especially RMs and co-RMs can use.
Users would create an issue in Github, against which a developer can create a 
PR. If a developer has identified an issue for which an issue-ticket does not 
exist, they can choose to send a PR directly with all the details and 
descriptions logged on the PR description. Both Github issues and pull requests 
can be linked to a milestone, project, some labels, and assignees.
I think this approach to the process will reduce a lot of overheads, reduce 
duplication of description, reduce splitting of information across different 
information systems. List of changes can be simply related via milestones and 
release notes can be easily created using the milestone.
- Behaviours:
We will no longer need to create JIRA ids as a strict requirement. A great deal 
of work in managing two disconnected portals will be resolved, this will also 
reduce overhead.
A user can log a Github issue. A developer may send a PR against a logged 
Github issue, or simply just send a PR linked to a milestone (and/or project). 
Using milestones, we can reference what went towards a release, the same can be 
used to easily generate issues/changes list for release notes.
Because JIRA are mostly used by users to log issues (or due to the strict 
requirements), usually developers may not follow it regularly and try to fix 
issues. Github is easy and faster, and having an issues tab (with a count of 
outstanding issues) can cause more developers to participate in discussions for 
an open bug (like they do on pull requests). By having issues tracked through 
Github, users may get more attention from developers.
Keep same merge guideline:
With the proposed changes, each PR will still require at least two non-author 
reviews/LGTMs and regression test result OK to get them accepted. So, any 
confusion (whether additional information, JIRA/Issue IDs are needed) can be 
left at the discretion of non-PR authors. A pull request template has been 
recently proposed and accepted for both 4.11 and master branches that will 
standardize how pull requests are reviewed/sent.
# Next Steps?
We discuss and rectify the proposal ^^ and if we're positive we can vote and 
ask the INFRA team to enable issues (and wikis) for cloudstack-* repos on 
github.
Like we did with reviewboard, we can switch to Github issues over time and stop 
using JIRA/issues while keeping the system accessible for legacy referencing 
etc. We can update the project website around contribution, and fix the 
CONTRIBUTING.md in the repository, and update the release process and related 
articles on cwiki.
Thoughts, feedback? Thanks.
- Rohit

<https://cloudstack.apache.org>



________________________________

rohit.ya...@shapeblue.com 
www.shapeblue.com
53 Chandos Place, Covent Garden, London  WC2N 4HSUK
@shapeblue
  
 

From: Rohit Yadav
Sent: Tuesday, March 13, 2018 2:27:29 PM
To: dev@cloudstack.apache.org
Subject: [DISCUSS] Relax strict requirement of JIRA ID for PRs


All,


To make it easier for people to contribute changes and encourage 
PR/contributions, should we relax the requirement of a JIRA ticket for pull 
requests that solve trivial/minor issues such as doc bugs, build fixes etc? A 
JIRA ticket may still be necessary for new features and non-trivial bugfixes or 
changes.


Another alternative could be to introduce a CONTRIBUTING.md [1] that explains 
the list of expected things to contributors when they send a PR (for example, a 
jira id, links to fs or other resources, a short summary and long description, 
test results etc).


Thoughts?


[1] 
https://help.github.com/articles/setting-guidelines-for-repository-contributors/


- Rohit

<https://cloudstack.apache.org>


Reply via email to