Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

feat(project-repo): standardize github settings and commit types #45

Open
wants to merge 2 commits into
base: main
Choose a base branch
from

Conversation

d-loose
Copy link
Member

@d-loose d-loose commented Nov 14, 2024

We've recently discussed review process standards and corresponding github settings that help support this process in one of our weekly meetings with @didrocks. This PR contains a few proposed changes and simplifications that came out of this meeting.

I'd be happy to iterate on this a bit further in case someone has concerns or more ideas.

UDENG-5073

Copy link
Collaborator

@didrocks didrocks left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for formalising this!

My comments are around discussing on the "finale roundtrip" on which I’m not fully for and against it, as there are advantages and drawbacks in both approaches.

On the settings (for branch protection): we generally have short circuit fallback to allow some people to force push if needed to main (zomg). This is generally to unblock situations and be a little bit like a disaster recovery, I don’t know if you want to include this here?

As an aside, we should also standardize around the "Code Security" scanning for both active scanning and dependabot settings.


- [x] Require a pull request before merging
- [x] Require approvals
- [x] Dismiss stale pull request approvals when new commits are pushed
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That’s the part incompatible with the workflow itself. If we allow both, maybe we should set that to optional and add a note for it? But I think this depends on the discussion below :)

1. The submitter will squash the optional additional commits and force push to the pull request.
1. The submitter examines one last time the diff, the test results, and the coverage.
1. The submitter is in charge of merging the changes by clicking the merge button.
Finally, the submitter should merge the changes by clicking the merge button.
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I am with you on this, but some team member rely on squashing to rewrite history before merging so much, and we discussed that back and forth. Maybe we can advise a default workflow, but then, if the reviewer wants to resquash, still trust them? So far, from memory, we only had one booboo in all our PRs during rebasing… (and I am not even sure if a last finale look would have caught it)


- [x] Allow merge commits (default commit message: "Pull request title and description")
- [ ] Allow squash merging
- [ ] Allow rebase merging
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Mh, personally in some projects I'd prefer to allow using a linear history (we do it already in various ubuntu/* projects that has various benefits (mostly for bisecting and testability of each commit). Thus this option can be useful in those contexts.

@d-loose
Copy link
Member Author

d-loose commented Nov 29, 2024

This has lost a bit of momentum due to other priorities, but if we want to continue thinking about establishing a standard process, we'd probably need to agree on a few constraints first (judging by the comments so far):

  • Who is supposed to follow this process / impose it in their projects? (individual squads, the entire desktop team)
  • How strict do we want the definition to be? @rcaballeromx suggested we should rather have a strict definition and a lenient imposition than the other way around. (Also @sminez keeps saying that "everyone SHOULD read RFC2119")
  • Do we want to define more than one process? What @3v1n0 describes is incompatible with what's currently defined here.

@didrocks
Copy link
Collaborator

didrocks commented Dec 2, 2024

In an ideal world, that would be a process shared company-wise. As it’s not realistic to expect that from the get go, I think the only possible option is the other way around: onboarding squads on them, one after another.

We are quite strict at imposing that in the enterprise desktop team and WSL and following it (with the last rebase trusting the submitter though, which only created one regression due to the rebase itself in the past 3 years, which I think is more than a good score with the flexibility this provides).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants