Hi, Let's rename from "guidelines" to "good practices & advices" :)
The purpose here is not to have strict enforcement, it's more to assist contributors about good practices to have a better collaboration. There's no problem to "deviate" from these good practices with good reasons and transparency. The idea is more to "frame" what we discuss. In this regard: - I propose to create a PR to update the contributing guide with this good practices discussed in this thread - I propose to close https://github.com/apache/polaris/pull/840 in favor of "soft rule" (we quickly discuss about owner review with CODEOWNERS in this PR, but let's keep aside for now) - I propose to update https://github.com/apache/polaris/pull/839. We have a consensus about the label, but no consensus about the schedule for now. In order to move forward, I propose to update the PR with just the label for now (as we have a consensus) and see if it's enough. If it's still a concern, I will create a new PR to update the schedule Thoughts ? Thanks ! Regards JB On Thu, Jan 23, 2025 at 5:39 AM Michael Collado <collado.m...@gmail.com> wrote: > > I agree with Russell 100%. I think the intent here is to codify a spirit of > collaboration. That’s always going to be imperfect. But clarifying > expectations is important, even if it’s imperfect. > > For some of the requirements (e.g., waiting an appropriate period or > waiting merging with unresolved comments), I think there are ways to set up > merge gates that can be bypassed with a label. I know we have something > similar setup at Snowflake. E.g., if someone can’t wait two days, they > could add a label that allows bypassing the merge gates. I can look into > how that works, if you like. > > Regarding the "stable APIs", personally I think we should bias toward open > rather than bias toward closed. If an interface is marked public and in a > package that's not specifically marked for internal use, it should be > assumed to be open. Biasing closed means that we have to explicitly > annotate APIs that are intended to be publicly accessible - people browsing > the code may not know that that's the convention we've gone with. I know I > certainly don't read the contributing guide for every library I add a > compile-time dependency on. Biasing open means we have to explicitly > annotate APIs that are expected to be internal only. Those annotations and > the javadoc comments make it clear for any user who's trying to add a > compile-time dependency on something, making it glaringly obvious that they > should not do so (or at least, that doing so they are explicitly taking the > risk that something will change without warning). I think the bias should > also follow similarly for stable v experimental APIs. Anything not > explicitly annotated as @Experimental is considered stable. > > More than java interfaces, we have to be cognizant of everything > user-facing - this includes the configuration files, health checker > endpoints, metric names... there are people who currently have Polaris > deployed to production and some of them have alarms and dashboards that > matter to them. > > I acknowledge that this is a tough balancing act. Iteration speed matters > and it's important that we have the ability to make mistakes and go back > and fix them - otherwise we end up in analysis paralysis because nobody > wants to merge the imperfect API that has to last forever. It should be ok > to merge mistakes and to go back and fix them, but I think we can do that > and still have good general guidelines that move everybody toward more > communication and more collaboration, even if those guidelines aren't > perfect. > > Mike > > > > On Wed, Jan 22, 2025 at 11:15 AM Russell Spitzer <russell.spit...@gmail.com> > wrote: > > > The proposal sounds good to me, I really don't think the details matter > > that much here. > > > > If someone is arguing the wording of the guidelines ("I waited two > > mercurial days, it didn't specify in the guidelines.") > > then something has gone wrong just as much as having broken them. Even if > > we specified the > > guidelines so well that no one could argue against their wording, we > > wouldn't use the > > guidelines as the justification for an action in the repository. If you > > attempt to follow the guidelines > > and make a mistake, or even follow them accurately but find out that by > > no-ones fault someone > > who should have been notified wasn't able to be you should work to find a > > common > > ground that doesn't just involve "too bad, I followed the rules." > > > > There will be exceptions to these guidelines as well I'm sure, we just need > > to be clear that if you are > > violating these principles you have a very good reason for doing so. > > > > For example for an immediate security purpose, just make sure you can > > clearly articulate why that > > merge needed to happen immediately and be prepared to defend it to the > > community. > > > > Need to open a duplicate of a pr that was already closed? I'm sure there > > are situations in which you > > might want to do so. You can do so, but you better have a reason that isn't > > "I wanted a different outcome". > > Did circumstances change? Has the project evolved in a different direction? > > Someone left the project? > > All of these could be valid reasons and I don't think we gain anything by > > articulating everything. > > > > The key principle here is to treat other contributors as collaborators and > > I fully approve of that. I don't feel > > strongly about encoding the rules in github itself. > > > > > > On Wed, Jan 22, 2025 at 12:05 PM Dmitri Bourlatchkov <di...@apache.org> > > wrote: > > > > > On Wed, Jan 22, 2025 at 12:58 PM Jean-Baptiste Onofré <j...@nanthrax.net> > > > wrote: > > > > > > > It's not a problem to have several people working on the same feature. > > > > > > > > By duplicate PRs, I mean that you open a PR, where you get comments, > > > > changes requested, etc. Then, you close this PR to open a new one (on > > > > the same topic). So, I mean by a single person. I'm more in favor of > > > > refactoring an existing PR, instead of closing PR #1 to open PR #2 > > > > with the refactoring. > > > > On some projects, I saw contributors closing the PR #1, creating PR #2 > > > > just to get approval and merge (loosing the discussion on #1). > > > > > > > > > > Thanks for the clarification! I totally agree with this. > > > > > > Cheers, > > > Dmitri. > > > > >