Skip to content

Commit

Permalink
Rework template and presentation for WG pages
Browse files Browse the repository at this point in the history
Following recommendations of the UX evaluation
  • Loading branch information
bernhold committed Feb 3, 2025
1 parent 2831cce commit cf93352
Show file tree
Hide file tree
Showing 12 changed files with 206 additions and 129 deletions.
2 changes: 2 additions & 0 deletions _data/icon-map.yml
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,8 @@
# icon: <i class="fa-solid fa-medal"></i> # Another option?
- label: Featured
icon: <i class="fa-solid fa-fw fa-star"></i>
- label: Membership
icon: <i class="fa-solid fa-fw fa-users"></i>

# Additional ideas (not yet implemented), mostly inspired by
# https://www.osgeo.org/projects/
Expand Down
49 changes: 49 additions & 0 deletions _includes/wg-archive-single.html
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,9 @@
CHANGES FROM DEFAULT ARCHIVE-SINGLE INCLUDE
* post.excerpt --> post.description
{% endcomment %}
{% capture chair_icon %}{% include icon-map-lookup label="Chair" %}{% endcapture %}
{% capture meetings_icon %}{% include icon-map-lookup label="Meetings" %}{% endcapture %}
{% capture membership_icon %}{% include icon-map-lookup label="Membership" %}{% endcapture %}

{% if post.header.teaser %}
{% capture teaser %}{{ post.header.teaser }}{% endcapture %}
Expand Down Expand Up @@ -31,5 +34,51 @@ <h2 class="archive__item-title no_toc" itemprop="headline">
</h2>
{% include page__meta.html type=include.type %}
{% if post.description %}<p class="archive__item-excerpt" itemprop="description">{{ post.description | markdownify | strip_html | truncate: 160 }}</p>{% endif %}

{% comment %}
Do some prep work on chair emails that we won't necessarily need, but is a bit complicated and ugly to put inline
{% endcomment %}

{% capture subject %}CASS {{ page.name }} working group interest{% endcapture %}
{% assign email = nil %}
{% if post.chair %}
{% for chair in post.chair %}
{% assign c = site.data.people[chair] %}
{% if c.email %}
{% assign email = email | append: c.email %}{% unless forloop.last %}{% assign email = email | append: "," %}{% endunless %}
{% endif %}
{% endfor %}
{% endif %}
{% assign url = nil %}
{% if email %}
{% capture url %}mailto:{{ email }}?subject={{ subject }}{% endcapture %}
{% endif %}

{% if post.charter.membership or post.chair or post.meeting_schedule %}<p class="archive__item-excerpt">
{% if post.charter.membership %}
{{ membership_icon }} <strong>Membership:</strong> {{ post.charter.membership | markdownify | remove: "<p>" | remove: "</p>" | strip }}
{% if post.charter.membership == "Open" %}
{% if url %}
<a href="{{ url }}">(contact the {{ post.chair.size | pluralize: "chair", "chairs" }}</a> to participate)
{% else %}
(contact the {{ post.chair.size | pluralize: "chair", "chairs" }} to participate)
{% endif %}
{% endif %}
{% if post.meeting_schedule or post.chair %}<br>{% endif %}
{% endif %}
{% if post.meeting_schedule %}
{{ meetings_icon }} <strong>Meeting schedule:</strong> {{ post.meeting_schedule }}
{% if post.chair %}<br>{% endif %}
{% endif %}
{% if post.chair %}
{{ chair_icon }} <strong>{{ post.chair.size | pluralize: "Chair:", "Chairs:" }}</strong>
{% for chair in post.chair %}
{% assign c = site.data.people[chair] %}{% capture subject %}CASS {{ post.name }} working group interest{% endcapture %}
{% include people-info.html name=chair link="email" email_subject=subject short_affil=true %}{% unless forloop.last %}, {% endunless %}
{% endfor %}
{% endif %}
{% endif %}


