Jump to content

Metakgp:Project Maintainer

From Metakgp Wiki

A project maintainer is a volunteer developer who has complete development control and admin access to the repository of one particular project. Each project may have multiple maintainers and they may change over time. They are separate from the metaKGP community admins.

Responsibilities of a Maintainer

While a project maintainer is reponsible for the development of a project, they are not expected to regularly work on it and it is a purely voluntary position. A maintainer may step down and/or nominate someone else to take the responsibility if they feel that they will not be able to devote time. Apart from directing the development of the project, the following are the primary duties of a maintainer:

  • Reviewing and merging pull requests
  • Managing issues and tracking progress
  • Ensure the deployment runs successfully and resolve any crashes

The maintainer is not responsible for deploying the project on the server, but a CD pipeline will be set up by the SysAdmin and future deployments will happen automatically. If any error occurs on the server, the SysAdmin can provide error logs to the maintainer.

Permissions Granted to the Maintainer

A project maintainer is added as an outside collaborator to the Github repository of the project. They do not get access to other repositories, access to the hosting server, or membership in the Github organization, but get full administrative privileges over the project's repository. When a maintainer is added as an outside collaborator, they are given the "Maintain" repository role, which gives the user all privileges except destructive actions such as deletion. This article lists all the permissions granted to the collaborator, which includes the following:

  • Write access to the repository
  • Manage pull requests and issues
  • Manage actions workflows
  • Manage github pages

How to Become a Maintainer

A maintainer can be added to a project by one of the following ways:

  1. An existing project maintainer can nominate a new maintainer for the project.
  2. If a project independently started is adopted into metaKGP, the original developer(s) is/are made the maintainer(s).
  3. If the current maintainer of a project graduates or becomes inactive for a while, an admin can decide to make an active contributor the maintainer.
  4. As a directive policy, current maintainers must strive to ensure that there is atleast one non-final-year maintainer each for the project(s) they are maintaining.

Procedure to Add a New Maintainer

Only admins of the Github organization can add new maintainers to a repository. The following steps need to be followed for adding a new maintainer:

  1. Invite the maintainer as an "external collaborator" if they are not a member of the metaKGP Github organization.
  2. Set the role as "Maintain".
  3. Add the name of the maintainer under the "Maintainer(s)" section of the README.
  4. If the previous maintainer is no longer active, add their name to the "Past Maintainer(s)" section of the README. Create the section if it doesn't exist yet.
  5. If the maintainer satisfies the criteria to join the organization, send them an invite to the Github organization.