Skip to content

Latest commit

 

History

History
92 lines (56 loc) · 4.5 KB

GOVERNANCE.md

File metadata and controls

92 lines (56 loc) · 4.5 KB

DRAFT: OpenZaak codebase governance

Introduction

This document contains a draft proposal for the 'GOVERNANCE.md' file on the OpenZaak repository.

Principles

As a community we want make it easier for new users to become contributors and maintainers.

The OpenZaak community adheres to the following principles:

  • OpenZaak is open source.
  • We're a welcoming and respectful community as mentioned in our Code of Conduct.
  • Transparent and accessible, changes to the OpenZaak organization, OpenZaak code repositories, and OpenZaak related activities (e.g. level, involvement, etc) are done in public.
  • Ideas and contributions are accepted according to their technical and functional merit and alignment with project objectives, scope, and design principles.

The maintainers of OpenZaak have two steering teams, a technical one and a product one.

Through codebase stewardship the Foundation for Public Code supports the governance of OpenZaak, the product and technical steering teams, and its community.

Technical steering team

The OpenZaak technical steering team members are active contributors who are on a day-to-day basis responsible for:

  • Merging pull requests
  • Handling code of conduct violations
  • Overseeing the resolution and disclosure of security issues

If technical steering team members cannot reach consensus informally, the question at hand should be forwarded to the technical steering team meeting.

Any active member of the community can request to become a technical steering team member by asking the technical steering team. The technical steering team will vote on it (simple majority).

The current team members are:

The technical steering team has the joint responsibility to:

  • Provide technical direction for the codebase
  • Maintain a technical roadmap, architecture and coding principles
  • Resolve issues in development or conflicts between contributors
  • Managing and planning releases
  • Controlling rights to Open Zaak assets such as source repositories

The technical steering team meets regularly. Their agenda includes review of the technical roadmap and issues that are at an impasse. The intention of the agenda is not to review or approve all patches. This is mainly being done through the process described in the contributing guide.

If more than one technical steering team member disagrees with a decision of the technical steering team they may appeal to the product steering team who will make the ultimate ruling.

Ideally, no one company or organization will employ a simple majority of the technical steering team.

Product steering team

Responsibilities of the product steering team:

  • Maintaining the mission, vision, values, and scope of the project
  • Collecting planned features and presenting them in a unified view
  • Refining the governance as needed
  • Making codebase level decisions
  • Resolving escalated project decisions when the subteam responsible is blocked
  • Managing the OpenZaak brand
  • Licensing and intellectual property changes
  • Controlling access to OpenZaak assets such as hosting and project calendars

Members are appointed by the current product steering team members.

Changes in codebase governance can only be done by the product steering team and requires supermajority (2/3).

The current team members are:

Decision making process

The default decision making process is lazy consensus. This means that any decision is considered supported by the team making it as long as no one objects. Silence on any consensus decision is implicit agreement and equivalent to explicit agreement. Explicit agreement may be stated at will.

When a consensus cannot be found a team member can call for a majority vote on a decision. Every team member has 1 vote.

Many of the day-to-day project maintenance tasks can be done by a lazy consensus model. But the following items must be called to vote:

  • Adding a team member (simple majority)
  • Removing a team member (supermajority)
  • Changing the governance rules (this document) (supermajority)
  • Licensing and intellectual property changes (including new logos, wordmarks) (supermajority)
  • Adding, archiving, or removing subprojects (simple majority)

Code of Conduct

OpenZaak's Code of Conduct is explained in this project's code of conduct.

If the possible violation involves a team member that member will be recused from voting on the issue. Such issues must be escalated to the product steering team contact, and the product steering team may choose to intervene.