Skip to content

librosa/web-staging

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

<!DOCTYPE html>


<html lang="en" data-content_root="./" >

  <head>
    <meta charset="utf-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="viewport" content="width=device-width, initial-scale=1" />

    <title>Contributing &#8212; librosa 1.0.0dev documentation</title>
  
  
  
  <script data-cfasync="false">
    document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
    document.documentElement.dataset.theme = localStorage.getItem("theme") || "";
  </script>
  <!--
    this give us a css class that will be invisible only if js is disabled
  -->
  <noscript>
    <style>
      .pst-js-only { display: none !important; }

    </style>
  </noscript>
  
  <!-- Loaded before other Sphinx assets -->
  <link href="_static/styles/theme.css?digest=90905a2f556bf617f1a9" rel="stylesheet" />
<link href="_static/styles/pydata-sphinx-theme.css?digest=90905a2f556bf617f1a9" rel="stylesheet" />

    <link rel="stylesheet" type="text/css" href="_static/pygments.css?v=03e43079" />
    <link rel="stylesheet" type="text/css" href="_static/copybutton.css?v=76b2166b" />
    <link rel="stylesheet" type="text/css" href="_static/plot_directive.css" />
    <link rel="stylesheet" type="text/css" href="_static/sg_gallery.css?v=d2d258e8" />
    <link rel="stylesheet" type="text/css" href="_static/sg_gallery-binder.css?v=f4aeca0c" />
    <link rel="stylesheet" type="text/css" href="_static/sg_gallery-dataframe.css?v=2082cf3c" />
    <link rel="stylesheet" type="text/css" href="_static/sg_gallery-rendered-html.css?v=1277b6f3" />
    <link rel="stylesheet" type="text/css" href="_static/sphinx-design.min.css?v=95c83b7e" />
    <link rel="stylesheet" type="text/css" href="_static/css/custom.css?v=d2898d2d" />
  
  <!-- So that users can add custom icons -->
  <script defer src="_static/scripts/fontawesome.js?digest=90905a2f556bf617f1a9"></script>
  <!-- Pre-loaded scripts that we'll load fully later -->
  <link rel="preload" as="script" href="_static/scripts/bootstrap.js?digest=90905a2f556bf617f1a9" />
<link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=90905a2f556bf617f1a9" />

    <script src="_static/documentation_options.js?v=756f2b42"></script>
    <script src="_static/doctools.js?v=fd6eb6e6"></script>
    <script src="_static/sphinx_highlight.js?v=6ffebe34"></script>
    <script src="_static/clipboard.min.js?v=a7894cd8"></script>
    <script src="_static/copybutton.js?v=35a8b989"></script>
    <script src="_static/design-tabs.js?v=f930bc37"></script>
    <script>
                window.dataLayer = window.dataLayer || [];
                function gtag(){ dataLayer.push(arguments); }
                gtag('consent', 'default', {
                    'ad_storage': 'denied',
                    'ad_user_data': 'denied',
                    'ad_personalization': 'denied',
                    'analytics_storage': 'denied'
                });
            </script>
    <script async="async" src="https://www.googletagmanager.com/gtag/js?id=UA-171031946-1"></script>
    <script>
                window.dataLayer = window.dataLayer || [];
                function gtag(){dataLayer.push(arguments);}
                gtag('js', new Date());
                gtag('config', 'UA-171031946-1');
            </script>
    <script>DOCUMENTATION_OPTIONS.pagename = 'contributing';</script>
    <script>
        DOCUMENTATION_OPTIONS.theme_version = '0.20.0';
        DOCUMENTATION_OPTIONS.theme_switcher_json_url = 'https://librosa.org/en/stable/_static/switcher.json';
        DOCUMENTATION_OPTIONS.theme_switcher_version_match = '1.0.0dev';
        DOCUMENTATION_OPTIONS.show_version_warning_banner =
            false;
        </script>
    <script>DOCUMENTATION_OPTIONS.search_as_you_type = false;</script>
    <link rel="index" title="Index" href="genindex.html" />
    <link rel="search" title="Search" href="search.html" />
    <link rel="next" title="Reference" href="reference/index.html" />
    <link rel="prev" title="Changelog" href="changelog.html" />
  <meta name="viewport" content="width=device-width, initial-scale=1"/>
  <meta name="docsearch:language" content="en"/>
  <meta name="docsearch:version" content="1.0.0dev" />
  
    
    <script src="_static/searchtools.js"></script>
    <script src="_static/language_data.js"></script>
    <script src="searchindex.js"></script>
  
  </head>
  <body data-default-mode="">
  
  
  <div id="pst-skip-link" class="skip-link d-print-none"><a href="#main-content">Skip to main content</a></div>

  
  <div id="pst-scroll-pixel-helper"></div>
  
  <button type="button" class="btn rounded-pill" id="pst-back-to-top">
    <i class="fa-solid fa-arrow-up"></i>Back to top</button>
  
  
  
  
  <dialog id="pst-search-dialog">
    
