...

Text file src/github.com/opencontainers/runc/MAINTAINERS_GUIDE.md

Documentation: github.com/opencontainers/runc

     1## Introduction
     2
     3Dear maintainer. Thank you for investing the time and energy to help
     4make runc as useful as possible. Maintaining a project is difficult,
     5sometimes unrewarding work.  Sure, you will get to contribute cool
     6features to the project. But most of your time will be spent reviewing,
     7cleaning up, documenting, answering questions, justifying design
     8decisions - while everyone has all the fun! But remember - the quality
     9of the maintainers work is what distinguishes the good projects from the
    10great.  So please be proud of your work, even the unglamorous parts,
    11and encourage a culture of appreciation and respect for *every* aspect
    12of improving the project - not just the hot new features.
    13
    14This document is a manual for maintainers old and new. It explains what
    15is expected of maintainers, how they should work, and what tools are
    16available to them.
    17
    18This is a living document - if you see something out of date or missing,
    19speak up!
    20
    21## What are a maintainer's responsibility?
    22
    23It is every maintainer's responsibility to:
    24
    25* 1) Expose a clear roadmap for improving their component.
    26* 2) Deliver prompt feedback and decisions on pull requests.
    27* 3) Be available to anyone with questions, bug reports, criticism etc.
    28  on their component. This includes IRC and GitHub issues and pull requests.
    29* 4) Make sure their component respects the philosophy, design and
    30  roadmap of the project.
    31
    32## How are decisions made?
    33
    34Short answer: with pull requests to the runc repository.
    35
    36runc is an open-source project with an open design philosophy. This
    37means that the repository is the source of truth for EVERY aspect of the
    38project, including its philosophy, design, roadmap and APIs. *If it's
    39part of the project, it's in the repo. It's in the repo, it's part of
    40the project.*
    41
    42As a result, all decisions can be expressed as changes to the
    43repository. An implementation change is a change to the source code. An
    44API change is a change to the API specification. A philosophy change is
    45a change to the philosophy manifesto. And so on.
    46
    47All decisions affecting runc, big and small, follow the same 3 steps:
    48
    49* Step 1: Open a pull request. Anyone can do this.
    50
    51* Step 2: Discuss the pull request. Anyone can do this.
    52
    53* Step 3: Accept (`LGTM`) or refuse a pull request. The relevant maintainers do 
    54this (see below "Who decides what?")
    55
    56*I'm a maintainer, should I make pull requests too?*
    57
    58Yes. Nobody should ever push to master directly. All changes should be
    59made through a pull request.
    60
    61## Who decides what?
    62
    63All decisions are pull requests, and the relevant maintainers make
    64decisions by accepting or refusing the pull request. Review and acceptance
    65by anyone is denoted by adding a comment in the pull request: `LGTM`.
    66However, only currently listed `MAINTAINERS` are counted towards the required
    67two LGTMs.
    68
    69Overall the maintainer system works because of mutual respect across the
    70maintainers of the project.  The maintainers trust one another to make decisions
    71in the best interests of the project.  Sometimes maintainers can disagree and
    72this is part of a healthy project to represent the point of views of various people.
    73In the case where maintainers cannot find agreement on a specific change the
    74role of a Chief Maintainer comes into play.
    75
    76The Chief Maintainer for the project is responsible for overall architecture
    77of the project to maintain conceptual integrity.  Large decisions and
    78architecture changes should be reviewed by the chief maintainer.
    79The current chief maintainer for the project is Michael Crosby (@crosbymichael).
    80
    81Even though the maintainer system is built on trust, if there is a conflict
    82with the chief maintainer on a decision, their decision can be challenged
    83and brought to the technical oversight board if two-thirds of the
    84maintainers vote for an appeal. It is expected that this would be a
    85very exceptional event.
    86
    87
    88### How are maintainers added?
    89
    90The best maintainers have a vested interest in the project.  Maintainers
    91are first and foremost contributors that have shown they are committed to
    92the long term success of the project.  Contributors wanting to become
    93maintainers are expected to be deeply involved in contributing code,
    94pull request review, and triage of issues in the project for more than two months.
    95
    96Just contributing does not make you a maintainer, it is about building trust
    97with the current maintainers of the project and being a person that they can
    98depend on and trust to make decisions in the best interest of the project.  The
    99final vote to add a new maintainer should be approved by over 66% of the current
   100maintainers with the chief maintainer having veto power.  In case of a veto,
   101conflict resolution rules expressed above apply.  The voting period is
   102five business days on the Pull Request to add the new maintainer.
   103
   104
   105### What is expected of maintainers?
   106
   107Part of a healthy project is to have active maintainers to support the community
   108in contributions and perform tasks to keep the project running.  Maintainers are
   109expected to be able to respond in a timely manner if their help is required on specific
   110issues where they are pinged.  Being a maintainer is a time consuming commitment and should
   111not be taken lightly.
   112
   113When a maintainer is unable to perform the required duties they can be removed with
   114a vote by 66% of the current maintainers with the chief maintainer having veto power.
   115The voting period is ten business days.  Issues related to a maintainer's performance should
   116be discussed with them among the other maintainers so that they are not surprised by
   117a pull request removing them.
   118
   119
   120

View as plain text