/ README.md
README.md
  1  # Arduino Library Manager list
  2  
  3  This repository contains the list of libraries in the
  4  [Arduino Library Manager](https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries#using-the-library-manager) index.
  5  
  6  ## Table of Contents
  7  
  8  <!-- toc -->
  9  
 10  - [Frequently asked questions](#frequently-asked-questions)
 11  - [Adding a library to Library Manager](#adding-a-library-to-library-manager)
 12    - [Instructions](#instructions)
 13      - [If the problem is with the pull request:](#if-the-problem-is-with-the-pull-request)
 14      - [If the problem is with the library:](#if-the-problem-is-with-the-library)
 15  - [Changing the URL of a library already in Library Manager](#changing-the-url-of-a-library-already-in-library-manager)
 16  - [Removing a library from Library Manager](#removing-a-library-from-library-manager)
 17  - [Report a problem with Library Manager](#report-a-problem-with-library-manager)
 18  
 19  <!-- tocstop -->
 20  
 21  ## Frequently asked questions
 22  
 23  For more information about Arduino Library Manager and how the index is maintained, please see [the FAQ](FAQ.md).
 24  
 25  ## Adding a library to Library Manager
 26  
 27  If you would like to make a library available for installation via Library Manager, just submit a
 28  [pull request](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests)
 29  that adds the repository URL to [the list](repositories.txt). You are welcome to add multiple libraries at once.
 30  
 31  See the instructions below for detailed instructions on how to do this via the GitHub web interface.
 32  
 33  ### Instructions
 34  
 35  1. You may want to first take a look at
 36     [the requirements for admission into the Arduino Library Manager index](FAQ.md#submission-requirements). Each submission will be checked for
 37     compliance before being accepted.
 38  1. Click the following link:<br />
 39     https://github.com/arduino/library-registry/fork<br />
 40     The "**Create a new fork**" page will open.
 41  1. Click the <kbd>Create fork</kbd> button in the "**Create a new fork**" page.<br />
 42     A "**Forking arduino/library-registry**" page will open while the fork is in the process of being created.
 43  1. Wait for the "Forking" process to finish.<br />
 44     The home page of your [fork](https://docs.github.com/get-started/quickstart/fork-a-repo) of the **library-registry** repository will open.
 45  1. Click on the file `repositories.txt` under the list of files you see in that page.<br />
 46     The "**library-registry/repositories.txt**" page will open.
 47  1. Click the pencil icon ("Edit this file") at the right side of the toolbar in the "**library-registry/repositories.txt**" page.<br />
 48     The `repositories.txt` file will open in the online text editor.
 49  1. Add the library repository's URL to the list (it doesn't matter where in the list). This should be the URL of the repository home page. For example:
 50     `https://github.com/arduino-libraries/Servo`
 51  1. Click the <kbd>Commit changes...</kbd> button located near the top right corner of the page.<br />
 52     The "**Commit changes**" dialog will open.
 53  1. Click the <kbd>Commit changes</kbd> button in the "**Commit changes**" dialog.<br />
 54     The "**library-registry/repositories.txt**" page will open.
 55  1. Click the "**library-registry**" link at the top of the "**library-registry/repositories.txt**" page.<br />
 56     The home page of your fork of the **library-registry** repository will open.
 57  1. You should see a banner on the page that says:
 58  
 59     > **This branch is 1 commit ahead of arduino:main.**
 60  
 61     Click the "**Contribute**" link near the right side of that banner.<br />
 62     A menu will open.
 63  
 64  1. Click the <kbd>Open pull request</kbd> button in the menu.<br />
 65     The "**Open a pull request**" page will open.
 66  1. In the **"Open a pull request"** window that opens, click the <kbd>Create pull request</kbd> button.
 67  
 68  The library will be automatically checked for compliance as soon as the pull request is submitted. If no problems were
 69  found, the pull request will be immediately merged and the library will be available for installation via Library
 70  Manager within a day's time.
 71  
 72  If any problems are found, a bot will comment on the pull request to tell you what is wrong. The problem may be either
 73  with your pull request or with the library.
 74  
 75  #### If the problem is with the pull request:
 76  
 77  Edit the file in the
 78  [branch](https://docs.github.com/pull-requests/collaborating-with-pull-requests/proposing-changes-to-your-work-with-pull-requests/about-branches)
 79  you submitted the pull request from in your fork of the `arduino/library-registry` repository, then commit.
 80  
 81  Doing this will update the pull request and cause the automated checks to run again.
 82  
 83  #### If the problem is with the library:
 84  
 85  1. Make the necessary fix in the library repository.
 86  1. Increment the `version` value in the library's
 87     [library.properties file](https://arduino.github.io/arduino-cli/latest/library-specification/#library-metadata).
 88  1. Create a
 89     [release](https://docs.github.com/repositories/releasing-projects-on-github/managing-releases-in-a-repository)
 90     or [tag](https://git-scm.com/docs/git-tag). The Library Manager index always uses tagged versions of the libraries,
 91     so even if the development version of the library is compliant, it can't be accepted until the latest release or tag
 92     is compliant. Alternatively, you can redo the existing release/tag if you prefer.
 93  1. Comment on your pull request here in the `arduino/library-registry` repository, mentioning **@ArduinoBot** in the
 94     comment. Doing this will cause the automated check to run again.
 95  
 96  ## Changing the URL of a library already in Library Manager
 97  
 98  Submit a pull request that changes the URL as desired in [repositories.txt](repositories.txt). This can be done by
 99  following [the instructions above](#instructions).
100  
101  Since this type of request must be reviewed by a human maintainer, please write an explanation in the pull request
102  description, making it clear that the URL is intentionally being changed.
103  
104  ## Removing a library from Library Manager
105  
106  Submit a pull request that removes the URL from [repositories.txt](repositories.txt). This can be done by following
107  [the instructions above](#instructions).
108  
109  Since this type of request must be reviewed by a human maintainer, please write an explanation in the pull request
110  description, making it clear that the URL is intentionally being removed.
111  
112  ## Report a problem with Library Manager
113  
114  First, please take a look at [the FAQ](FAQ.md). If a library release is missing from Library Manager, it is usually
115  because it was not compliant with all [the requirements](FAQ.md#update-requirements) listed in that document.
116  
117  This repository is not an appropriate place to request support or report problems with a library. Check the library's
118  own documentation for instructions or ask on the [Arduino Forum](https://forum.arduino.cc/).
119  
120  If the problem is about something else, please submit an issue report [here](https://github.com/arduino/library-registry/issues/new/choose).