Core Developers

Core Developers

Once you've done some work as a Member, you may wish to become a Core developer and have a direct hand in deciding what work is merged to the Main/Master Branch to become official Baseline Protocol technology and specifications.

Here's a list of current Core Developers.

What do core developers do?

Core developers are people who take an active role in advancing the Baseline Protocol and/or related projects. They are primarily responsible for:

  • Contributing code or contributing to specification work in the form of PRs that are linked to open and prioritized issues

  • Reviewing and merging PRs into the master branch

  • Cutting, testing, and releasing new versions of the related Baseline projects

  • Working with the TSC and General Assembly to advance the Baseline Protocol

They can/should also contribute in the following ways:

  • Writing epics and issues to guide development

  • Setting up and supporting infrastructure (running demos, CI systems, community projects, etc...) that further Baseline

  • Working with the community to help with adoption

  • Presenting the project and key technologies to the public (in-person, webinar, videos, articles, etc...)

How to become a core developer?

There are two ways to become a core developer: You are asked by a current core developer, or you make request to an existing core developer to become one.

With either path you become a "provisional core developer". As such you will need to show consistent contributions of code and/or specifications to the project. This can be in the form of pull requests that get merged into master. Or it can be in the form of technical specification, system architecture and related artifacts that guide the development activities of others.

All provisional core developers that focus on code development (over standards) must meet with the existing core developers and demonstrate they are capable of the following:

  • Running the project locally

  • Using the testing framework

  • Explaining the components of the system architecture

  • Walking through the code and explain the baseline process

Once the provisional core developer demonstrates their capabilities, the existing core developers will vote during the next scheduled core developer meeting to give the prospect full core developer status. Members must vote with 2/3rds majority to add a core developer. Voting that results in a tie or potentially other issue will be brought to the TSC for review.

What is expected of core developers?

In general, a core developer needs to:

  • be an expert in one or more fields related to the project

  • be an expert in finding and engaging the advice of other experts

  • show commitment over time with multiple PRs merged

  • be reliable in completing issues to which they have been assigned

  • attend the weekly core developers meetings (with occasional absences allowed)

  • demonstrate competency in software development or specification writing

  • follow the project style and testing guidelines

  • have a high degree of understanding of the project architecture

  • be welcoming to others in the community who are using the project

  • contribute in ways that substantially improve the quality of the project and the experience of people who use it

  • follow branch, PR, and code style conventions

How core developers organize?

Slack

Core Developers meet and discuss issues virtually via the #maintainers slack room in the baseline slack.

Regular Meetings

There are weekly Core Developers meetings where members can discuss plans and issues related to the project, updates, release planning, and other related topics. Anyone may attend these meetings, but the primary participants are core developers. Core developers are required to produce meeting summaries and document decisions.

Meeting signups are maintained on the "Join the Community" page on https://baseline-protocol.org.

How to stop being a core developer?

Any of the following ways:

  • You stop reviewing PR's, responding to messages, answering emails, and/or generally ghost the project.

  • You are disrespectful towards anyone in the community and/or involved in the project.

  • You are disruptive to the general process of maintaining the project, meetings, discussions, issues, or other.

  • You notify the other core developers you would like to relinquish your core developer status.

Two-thirds of all current core developers constitute a quorum for a meeting involving a question of removal. A simple majority vote from core developers attending the meeting is required to remove a core developer, but the TSC may be brought in to arbitrate if the core developer to be removed or any other core developer wishes to dispute the action. (See Governance for details.)

Last updated