<form class="bd-search d-flex align-items-center"
      action="search.html"
      method="get">
  <i class="fa-solid fa-magnifying-glass"></i>
  <input type="search"
         class="form-control"
         name="q"
         placeholder="Search the docs ..."
         aria-label="Search the docs ..."
         autocomplete="off"
         autocorrect="off"
         autocapitalize="off"
         spellcheck="false"/>
  <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
</form>
  </dialog>

  <div class="pst-async-banner-revealer d-none">
  <aside id="bd-header-version-warning" class="d-none d-print-none" aria-label="Version warning"></aside>
</div>

  
    <header id="pst-header" class="bd-header navbar navbar-expand-lg bd-navbar d-print-none">
<div class="bd-header__inner bd-page-width">
  <button class="pst-navbar-icon sidebar-toggle primary-toggle" aria-label="Site navigation">
    <span class="fa-solid fa-bars"></span>
  </button>
  
  
  <div class=" navbar-header-items__start">
    
      <div class="navbar-item">

  
    
  

<a class="navbar-brand logo" href="index.html">
  
  
  
  
  
    
    
      
    
    
    <img src="_static/librosa_logo_text.svg" class="logo__image only-light" alt="librosa"/>
    <img src="_static/librosa_logo_text.svg" class="logo__image only-dark pst-js-only" alt="librosa"/>
  
  
</a></div>
    
  </div>
  
  <div class=" navbar-header-items">
    
    <div class="me-auto navbar-header-items__center">
      
        <div class="navbar-item">
<nav>
  <ul class="bd-navbar-elements navbar-nav">
    
<li class="nav-item ">
  <a class="nav-link nav-internal" href="auto_tutorials/index.html">
    Tutorials
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="api/index.html">
    API documentation
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="advanced/index.html">
    Advanced topics
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="changelog.html">
    Changelog
  </a>
</li>


<li class="nav-item current active">
  <a class="nav-link nav-internal" href="#">
    Contributing
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="reference/index.html">
    Reference
  </a>
</li>

  </ul>
</nav></div>
      
    </div>
    
    
    <div class="navbar-header-items__end">
      
        <div class="navbar-item navbar-persistent--container">
          

<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
 <i class="fa-solid fa-magnifying-glass"></i>
 <span class="search-button__default-text">Search</span>
 <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
        </div>
      
      
        <div class="navbar-item">
<div class="version-switcher__container dropdown pst-js-only">
  <button id="pst-version-switcher-button-2"
    type="button"
    class="version-switcher__button btn btn-sm dropdown-toggle"
    data-bs-toggle="dropdown"
    aria-haspopup="listbox"
    aria-controls="pst-version-switcher-list-2"
    aria-label="Version switcher list"
  >
    Choose version  <!-- this text may get changed later by javascript -->
    <span class="caret"></span>
  </button>
  <div id="pst-version-switcher-list-2"
    class="version-switcher__menu dropdown-menu list-group-flush py-0"
    role="listbox" aria-labelledby="pst-version-switcher-button-2">
    <!-- dropdown will be populated by javascript on page load -->
  </div>
