-
Notifications
You must be signed in to change notification settings - Fork 48
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
Add information about project governance and team #231
base: production
Are you sure you want to change the base?
Changes from all commits
d9bb513
38e8379
6f9d81d
52fc748
8051c8c
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
leaders: | ||
# Order is consistent with the order of projects in the top menu. | ||
sebersole: | ||
- orm | ||
marko-bekhta: | ||
- search | ||
- validator | ||
DavideD: | ||
- reactive | ||
koentsje: | ||
- tools | ||
roles: | ||
gavinking: | ||
- '<a href="https://github.com/orgs/commonhaus/teams/cf-egc">Project Representative to the CommonHaus Foundation for Hibernate</a>' |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,86 @@ | ||
= Governance | ||
:toc: | ||
:awestruct-layout: community-standard | ||
|
||
This document outlines the governance model for Hibernate projects. | ||
This governance model is designed to uphold the principles of transparency, open collaboration, and community involvement. | ||
|
||
[[roles]] | ||
== Roles and Responsibilities | ||
|
||
- **Contributors:** Anyone who contributes to Hibernate projects in any form. | ||
- **Members:** Contributors eligible for write access to a Hibernate code repository. | ||
Responsible for reviewing and merging contributions in their area of expertise. | ||
- **Project Leaders:** Members (at most one per code repository) with higher decision power whenever the project they lead is affected. | ||
Responsible for steering project direction, and for enforcing compliance with requirements of the Commonhaus Foundation. | ||
|
||
Small or inactive projects may not have a leader, | ||
in which case Members interested in the project will steer the project direction. | ||
marko-bekhta marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
[[decision-making]] | ||
== Decision-Making | ||
|
||
Hibernate projects follow a common decision-making process. | ||
|
||
Consensus-seeking (lazy consensus):: | ||
Hibernate projects primarily aim for a consensus-based decision-making process, | ||
where Members and active contributors discuss and come to an agreement. | ||
+ | ||
In practice, this involves: | ||
+ | ||
* Discussing matters openly, to facilitate others joining the discussions and expressing concerns. | ||
* Taking into account every contributor's opinion, regardless of their role. | ||
|
||
+ | ||
Actual implementation of consensus decision-making is up to Members and can vary based on the audience and criticality of the discussion. | ||
Inspiration may be found in | ||
the https://community.apache.org/committers/decisionMaking.html[Lazy Consensus model as defined by the Apache Foundation], | ||
and in https://digitalcommons.unl.edu/cgi/viewcontent.cgi?article=1825&context=sociologyfacpub[Martha's Rules]. | ||
Conflict Resolution:: | ||
If conflicts arise, Members are responsible for facilitating a resolution. | ||
+ | ||
Project Leaders hold the power to make the final decision, be it individually for the project they lead, | ||
or collectively for cross-project matters. | ||
+ | ||
As a last resort, in particular in case of disagreement about the decision-making process, | ||
the https://www.commonhaus.org/bylaws/cf-council.html[Commonhaus Foundation Council] (CFC) can be asked to mediate the discussion. | ||
|
||
[[role-granting-revoking]] | ||
== Role granting/revoking | ||
|
||
The role of Member or Project Leader is granted or revoked through the <<decision-making,decision-making process>>, | ||
with additional restrictions: | ||
|
||
1. The discussion must happen on the Hibernate development mailing list, as listed in the link:/community[Community page on this website]. | ||
// This prevents a Project Leader overruling their own revocation, in particular. | ||
2. The opinion of the Members or Project Leader whose role is being discussed does not factor into the decision. | ||
// This is long on purpose, to eliminates the risk of a decision being taken "in absentia" during e.g. holidays. | ||
// The assumption is that decisions around the project can be taken collectively, or by the previous leader, in the interim. | ||
3. Discussions regarding the role of Project Leader may not last less than 30 days. | ||
Comment on lines
+20
to
+59
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. @emmanuelbernard (and others) due to concerns around the voting system, I removed any mention of votes in order to better reflect the existing process. This is where most changes are, but see the second commit for detailed changes. |
||
|
||
Eligible candidates are: | ||
|
||
For the role of Member:: | ||
Any contributor. | ||
For the role of Project Leader:: | ||
Any contributor to the project they will lead, provided the candidate is a Commonhaus Foundation member, | ||
yrodiere marked this conversation as resolved.
Show resolved
Hide resolved
|
||
and agrees to become a Signatory of the https://www.commonhaus.org/policies/fiscal-sponsorship/[Commonhaus Fiscal Sponsorship Agreement] before taking on their new role. | ||
|
||
Members and Project Leaders keep their role indefinitely, unless they resign or a new decision revokes their role. | ||
|
||
The list of Members and Project Leaders is kept up-to-date on the link:/community/team["Team" page] of this website. | ||
|
||
[[code-of-conduct]] | ||
== Code of Conduct | ||
|
||
All participants in Hibernate projects are expected to adhere to the https://www.commonhaus.org/policies/code-of-conduct/[Commonhaus Foundation Code of Conduct]. Please ensure you are familiar with its guidelines and expectations, as it's essential for maintaining a positive and collaborative environment. | ||
|
||
[[trademark-policy]] | ||
== Trademark Policy | ||
|
||
The Hibernate logos, icons, and domain names are protected by trademark rights. Usage of these trademarks must adhere to the https://www.commonhaus.org/policies/trademark-policy/[Commonhaus Foundation Trademark Policy]. | ||
yrodiere marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
[[contributing]] | ||
== Contributing | ||
|
||
We welcome all forms of contribution, from code improvements to documentation and design. For details on how to contribute and the process your contributions will follow, please read our link:/community/contribute/[Contributing Guidelines]. |
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,76 @@ | ||
--- | ||
layout: community-standard | ||
title: Hibernate Team | ||
--- | ||
|
||
%h2{:id => "leaders"} Project Leaders | ||
|
||
.ui.icon.message | ||
%i.icon.id.badge | ||
.content | ||
This is a list of all | ||
%a(href="/community/governance/#roles") | ||
Hibernate Project Leaders | ||
\. | ||
|
||
.contributor-list.leader-list | ||
- site.governance.leaders.each do |login, project_names| | ||
- project_names_joined = project_names.map { |key| site.projects[key].name } .join( ', ' ) | ||
.ui.card.contributor{:"data-github-login" => login, :"data-project-names" => project_names_joined} | ||
.content | ||
.header | ||
%a{:href => "https://github.com/#{login}"} | ||
#{login} | ||
.extra.content | ||
Leader of #{project_names_joined}. | ||
|
||
%h2{:id => "members"} Members | ||
|
||
.ui.icon.message | ||
%i.icon.id.badge | ||
.content | ||
This is a list of all | ||
%a(href="/community/governance/#roles") | ||
Hibernate Members | ||
who decided to make their membership public on GitHub. | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Oddly, some very active members have made their membership private... Maybe by mistake? If you read this, and you're not on this page, please check your membership's visibility. See https://docs.github.com/en/account-and-profile/setting-up-and-managing-your-personal-account-on-github/managing-your-membership-in-organizations/publicizing-or-hiding-organization-membership |
||
|
||
%p | ||
|
||
.text-center#list-loader | ||
%i.notched.circle.loading.icon.massive | ||
|
||
#list.contributor-list(style="display:none") | ||
|
||
:javascript | ||
$(document).ready(function() { | ||
var contributorsNameMapping = #{site.data_json['contributors-name-mapping']} | ||
var governance = #{site.data_json['governance']} | ||
// https://docs.github.com/en/rest/orgs/members?apiVersion=2022-11-28#list-public-organization-members | ||
$.getJSON( "https://api.github.com/orgs/hibernate/public_members?per_page=100", function( data ) { | ||
var items = []; | ||
data.forEach( function( member ) { | ||
var memberName = contributorsNameMapping[member.login] ? contributorsNameMapping[member.login] : member.login; | ||
|
||
var item = $( '<div class="ui card contributor"/>' ) | ||
.append( $( '<div class="image"/>' ).append( $('<img src="' + member.avatar_url + '" />' ) ) ) | ||
.append( $( '<div class="content" />' ).append( $( '<div class="header" />' ).append( $( '<a href="' + member.html_url + '" />' ).text( memberName ) ) ) ) | ||
|
||
var roles = governance.roles[member.login] | ||
if ( roles ) { | ||
item.append( $( '<div class="extra content" />' ).html( roles.join(', ') + '.' ) ); | ||
} | ||
|
||
var leaderItem = $( '.leader-list [data-github-login=' + member.login + ']' ) | ||
if ( leaderItem.length ) { | ||
item.append( $( '<div class="extra content" />' ).text( 'Leader of ' + leaderItem.data( 'project-names' ) + '.' ) ); | ||
leaderItem.replaceWith( item.clone() ); | ||
} | ||
|
||
items.push(item); | ||
}); | ||
|
||
$( '#list' ).append( items ); | ||
$( '#list-loader' ).hide(); | ||
$( '#list' ).fadeIn(); | ||
}); | ||
}); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This file is based on the Commonhaus template, with some heavy changes to better match what (I think) is the current governance model in the Hibernate team.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Note iteration 2 involves even heavier changes, the decision-making process is quite different.