</article>
</div>
77 changes: 71 additions & 6 deletions _layouts/wg-page.html
Original file line number Diff line number Diff line change
Expand Up @@ -3,13 +3,16 @@
---
{% comment %}}
CHANGES FROM DEFAULT SINGLE LAYOUT
* Call wg-sidebar.html instead of sidebar.html
* page.title --> page.name
* page.excerpt --> page.description
* Copied excerpt code from _include/page__hero.html
* Added code to display charter
* Added Additional resources section
{% endcomment %}
{% capture chair_icon %}{% include icon-map-lookup label="Chair" %}{% endcapture %}
{% capture meetings_icon %}{% include icon-map-lookup label="Meetings" %}{% endcapture %}
{% capture membership_icon %}{% include icon-map-lookup label="Membership" %}{% endcapture %}


{% if page.header.overlay_color or page.header.overlay_image or page.header.image %}
{% include page__hero.html %}
Expand All @@ -28,7 +31,7 @@
{% endif %}

<div id="main" role="main">
{% include wg-sidebar.html %}
{% include sidebar.html %}

<article class="page" itemscope itemtype="https://schema.org/CreativeWork"{% if page.locale %} lang="{{ page.locale }}"{% endif %}>
{% if page.name %}<meta itemprop="headline" content="{{ page.name | replace: '|', '&#124;' | markdownify | strip_html | strip_newlines | escape_once }}">{% endif %}
Expand Down Expand Up @@ -61,13 +64,75 @@ <h1 id="page-title" class="page__title" itemprop="headline">
</aside>
{% endif %}

{% comment %}
Do some prep work on chair emails that we won't necessarily need, but is a bit complicated and ugly to put inline
{% endcomment %}

{% capture subject %}CASS {{ page.name }} working group interest{% endcapture %}
{% assign email = nil %}
{% if page.chair %}
{% for chair in page.chair %}
{% assign c = site.data.people[chair] %}
{% if c.email %}
{% assign email = email | append: c.email %}{% unless forloop.last %}{% assign email = email | append: "," %}{% endunless %}
{% endif %}
{% endfor %}
{% endif %}
{% assign url = nil %}
{% if email %}
{% capture url %}mailto:{{ email }}?subject={{ subject }}{% endcapture %}
{% endif %}

{% if page.charter.membership %}
<p>{{ membership_icon }} <strong>Membership:</strong> {{ page.charter.membership | markdownify | remove: "<p>" | remove: "</p>" | strip }}
{% if page.charter.membership == "Open" %}
{% if url %}
<a href="{{ url }}">(contact the {{ page.chair.size | pluralize: "chair", "chairs" }}</a> to participate)
{% else %}
(contact the {{ page.chair.size | pluralize: "chair", "chairs" }} to participate)
{% endif %}
{% endif %}
</p>
{% endif %}

{% if page.meeting_schedule %}
<p>{{ meetings_icon }} <strong>Meeting schedule:</strong> {{ page.meeting_schedule }}</p>
{% endif %}

{% if page.chair %}
<p>{{ chair_icon }} <strong>{{ page.chair.size | pluralize: "Chair:", "Chairs:" }}</strong>
{% for chair in page.chair %}
{% assign c = site.data.people[chair] %}
{% include people-info.html name=chair link="email" email_subject=subject short_affil=true %}{% unless forloop.last %}, {% endunless %}
{% endfor %}
</p>
{% endif %}

{% if page.charter %}
<h2 id="charter">Charter</h2>
{{ page.charter | markdownify }}

