moest-np / center-randomize

Script is to assign exam centers to students
MIT License
753 stars 360 forks source link

[DISCUSSION] Standardize the contributions #62

Closed ashiishme closed 6 months ago

ashiishme commented 6 months ago

There are many PRs created without discussion and also some of them are merged that can conflict with other PRs. It's a really good thing to have many contributors but I believe we should standardize the process otherwise it will be harder to maintain.

I have opened this issues to discuss about some of the standard ways we can implement together with the maintainers of this project apart from the contribution guidelines. There are indeed many ways we can improve but I believe these are some of the important steps we should take now:

  1. Issue creation should be mandatory
  2. PR template
  3. Define codeowners
  4. Branch protections

Issue creation should be mandatory

Any PRs created without a discussion shouldn't be accepted, there should be a proper discussion on why we need the changes. This is a good way to filter unwanted PRs as well as reduce the duplicate PRs. The discussion can be held by creating an issue and to conclude the next step.

PR template

We can introduce a basic PR template that will prompt the contributors to answer some questions or read some information before they create the PR.

This will be very helpful to ask them to follow some guidelines without any manual effort. One good example is to "ask them if there are any issue created?" If not, they should create first.

We can discuss more on what guidelines to set in PR template by creating an issue for this topic.

Define codeowners

It will be really good if there is a codeowners file setup for this project. There are several advantages:

Branch protections

We can protect the main branch with different cases but what I feel currently we need is to make it mandatory that each PRs before merge should be approved by at least one core maintainers (currently anyone can approve). Although the merge is only done by the core maintainers it should be mandatory.

Please feel free to add your thoughts about the above ideas.

yubinkarki commented 6 months ago

Great idea. I was wondering about the PR template as well. I had created such a template in my personal project a while back. Here's the project (.github directory) if anyone is eager to add the document.

thesushilsharma commented 6 months ago

Please use the new issue template workflow. About issue and pull request templates..

This is an official GitHub resource that provides a comprehensive guide on PR templates, including purpose and benefits, configuring and creating templates, syntax options, and how to use issue templates alongside PR templates. By following this guide, we can create effective PR templates that promote high-quality contributions to our project.

Let me know if you need any help.

urs-santoshh commented 6 months ago

I've created a pull request #74 to implement the templates as discussed. Please take a moment to review the pull request and share any additional thoughts or suggestions you may have.

thesushilsharma commented 6 months ago

Owners can set up templates from the repo settings for issues and discussions.

image image

Modern Template I have created an issue template using modern issue forms. (beta version) Review it.

urs-santoshh commented 6 months ago

@thesushilsharma I have closed this pull request #74. I'll make the changes accordingly and create a new pull request.

urs-santoshh commented 6 months ago

@thesushilsharma I have used your template and tried to customize it a bit to better fit the project's needs. Please take a moment to review it.

ashiishme commented 6 months ago

@urs-santoshh It would be better if you can create issue first before PR. For the current PR, you can create issue and link them. We should always discuss about the new changes/introduction and come with a common agreement before creating PR.

sumanashrestha commented 6 months ago

I think we have a good enough template. closing this issue