Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for Generic Mapping Tools governance structure #7

Merged
merged 13 commits into from
Jun 8, 2024
25 changes: 13 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,26 +1,27 @@
# GMT Oversight

As of August 2016, GMT development and maintenance is being guided by a GMT Steering
Committee:

* David Sandwell (Scripps) - Chair
* Louise Kellogg (UC Davis)
* Dave Caress (MBARI)
* Steve Diggs (Scripps)
* Dan Bassett (GNS Science, New Zealand)
* Khalid Soofi (ConocoPhillips)
Oversight documents for the Generic Mapping Tools, including a list of current [Steering Committee members](steering-committee-membership.md)
and the project's [governance structure](governance.md).

## Updates

* May 2024 (expected): Voting on the [governance model](governance.md) and [Steering Committee membership](steering-committee-membership.md) updates.
* April 2024: First proposal for a [governance model](governance.md).
* March 2018: Louise Kellogg joined the Steering Committee.
* August 2016: The initial Steering Committee was established as David Sandwell (Scripps, Chair), Dave Caress (MBARI), Steve Diggs (Scripps), Dan Bassett (GNS Science, New Zealand), Khalid Soofi (ConocoPhillips).

## Reports

The GMT Team shall update the Steering Committee with timely reports. It has proven more
reasonable to provide these reports twice a year as a quarter is a bit too short to add
much new material.
The Steering Committee will meet twice per year and generate reports based on those
discussions. Prior to 2018 were generated by the GMT developers and are available at:

* [November 2018](reports/2018-11.md)
* [March 2018](reports/2018-03.md)
* [September 2017](reports/2017-09.md)
* [March 2017](reports/2017-03.md)

## License