{% if page.charter_status %}
<p><strong>Charter status:</strong> {{ page.charter_status }}</p>
{% if page.charter.purpose %}
<p><strong>Purpose:</strong> {{ page.charter.purpose | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
<details><summary><strong>Read the rest of the charter</strong></summary>
{% if page.charter.relationships %}
<p><strong>Relationships to other working groups:</strong> {{ page.charter.relationships | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
{% if page.charter.lifetime %}
<p><strong>Expected lifetime:</strong> {{ page.charter.lifetime | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
{% if page.charter.membership %}
<p><strong>Expected membership:</strong> {{ page.charter.membership | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
{% if page.charter.reporting %}
<p><strong>Reporting expectations:</strong> {{ page.charter.reporting | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
{% if page.charter.additional %}
<p><strong>Additional information:</strong> {{ page.charter.additional | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
{% if page.charter.status %}
<p><strong>Charter approval status:</strong> {{ page.charter.status | markdownify | remove: "<p>" | remove: "</p>" | strip }}</p>
{% endif %}
</details>
{% endif %}

{% if page.additional_resource_links %}
Expand Down
25 changes: 20 additions & 5 deletions _working-groups/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,20 +44,35 @@ The by-laws require that every working group have a charter. It should include:
* Expected membership
* Reporting expectations
* Additional information (as needed)
* Charter approval status

Input for this field should generally use the YAML syntax for a multi-line string, denoted by the pipe ("|") character on the line with the key. Each section should have a run-in header in italics, for example `*Purpose*`.
Each of these should be provided as a separate member of the `charter` structure:

```yaml
charter:
purpose: |
Long text
relationships: |
Long text
lifetime: short text
membership: short text
reporting: short text
additional: |
Long text (if needed)
status: short text
```
Input for this fields may use the YAML syntax for a multi-line string, denoted by the pipe ("|") character on the line with the key.
*Relationship to other working groups* is not required by the by-laws, but can be used to capture specific relationships that some WGs might have (e.g., Impact Framework and Metrics).
*Lifetime* will often be "Standing", but other durations may be appropriate in some cases
*Expected membership* will often be "Open", which includes the possibility of people not affiliated with CASS member organizations joining. However some WGs may have other memberships, such as "One representative from each CASS member organization."
*Expected membership* will often be "Open", which includes the possibility of people not affiliated with CASS member organizations joining. However some WGs may have other memberships, such as "One representative from each CASS member organization." Where memberships are "Open" (exact match required), the rendering may encourage readers to contact the chair(s) to participate.
*Reporting expectations* are likely to be things like Quarterly, Seminannual, Annual, as appropriate to the topic. The by-laws require annual review of working groups by the Steering Committee, so that would be the longest cycle.
## `charter_status` *(string)*

The `charter_status` should be either "Provisional" or "Approved" and should also mention the date of that status. For example `Provisional, since 2024-09-17`.
*Charter approval status* should be either "Provisional" or "Approved" and should also mention the date of that status. For example `Provisional, since 2024-09-17`.

## `chair` *(list)*

Expand Down
27 changes: 8 additions & 19 deletions _working-groups/TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,14 @@ status_date: 2024-09-17 # The date the group went active or retired
# Reporting expectations
# Additional information (as needed)
#
charter: |
*Purpose:*
I have no purpose.
*Relationship to other working groups:*
We don't like collaborating with other groups.
*Lifetime:*
This will often be "Standing", though we can also have fixed duration WGs.
*Membership:*
This will often be "Open", though some WGs may be something like "One representative per CASS member".
*Reporting:*
Suggest Quarterly, Semiannually, or Annually, as seems appropriate to the topic.
#
# Charter status may be Provisional or Approved and should include a date
#
charter_status: Provisional, since 2024-09-17
purpose: |
The goals of the CASS Integration Working Group are to improve quality, sustainability, delivery, and interoperability across the scientific and AI software ecosystem. Individual efforts take place at the ecosystem and individual product community levels, including on-node and inter-node programming systems, tools, data and visualization, math libraries, and workflows. The dual focus on ecosystem and product levels is essential due to the challenges of creating a cohesive ecosystem that includes product communities with different needs and varying levels of maturity.
relationships: |
Integration working group efforts are often synergistic with the Impact Framework and User-Developer Experience (UDX) working groups.
lifetime: Standing
membership: Open
reporting: Quarterly
status: Provisional, since 2024-08-19
#
chair: # Can be more than one person
- name: David Bernholdt (ORNL)
Expand Down
27 changes: 8 additions & 19 deletions _working-groups/foundations.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,25 +20,14 @@ status_date: 2024-10-30 # The date the group went active or retired
# Reporting expectations
# Additional information (as needed)
#
charter: |
*Purpose:*
An open forum for projects to meet and share experiences with joining or membership in an open-source software foundation (e.g., NumFOCUS, High Performance Software Foundation, etc.)
*Relationship to other working groups:*
TBD
*Lifetime:*
Standing
*Membership:*
Open
*Reporting:*
Annually
#
# Charter status may be Provisional or Approved and should include a date
#
charter_status: Provisional, since early October 2024
charter:
purpose: |
An open forum for projects to meet and share experiences with joining or membership in an open-source software foundation (e.g., NumFOCUS, High Performance Software Foundation, etc.)
# relationships:
lifetime: Standing
membership: Open
reporting: Annually
status: Provisional, since early October 2024
#
chair: # Can be more than one person
- Daniel S. Katz
Expand Down
22 changes: 9 additions & 13 deletions _working-groups/impact-framework.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,19 +13,15 @@ status_date: 2024-09-17 # The date the group went active or retired
# Reporting expectations
# Additional information (as needed)
#
charter: |
*Purpose:*
The purpose of the Impact Framework Working Group (WG) is to develop and refine the CASS Impact Framework process, and advise on and curate its use across the consortium. The CASS Impact Framework (IF) process is intended to provide a uniform, but flexible approach to gathering information to help the CASS member organizations understand the status and progress made by supported software projects with respect to the quality and sustainability of the software, and the impact those and other improvements have had on the usage of the software and on its ability to support scientific discovery.
Our goals are to help product teams improve their software products, and to identify impacts and accomplishments that we can highlight to our sponsors and to our community. We will use the information and metrics collected through the IF process to suggest targets for improvement and to understand, in a software engineering sense, if the improvements pursued achieved the intended results. We are interested in improvements to software products over time and across the ecosystem. We recognize that software products in the ecosystem may be very different in many respects and we commit not to release absolute metrics or compare them between projects.
*Relationship to other working groups:* We will collaborate with the [Metrics](metrics) WG to identify or develop, implement, and analyze appropriate metrics to support the needs of the IF process.
*Lifetime:* Standing. We plan a process of review and refinement each time the IF is used.
*Membership:* Open
*Reporting:* Quarterly
charter:
purpose: |
The purpose of the Impact Framework Working Group (WG) is to develop and refine the CASS Impact Framework process, and advise on and curate its use across the consortium. The CASS Impact Framework (IF) process is intended to provide a uniform, but flexible approach to gathering information to help the CASS member organizations understand the status and progress made by supported software projects with respect to the quality and sustainability of the software, and the impact those and other improvements have had on the usage of the software and on its ability to support scientific discovery.
relationships: |
We will collaborate with the [Metrics](metrics) WG to identify or develop, implement, and analyze appropriate metrics to support the needs of the IF process.
lifetime: Standing. We plan a process of review and refinement each time the IF is used.
membership: Open
reporting: Quarterly
status: Provisional, since 2024-09-17
#
# Charter status may be Provisional or Approved and should include a date
#
Expand Down
25 changes: 9 additions & 16 deletions _working-groups/integration.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,22 +20,15 @@ status_date: 2024-08-19 # The date the group went active or retired
# Reporting expectations
# Additional information (as needed)
#
charter: |
*Purpose:*
The goals of the CASS Integration Working Group are to improve quality, sustainability, delivery, and interoperability across the scientific and AI software ecosystem. Individual efforts take place at the ecosystem and individual product community levels, including on-node and inter-node programming systems, tools, data and visualization, math libraries, and workflows. The dual focus on ecosystem and product levels is essential due to the challenges of creating a cohesive ecosystem that includes product communities with different needs and varying levels of maturity.
*Relationship to other working groups:*
Integration working group efforts are often synergistic with the Impact Framework and User-Developer Experience (UDX) working groups.
*Lifetime:* Standing
*Membership:* Open
*Reporting:* Quarterly
#
# Charter status may be Provisional or Approved and should include a date
#
charter_status: Provisional, since 2024-08-19
charter:
purpose: |
The goals of the CASS Integration Working Group are to improve quality, sustainability, delivery, and interoperability across the scientific and AI software ecosystem. Individual efforts take place at the ecosystem and individual product community levels, including on-node and inter-node programming systems, tools, data and visualization, math libraries, and workflows. The dual focus on ecosystem and product levels is essential due to the challenges of creating a cohesive ecosystem that includes product communities with different needs and varying levels of maturity.
relationships: |
Integration working group efforts are often synergistic with the Impact Framework and User-Developer Experience (UDX) working groups.
lifetime: Standing
membership: Open
reporting: Quarterly
status: Provisional, since 2024-08-19
#
chair: # Can be more than one person
- Jim Willenbring
Expand Down
Loading

0 comments on commit cf93352

Please sign in to comment.