Contents

Project roles

Because open source software (OSS) is highly collaborative, it is extremely important to understand the difference between various roles on the project, to avoid misconceptions about authority (who makes decisions) and responsibility (who is pledged to do the work) concerning each project.

Maintainers keep the project functional, fix bugs and make releases. They often make day to day decisions, and are typically involved in discussion with the project lead(s) regarding major decisions, although the lead has final decision-making authority.

Developers are people who work on the project significantly or often. Typically they have direct push access to the source code. In some cases they make day to day decisions, depending on their experience and comfort level with the project.

Contributors are people who help with the project either currently or in the past. They may participate occasionally or sporadically, and are typically not involved in project decision making.

SciJava team roles

Projects in the SciJava component collection define each component's team as the group of people who take responsibility for it. The following roles formalize the ways people are pledged to help:

Role

Commitment

Founder

Created the project. Does not imply any current participation or responsibility.

Lead

Has decision-making authority: timing of releases, inclusion of features, etc.

Developer

Adds new features or enhancements. Can be assigned to address feature requests.

Contributed code to the project. Does not imply any current participation or responsibility.

Individuals often fill more than one role.

Component status

This web site documents lots of software components—and in particular, many ImageJ plugins. Components in the ecosystem each have a distinct development path, with varying levels of maturity and activity, which is ultimately determined by the people who participate in developing it.

Each component's page features an informational sidebar with a status report derived from the component's declared team. This sidebar is intended to help users understand what level to expect when seeking help, reporting issues, and submitting feature requests.

Development status

Development status conveys what to expect regarding a component's future.

Status

Meaning

Unstable

Project is under heavy development, with unstable API undergoing iterations of refinement. Typically, these components are either unreleased, or versioned at 0.x.

Active

New features are being actively developed. API breakages are kept as limited as possible.

Stable

No new features are under development. API is stable.

Obsolete

The project is discontinued.

Support status

Support status indicates the level to which the team responds to questions and issue reports.

Status

Meaning

Active

Someone will respond to questions on community channels, and addresses issue reports in the project's issue tracker. A best effort is made to fix reported bugs within a reasonable time frame.

Partial

Someone will respond to questions on community channels, as well as to issue reports in the project's issue tracker. But reported bugs may not be addressed in a timely manner.

Minimal

There is at least one person pledged to the project in some capacity, but not all roles are filled. Response time to questions and issue reports may be protracted.

None

No one is pledged to support the project. Questions and issue reports may be ignored.

1 Pietzsch leads on day to day issues. Pietzsch, Preibisch and Saalfeld vote on primary decisions, with Pietzsch's vote breaking ties.
2 Barber leads development of the SLIM Curve C library; Rueden leads development of the SLIM Curve plugin for ImageJ.