Unitex/GramLab Governance Model
Switch branches/tags
Nothing to show
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
README.md add README.md May 3, 2015
governance.md [minor refactor] Update copyright date to 2017 Jan 4, 2017

README.md

Unitex/GramLab Governance Model

This document is a draft for discussion and still a work in progress. To contribute, please submit a pull request. Major changes will be discussed in the comment section.

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in the RFC 2119

History

Date Version User Description
05/05/15 0.1.0 martinec First draft
05/06/15 0.1.1 martinec Improve information about licenses
11/07/15 0.1.2 martinec Fix information about committers
18/02/16 0.1.2 martinec Add some missing links
06/04/16 0.1.3 martinec Unitex/GramLab adheres to the Contributor Covenant code of conduct
01/06/16 0.1.4 martinec Add Unitex/GramLab interns' roles

Overview

Unitex/GramLab is an open source, cross-platform, multilingual, lexicon- and grammar-based corpus processing suite. Project decision-making is based on a community meritocratic process. Anyone with an interest in Unitex/GramLab can join the community, contribute to the project design and participate in decisions. This document describes how that participation takes place and how to set about earning merit within the project community.

Background

Infrastructure

Name Link
Main website http://unitexgramlab.org
Binary releases http://releases.unitexgramlab.org
User's forum http://forum.unitexgramlab.org (request to join)
Developers chat http://chat.unitexgramlab.org (request to join)
Developers mailing list unitex-devel@univ-mlv.fr
Code hosting (legacy) https://gforgeigm.univ-mlv.fr/projects/unitex
Code hosting (active) http://code.unitexgramlab.org
Governance http://governance.unitexgramlab.org

License

Code of Conduct

Unitex/GramLab is intended to be a safe, welcoming space for collaboration. All contributors and participants are expected to adhere to the Contributor Covenant version 1.4 code of conduct. To report violations, send an email to unitex-devel@univ-mlv.fr.

Getting support

All participants in the Unitex/GramLab community are encouraged to provide support for new users within the project management infrastructure. This support is provided as a way of growing the community. Those seeking support should recognise that all support activity within the project is voluntary and is therefore provided as and when time allows. A user requiring guaranteed response times or results should therefore seek to purchase a support contract from a community member. However, for those willing to engage with the project on its own terms, and willing to help support other users, the community support channels, as the developer mailing list or the users forum, are ideal.

Roles And Responsibilities

Unitex/GramLab development is based on user consensus and open discussion between users. In order to have a smoothly running project, formal roles with corresponding responsibilities are established. A member of the community may have multiple roles.