</div></div>
      
        <div class="navbar-item">

<div class="theme-switch-container dropdown pst-js-only" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Color mode">
  <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button dropdown-toggle" aria-label="Color mode" data-bs-toggle="dropdown">
    <i class="theme-switch fa-solid fa-sun fa-lg fa-fw" data-mode="light" title="Light"></i>
    <i class="theme-switch fa-solid fa-moon fa-lg fa-fw" data-mode="dark" title="Dark"></i>
    <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg fa-fw" data-mode="auto" title="System Settings"></i>
  </button>
  <ul class="dropdown-menu dropdown-menu-end">
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg fa-fw me-1"></i>System Settings</button></li>
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="light"><i class="fa-solid fa-sun fa-lg fa-fw me-1"></i>Light</button></li>
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="dark"><i class="fa-solid fa-moon fa-lg fa-fw me-1"></i>Dark</button></li>
  </ul>
</div></div>
      
    </div>
    
  </div>
  
  
    <div class="navbar-persistent--mobile">

<button class="btn search-button-field search-button__button pst-js-only" title="Search" aria-label="Search" data-bs-placement="bottom" data-bs-toggle="tooltip">
 <i class="fa-solid fa-magnifying-glass"></i>
 <span class="search-button__default-text">Search</span>
 <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd class="kbd-shortcut__modifier">K</kbd></span>
</button>
    </div>
  

  
    <button class="pst-navbar-icon sidebar-toggle secondary-toggle" aria-label="On this page">
      <span class="fa-solid fa-outdent"></span>
    </button>
  
</div>

    </header>
  

  <div class="bd-container">
    <div class="bd-container__inner bd-page-width">
      
      
      
      <dialog id="pst-primary-sidebar-modal"></dialog>
      <div id="pst-primary-sidebar" class="bd-sidebar-primary bd-sidebar">
        

  
  <div class="sidebar-header-items sidebar-primary__section">
    
    
      <div class="sidebar-header-items__center">
        
          
          
            <div class="navbar-item">
<nav>
  <ul class="bd-navbar-elements navbar-nav">
    
<li class="nav-item ">
  <a class="nav-link nav-internal" href="auto_tutorials/index.html">
    Tutorials
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="api/index.html">
    API documentation
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="advanced/index.html">
    Advanced topics
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="changelog.html">
    Changelog
  </a>
</li>


<li class="nav-item current active">
  <a class="nav-link nav-internal" href="#">
    Contributing
  </a>
</li>


<li class="nav-item ">
  <a class="nav-link nav-internal" href="reference/index.html">
    Reference
  </a>
</li>

  </ul>
</nav></div>
          
        
      </div>
    
    
    
      <div class="sidebar-header-items__end">
        
          <div class="navbar-item">
<div class="version-switcher__container dropdown pst-js-only">
  <button id="pst-version-switcher-button-3"
    type="button"
    class="version-switcher__button btn btn-sm dropdown-toggle"
    data-bs-toggle="dropdown"
    aria-haspopup="listbox"
    aria-controls="pst-version-switcher-list-3"
    aria-label="Version switcher list"
  >
    Choose version  <!-- this text may get changed later by javascript -->
    <span class="caret"></span>
  </button>
  <div id="pst-version-switcher-list-3"
    class="version-switcher__menu dropdown-menu list-group-flush py-0"
    role="listbox" aria-labelledby="pst-version-switcher-button-3">
    <!-- dropdown will be populated by javascript on page load -->
  </div>
</div></div>
        
          <div class="navbar-item">

