Hi Alex All wise words, thanks :)
I think we are all on the same page about good intentions. About PR approval, I agree it's close to the ASFvoting process (even though not exactly the same as fragment votes are allowed for code modification vote). If needed, we can always bring discussion/review on the dev mailing list (see https://www.apache.org/foundation/voting.html about code modification). I also agree about "fast good enough merge" and if needed revisit later (it's what I proposed in my previous message: merge and if needed it could be reviewed). Before git/github, at the ASF we used the commit and review paradigm (instead of review and commit), and it works for sure :). It's always better to move forward on a good enough PR rather than chasing the best PR. I'm not sure we need anything more that the resources we already have at foundation level: - https://community.apache.org/committers/decisionMaking.html - https://www.apache.org/foundation/voting.html My proposal is more to write down obvious good practices in the contributing guide, also referring to the foundation resources. One key point was: we have to be sure to give a chance for the community to review a change. We are all doing great work ! Thanks everyone and let's move forward: we have a bunch of cool stuff coming in Polaris :) Regards JB On Fri, Jan 17, 2025 at 2:27 PM Alex Dutra <alex.du...@dremio.com> wrote: > > Hi all, > > I think we also need to discuss how PRs are reviewed, approved or rejected. I > just read the CONTRIBUTING.md file, and it doesn't say much about it. > > What I think is paramount here is: assume good intentions. No one is here to > make your life harder, or to introduce malicious code. We are all here to > make Polaris better. That is the Apache Way [1] of doing things: as > individuals contributing to Polaris, we have earned the authority to > contribute; as we do it, it's because we genuinely think that our > contribution is good for the project. > > Speaking of the Apache Way, I think it is also important to clarify what an > approval or a request for change means in a PR. ASF projects hosted on GitHub > tend to map the ASF decision-making process [2] to a tacit convention where a > PR approval is a +1; a comment is a +0 if positive, or -0 otherwise; and a > request for changes is a hard -1, effectively blocking the PR. In this > vision, a -1 should be used sparingly, and only with good reasons. > > And lastly, let me expand on my opinion on disagreement. As the project > grows, disagreement will grow as well. Situations where PRs would end up in > endless discussions may well arrive, or even worse, PRs could end up in the > dustbin of history due to lassitude (hello, Iceberg!), too much discussion, > or lack of consensus. > > We want to avoid that, and have things moving forward rather than stall. In > conflictual cases, I think the right mindset is to apply two principles: > > The "disagree and commit" principle [3]: if consensus cannot be reached, but > the PR is generally approved (no -1s), those who disagree *must* abide by the > decision made by the majority, and move on - no resentment, no grudges, no > hard feelings. > As Voltaire said: "the best is the enemy of good" ("le mieux est l'ennemi du > bien"). IOW, I would rather approve an imperfect PR that goes in the right > direction, rather than ask for changes until it becomes perfect. Code can be > amended, and even reverted if need be. > > Iceberg has a few guidelines around consensus, review process and > disagreement; we could maybe look into improving ours and include ideas I > outlined above. > > Thanks, > > Alex > > [1]: https://www.apache.org/theapacheway > [2]: https://www.apache.org/foundation/how-it-works/#decision-making > [3]: https://en.wikipedia.org/wiki/Disagree_and_commit > > > On Fri, Jan 17, 2025 at 11:26 AM Jean-Baptiste Onofré <j...@nanthrax.net> > wrote: >> >> Hi Robert >> >> Agree for the 2 days period: it doesn't have to be strict, but up to >> the author. The point is really to give chance to the community to >> review. >> >> About the comments, descriptive comments don't have to be resolved. >> However, for "question" comments, they are worth to be considered and >> discussed. At the end of the day, in GitHub, the PR author can always >> click the "resolved" button, so it's not a merge blocker. The reason >> why I think it would make sense to enabled "resolve discussion to >> merge" in .asf.yaml, it's because it can help the PR author without >> missing comments. >> >> I agree with "soft-rule": that's why, instead of guidelines, I would >> rather add "good practices" in the contributor guide. >> >> Regards >> JB >> >> On Fri, Jan 17, 2025 at 8:54 AM Robert Stupp <sn...@snazy.de> wrote: >> > >> > I agree with most points. But I'm not in favor of such strict and >> > potentially enforced rules like "(at least) 2 days". Also not in favor >> > of "all comments must be resolved", because some comments add >> > descriptive value for later - resolving those comments renders those >> > invisible and hard to inspect in the future. >> > >> > As I mentioned in another thread, bugs and especially security issues >> > need to be fixed asap. Same for immediate follow-ups to fix a recently >> > merged PR. Also nits/typos really do not need that enforced rule. >> > >> > This is a very young project. And with project I do not mean only the >> > code base but also the contributors - and with contributors not only >> > people who write code. >> > >> > I think we're all in agreement that the Polaris code base is not in a >> > production ready and mature state yet and have no GA release. A lot of >> > changes need to happen to get there. We should not assume that something >> > is ever set in stone, nor that everything is 100% perfect. We should aim >> > to build great things in a great way. I also think that we have to move >> > fast, the world will not stop turning just because we have to stick to >> > some 2-day rules that we set up. >> > >> > I'd be in favor of a "soft rule": The bigger the topic, the more >> > attention/discussion/information and likely time is required. >> > >> > PS: Friction and follow-up discussions can be a good thing, and >> > sometimes "venting" can be as well. >> > >> > >> > On 17.01.25 07:21, Jean-Baptiste Onofré wrote: >> > > Hi Mike >> > > >> > > Yes agree to fix bug faster than 2 days. I was more thinking about >> > > improvements or new stuff. >> > > >> > > If we have a consensus, I’m happy to create a PR to update the >> > > contributing >> > > guide. >> > > >> > > Thanks ! >> > > Regards >> > > JB >> > > >> > > Le ven. 17 janv. 2025 à 06:20, Michael Collado <collado.m...@gmail.com> a >> > > écrit : >> > > >> > >> Hi JB >> > >> >> > >> This is a great topic and worth spending time on. Naturally, we want to >> > >> move fast and get things out quickly, but it’s also important that >> > >> everyone >> > >> has a chance to weigh in on changes. This is easy to miss when we’re >> > >> spread >> > >> across so many time zones and some groups are working while others are >> > >> sleeping. >> > >> >> > >> I agree with all points, with the caveat that real actual bug fixes >> > >> should >> > >> be able to be checked in before two days. >> > >> >> > >> I would also propose that interface changes or other substantial changes >> > >> should be proposed in an issue and optionally a proposal doc. Some of >> > >> the >> > >> existing interfaces are natural extension points so some users will >> > >> already >> > >> have their own customizations. Interface changes, changes development >> > >> tool >> > >> (e.g., the integration tests structure, the build configuration), and >> > >> the >> > >> application structure all warrant some heads up to users who may have a >> > >> stake in these changes. >> > >> >> > >> Personally, I like a lot of the activity I see going on (those black box >> > >> tests are 🔥), but I wish I understood some of the decision making that >> > >> was >> > >> going on before a PR is posted and merged. >> > >> >> > >> I think friction for getting changes in needs to be low so that people >> > >> are >> > >> incentivized to make contributions, but we also have to balance that >> > >> with >> > >> ensuring everyone feels they have a chance to have a say. >> > >> >> > >> Maybe we need to codify some of these ideas in the Contributing >> > >> guidelines? >> > >> >> > >> Mike >> > >> >> > >> On Thu, Jan 16, 2025 at 8:56 PM Jean-Baptiste Onofré <j...@nanthrax.net> >> > >> wrote: >> > >> >> > >>> Hi folks, >> > >>> >> > >>> It's great to see soooo much activity on Apache Polaris right now ! >> > >>> >> > >>> By experience, this high activity can introduce frustration in the >> > >>> community because contributors might be "lost" or have the feeling of >> > >>> missing important changes/proposals. >> > >>> >> > >>> I propose some good practices we could use to improve our >> > >>> collaboration and facilitate team work: >> > >>> 1. GH Issues & PRs should be descriptive and accurate, especially the >> > >>> description should describe a minimum the purpose and the labels >> > >>> should be meaningful (a bug is a breaking change, an improvement is a >> > >>> change on existing, etc). >> > >>> 2. We should avoid duplicating PRs (like creating a new PR and closing >> > >>> another one on the same topic), else we lose the history and comments. >> > >>> 3. All discussions in a PR should be resolved before merging, >> > >>> 4. I propose to wait 2 working days before merging PR to give a chance >> > >>> to contributors to take a look. >> > >>> 5. It's good to take the time for discussion in PR. If you think this >> > >>> discussion needs to move on the dev mailing list (to include the whole >> > >>> community) that's also fine. >> > >>> >> > >>> Regarding 3 and 4, I think I can update the .asf.yaml to enforce that. >> > >>> >> > >>> Thoughts ? >> > >>> >> > >>> Regards >> > >>> JB >> > >>> >> > -- >> > Robert Stupp >> > @snazy >> >