Role Type ID
Unitex/GramLab User [user](#unitexgramlab-user)
Unitex/GramLab Contributor [contributor](#unitexgramlab-contributor)
Unitex/GramLab Intern Language Resources Intern [lingua-intern](#language-resources-intern)
Unitex Core Intern [core-intern](#core-intern)
GramLab IDE Intern [ide-intern](#ide-intern)
Unitex/GramLab Committer Non-Coding Committer [committer](#non-coding-committer)
Language Resources Committer [lingua-committer](#language-resources-committer)
Unitex Core Committer [core-committer](#core-committer)
GramLab IDE Committer [ide-committer](#ide-committer)
Unitex/GramLab Sponsor [sponsor](#unitexgramlab-sponsor)
Unitex/GramLab Management Committee Member Committee Member [committee-member](#committee-member)
Committee Chair [project-leader](#committee-chair)

Unitex/GramLab User

Unitex/GramLab users are community members who have a need for the project, they are the most important members of the community: through their usage, they give the project a purpose. Users should be encouraged to participate in the life of the project and the community as much as possible. User contributions enable the project team to ensure that they are satisfying the needs of those users. Common user activities include, but are not limited to:

  • Evangelising about the project.
  • Informing developers of strengths and weaknesses from a new user perspective both through the Unitex/GramLab forum or following the Bug Reporting Guide.
  • Identifying needs and filing feature requests.
  • Participating on the users forum.
  • Providing moral support, a 'thank you' goes a long way.
Become a Unitex/GramLab User

Anyone can be a user; there are no special requirements. Users who continue to engage with the project and the community will often find themselves becoming more and more involved. Such users may then go on to become Unitex/GramLab Contributors, as described below.

Unitex/GramLab Contributor

Unitex/GramLab Contributors are community members who contribute in concrete ways to the project. Contribution may be a one time participation or occur over time. Contribution can take place in many specific ways:

  • Helping maintain existing linguistic resources.
  • Submitting patches to fix bugs or add features.
  • Identifying requirements.
  • Participating in the community's activities.

Unitex/GramLab Committer

Unitex/GramLab Committers are contributors who have shown dedication to the project, i.e. providing valuable contribution over a period of time, have a deep understanding of the code base and project strategy and work well with contributors and users. Committers have no more authorities than contributors, and they should engage with the community through the developer mailing list or the users forum regarding their intention. However committers have earn enough trust from the community to have direct access to the project code base without having to submit pull requests. Committers seeks approval after the contribution is made, rather than before. Therefor committers:

  • Help contributors via the developer mailing list.
  • Merge pull request submit by contributors.
  • Have direct access to the code base.
  • Nominate and vote new committers.
  • Participate in the release planning.
Linguistic Resources Committer

[LR-contributor]

  • Contributing to new linguistic resources and helping maintain existing ones.
Become a Linguistic Resources Committer

You need to start being a Unitex/GramLab Contributor and be then be nominated as a Linguistic Resources Committer. Unitex/GramLab committers select and elect new ones using the Guidelines for assessing new candidates for committership from the Apache Software Foundation.

Coding Committer

[DEV-Committer]

  • Adding features.
  • Assisting with project infrastructure.
Become a Coding Committer

The documentation for developers is a good place to start getting familiar with the coding style and documentation guidelines. We invite contributors to share their feature development and patch idea through the developer mailing list or the users forum. It is recommended to start with small patches and share your code early so the existing committers can provide feedback and guidance.

Non-Coding Committer

Non-code contributions ([Committer]) are incredibly valuable and very welcome, Here are some examples of simple ways to contribute:

  • Writing and maintaining the documentation (e.g. tutorials)
Become a Non-Coding Committer

Unitex/GramLab Sponsor

Unitex/GramLab Sponsors are ...

Become a Sponsor

Unitex/GramLab Management Committee

The Unitex/GramLab Management Committee (UGMC) has additional responsibilities over and above those of a committer or sponsor. These responsibilities ensure the smooth running of the project. Project Management Committee activities include:

  • Participate in strategic planning.
  • Approve changes to the governance model.
  • Manage the copyrights within the project outputs.
  • Access to the project's private archives (They are never used for project management or planning. This include information about sensitive issues, and legal matters that cannot be discussed in public.)
Committee Member

The Unitex/GramLab Management Committee Members do not have significant authority over other members of the community, although they make decisions when community consensus cannot be reached.

Membership of the UGMC is by invitation from the existing members. A nomination will result in discussion and then a vote by the existing members. Membership votes are subject to consensus approval of the current members.

Committee Chair

The UGMC Chair is a single committer and the project leader whom people interested in the project can consider the primary point of contact or first point of contact for the project. The chair is voted by the members. Once someone has been appointed Chair, they remain in that role until they choose to retire, or the UGMC casts a two-thirds majority vote to remove them.

The Chair has no additional authority over other members of the UGMC: the role is one of coordinator and point of contact. The Chair is also expected to ensure that all governance processes are adhered to, and has the casting vote when the project fails to reach consensus.

Decision Making Process

From a practical point of view, the direction that the project takes is controlled by the contributors, not the users, unless they're contributors too. Development is made based on contributors and committers donating their time to the community. In order to ensure that the project is not bogged down by endless discussion and continual voting, the project operates using the Apache Decision Making process. This allows the majority of decisions to be made without resorting to a formal vote.

Lazy Consensus

Lazy Consensus is a very important concept within the project. It is this process that allows a large group of people to efficiently reach consensus, as someone with no objections to a proposal need not spend time stating their position, and others need not spend time reading such mails. For lazy consensus to be effective, it is necessary to allow at least 72 hours before assuming that there are no objections to the proposal. This requirement ensures that everyone is given enough time to read, digest and respond to the proposal. This time period is chosen so as to be as inclusive as possible of all participants, regardless of their location and time commitments. In all cases silence is consent.

The lazy consensus is used for most the contribution ranging from bug fixes to minor changes where the contributor assume to have the support of the community to tackle the issue.

Building consensus

Not all decisions can be made using lazy consensus. If you feel that lazy consensus isn't appropriate for your proposal, you can explicitly request for feedback on the developer mailing list. Building consensus help contributors and committers to gather feedback early on and pool the interest by the community for a new feature.

Contributors are invited to express their opinion of any given feature or pull request. Support is expressed using:

Value Meaning Signifié
+1 I agree with this and will help make it happen Je suis d'accord, je peux aider si besoin
+0.9 This is a cool idea and i like it, but I don't have time/the skills necessary to help out Je suis d'accord, mais je n'ai pas le temps / les compétences nécessaires pour aider
+0 I agree with this but probably won't make it happen, so my opinion is not that important Je suis d'accord, mais ceci n'arrivera pas, donc mon avis n'est pas si important
-0 I don't agree with this, but I'm offering no alternative so my opinion is not that important Je ne suis pas d'accord, mais je ne propose pas une alternative, donc mon avis n'est pas si important
-0.9 I really don't like this, but I'm not going to stand in the way if everyone else wants to go ahead with it Je ne suis pas d'accord, mais je ne vais pas m'y opposer si tous les autres sont d'accord
-1 I don't agree and I am offering an alternative that I am able to help implement Je ne suis pas d'accord, je vous offre une alternative que je vais aider à mettre en place

Transparency

Building community trust in the governance of an open-source project is vital to its success. To that end, Unitex/GramLab project decision making must be done in a transparent, open fashion. No decisions about the project's direction, bug fixes or features may be done without community involvement and participation. Discussions must begin at the earliest possible point on a topic; the community’s participation is vital during the entire decision-making process.

About this document

This document is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License. This work is based upon the OpenRefine Governance Model and the OWIN Project Governance model, which themselves are based upon Meritocratic Governance Model by University of Oxford. This document contains information about the Lazy Consensus concept available from the Apache Community and uses the Semantic Versioning scheme to track version releases.

--

Copyright (C) 2017 Université Paris-Est Marne-la-Vallée