Hi all,

I have just submitted a changeset to gerrit which updates the CONTRIBUTING
documentation with a proposal for updating the committing policies.

Issue: https://gem5.atlassian.net/browse/GEM5-799
Changeset: https://gem5-review.googlesource.com/c/public/gem5/+/36256

The gem5 project is maturing! We're getting more contributors and a higher
rate of contributions. Additionally, we are striving to provide stability
to our growing user base.

In light of these changes, I am proposing updating our committing
guidelines for the review process for changes on gem5's "primary"
infrastructure. Details can be found on gerrit and are included below.

This is currently just a proposal. I am looking for feedback from the
community.

I believe the goals are:
- Provide transparency for changes that affect many users and ensure
community buy-in before making API changes
- Provide stability for users
- Provide documentation for API changes and new features
- Not increase the reviewing load significantly (in conjunction with the
new maintainer proposal from earlier today)

The main changes are the following:

For "primary" gem5 features at least two different people should review the
change before it is committed, except for trivial changes. There is no
automatic enforcement of this rule, but we expect the community to respect
this guideline. This guideline is meant to increase transparency in the
development process and prevent painful changes from affecting gem5's
users.

"Primary" gem5 features are features used by a large number of users or
which affect many users indirectly. This will include most of the code in
base/, sim/, etc. This does not include legacy-supported ISAs (i.e., SPARC,
MIPS, POWER) or other subsystems that are not widely used (e.g., SystemC,
Arm Fastmodel, GPU VIPER coherence protocol, etc.). All APIs are "primary"
features.

Before changing a gem5 API is it imperative to receive buy-in from the gem5
community. The best way to do this is through communication with the
community before making the API change or after making a proposal for the
change. We ask that before any changes to the API are pushed to gerrit (or
at a minimum at the same time) the committer also does the following:
1. Create an issue on the issue tracker.
2. Send an email to gem5-dev mailing list

We ask that these extra steps are taken for API changes to improve the
transparency and publicity of API changes. Not all users will track all
Jira issues or all commits pushed to Jira. Additionally, it is important to
provide the gem5 users with some stability to build on top of gem5. All
APIs are considered "primary" gem5 features and require at least two
reviewers.

Additionally, APIs must be deprecated for at least two releases before the
old API is removed. The gem5 community is going through a transition to
increase its stability, and during this time, there may be some APIs that
have not been marked as such, but still require higher scrutiny before
committing.

Finally, all API changes or additions require documentation. This
documentation requirement will be enforced during code review.

Let me know what you think! Providing feedback on gerrit is preferred, but
high-level feedback via email is also great.

Cheers,
Jason
_______________________________________________
gem5-dev mailing list -- gem5-dev@gem5.org
To unsubscribe send an email to gem5-dev-le...@gem5.org
%(web_page_url)slistinfo%(cgiext)s/%(_internal_name)s

Reply via email to