Archived
15
23
Fork
You've already forked meta
6

[AGREEMENT] Added first version agreement for PR moderation #129

Merged
Ghost merged 4 commits from fsologureng/meta:readme into readme 2023年02月22日 15:39:18 +01:00
Contributor
Copy link

First version of agreement for PR moderation according to discussed in #124

First version of agreement for PR moderation according to discussed in #124

I would rather leave out the disapproval section for a later discussion. It deserves more thoughts, IMHO.

I would rather leave out the disapproval section for a later discussion. It deserves more thoughts, IMHO.
Author
Contributor
Copy link

I would rather leave out the disapproval section for a later discussion. It deserves more thoughts, IMHO.

Sorry, you are right. I forgot to remove that section from the draft. Now is done.

> I would rather leave out the disapproval section for a later discussion. It deserves more thoughts, IMHO. Sorry, you are right. I forgot to remove that section from the draft. Now is done.
Ghost approved these changes 2023年01月26日 08:42:22 +01:00

Maybe adding [AGREEMENT] in front of the PR title will make it easier to find in the future?

Maybe adding [AGREEMENT] in front of the PR title will make it easier to find in the future?
fsologureng changed title from (削除) Added first version agreement for PR moderation (削除ここまで) to [AGREEMENT] Added first version agreement for PR moderation 2023年01月26日 15:51:18 +01:00
Contributor
Copy link

If you're creating an agreement, please put it in AGREEMENTS.md :-)

(possibly linking to a separate criteria file if you think it's too long/cumbersome)

If you're creating an agreement, please put it in AGREEMENTS.md :-) (possibly linking to a separate criteria file if you think it's too long/cumbersome)
Author
Contributor
Copy link

If you're creating an agreement, please put it in AGREEMENTS.md :-)

Ok, I will change the target of this PR to there ASAP.

> If you're creating an agreement, please put it in AGREEMENTS.md :-) Ok, I will change the target of this PR to there ASAP.

@fsologureng do you feel like all Forgejo community members impacted by this agreement had the opportunity to take a look at this PR?

@fsologureng do you feel like all Forgejo community members impacted by this agreement had the opportunity to take a look at this PR?
@ -0,0 +3,4 @@
* For approval
1. All review comments were addressed and answered.
1. The person approving the PR agrees to be accountable for what it contains. They can be asked to explain and fix a problem that arise in the future as a consequence of the PR being merged.

They can be asked to explain and fix a problem that arise in the future as a consequence of the PR being merged.

This is quite a statement; I'm not so sure about this. This would mean that approving is equal to writing, "I couldn't have done this PR myself better, and this looks fantastic in my eyes." With complex pull requests or very careful pieces of code(cryptographic bits for example), I wouldn't assume the reviewers know every detail that went in to it.

In my opinion, the main responsibility lies with the one who made the pull request to maintain it, or the one who "maintains" the feature branch (this is currently undefined).

> They can be asked to explain and fix a problem that arise in the future as a consequence of the PR being merged. This is quite a statement; I'm not so sure about this. This would mean that approving is equal to writing, "I couldn't have done this PR myself better, and this looks fantastic in my eyes." With complex pull requests or very careful pieces of code(cryptographic bits for example), I wouldn't assume the reviewers know every detail that went in to it. In my opinion, the main responsibility lies with the one who made the pull request to maintain it, or the one who "maintains" the feature branch (this is currently undefined).

I strongly believe code must not be merged unless there are at least two people who fully understand every details.

There may be rare exceptions where the complexity is such that details are bound to elude the human reviewers. But if there is a suspicion of that level of complexity, it will need to be associated with tests that compensate for that and methodically explore the many border cases that would escape the human brain.

In the most common case though the situation will be that someone submits a piece of code but has not commitment to maintain it, they are the occasional contributor. Whoever reviews their contribution and is a regular contributor to Forgejo is going to be ultimately responsible for maintaining it. They need to understand every aspect of what they merge better than the author.

I think the case you are referring to is when two regular contributors to Forgejo are involved and trust each other. In that case the level of attention of the review does not need to be as high as with an external contributor. But it needs to be at least able to be sure there is nothing in the pull request that escapes their understanding.

I strongly believe code must **not** be merged unless there are at least two people who fully understand every details. There may be rare exceptions where the complexity is such that details are bound to elude the human reviewers. But if there is a suspicion of that level of complexity, it will need to be associated with tests that compensate for that and methodically explore the many border cases that would escape the human brain. In the most common case though the situation will be that someone submits a piece of code but has not commitment to maintain it, they are the occasional contributor. Whoever reviews their contribution and is a regular contributor to Forgejo is going to be ultimately responsible for maintaining it. They need to understand every aspect of what they merge better than the author. I think the case you are referring to is when two regular contributors to Forgejo are involved and trust each other. In that case the level of attention of the review does not need to be as high as with an external contributor. But it needs to be at least able to be sure there is nothing in the pull request that escapes their understanding.
Author
Contributor

I agree with @dachary here, is like the value behind pair programming, both proponent and reviewer have to share knowledge about the new code. That shares is always good for maintenance.

I agree with @dachary here, is like the value behind pair programming, both proponent and reviewer have to share knowledge about the new code. That shares is always good for maintenance.

I was indeed referring to the scenario you described, as that will be 80% of the case (likely) in which this rule is a bit inefficient when you're suddenly hold accountable for such things.

I was indeed referring to the scenario you described, as that will be 80% of the case (likely) in which this rule is a bit _inefficient_ when you're suddenly hold accountable for such things.

@Gusted what kind of accountability would you find more efficient as a reviewer of a PR?

@Gusted what kind of accountability would you find more efficient as a reviewer of a PR?

Well, there's no general rule of thumb in our case. We either go with this rule and each contributor is accountable for the code that they approve or we could go with each feature branch has a contributor that oversees and approves code for their feature branch.

I think the latter is more effective, as I happily approve a PR for the sake of the Go/Javascript code being correct, efficient, safe and idiomatic -- but not necessary for the behavior change, that's up to the "experts". In the first case, I also have to understand why the behavior change is necessary (and potentially read a backlog of discussions on a topic I have little knowledge in). In the latter case, I can approve a PR to say that the code is good and does what it says it does without having to be accountable why that change was necessary (and representing a opinion that was formed after a discussion).

We currently don't really have a setup such that the latter case can exist and I think it would be quite hard to achieve it currently.

Well, there's no general rule of thumb in our case. We either go with this rule and each contributor is accountable for the code that they approve or we could go with each feature branch has a contributor that oversees and approves code for their feature branch. I think the latter is more effective, as I happily approve a PR for the sake of the Go/Javascript code being correct, efficient, safe and idiomatic -- but not necessary for the behavior change, that's up to the "experts". In the first case, I also have to understand **why** the behavior change is necessary (and potentially read a backlog of discussions on a topic I have little knowledge in). In the latter case, I can approve a PR to say that the code is good and does what it says it does without having to be accountable why that change was necessary (and representing a opinion that was formed after a discussion). We currently don't really have a setup such that the latter case can exist and I think it would be quite hard to achieve it currently.

Going to mark this resolved, the current setup wouldn't allow for any other situation than currently is described.

Going to mark this resolved, the current setup wouldn't allow for any other situation than currently is described.
Gusted marked this conversation as resolved
Author
Contributor
Copy link

@fsologureng do you feel like all Forgejo community members impacted by this agreement had the opportunity to take a look at this PR?

Apparently your ping attracted some attention ;)

I suggest to wait a little more because is a very important agreement for our daily work.

> @fsologureng do you feel like all Forgejo community members impacted by this agreement had the opportunity to take a look at this PR? Apparently your ping attracted some attention ;) I suggest to wait a little more because is a very important agreement for our daily work.
First-time contributor
Copy link

If the reviewer does not fully understand the PR, they can signal their approval with a 👍 or a positive comment explaining which part they approve of and which part is left for others to understand.

The requirement makes sense to because allowing a PR to be merged without at least one reviewer who fully understands what it does and how is an invitation to trouble in the future.

If the reviewer does not fully understand the PR, they can signal their approval with a 👍 or a positive comment explaining which part they approve of and which part is left for others to understand. The requirement makes sense to because allowing a PR to be merged without at least one reviewer who fully understands what it does and how is an invitation to trouble in the future.
First-time contributor
Copy link

