-
Notifications
You must be signed in to change notification settings - Fork 14.6k
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # to your account
[SIP-13] Proposal for Code Review Process #6132
Comments
This is all super great. Some thoughts:
|
Reminder that part of the SIP process should be to notify the Apache Superset dev@ mailing list. |
Glad to hear that. We intend for this to be a written-down version of the unwritten agreement of how it currently work, with some more explicit instructions of what to do, so there will be less surprise why something is not reviewed.
We can extract this bullet point
I have never used CODEOWNERS specifically, but used OWNERS file per directory at my previous job. This can automate some manual taggings we are doing in PRs and is useful for maintaining large codebase in general. An alternative is welcome too. We choose CODEOWNERS in the proposal because it is already built-in by github.
Your experience with this will be super helpful. |
I created a pull request template to follow up on |
Remaining tasks are
|
@kristw I'm closing this due to age, but please do reopen the issue if you intend to put it up for a |
Apologies for the prior confusing comment. This SIP is still technically in the VOTE process. It has sufficient votes to pass. We should post a [RESULT] thread to close this out @kristw Vote thread: https://lists.apache.org/thread/wvmzbczwbrmoo4y9y631f9cz5jq7lq3s |
This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions. For admin, please label this issue |
Although this seems to be stuck in an open vote, some aspects of the SIP have been completed whereas others likely outdated, hence we sense closing this SIP makes the most sense. @kristw if you feel otherwise please re-open the SIP with additional context. |
Motivation
The Superset community has a large number of contributors and stakeholders, which leads to many people trying to modify the codebase at the same time.
For project maintainer this introduces a lot of challenges:
For contributors, these are the common questions:
To be more efficient at maintaining Superset and improving it in the long-term, we need more workflow clarity that will increase code quality and improve project stability. This proposal wishes to reduce operational workload for the project maintainers, set the right expectations for everyone and make the project keep growing with happy community.
Proposed Changes
[P.1] Project maintainers can request an issue to be created before a PR is reviewed.
A philosophy we would like to strong encourage is
We would like to update the contributing guidelines for Superset as follows.
[P.2] Create multiple new templates for new issues/PRs
Currently we only have an issue template but not a PR template.
To facilitate the issue and PR creation, we will provide templates for different scenarios. Github supports multiple templates which users can choose from a menu when creating.
An issue will be one of the following types:
A PR will be one of the following types
A PR should generally includes the following:
[P.3] Pre-define reviewers with CODEOWNERS
Github allows us to list mandatory reviewers for each directory in a CODEOWNERS file. When a new PR is opened, the corresponding reviewers will be assigned to review that PR automatically. Mandatory reviewers do not have to be committers.
CODEOWNERS will be defined as a team. A team contains one or more people, such as (
python-reviewers
,js-reviewers
,vis-reviewers
) See an example.Note: CODEOWNERS requires changing github repo settings (via Apache) to enable protected branch option. Teams are defined in organization settings. Need to investigate if it has to be the same github organization (Apache) to define the teams. Fallback plan is using another github org or macro/alias.
[P.4] Define a protocol when a PR is in progress
Authoring
Reviewing
Merging
release/1.1
,release/1.2
. (See SIP-12)Post-merge Responsibility
Note about labels
Non-committers cannot assign label by default. We will setup bots that allow contributors to add whitelisted labels via bot. User can type in comments such as
If this does not work, we can fallback to adding
[WIP]
or[READY]
to PR titles.[P.5] New changes to CI
Here are a few proposed improvements to the CI
[P.5.1] Add mandatory reviewers hook
The mandatory reviewers are defined in CODEOWNERS file
[P.5.2] Enable Stale branch check.Pros- Prevents broken master when a stale branch is approved and merged.- Parallelized merging of PRs.Cons- Serialized merging of PRs impies adding overhead (having to re-sync either via the UI or CLI) and rerun the CI.- Improvements in CI performance would help reduce some of the burden.Note: Require this change to the github repo settings[P.5.3] Automatic checks for code coverage project/patch
Similar to scikit-learn, this enforces the contributing guidelines of unit testing. Commits pushed to master should not make the overall project coverage decrease by more than 1%:
This will be enabled, though initially as a non-required check as we iterate on the configuration settings.
Note: These CI changes require Apache admin changes to the Github repo.
Action items
Please comment and refer to [P.x.x] if you have any suggestion.
If this SIP is approved, here are the follow-up tasks.
References
@betodealmeida @mistercrunch
The text was updated successfully, but these errors were encountered: