---
layout: default
title: Libraries - Contributing
permalink: /libraries/contributing
---

<!-- https://github.com/adafruit/circuitpython/issues/1246 -->

<div id="libraries-page" class="common-layout">
  <div class="content">
    <h1>Contributing</h1>
    <p>
      If you'd like to contribute to the CircuitPython project, the CircuitPython
      libraries are a great way to begin. This page is updated weekly with status
      information from the CircuitPython libraries, including open issues and
      repo-level issues.
    </p>
    <p>
      If this is your first time contributing, or you'd
      like to see our recommended contribution workflow, we have a guide on
      <a href="https://learn.adafruit.com/contribute-to-circuitpython-with-git-and-github">Contributing to CircuitPython with Git and Github</a>.
      You can also find us in the #circuitpython channel on the
      <a href="https://adafru.it/discord">Adafruit Discord</a>.
    </p>
    <p>
      Have an idea for a new driver or library?
      <a href="https://github.com/adafruit/circuitpython/issues">File an issue on the CircuitPython repo!</a>
    </p>
    <h2>Current Status for Week of {{ site.data.libraries.updated_at | date: "%a, %b %d, %Y" }}</h2>
    <p>
      This is the current status of open pull requests and issues across all of the library repos.
    </p>
    <div class="libraries open-pull-requests">
       <h3>Open Pull Requests</h3>
       <ul>
       {% for library in site.data.libraries.pull_requests %}
         <li>
           {{library[0]}}
           <ul>
           {% for issue in library[1] %}
              {% for details in issue %}
                <li><a href="{{ details[0] }}">{{ details[1] }}</a></li>
              {% endfor %}
           {% endfor %}
           </ul>
         </li>
       {% endfor %}
       </ul>
    </div>
    <div class="libraries open-issues">
       <h3>Open Issues</h3>
       <ul>
       {% for library in site.data.libraries.open_issues %}
         <li>
           {{library[0]}}
           <ul>
           {% for issue in library[1] %}
              {% for details in issue %}
                <li><a href="{{ details[0] }}">{{ details[1] }}</a></li>
              {% endfor %}
           {% endfor %}
           </ul>
         </li>
       {% endfor %}
       </ul>
    </div>
    <h2>Library Infrastructure Issues</h2>
    <p>
      The following are issues with the library infrastructure. Having a standard library structure
      greatly improves overall maintainability. Accordingly, we have a series of checks to ensure
      the standard is met. Most of these are changes that can be made via a pull request, however
      there are a few checks reported here that require changes to GitHub settings. If you are
      interested in addressing any of these issues, please feel free to contact us with any questions.
    </p>
    <p>
      If you're looking for a Good First Issue to begin contributing, consider the two issues related to
      example naming: "Example file(s) missing sensor/library name." and "Missing simpletest example."
      Every repo should have a <code>libraryname_simpletest.py</code> file in the examples folder at a
      minimum. Any other included examples should be prefixed with <code>libraryname_</code> so all
      examples found in any given repo folder start with the library name followed by an underscore.
      The GitHub end of things is a simple fix, however, please be aware many examples are linked in
      Learn guides. You should mention in your pull request that it is possible that guides will
      require updating to match the new example name.
    </p>
    <div class="libraries">
       <ul>
       {% for repo_issue in site.data.libraries.repo_infrastructure_errors %}
         <li>
           {{repo_issue[0]}}
           <ul>
           {% for issue in repo_issue[1] %}
             <li><a href="{{ issue }}">{{ issue }}</a></li>
           {% endfor %}
           </ul>
         </li>
       {% endfor %}
       </ul>
    </div>
  </div>
</div>