https://codeberg.org/forgejo/meta/src/branch/readme/DECISION-MAKING.md#b-the-general-basic-method

Ask for the relevant (or whole) team's approval, making sure everyone who may care or be impacted by this decision is invited and included

I discovered this PR by accident, did I miss an announcement or call for participation?

https://codeberg.org/forgejo/meta/src/branch/readme/DECISION-MAKING.md#b-the-general-basic-method > Ask for the relevant (or whole) team's approval, making sure everyone who may care or be impacted by this decision is invited and included I discovered this PR by accident, did I miss an announcement or call for participation?
Author
Contributor
Copy link

https://codeberg.org/forgejo/meta/src/branch/readme/DECISION-MAKING.md#b-the-general-basic-method

Ask for the relevant (or whole) team's approval, making sure everyone who may care or be impacted by this decision is invited and included

I discovered this PR by accident, did I miss an announcement or call for participation?

Apart from being discussed and decided in the linked issue, I mentioned it in the Forgejo Development room 3 days ago. However, I should not have kept quiet in the matrix client preview and should have been more explicit in the call.

I will repeat it.

> https://codeberg.org/forgejo/meta/src/branch/readme/DECISION-MAKING.md#b-the-general-basic-method > > > Ask for the relevant (or whole) team's approval, making sure everyone who may care or be impacted by this decision is invited and included > > I discovered this PR by accident, did I miss an announcement or call for participation? Apart from being discussed and decided in the linked issue, I mentioned it in the [Forgejo Development room](https://matrix.to/#/!zpNKWqkiEOyljSMQDK:matrix.org/$PDYtphhPJbNr2Fc-yEdUR_Bf-X2rf4WFlDtEqNRFA7c?via=exozy.me&via=matrix.org&via=kle.li) 3 days ago. However, I should not have kept quiet in the matrix client preview and should have been more explicit in the call. I will repeat it.
Commenting is not possible because the repository is archived.
No reviewers
Labels
Clear labels
[Decision] Building proposal(s)
We're in a decision-making process, buiding one or more proposals to address the shared aim based on the criteria
[Decision] Gathering criteria
We're in a decision-making process, gathering criteria, considerations and needs
[Decision] Integrating concerns
We're in a decision-making process, working with a proposal, trying to integrate concerns and create modifications/support such that the proposal works for everyone
Accessibility
Relates to Accessibility (a11y) of product, project and process.
Agreement proposal
Forgejo agreement proposal, following a discussion
Communication
Relates to all channels, social media, website, blog posts.
Election
Process of appointing a person into a role or team (if choosing people just for a specific one-time task, use the Entrustment label)
Entrustment
Process of choosing/approving specific people to do a critical/high-impact one-time task (if choosing people for an ongoing role/team, use the Election label)
Governance
Relates to processes, procedures and decision-making.
Meeting
An upcoming team meeting
User research - Accessibility
Requires input about accessibility features, likely involves user testing.
User research - Blocked
Do not pick as-is! We are happy if you can help, but please coordinate with ongoing redesign in this area.
User research - Community
Community features, such as discovering other people's work or otherwise feeling welcome on a Forgejo instance.
User research - Config (instance)
Instance-wide configuration, authentication and other admin-only needs.
User research - Errors
How to deal with errors in the application and write helpful error messages.
User research - Filters
How filter and search is being worked with.
User research - Future backlog
The issue might be inspiring for future design work.
User research - Git workflow
AGit, fork-based and new Git workflow, PR creation etc
User research - Labels
Active research about Labels
User research - Moderation
Moderation Featuers for Admins are undergoing active User Research
User research - Needs input
Use this label to let the User Research team know their input is requested.
User research - Notifications/Dashboard
Research on how users should know what to do next.
User research - Rendering
Text rendering, markup languages etc
User research - Repo creation
Active research about the New Repo dialog.
User research - Repo units
The repo sections, disabling them and the "Add more" button.
User research - Security
User research - Settings (in-app)
How to structure in-app settings in the future?
Milestone
Clear milestone
No items
No milestone
Projects
Clear projects
No items
No project
Assignees
Clear assignees
No assignees
5 participants Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
forgejo/meta!129
Reference in a new issue
forgejo/meta
No description provided.
Delete branch "fsologureng/meta:readme"

Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?