<div class="theme-switch-container dropdown pst-js-only" data-bs-toggle="tooltip" data-bs-placement="bottom" title="Color mode">
  <button class="btn btn-sm nav-link pst-navbar-icon theme-switch-button dropdown-toggle" aria-label="Color mode" data-bs-toggle="dropdown">
    <i class="theme-switch fa-solid fa-sun fa-lg fa-fw" data-mode="light" title="Light"></i>
    <i class="theme-switch fa-solid fa-moon fa-lg fa-fw" data-mode="dark" title="Dark"></i>
    <i class="theme-switch fa-solid fa-circle-half-stroke fa-lg fa-fw" data-mode="auto" title="System Settings"></i>
  </button>
  <ul class="dropdown-menu dropdown-menu-end">
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="auto"><i class="fa-solid fa-circle-half-stroke fa-lg fa-fw me-1"></i>System Settings</button></li>
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="light"><i class="fa-solid fa-sun fa-lg fa-fw me-1"></i>Light</button></li>
    <li><button class="dropdown-item d-flex align-items-center theme-change-button" data-mode="dark"><i class="fa-solid fa-moon fa-lg fa-fw me-1"></i>Dark</button></li>
  </ul>
</div></div>
        
      </div>
    
  </div>
  
    <div class="sidebar-primary-items__start sidebar-primary__section">
        <div class="sidebar-primary-item pst-sidebar-collapse"><button id="pst-collapse-sidebar-button" aria-expanded="true" aria-controls="pst-primary-sidebar">
  <svg class="pst-icon" role="img" aria-hidden="true" focusable="false" viewBox="0 0 16 16" xmlns="http://www.w3.org/2000/svg">
    <path fill="currentColor" d="M3 15.5C2.36232 15.5 1.74874 15.2564 1.28478 14.8189C0.820828 14.3815 0.541576 13.7832 0.504167 13.1467L0.5 13L0.5 3C0.499965 2.36232 0.743605 1.74874 1.18107 1.28478C1.61854 0.820828 2.21676 0.541576 2.85333 0.504167L3 0.5L13 0.5C13.6377 0.499965 14.2513 0.743605 14.7152 1.18107C15.1792 1.61854 15.4584 2.21676 15.4958 2.85333L15.5 3L15.5 13C15.5 13.6377 15.2564 14.2513 14.8189 14.7152C14.3815 15.1792 13.7832 15.4584 13.1467 15.4958L13 15.5L3 15.5ZM3 13.8333L10.5 13.8333L10.5 2.16667L3 2.16667C2.79589 2.16669 2.59889 2.24163 2.44636 2.37726C2.29383 2.5129 2.19638 2.69979 2.1725 2.9025L2.16667 3L2.16667 13C2.16669 13.2041 2.24163 13.4011 2.37726 13.5536C2.5129 13.7062 2.69979 13.8036 2.9025 13.8275L3 13.8333ZM6.65583 10.325L6.5775 10.2558L4.91083 8.58917C4.76735 8.44567 4.68116 8.25476 4.66843 8.05223C4.65569 7.84971 4.71729 7.6495 4.84167 7.48917L4.91083 7.41083L6.5775 5.74417C6.72747 5.59471 6.9287 5.50794 7.14032 5.50148C7.35194 5.49502 7.55809 5.56935 7.7169 5.70937C7.8757 5.8494 7.97525 6.04463 7.99533 6.25539C8.01541 6.46616 7.95451 6.67667 7.825 6.84417L7.75583 6.9225L6.67917 8L7.75583 9.0775C7.89931 9.22099 7.98551 9.41191 7.99824 9.61443C8.01097 9.81695 7.94938 10.0172 7.825 10.1775L7.75583 10.2558C7.61234 10.3993 7.42142 10.4855 7.2189 10.4982C7.01638 10.511 6.81617 10.4494 6.65583 10.325Z"/>
  </svg>
  <span class="pst-collapse-sidebar-label">Collapse Sidebar</span>
  <span class="pst-expand-sidebar-label">Expand Sidebar</span>
</button></div>
        <div class="sidebar-primary-item">

<nav class="bd-docs-nav bd-links"
     aria-label="Section Navigation">
  <p class="bd-links__title" role="heading" aria-level="1">Section Navigation</p>
  <div class="bd-toc-item navbar-nav"></div>
</nav></div>
    </div>
  
  
  <div class="sidebar-primary-items__end sidebar-primary__section">
      <div class="sidebar-primary-item">
