Thanks David. I think you're saying that the second check only applies to PRs and not to direct pushes to trunk. If so, I understand now.
Ismael On Thu, Mar 6, 2025 at 9:26 AM David Arthur <mum...@gmail.com> wrote: > Sorry, let me clarify that point. > > There are two proposed rulesets (full details in the INFRA ticket): > > 1) No force push on trunk or release branches > 2) Commits require a PR with a passing status check > > Ruleset 1 cannot be bypassed. Ruleset 2 can be bypassed by committers. This > means we should still have direct push access, but cannot force push. > > The UI will give us an explicit visual warning if we try to merge a PR > without passing checks. > > Does this make sense? > > -David > > > > On Thu, Mar 6, 2025 at 11:47 AM Ismael Juma <m...@ismaeljuma.com> wrote: > > > Hi David, > > > > I don't follow the following: > > > > * Require all changes to trunk to flow through a PR > > > > > > That's exactly the case Chia-Ping was asking about that you said is _not_ > > expected. > > > > Ismael > > > > > > On Thu, Mar 6, 2025 at 8:01 AM David Arthur <mum...@gmail.com> wrote: > > > > > Indeed, what I was trying to achieve is not possible with the legacy > > > branch protections that are configured via asf.yaml. I have reverted > that > > > change. > > > > > > I filed https://issues.apache.org/jira/browse/INFRA-26603 which should > > > let us accomplish the following: > > > > > > * Protect trunk and release branches from force push and deletion > > > * Require all changes to trunk to flow through a PR > > > * Do not require that PRs are up-to-date > > > * Require passing status check "build / CI checks completed" for PRs > > > * Allow any committer to bypass the required check for a PR (for > > > emergencies) > > > > > > I think this strikes a good balance between safety and convenience, and > > is > > > a definite improvement over what we have now (which is no protections). > > > > > > -David > > > > > > > > > On Thu, Mar 6, 2025 at 9:06 AM David Arthur <mum...@gmail.com> wrote: > > > > > >> Hm, this wasn't my intention with this change. I was expected two > things > > >> to change: > > >> > > >> 1) PRs could only be merged if a required check passed > > >> 2) Forced pushes were disabled > > >> > > >> I was not expecting regular push to be disabled since there is a > > separate > > >> config for that (Screenshot from a different repo) > > >> > > >> [image: image.png] > > >> > > >> > > >> I'll get clarification from Infra about how this all works within the > > >> context of asf.yaml. > > >> > > >> -David > > >> > > >> On Thu, Mar 6, 2025 at 3:48 AM Ismael Juma <m...@ismaeljuma.com> wrote: > > >> > > >>> Yes, that's the implication of this change. > > >>> > > >>> Ismael > > >>> > > >>> On Thu, Mar 6, 2025 at 12:38 AM Chia-Ping Tsai <chia7...@apache.org> > > >>> wrote: > > >>> > > >>> > hi David > > >>> > > > >>> > It appears we can't push reverted commits to trunk from our local > > >>> > repository. See the following error message. > > >>> > > > >>> > remote: Resolving deltas: 100% (15/15), completed with 11 local > > >>> objects. > > >>> > remote: error: GH006: Protected branch update failed for > > >>> refs/heads/trunk. > > >>> > remote: > > >>> > remote: - Changes must be made through a pull request. > > >>> > remote: > > >>> > remote: - Required status check "build / CI checks completed" is > > >>> expected. > > >>> > To github.com:apache/kafka.git > > >>> > ... > > >>> > > > >>> > Does this mean we must revert code via pull requests in the future? > > >>> > > > >>> > Best, > > >>> > Chia-Ping > > >>> > > > >>> > On 2025/03/06 04:30:22 David Arthur wrote: > > >>> > > Ok looks like Infra’s manual GitHub config change got undone. I > > see > > >>> that > > >>> > > this PR https://github.com/apache/kafka/pull/19120 is approved, > > but > > >>> > can't > > >>> > > be merged :( > > >>> > > > > >>> > > I filed https://issues.apache.org/jira/browse/INFRA-26601, > > hopefully > > >>> > > someone gets to it soon. > > >>> > > > > >>> > > > > >>> > > > > >>> > > > > >>> > > On Wed, Mar 5, 2025 at 23:19 David Arthur <mum...@gmail.com> > > wrote: > > >>> > > > > >>> > > > The up-to-date requirement should not be there (for the reasons > > you > > >>> > > > mentioned). There was a bug with the Infra asf.yaml parser, so > > >>> Infra > > >>> > > > manually removed the up-to-date requirement. > > >>> > > > > > >>> > > > If the checks all pass and the PR is approved, it should be > > >>> mergeable > > >>> > > > up-to-date or not. Let me know if this isn’t the case. > > >>> > > > > > >>> > > > Prior to the PR being approved, the UI looks like it will force > > >>> you to > > >>> > > > merge in trunk, but it shouldn’t. > > >>> > > > > > >>> > > > David A > > >>> > > > > > >>> > > > > > >>> > > > On Wed, Mar 5, 2025 at 21:58 Chia-Ping Tsai < > chia7...@gmail.com> > > >>> > wrote: > > >>> > > > > > >>> > > >> hi David > > >>> > > >> > > >>> > > >> Thank you for this protection, and I fully agree that we need > to > > >>> avoid > > >>> > > >> exceptional merges as much as possible. > > >>> > > >> > > >>> > > >> For another, It seems we also require PRs to be up-to-date, > > which > > >>> is > > >>> > good. > > >>> > > >> However, the side effect is cache misses. I recall you've > done a > > >>> lot > > >>> > of > > >>> > > >> work on improving the cache, so I'm wondering if this > protection > > >>> > conflicts > > >>> > > >> with cache usage. > > >>> > > >> > > >>> > > >> Best, > > >>> > > >> Chia-Ping > > >>> > > >> > > >>> > > >> David Arthur <mum...@gmail.com> 於 2025年3月6日 週四 上午4:07寫道: > > >>> > > >> > > >>> > > >> > We had a hiccup today where a PR was merged due to a false > > >>> positive > > >>> > "All > > >>> > > >> > checks have passed" message in the UI. This message was > > >>> displayed > > >>> > > >> because > > >>> > > >> > the labelling workflows had run and were successful. So, > > really > > >>> the > > >>> > > >> message > > >>> > > >> > was correct -- all checks that had been run were successful. > > The > > >>> > problem > > >>> > > >> > was, our CI was not among the checks that had run. > > >>> > > >> > > > >>> > > >> > This incident pointed out a deficiency in our PR workflow. > > >>> > Essentially, > > >>> > > >> we > > >>> > > >> > have to remember to set the "ci-approved" label and we need > to > > >>> > ensure > > >>> > > >> that > > >>> > > >> > the CI checks are among the "passed" status checks before > > >>> merging. > > >>> > > >> > > > >>> > > >> > To remedy this, I've added a branch protection for trunk > which > > >>> > defines a > > >>> > > >> > required status check "build / CI checks completed". This > > check > > >>> is > > >>> > set > > >>> > > >> by a > > >>> > > >> > job that runs at the end of our CI workflow. This means we > > >>> cannot > > >>> > merge > > >>> > > >> a > > >>> > > >> > PR unless the CI has run. > > >>> > > >> > > > >>> > > >> > Likely this means *all extant PRs need to merge in trunk* to > > run > > >>> > this > > >>> > > >> new > > >>> > > >> > "CI checks completed" job. Sorry for the noise, but I > figured > > >>> it was > > >>> > > >> best > > >>> > > >> > to rip the bandaid off now... > > >>> > > >> > > > >>> > > >> > Thanks! > > >>> > > >> > David A > > >>> > > >> > > > >>> > > >> > P.S., I also added our release branches as protected > branches, > > >>> but > > >>> > did > > >>> > > >> not > > >>> > > >> > add any branch protections rules. This was done to prevent > > >>> forced > > >>> > > >> pushing > > >>> > > >> > to these branches which we honestly should have done long > ago. > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > > > >>> > > >> > -- > > >>> > > >> > David Arthur > > >>> > > >> > > > >>> > > >> > > >>> > > > > > >>> > > > > >>> > > > >>> > > >> > > >> > > >> -- > > >> David Arthur > > >> > > > > > > > > > -- > > > David Arthur > > > > > > > > -- > David Arthur >