Skip to content

Commit

Permalink
Add Roles and Responsibilities table (#324)
Browse files Browse the repository at this point in the history
This PR groups particular tasks within MDAnalysis into subgroups and identifies the main personnel for these domains within MDAnalysis in a table on the website.

---------

Co-authored-by: Rocco Meli <[email protected]>
Co-authored-by: Fiona Naughton <[email protected]>
Co-authored-by: Jonathan Barnoud <[email protected]>
Co-authored-by: Jenna M Swarthout Goddard <[email protected]>
Co-authored-by: Oliver Beckstein <[email protected]>
Co-authored-by: Irfan Alibay <[email protected]>
Co-authored-by: Hugo MacDermott-Opeskin <[email protected]>
  • Loading branch information
8 people authored Dec 19, 2023
1 parent 495da75 commit 0b42c6e
Show file tree
Hide file tree
Showing 24 changed files with 453 additions and 5 deletions.
2 changes: 1 addition & 1 deletion _config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ author:
email: [email protected]

images: /public/images
data: /public/data
data_files: /public/data
js: /js
blog: /blog

Expand Down
41 changes: 41 additions & 0 deletions _data/team/roles/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Roles

This directory contains YAML files, one per role.

## Editing

Each YAML file should contain the details of one role only.
Each role is automatically picked up by the template. To add or remove a role, simply add or remove a file. Do not add non-role documents to this directory that can be parsed by Jekyll.

Each file *must* contain the following tags at top level:

* `role`: The name of the role (e.g. Core library maintenance)

Each role can optionally have the following tags:
* `description`: text describing the role. This can be written in Markdown.
* `tasks`: a list of strings describing tasks. This is rendered as a list.

Each role can also optionally have lead/member tags, if there are no subroles. If there are subroles, the below are ignored:
* `current_leads`: a list of names who are current leads
* `current_members`: a list of names who are current members in the subgroup
* `historical_members`: a list of names who previously contributed in a major way

Onto subroles: each role can optionally define `subroles`. The `subroles` tag should be a **list** where each item *must have*:

* `subrole`: The name of the subrole (e.g. Issue management)

Each subrole can *optionally have*:
* `current_leads`: a list of names who are current leads
* `current_members`: a list of names who are current members in the subgroup
* `historical_members`: a list of names who previously contributed in a major way
* `description`: text describing the role. This can be written in Markdown.
* `tasks`: a list of strings describing tasks. This is rendered as a list.


## Parsing

The files here are read first by ``_includes/team_table.html`` and ``_includes/roles_description.html``.
Jekyll automatically reads YAML, JSON, and other formatted files in the ``_data`` directory
as objects that can be interacted with using the Liquid templating language.
For example, the ``name`` variable of the ``code_of_conduct.yml`` file is accessible as ``site.data.team.roles.code_of_conduct.name`` in HTML.

13 changes: 13 additions & 0 deletions _data/team/roles/code_of_conduct.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
role: Code of conduct committee
description: |
The [code of conduct committee](https://www.mdanalysis.org/pages/conduct/) members
are elected by the [project leadership](https://www.mdanalysis.org/about/#governance) when a committee members' term limit (2 years) has expired.
tasks:
- Receive and investigate all code of conduct complaints and violations
- Propose actions and sanctions, as necessary, to the [project leadership](https://www.mdanalysis.org/about/#governance) (project leadership is tasked with enforcement)
- Periodically review, revise and update current code of conduct procedures

current_members:
- Jenna Swarthout Goddard
- Richard Gowers
- Micaela Matta
7 changes: 7 additions & 0 deletions _data/team/roles/community_engagement.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
role: Community engagement
tasks:
- Responding to questions on Discord and mailing lists
- Managing and triaging conversations on Discord and mailing lists

current_members:
- Jenna Swarthout Goddard
10 changes: 10 additions & 0 deletions _data/team/roles/continuous_integration.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
role: Continuous integration
tasks:
- Building and developing new CI infrastructure
- Monitoring CI status
- Maintenance and fixes

current_members:
- Fiona Naughton
- Irfan Alibay
- Richard Gowers
33 changes: 33 additions & 0 deletions _data/team/roles/core_library_maintenance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
role: Core library maintenance
description: |
The core library maintenance team is responsible for
managing the maintenance of the MDAnalysis library.
subroles:
- subrole: Issue management
tasks:
- Initial triage and tagging of issues
- Managing timely responses and resolving issues
current_members:
- Rocco Meli
- Hugo MacDermott-Opeskin


- subrole: Pull request management
tasks:
- Reviewing, shepherding, and merging pull requests
current_members:
- Oliver Beckstein
- Rocco Meli
- Hugo MacDermott-Opeskin


- subrole: General maintenance
tasks:
- Monitoring and acting on maintenance needs across the MDAnalysis ecosystem
- Standards compliance (e.g. managing metadata such as the author list)
- Tracking new dependencies
- Emergency fixes
- Other general maintenance tasks
current_members:
- Irfan Alibay
14 changes: 14 additions & 0 deletions _data/team/roles/documentation.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
role: Documentation
tasks:
- Managing UserGuide repositories and main core documentation
- Managing MDAnalysis Sphinx theme
- Managing documentation-related utilities and architecture
- Managing new issues and PRs related to documentation
- Keeping documentation updated
- Responding to documentation issues in sub-projects

current_members:
- Lily Wang
- Rocco Meli


10 changes: 10 additions & 0 deletions _data/team/roles/external_liaison.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
role: External liaison
tasks:
- Coordinate and connect with affiliated organisations, e.g. NumFOCUS
- Coordinate participation in external projects
- Coordinate with potential industry partners

current_members:
- Irfan Alibay
- Oliver Beckstein
- Jenna Swarthout Goddard
12 changes: 12 additions & 0 deletions _data/team/roles/mdakit_registry.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
role: MDAKits registry
tasks:
- Managing submissions to MDAKits registry
- Managing manual review process of new MDAKits
- Managing automated test and badge infrastructure of all MDAKits
- Manage helping with MDAKits who need assistance
current_members:
- Irfan Alibay
- Fiona Naughton
- Lily Wang
- Oliver Beckstein

64 changes: 64 additions & 0 deletions _data/team/roles/non_core_library_maintenance.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
role: Non-core library maintenance
description: |
The non-core library maintenance team is responsible for
managing other packages that are directly
maintained by the MDAnalysis organization.
tasks:
- Managing issues and pull-requests for sub-projects
- Managing new features and updates
- Managing maintenance
- Working with CI and CD team and infrastructure
subroles:

- subrole: distopia
current_members:
- Richard Gowers
- Hugo MacDermott-Opeskin
- Rocco Meli

- subrole: cookiecutter-mdakit
current_members:
- Lily Wang
- Irfan Alibay

- subrole: mda-encore
current_members: []

- subrole: hole2-mdakit
current_members:
- Lily Wang

- subrole: benchmarks
current_members:
- Oliver Beckstein

- subrole: GridDataFormats
current_members:
- Irfan Alibay
- Oliver Beckstein

- subrole: MDAnalysisData
current_members:
- Irfan Alibay
- Oliver Beckstein

- subrole: mda-xrlib and other utilities
current_members:
- Irfan Alibay

- subrole: pyedr
current_members:
- Irfan Alibay

- subrole: pytng
current_members:
- Hugo MacDermott-Opeskin

- subrole: PathSimAnalysis
current_members:
- Oliver Beckstein

- subrole: waterdynamics
current_members:
- Fiona Naughton
28 changes: 28 additions & 0 deletions _data/team/roles/outreach.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
role: Outreach
subroles:
- subrole: Workshops and meetings
tasks:
- Identifying workshop and event opportunities
- Organising workshops and events
- Gathering and coordinating volunteers
- Managing content, presentations and teaching at workshops
current_members:
- Jenna Swarthout Goddard
- Micaela Matta

- subrole: Mentoring programs
tasks:
- Mentoring-related administrative tasks
- Advertising opportunities for mentoring programs
- Mentoring in structured programs
current_members:
- Jenna Swarthout Goddard

- subrole: Teaching materials
tasks:
- Managing teaching materials on GitHub for workshops and events
- Maintaining and fixing materials
current_members:
- Rocco Meli
- Micaela Matta
- Jenna Swarthout Goddard
10 changes: 10 additions & 0 deletions _data/team/roles/project_organization.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
role: Project Organization and Management
tasks:
- Organising meetings
- Coordinating elections of core developers
- Onboarding new core developers
- Managing other roles in the organisation and general task lists
- Gathering usage and community metrics

current_members:
- Jenna Swarthout Goddard
10 changes: 10 additions & 0 deletions _data/team/roles/releases_and_deployment.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
role: Releases and deployment
tasks:
- Updates and fixes for upstream and downstream packages
- Managing future release plans and timing
- Maintaining continuous deployment infrastructure
- Carrying out releases for MDAnalysis project packages
- Managing released packages on conda-forge and PyPi
current_members:
- Irfan Alibay
- Fiona Naughton
11 changes: 11 additions & 0 deletions _data/team/roles/relicensing_coordinator.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
role: Relicensing coordinator
tasks:
- Researching the steps required to change licenses
- Coordinating the choice to a new license
- Contacting existing developers to solicit agreement
- Ensuring new developers agree to a new license
- Managing the switch to a new license

current_members:
- Irfan Alibay
- Oliver Beckstein
9 changes: 9 additions & 0 deletions _data/team/roles/social_media.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
role: Social media
tasks:
- General management and administration
- Posting announcements of new developments
- Moderating content
- Managing X and LinkedIn
- Managing new content to the MDAnalysis website and blog
current_members:
- Jenna Swarthout Goddard
52 changes: 52 additions & 0 deletions _includes/roles_description.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
{% assign all_roles = site.data.team.roles | sort %}
{% for role_page in all_roles %}
{% assign role = role_page[1] %}
{% assign role_link = role.role | slugify %}

<h3 id="{{ role_link }}"> {{ role.role }}
<a class="anchorjs-link" href="{{ role_link }}" >
</a>
</h3>

{%- if role.description -%}
{% assign parsed_description = role.description | markdownify %}
<p>{{ parsed_description }}</p>
{%- endif -%}
{%- if role.tasks -%}
<i>Tasks include:</i>
<ul>
{% for line in role.tasks %}
<li>{{ line | markdownify }}</li>
{% endfor %}
</ul>
{%- endif -%}

{% if role.subroles %}
{% for subrole in role.subroles %}
{% if subrole.description or subrole.tasks %}
{% assign subrole_link = subrole.subrole | slugify %}
<h4 id="{{ subrole_link }}"> {{ subrole.subrole }}
<a class="anchorjs-link" href="{{ subrole_link }}" >
</a>
</h4>

{%- if subrole.description -%}
{% assign parsed_description = subrole.description | markdownify %}
<p> {{ parsed_description }} </p>
{%- endif -%}
{%- if subrole.tasks -%}
<i>Tasks include:</i>
<ul>
{% for line in subrole.tasks %}
<li>{{ line }}</li>
{% endfor %}
</ul>
{%- endif -%}

{% endif %}
{% endfor %}
{% endif %}



{% endfor %}
Loading

0 comments on commit 0b42c6e

Please sign in to comment.