---
layout: page
title: Documentation
description: Project Documentation 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 }} Documentation</h1>
    </div>
  </div>
</section>
<!-- Publish website test -->
<section class="full-stripe full-stripe--alternate hero">
  <div class="ml-container ml-container--three-column">
    <div class="col col-4">
      <p>Documentation such as programming guides, reference guides, and API docs is available for SystemDS below:</p>
      <a class="button button-primary" href="{{ site.data.project.docs }}">Latest</a>
      <p></p>
      <a class="button button-primary" href="docs/2.0.0/index">2.0.0</a>
      <a class="button button-primary" href="release-notes/systemds-release-notes-2.0.0">ReleaseNotes</a>
    </div>
    <div class="col col-4">
      <p>each released version of SystemML:</p>
      <ul>
        <li><a href="docs/1.2.0/index">1.2.0</a>, <a href="release-notes/systemml-release-notes-1.2.0">ReleaseNotes</a></li>
        <li><a href="docs/1.1.0/index">1.1.0</a>, <a href="release-notes/systemml-release-notes-1.1.0">ReleaseNotes</a></li>
        <li><a href="docs/1.0.0/index">1.0.0</a>, <a href="release-notes/systemml-release-notes-1.0.0">ReleaseNotes</a></li>
        <li><a href="docs/0.15.0/index">0.15.0</a>, <a href="release-notes/systemml-release-notes-0.15.0">ReleaseNotes</a></li>
        <li><a href="docs/0.14.0/index">0.14.0</a>, <a href="release-notes/systemml-release-notes-0.14.0-incubating">ReleaseNotes</a></li>
        <li><a href="docs/0.13.0/index">0.13.0</a>, <a href="release-notes/systemml-release-notes-0.13.0-incubating">ReleaseNotes</a></li>
        <li><a href="docs/0.12.0/index">0.12.0</a>, <a href="release-notes/systemml-release-notes-0.12.0-incubating">ReleaseNotes</a></li>
      </ul>
    </div>
  </div>
</section>