[![Creative Commons License](https://i.creativecommons.org/l/by/4.0/88x31.png)](http://creativecommons.org/licenses/by/4.0/)
The [governance document](governance.md) is licensed under a
[Creative Commons Attribution 4.0 International License](http://creativecommons.org/licenses/by/4.0/).
164 changes: 164 additions & 0 deletions governance.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,164 @@
# Main Governance Document

The official version of this document, along with a list of individuals and
institutions in the roles defined in the governance section below, is contained
in The Project Governance Repository at:

https://github.com/GenericMappingTools/oversight

## The Project

The Generic Mapping Tools (The Project) is an open source software project. The goal
of The Project is to develop open source software and related technology for manipulating
geographic and Cartesian data sets and producing high-quality illustrations and animations.
The Software developed by The Project is released under open source licenses including
LGPL and BSD, developed openly and hosted in public GitHub repositories under the
GenericMappingTools GitHub organization. Examples of Project Software include the
GMT C library and the Python (PyGMT), Julia (GMT.jl), and MATLAB (GMT/MEX) wrappers.
The Services run by The Project consist of public websites and web-services that
are hosted under the generic-mapping-tools.org domain. Examples of Project Services
include the Generic Mapping Tools website (https://www.generic-mapping-tools.org/),
the Generic Mapping Tools data servers (listed at https://www.generic-mapping-tools.org/mirrors/),
the Generic Mapping Tools Discourse Forum (https://forum.generic-mapping-tools.org/), and the
PyGMT project domain (https://www.pygmt.org).

The Project is developed by a team of distributed developers, called
Contributors. Contributors are individuals who have contributed to code, code
reviews, documentation, design, and infrastructure, or to mailing lists, chats,
community help and community building, education and outreach, or other work in
relation to one or more Project repositories. Anyone can be a Contributor.
Contributors can be affiliated with any legal entity or none. Contributors
participate in The Project by submitting, reviewing and discussing GitHub Pull
Requests and Issues and participating in open and public Project discussions on
GitHub, the Discourse Forum, and community meetings. The foundation of Project
participation is openness and transparency.

Here is a list of the current Contributors to the main GMT repository:

https://github.com/GenericMappingTools/gmt/graphs/contributors

There are also many other Contributors listed in the logs of other repositories
of the Generic Mapping Tools Project.

The collection of all Contributors to The Project and stakeholders in The
Project, including Users and Funders, is called The Community. Contributors
work on behalf of and are responsible to the larger Project Community and we
strive to keep the barrier between Contributors and Users as low as possible.

## Governance

### The Steering Committee

The Project will have a Steering Committee that consists of Project Contributors
nominated as explained below. The Steering Committee should be composed of
a diverse array of backgrounds, viewpoints and talents. The overall role of the
Committee is to ensure, through taking input from the Community, the long-term
well-being of The Project, both technically and as a community. As The Project
draws its strength from representing the Community, it strives to avoid
fragmentation of the Community into separate projects, if possible.
The Steering Committee will maintain a minimum of three members.

During the everyday Project activities, Committee Members participate in all
discussions, code review and other Project activities as peers with all other
Contributors and the Community. In these everyday activities, Committee Members do
not have any special power or privilege through their membership on the Committee.
However, it is expected that because of the quality and quantity of their
contributions and their expert knowledge of The Project Software and Services
that Committee Members will provide useful guidance, both technical and in terms
of Project direction, to potentially less experienced Contributors.

The Steering Committee and its Members play a special role in certain situations.
In particular, the Committee may:

* Make decisions about the overall scope, vision and direction of The Project.
* Make decisions about strategic collaborations with other organizations or
individuals.
* Make decisions about the Services that are run by The Project.
* Make decisions when regular Community discussion doesn’t produce consensus on
an issue in a reasonable time frame.

Outcomes and decisions should be clearly communicated to the Community. This can
take three different forms:

* New challenges for The Project will be detailed as a GitHub discussion in the oversight
repository or a topic on the GMT Forum for the Community to discuss.
* Resolved technical deadlocks will result in an explanation on the relevant
issue and/or closure of the relevant pull request.
* Other decisions will be detailed as a narrative blog post or announcement on the website.

#### Committee Membership

To become eligible for being a Steering Committee Member an individual must be a
Project Contributor who has produced contributions that are substantial in
quality and quantity, and sustained over at least six months. Steering Committee Members should
have a GitHub account to participate in discussions and document decisions. Project contributions
can include contributions within the Generic Mapping Tools organization (e.g., GMT,
GMT wrappers, GMT services) or to closely related upstream (e.g., GDAL) or
downstream (e.g., GMTSAR, MB System) projects. After confirming the potential Committee
Member is interested and willing to serve in that capacity, Members are nominated by
Community Contributors and voted upon by the existing Committee via majority vote.

When considering potential Members, the Committee will look at candidates with a
comprehensive view of their contributions. This will include but is not limited
to code, code review, infrastructure work, mailing list and chat participation,
community help/building, education and outreach, design work, etc. We are
deliberately not setting arbitrary quantitative metrics (like “100 commits in
this repo”) to avoid encouraging behavior that plays to the metrics rather than
The Project’s overall well-being. We want to encourage a diverse array of
backgrounds, viewpoints and talents in our team, which is why we explicitly do
not define code as the sole metric on which Committee Membership will be evaluated.

There are two mechanisms by which a Committee Member may exit the Steering
Committee:

1. Committee Members may resign their posting at any time during their tenure on
the Steering Committee. In order to maintain an active, energetic, and healthy
Committee, Committee Members will self-facilitate membership check-ins every 6
months to confirm that each member intends on continue their service on the
Committee.
2. A majority of the existing Committee votes to remove a Member.

If a Committee Member becomes inactive in The Project for a period of one year,
they will be considered for removal from the Committee. Before removal, an
inactive Member will be approached by the a Committee Member to see if they plan
on returning to active participation. If not they will be removed immediately
upon a Committee vote. If they plan on returning to active participation soon,
they will be given a grace period of one year. If they don’t return to active
participation within that time period they will be removed by vote of the
Committee without further grace period.

All former Committee Members can be considered for Membership again at any time
in the future, like any other Project Contributor. Retired Committee Members
will be listed on the Project website, acknowledging the period during which
they were active in the Committee.

#### Expectations for Committee Members

Steering Committee members are expected to commit to the following activities:
- Attend a one-hour steering committee meeting every six months.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Given the global distribution of the Committee members, not all of them will be able to attend the meeting due to the time zones involved.

Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It's only once every 6 months. A bit of flexibility can be expected.

- Respond in a timely manner to steering-committee-related correspondence.
- Act as an ambassador for the project in professional contexts.

The chair of the Steering Committee is expected to arrange the regular meetings
and ensure that a report is shared with the community.

## Changing the Governance Documents

Changes to the governance documents are submitted via a GitHub pull request to
The Project's governance documents GitHub repository at
https://github.com/GenericMappingTools/oversight. The pull request is then refined in
response to public comment and review, with the goal being consensus in the
community. The period for open comment will last in proportional to the
complexity of the changes; major changes will be open for comment for no less
than two weeks. After this open period, a Steering Committee Member proposes to
the Steering Committee that the changes be ratified and the pull request merged
(accepting the proposed changes) or proposes that the pull request be closed
without merging (rejecting the proposed changes). The Member should state the
final commit hash in the pull request being proposed for acceptance or rejection
and briefly summarize the pull request. A minimum of 80% of the Steering Committee
must vote and at least 2/3 of the votes must be positive to carry out the
proposed action (fractions of a vote rounded up to the nearest integer).

## References

This governance document is based on the [Pangeo governance model](https://github.com/pangeo-data/governance).
5 changes: 5 additions & 0 deletions steering-committee-membership.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
# Steering Committee Membership

With the creation of a formal governance structure, the Generic Mapping Tools Steering
Committee with be re-constituted with membership decided by active project developers
and previous core developers in June 2024.