---
layout: page
title: Community
description: Project Community Page
group: nav-right
---
<!--
{% comment %}
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements.  See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to you under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
{% endcomment %}
-->

<!-- Hero  -->
<section class="full-stripe full-stripe--subpage-header clear-header">
  <div class="ml-container ml-container--horizontally-center">
    <div class="col col-12 content-group content-group--center-content content-group--center-align">
      <h1>{{ site.data.project.name }} {{ page.title }}</h1>
    </div>
  </div>
</section>

<section class="full-stripe full-stripe--alternate hero">
  <div class="ml-container ml-container--three-column">
    <!-- section 1 -->
    <div class="col col-4">
      <h2>Github</h2>
      <p>You can find all of Apache SystemDS’s code on Github, including example algorithms and notebooks.
        Fork it, try it out, and contribute to SystemDS yourself.</p>
      <a href="https://github.com/apache/systemds" target="_blank" class="button button-primary">Go To Github</a>
    </div>
    <!-- section 2 -->
    <div class="col col-4">
      <h2>Jira</h2>
      <p>Keep track of the daily updates with SystemDS. Create your own Jira to report issues and bugs you come across,
        acting as part of the SystemDS community.</p>
      <a href="https://issues.apache.org/jira/browse/{{ site.data.project.jira }}" target="_blank"
        class="button button-primary">Go To Jira</a>
    </div>
    <!-- section 3 -->
    <div class="col col-4">
      <h2>Roadmap</h2>
      <p>View SystemDS's roadmap for a comprehensive blueprint of future plans. You can also browse through a list of
        completed features from past versions.</p>
      <a href="roadmap.html" target="_blank" class="button button-primary">Go to Roadmap</a>
    </div>
  </div>

</section>


<!-- SystemML Project Committers -->
<section class="full-stripe">
  <div class="ml-container">
    <div class="col col-12 content-group content-group--center-align">
      <h2>SystemDS Project Committers</h2><br>
    </div>
    <div class="col col-12 content-g">
      {% if site.data.contributors %}
      {% for member in site.data.contributors %}
      <div class="profile">
        <a href="http://github.com/{{ member.githubId }}">
          <img class="profile--img"
            src="{% unless c.avatar %}http://github.com/{{ member.githubId }}.png{% else %}{{ member.avatar }}{% endunless %}">
        </a>
        <div class="profile--info">
          <a class="profile--name" href="http://github.com/{{ member.githubId }}">{{member.name}}</a>
          <ul class="bullet-pointless">
            <li></li>
            <li>{{member.role}}</li>
            <li>{{member.org}}</li>
          </ul>
        </div>
      </div>
      {% endfor %}
      {% endif %}
    </div>
  </div>
</section>

<!-- Mailing List Description -->
<section class="full-stripe full-stripe--alternate" id="mailing-list">

  <!-- Mailin List Header -->
  <div class="ml-container ml-container--horizontally-center">
    <div class="col col-12 content-group">
      <h2>Subscribe to Our Mailing Lists</h2>
      <p>For SystemDS updates and news, subscribe to our mailing lists. As SystemDS grows, so will our community. To
        unsubscribe, change the recipient from "subscribe" to "unsubscribe."</p>
    </div>
  </div>

  <!-- Mailing List 1 -->
  <div class="ml-container ml-container--narrow-list feature-content button-group">
    <div class="col col-8">
      <h3>Developer List</h3>
      <p>Questions, feedback, and other SystemDS related items are discussed on the dev mailing list.</p>
    </div>
    <div class="col col-4">
      <a href="mailto:{{ site.data.project.dev_list_subscribe }}?subject=send this email to subscribe"
        class="button button-primary">Subscribe</a>
      <a href="{{ site.data.project.dev_list_archive }}" target="_blank"
        class="button button-secondary">View Archives</a>
    </div>
  </div>

  <!-- Mailing List 2 -->
  <div class="ml-container ml-container--narrow-list feature-content button-group">
    <div class="col col-8">
      <h3>Issues List</h3>
      <p>JIRA notifications are sent to this list when issues are created, modified or pull requests are submitted.</p>
    </div>
    <div class="col col-4">
      <a href="mailto:{{ site.data.project.issues_list_subscribe }}?subject=send this email to subscribe"
        class="button button-primary">Subscribe</a>
      <a href="{{ site.data.project.issues_list_archive }}" target="_blank"
        class="button button-secondary">View Archives</a>
    </div>
  </div>

  <!-- Mailing List 3 -->
  <div class="ml-container ml-container--narrow-list feature-content button-group">
    <div class="col col-8">
      <h3>Commits List</h3>
      <p>Notifications with code diffs are sent to this list when changes are committed to the SystemDS source tree.</p>
    </div>
    <div class="col col-4">
      <a href="mailto:{{ site.data.project.commits_list_subscribe }}?subject=send this email to subscribe"
        class="button button-primary">Subscribe</a>
      <a href="{{ site.data.project.commits_list_archive }}" target="_blank"
        class="button button-secondary">View Archives</a>
    </div>
  </div>

</section>