<div id="ethical-ad-placement"
      class="flat"
      data-ea-publisher="readthedocs"
      data-ea-type="readthedocs-sidebar"
      data-ea-manual="true">
</div></div>
  </div>


      </div>
      
      <main id="main-content" class="bd-main" role="main">
        
        
          <div class="bd-content">
            <div class="bd-article-container">
              
              <div class="bd-header-article d-print-none">
<div class="header-article-items header-article__inner">
  
    <div class="header-article-items__start">
      
        <div class="header-article-item">

<nav aria-label="Breadcrumb" class="d-print-none">
  <ul class="bd-breadcrumbs">
    
    <li class="breadcrumb-item breadcrumb-home">
      <a href="index.html" class="nav-link" aria-label="Home">
        <i class="fa-solid fa-home"></i>
      </a>
    </li>
    <li class="breadcrumb-item active" aria-current="page"><span class="ellipsis">Contributing</span></li>
  </ul>
</nav>
</div>
      
    </div>
  
  
</div>
</div>
              
              
              
                
<div id="searchbox"></div>
                <article class="bd-article">
                  


  <section id="contributing">
<h1>Contributing<a class="headerlink" href="#contributing" title="Link to this heading">#</a></h1>
<section id="contributing-code">
<h2>Contributing code<a class="headerlink" href="#contributing-code" title="Link to this heading">#</a></h2>
<section id="how-to-contribute">
<h3>How to contribute<a class="headerlink" href="#how-to-contribute" title="Link to this heading">#</a></h3>
<p>The preferred way to contribute to librosa is to fork the
<a class="reference external" href="http://github.com/librosa/librosa/">main repository</a> on
GitHub:</p>
<ol class="arabic">
<li><p>Fork the <a class="reference external" href="http://github.com/librosa/librosa">project repository</a>:
click on the ‘Fork’ button near the top of the page. This creates
a copy of the code under your account on the GitHub server.</p></li>
<li><p>Clone this copy to your local disk:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>clone<span class="w"> </span>git@github.com:YourLogin/librosa.git
</pre></div>
</div>
</li>
<li><p>Set the upstream remote to the Librosa’s repo:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>remote<span class="w"> </span>add<span class="w"> </span>upstream<span class="w"> </span>git@github.com:librosa/librosa.git
</pre></div>
</div>
</li>
<li><p>Create a new conda environment in order to install dependencies:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>conda<span class="w"> </span>create<span class="w"> </span>-n<span class="w"> </span>librosa-dev<span class="w"> </span><span class="nv">python</span><span class="o">=</span><span class="m">3</span>.13
conda<span class="w"> </span>env<span class="w"> </span>update<span class="w"> </span>-n<span class="w"> </span>librosa-dev<span class="w"> </span>--file<span class="w"> </span>.github/environment-ci.yml
conda<span class="w"> </span>activate<span class="w"> </span>librosa-dev
python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;.[tests]&#39;</span>
</pre></div>
</div>
</li>
<li><p>Create a branch to hold your changes:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>switch<span class="w"> </span>-c<span class="w"> </span>&lt;NAME-NEW-BRANCH&gt;
</pre></div>
</div>
<p>and start making changes. Never work in the <code class="docutils literal notranslate"><span class="pre">main</span></code> branch!</p>
</li>
<li><p>Work on this copy on your computer using Git to do the version
control. You can check your modified files using:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>status
</pre></div>
</div>
</li>
<li><p>When you’re done editing, do:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>add<span class="w"> </span>&lt;PATH-TO-MODIFIED-FILES&gt;
git<span class="w"> </span>commit<span class="w"> </span>-m<span class="w"> </span><span class="s2">&quot;&lt;COMMIT-MESSAGE&gt;&quot;</span>
</pre></div>
</div>
<p>to record your changes in Git, then push them to GitHub with:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>git<span class="w"> </span>push<span class="w"> </span>--set-upstream<span class="w"> </span>origin<span class="w"> </span>&lt;NAME-NEW-BRANCH&gt;
</pre></div>
</div>
</li>
<li><p>Go to the web page of your fork of the librosa repo,
and click ‘Pull request’ to review your changes and add a description
of what you did.</p></li>
</ol>
<p>Finally, click ‘Create pull request’ to send your changes to the
maintainers for review. This will send an email to the committers.</p>
<p>(If any of the above seems like magic to you, then look up the
<a class="reference external" href="https://git-scm.com/docs">Git documentation</a> on the web.)</p>
<p>It is recommended to check that your contribution complies with the
following rules before submitting a pull request:</p>
<ul class="simple">
<li><p>All functions should have informative <a class="reference external" href="https://numpydoc.readthedocs.io/en/latest/format.html">docstrings</a> with sample usage presented.</p></li>
</ul>
<p>You can also check for common programming errors with the following
tools:</p>
<ul>
<li><p>Code with good test coverage, check with:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pytest
</pre></div>
</div>
</li>
<li><p>Style adherence, check with:</p></li>
</ul>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>conda<span class="w"> </span>install<span class="w"> </span>ruff
ruff<span class="w"> </span>check<span class="w"> </span>librosa
</pre></div>
</div>
<ul>
<li><p>Ensure that your docstrings are properly formatted, check with:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>conda<span class="w"> </span>install<span class="w"> </span>numpydoc
numpydoc<span class="w"> </span>lint<span class="w"> </span>librosa/**.py
</pre></div>
</div>
</li>
<li><p>Ensure that any new functionality has valid type annotations, check with:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>mypy
python<span class="w"> </span>-m<span class="w"> </span>mypy<span class="w"> </span>librosa
</pre></div>
</div>
</li>
</ul>
<p>Some tests in tests/test_display.py use baseline images for output comparison.
If existing images need to be updated or new ones should be added:</p>
<ol class="arabic">
<li><p>Ensure that the environment is properly setup for testing (pytest with addons)</p></li>
<li><p>Run:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>pytest<span class="w"> </span>--mpl-generate-path<span class="o">=</span>tmp<span class="w"> </span>tests/test_display.py<span class="w"> </span><span class="o">[</span>-k<span class="w"> </span>ANY_TESTS_THAT_CHANGED<span class="o">]</span>
</pre></div>
</div>
</li>
<li><p>Inspect the new baseline images under tmp/</p></li>
<li><p>If (3) looks good, copy into <code class="docutils literal notranslate"><span class="pre">tests/baseline_images/test_display/</span></code> and add to the PR.</p></li>
</ol>
<p>Additionally, some functions require network access to test properly.
If you are adding tests that require network access, please mark them with <code class="docutils literal notranslate"><span class="pre">&#64;pytest.mark.network</span></code>.</p>
</section>
<section id="filing-bugs">
<h3>Filing bugs<a class="headerlink" href="#filing-bugs" title="Link to this heading">#</a></h3>
<p>We use Github issues to track all bugs and feature requests; feel free to
open an issue if you have found a bug or wish to see a feature implemented.</p>
<p>It is recommended to check that your issue complies with the
following rules before submitting:</p>
<ul>
<li><p>Verify that your issue is not being currently addressed by other
<a class="reference external" href="https://github.com/librosa/librosa/issues?q=">issues</a>
or <a class="reference external" href="https://github.com/librosa/librosa/pulls?q=">pull requests</a>.</p></li>
<li><p>Please ensure all code snippets and error messages are formatted in
appropriate code blocks.
See <a class="reference external" href="https://help.github.com/articles/creating-and-highlighting-code-blocks">Creating and highlighting code blocks</a>.</p></li>
<li><p>Please include your operating system type and version number, as well
as your Python, librosa, numpy, and scipy versions. This information
can be found by running the following code snippet:</p>
<div class="highlight-python notranslate"><div class="highlight"><pre><span></span><span class="kn">import</span><span class="w"> </span><span class="nn">platform</span><span class="p">;</span> <span class="nb">print</span><span class="p">(</span><span class="n">platform</span><span class="o">.</span><span class="n">platform</span><span class="p">())</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">sys</span><span class="p">;</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;Python&quot;</span><span class="p">,</span> <span class="n">sys</span><span class="o">.</span><span class="n">version</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">numpy</span><span class="p">;</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;NumPy&quot;</span><span class="p">,</span> <span class="n">numpy</span><span class="o">.</span><span class="n">__version__</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">scipy</span><span class="p">;</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;SciPy&quot;</span><span class="p">,</span> <span class="n">scipy</span><span class="o">.</span><span class="n">__version__</span><span class="p">)</span>
<span class="kn">import</span><span class="w"> </span><span class="nn">librosa</span><span class="p">;</span> <span class="nb">print</span><span class="p">(</span><span class="s2">&quot;librosa&quot;</span><span class="p">,</span> <span class="n">librosa</span><span class="o">.</span><span class="n">__version__</span><span class="p">)</span>
</pre></div>
</div>
</li>
</ul>
</section>
<section id="documentation">
<h3>Documentation<a class="headerlink" href="#documentation" title="Link to this heading">#</a></h3>
<p>You can edit the documentation using any text editor and then generate
the HTML output by typing <code class="docutils literal notranslate"><span class="pre">make</span> <span class="pre">html</span></code> from the docs/ directory.
The resulting HTML files will be placed in _build/html/ and are viewable
in a web browser. For detailed instructions on building the documentation, see <a class="reference external" href="https://github.com/librosa/librosa/blob/main/docs/BUILD.md">docs/BUILD.md</a>.</p>
<p>For building the documentation, you will need some additional dependencies.
These can be installed by executing the following command:</p>
<div class="highlight-shell notranslate"><div class="highlight"><pre><span></span>python<span class="w"> </span>-m<span class="w"> </span>pip<span class="w"> </span>install<span class="w"> </span>-e<span class="w"> </span><span class="s1">&#39;.[docs]&#39;</span>
</pre></div>
</div>
</section>
<section id="policy-on-using-ai-assistance-copilot-gemini-chatgpt-etc">
<h3>Policy on Using AI Assistance (Copilot, Gemini, ChatGPT, etc.)<a class="headerlink" href="#policy-on-using-ai-assistance-copilot-gemini-chatgpt-etc" title="Link to this heading">#</a></h3>
<p>We do not micromanage your development workspace, nor do we require you to track every prompt or model version used while brainstorming. If you use generative AI as an advanced search engine, a pair programmer, a rubber duck to debug tricky math, or a helper to build a boilerplate utility script, you are completely free to do so.</p>
<p>Instead of administrative tracking, we ask that you follow these principles in developing contributions:</p>
<section id="the-accountability-and-explainability-standard">
<h4>1. The Accountability and Explainability Standard<a class="headerlink" href="#the-accountability-and-explainability-standard" title="Link to this heading">#</a></h4>
<p>You are the author of your Pull Request, not the AI.
If a maintainer asks why your code is the way it is, replying “that’s just what the AI produced” is not acceptable. You must completely understand, be able to explain, and technically stand behind every line of code you submit.</p>
</section>
<section id="the-verification-imperative">
<h4>2. The Verification Imperative<a class="headerlink" href="#the-verification-imperative" title="Link to this heading">#</a></h4>
<p>If an AI assistant was used to generate code blocks, data parsers, regular expressions, or core signal processing logic, ensure that the solution falls into a category where correctness can be confidently and efficiently verified.</p>
</section>
<section id="no-ai-generated-repository-dialogue">
<h4>3. No AI-Generated Repository Dialogue<a class="headerlink" href="#no-ai-generated-repository-dialogue" title="Link to this heading">#</a></h4>
<p>While AI is welcome in your private code-generation loop, it is not welcome in our community dialogue space.</p>
<p>We (the maintainers) do reserve the right to use our own automation and AI tools in
generating issues, pull requests, or comments.
We <strong>do not</strong> invite external AI contributions of this form however, as they
generate a significant amount of work for us maintainers to process.</p>
</section>
</section>
<section id="note">
<h3>Note<a class="headerlink" href="#note" title="Link to this heading">#</a></h3>
<p>This document was gleefully adapted from <a class="reference external" href="http://scikit-learn.org/">scikit-learn</a>.</p>
<p>The AI policy was generated in part by Gemini 3.5 Flash as a synthesis of similar
policies indexed by <a class="reference external" href="https://github.com/melissawm/open-source-ai-contribution-policies">&#64;melissawm</a>.
Yes, we appreciate the irony in that, and the initial draft has been heavily revised and edited by human maintainers.</p>
</section>
</section>
</section>



                </article>
              
              
              
              
              
                <footer class="prev-next-footer d-print-none">
                  
<div class="prev-next-area">
    <a class="left-prev"
       href="changelog.html"
       title="previous page">
      <i class="fa-solid fa-angle-left"></i>
      <div class="prev-next-info">
        <p class="prev-next-subtitle">previous</p>
        <p class="prev-next-title">Changelog</p>
      </div>
    </a>
    <a class="right-next"
       href="reference/index.html"
       title="next page">
      <div class="prev-next-info">
        <p class="prev-next-subtitle">next</p>
        <p class="prev-next-title">Reference</p>
      </div>
      <i class="fa-solid fa-angle-right"></i>
    </a>
</div>
                </footer>
              
            </div>
            
            
              
                <dialog id="pst-secondary-sidebar-modal"></dialog>
                <div id="pst-secondary-sidebar" class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">


  <div class="sidebar-secondary-item">
<div
    id="pst-page-navigation-heading-2"
    class="page-toc tocsection onthispage">
    <i class="fa-solid fa-list"></i> On this page
  </div>
  <nav id="pst-page-toc-nav" class="page-toc" aria-labelledby="pst-page-navigation-heading-2">
    <ul class="pst-show_toc_level nav section-nav flex-column">
<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#contributing-code">Contributing code</a><ul class="nav section-nav flex-column">
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#how-to-contribute">How to contribute</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#filing-bugs">Filing bugs</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#documentation">Documentation</a></li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#policy-on-using-ai-assistance-copilot-gemini-chatgpt-etc">Policy on Using AI Assistance (Copilot, Gemini, ChatGPT, etc.)</a><ul class="nav section-nav flex-column">
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#the-accountability-and-explainability-standard">1. The Accountability and Explainability Standard</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#the-verification-imperative">2. The Verification Imperative</a></li>
<li class="toc-h4 nav-item toc-entry"><a class="reference internal nav-link" href="#no-ai-generated-repository-dialogue">3. No AI-Generated Repository Dialogue</a></li>
</ul>
</li>
<li class="toc-h3 nav-item toc-entry"><a class="reference internal nav-link" href="#note">Note</a></li>
</ul>
</li>
</ul>
  </nav></div>

</div></div>
              
            
          </div>
          <footer class="bd-footer-content">
            
          </footer>
        
      </main>
    </div>
  </div>
  
  <!-- Scripts loaded after <body> so the DOM is not blocked -->
  <script defer src="_static/scripts/bootstrap.js?digest=90905a2f556bf617f1a9"></script>
<script defer src="_static/scripts/pydata-sphinx-theme.js?digest=90905a2f556bf617f1a9"></script>

  <footer class="bd-footer">
<div class="bd-footer__inner bd-page-width">
  
    <div class="footer-items__start">
      
        <div class="footer-item">

  <p class="copyright">
    
      © Copyright 2013--2026, librosa development team.
      <br/>
    
  </p>
</div>
      
        <div class="footer-item">

  <p class="sphinx-version">
    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 9.1.0.
    <br/>
  </p>
</div>
      
    </div>
  
  
  
    <div class="footer-items__end">
      
        <div class="footer-item">
<p class="theme-version">
  <!-- # L10n: Setting the PST URL as an argument as this does not need to be localized -->
  Built with the <a href="https://pydata-sphinx-theme.readthedocs.io/en/stable/index.html">PyData Sphinx Theme</a> 0.20.0.
</p></div>
      
    </div>
  
</div>

  </footer>
  </body>
</html>

About

Staging area for website updates

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages