website icon indicating copy to clipboard operation
website copied to clipboard

Implement merge queue to better handle new releases

Open benjagm opened this issue 1 year ago • 9 comments

Reason/Context

We are handing multiple new features and will be ideal handle them with a merge queue.

Description

we'll need to do https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repo[…]sitory/configuring-pull-request-merges/managing-a-merge-queue to support the merge queue.

Thanks @gregsdennis @karenetheridge

Do you think this work might require an Architectural Decision Record (ADR)? (significant or noteworthy)

No

benjagm avatar Feb 27 '24 10:02 benjagm

I would love to work on this : )

aialok avatar Feb 28 '24 11:02 aialok

Thanks Alok! Let's work together on this one.

benjagm avatar Feb 28 '24 11:02 benjagm

This is something that requires access to repo settings. An external contributor without admin rights isn't going to be able to do much here.

gregsdennis avatar Feb 28 '24 11:02 gregsdennis

At least Alok can help a lot with creating the github actions... I'll complete the setup from our side.

He can help me save a lot of time.

benjagm avatar Feb 28 '24 11:02 benjagm

Any progress with this @aialok ?

benjagm avatar Mar 01 '24 10:03 benjagm

Hey @json-schema-org/web-team After doing some research and implementing a basic merge queue in my dummy organization with the help of @benjagm, everything seems to be working fine. You can find the PR link here: https://github.com/Lakhua-dev/website/pull/5

However, I have some doubts after checking videos, documentation, and reading about merge queues and their usage in our repository:

Firstly, merge queues are typically used for complex projects where there are hundreds of PRs submitted daily. Given that our project isn't that large, do you think we're overusing resources by implementing a merge queue and making it complicated for both contributors and maintainers?

Merge queues are primarily employed when there's a substantial amount of work being done, leading to numerous merge conflicts due to frequent PR merges. Additionally, they are utilized when the time taken for CI tests to complete is significantly long.

This concept was first introduced by Shopify because they had to run 140K tests, which took them 16 minutes to complete, with over 500 commits being made in a single day.

For more detail : https://www.youtube.com/watch?v=04TTRJArpVw

I see one benefit on using merge queue is that contributor don't need to fetch latest changes every time and they will not get merge conflict much. If you could explain its other usage in our repository, then let's implement it for our project : )

Let me know if you need further clarification on anything.

Thank You @benjagm for good discussion and helping about merge-queue: )

aialok avatar Mar 05 '24 03:03 aialok

(@aialok I think you've tagged someone not associated with this issue. @maintainer isn't a reserved tag that notifies the maintainer of a repo.)

gregsdennis avatar Mar 05 '24 04:03 gregsdennis

(@aialok I think you've tagged someone not associated with this issue. @maintainer isn't a reserved tag that notifies the maintainer of a repo.)

My bad. @gregsdennis I love to have your suggestion on this.

aialok avatar Mar 05 '24 04:03 aialok

Thanks but I'm not the expert here. I'd prefer to defer to @karenetheridge, if she's available.

gregsdennis avatar Mar 05 '24 05:03 gregsdennis