diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 00000000..28cc386c --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,29 @@ +# Contributor Guide + +Thanks for your interest in contributing to the **Arduino Library Manager Registry**! + +## Support and Discussion + +If you would like to request assistance or discuss the **Library Manager Registry**, please make a topic on **Arduino Forum**: + +https://forum.arduino.cc/c/17 + +## Registration and Maintenance + +--- + +⚠ If you behave irresponsibly in your interactions with this repository, your Library Manager Registry privileges will be revoked. + +Carefully read and follow the instructions in any comments the bot and human maintainers make on your pull requests. If you are having trouble following the instructions, add a comment that provides a detailed description of the problem you are having and a human maintainer will provide assistance. + +Although we have set up automation for the most basic tasks, this repository is maintained by humans. So behave in a manner appropriate for interacting with humans, including clearly communicating what you are hoping to accomplish. + +--- + +If you would like to submit a library, or request registry maintenance for a library already in the registry, please follow the instructions provided in the documentation: + +[**Click here to see the documentation**](../README.md#table-of-contents) + +Make sure to read the relevant sections of the FAQ: + +[**Click here to see the FAQ**](../FAQ.md#table-of-contents) diff --git a/.github/workflows/assets/accesslist.yml b/.github/workflows/assets/accesslist.yml new file mode 100644 index 00000000..6c012cf3 --- /dev/null +++ b/.github/workflows/assets/accesslist.yml @@ -0,0 +1,46 @@ +# Access control for the Arduino Library Manager registry. +# This file is used by https://github.com/arduino/library-registry-submission-parser, via the "Manage PRs" workflow. + +# Allowlist +- host: github.com + name: per1234 + access: allow + reference: + +# Denylist +- host: github.com + name: 7Semi + access: deny + reference: https://github.com/arduino/library-registry/pull/5734#pullrequestreview-2548818476 +- host: github.com + name: ajangrahmat + access: deny + reference: https://github.com/arduino/library-registry/pull/5706#issuecomment-2588923290 +- host: github.com + name: brincode + access: deny + reference: https://github.com/arduino/library-registry/pull/4460#issuecomment-2589062464 +- host: github.com + name: DefHam140 + access: deny + reference: https://github.com/arduino/library-registry/pull/5265#issuecomment-2589039572 +- host: github.com + name: ErlTechnologies + access: deny + reference: https://github.com/arduino/library-registry/pull/4873#issuecomment-2589138298 +- host: github.com + name: kelasrobot + access: deny + reference: https://github.com/arduino/library-registry/pull/5706#issuecomment-2588923290 +- host: github.com + name: Subodh-roy2 + access: deny + reference: https://github.com/arduino/library-registry/pull/4422#issuecomment-2589051618 +- host: github.com + name: vpbharath + access: deny + reference: https://github.com/arduino/library-registry/pull/4873#issuecomment-2589138298 +- host: github.com + name: YoavPaz + access: deny + reference: https://github.com/arduino/library-registry/pull/5741#issuecomment-2589016403 diff --git a/.github/workflows/manage-prs.yml b/.github/workflows/manage-prs.yml index 9282bb92..2ad77f03 100644 --- a/.github/workflows/manage-prs.yml +++ b/.github/workflows/manage-prs.yml @@ -1,7 +1,7 @@ name: Manage PRs env: - SUBMISSION_PARSER_VERSION: 1.1.1 # See: https://github.com/arduino/library-manager-submission-parser/releases + SUBMISSION_PARSER_VERSION: 2.0.0 # See: https://github.com/arduino/library-manager-submission-parser/releases MAINTAINERS: | # GitHub user names to request reviews from in cases where PRs can't be managed automatically. - per1234 @@ -125,6 +125,7 @@ jobs: runs-on: ubuntu-latest outputs: + conclusion: ${{ steps.parse-request.outputs.conclusion }} type: ${{ steps.parse-request.outputs.type }} error: ${{ steps.parse-request.outputs.error }} arduinoLintLibraryManagerSetting: ${{ steps.parse-request.outputs.arduinoLintLibraryManagerSetting }} @@ -133,6 +134,8 @@ jobs: indexer-logs-urls: ${{ steps.parse-request.outputs.indexer-logs-urls }} steps: + # Checkout the tip of the default branch (this is the action's default ref input value when workflow is triggered + # by an issue_comment or pull_request_target event). - name: Checkout local repository uses: actions/checkout@v4 @@ -160,12 +163,15 @@ jobs: chmod u+x "${{ steps.download-parser.outputs.file-path }}" REQUEST="$( \ "${{ steps.download-parser.outputs.file-path }}" \ + --accesslist=".github/workflows/assets/accesslist.yml" \ --diffpath="${{ needs.diff.outputs.path }}/${{ needs.diff.outputs.filename }}" \ --repopath="${{ github.workspace }}" \ --listname="repositories.txt" \ + --submitter="${{ github.actor }}" \ )" # Due to limitations of the GitHub Actions workflow system, dedicated outputs must be created for use in # certain workflow fields. + echo "::set-output name=conclusion::$(echo "$REQUEST" | jq -r -c '.conclusion')" echo "::set-output name=type::$(echo "$REQUEST" | jq -r -c '.type')" echo "::set-output name=error::$(echo "$REQUEST" | jq -r -c '.error')" echo "::set-output name=arduinoLintLibraryManagerSetting::$(echo "$REQUEST" | jq -r -c '.arduinoLintLibraryManagerSetting')" @@ -191,10 +197,13 @@ jobs: labels: | - "topic: ${{ needs.parse.outputs.type }}" + # Handle problem found by the parser that can potentially be resolved by requester. parse-fail: needs: - parse - if: needs.parse.outputs.error != '' + if: > + needs.parse.outputs.conclusion != 'declined' && + needs.parse.outputs.error != '' runs-on: ubuntu-latest steps: @@ -219,6 +228,56 @@ jobs: More information: https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request + # Requester's registry privileges have been revoked. + decline-request: + needs: + - parse + if: > + needs.parse.outputs.conclusion == 'declined' && + needs.parse.outputs.error != '' + runs-on: ubuntu-latest + steps: + - name: Comment reason for declining request + uses: octokit/request-action@v2.x + if: needs.parse.outputs.error != '' + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + route: POST /repos/{owner}/{repo}/issues/{issue_number}/comments + owner: ${{ github.repository_owner }} + repo: ${{ github.event.repository.name }} + issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }} + body: | + | + Hi @${{ github.actor }} + Your request has been declined: + + ${{ env.ERROR_MESSAGE_PREFIX }}${{ needs.parse.outputs.error }} + + - name: Close PR + uses: octokit/request-action@v2.x + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + route: PATCH /repos/{owner}/{repo}/pulls/{pull_number} + owner: ${{ github.repository_owner }} + repo: ${{ github.event.repository.name }} + pull_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }} + state: closed + + - name: Add conclusion label to PR + uses: octokit/request-action@v2.x + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # See: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + route: POST /repos/{owner}/{repo}/issues/{issue_number}/labels + owner: ${{ github.repository_owner }} + repo: ${{ github.event.repository.name }} + issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }} + labels: | + - "conclusion: ${{ needs.parse.outputs.conclusion }}" + check-submissions: name: Check ${{ matrix.submission.submissionURL }} needs: @@ -226,6 +285,7 @@ jobs: if: > needs.parse.outputs.type == 'submission' || needs.parse.outputs.type == 'modification' + runs-on: ubuntu-latest strategy: fail-fast: false @@ -275,6 +335,15 @@ jobs: if: matrix.submission.error != '' run: echo "PASS=false" >> "$GITHUB_ENV" + # Parser checks are relevant in the case where request is declined due to registry access having been revoked for + # the library repository owners. However, the rest of the checks are irrelevant and may result in confusing + # comments from the bot, so should be skipped. + - name: Skip the rest of the checks if request is declined + if: > + needs.parse.outputs.conclusion == 'declined' && + env.PASS == 'true' + run: echo "PASS=false" >> "$GITHUB_ENV" + - name: Install Arduino Lint if: env.PASS == 'true' run: | @@ -418,12 +487,15 @@ jobs: run: | test -d "${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PATH }}" + # Handle problem found by the submission checks that can potentially be resolved by requester. check-submissions-fail: needs: + - parse - check-submissions-result - if: needs.check-submissions-result.outputs.pass == 'false' + if: > + needs.parse.outputs.conclusion != 'declined' && + needs.check-submissions-result.outputs.pass == 'false' runs-on: ubuntu-latest - steps: - name: Comment instructions to fix errors detected during submission checks uses: octokit/request-action@v2.x @@ -449,6 +521,37 @@ jobs: More information: https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request + decline-submissions: + needs: + - parse + - check-submissions + if: needs.parse.outputs.conclusion == 'declined' + runs-on: ubuntu-latest + steps: + - name: Close PR + uses: octokit/request-action@v2.x + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + route: PATCH /repos/{owner}/{repo}/pulls/{pull_number} + owner: ${{ github.repository_owner }} + repo: ${{ github.event.repository.name }} + pull_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }} + state: closed + + - name: Add conclusion label to PR + uses: octokit/request-action@v2.x + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + # See: https://docs.github.com/rest/issues/labels#add-labels-to-an-issue + route: POST /repos/{owner}/{repo}/issues/{issue_number}/labels + owner: ${{ github.repository_owner }} + repo: ${{ github.event.repository.name }} + issue_number: ${{ github.event.pull_request.number }}${{ github.event.issue.number }} + labels: | + - "conclusion: ${{ needs.parse.outputs.conclusion }}" + merge: needs: - diff @@ -601,6 +704,7 @@ jobs: - parse # These request types can't be automatically approved. if: > + needs.parse.outputs.conclusion != 'declined' && needs.parse.outputs.type != 'submission' && needs.parse.outputs.type != 'invalid' runs-on: ubuntu-latest @@ -627,8 +731,10 @@ jobs: needs: # Run after all other jobs - parse-fail + - decline-request - merge-fail - check-submissions-fail + - decline-submissions - label - not-submission # Run if any job failed. The workflow is configured so that jobs only fail when there is an unexpected error. diff --git a/FAQ.md b/FAQ.md index 01fd34f4..eba40611 100644 --- a/FAQ.md +++ b/FAQ.md @@ -72,6 +72,8 @@ Follow the instructions [here](README.md#adding-a-library-to-library-manager). ### What are the requirements for a library to be added to Library Manager? +- [ ] The library must be something of potential value to the Arduino community. +- [ ] The submitter must behave in a responsible manner in their interactions with the Library Manager Registry. - [ ] The library must be fully compliant with the [Arduino Library Specification](https://arduino.github.io/arduino-cli/latest/library-specification). - [ ] The library must have [a library.properties file](https://arduino.github.io/arduino-cli/latest/library-specification/#library-metadata), in compliance with the Arduino Library 1.5 format. - [ ] The library.properties file must be located in the root of the repository. diff --git a/README.md b/README.md index c25b8e1c..b0d325c6 100644 --- a/README.md +++ b/README.md @@ -33,6 +33,16 @@ See the instructions below for detailed instructions on how to do this via the G ### Instructions +--- + +⚠ If you behave irresponsibly in your interactions with this repository, your Library Manager Registry privileges will be revoked. + +Carefully read and follow the instructions in any comments the bot and human maintainers make on your pull requests. If you are having trouble following the instructions, add a comment that provides a detailed description of the problem you are having and a human maintainer will provide assistance. + +Although we have set up automation for the most basic tasks, this repository is maintained by humans. So behave in a manner appropriate for interacting with humans, including clearly communicating what you are hoping to accomplish. + +--- + 1. You may want to first take a look at [the requirements for admission into the Arduino Library Manager index](FAQ.md#submission-requirements). Each submission will be checked for compliance before being accepted. diff --git a/repositories.txt b/repositories.txt index d523147a..2e23e299 100644 --- a/repositories.txt +++ b/repositories.txt @@ -1,10 +1,10 @@ +https://github.com/rjsachse/ESP32-RTSPServer.git https://github.com/schreibfaul1/ESP32-audioI2S https://github.com/7Semi/SevenSemiSHT4x_Lib https://github.com/hasenradball/MCP23008-I2C https://github.com/roncoa/KeySequence https://github.com/juanmercadin/ReceptorRF https://github.com/valerii-fr/menux -https://github.com/7Semi/7SemiSHT4x_Library https://github.com/Moarbue/incremental-rotary-encoder https://github.com/Moarbue/arduino-button https://github.com/Moarbue/FIR-Filter @@ -37,6 +37,7 @@ https://github.com/DigitalCodesign/MentorBit-Pulsadores https://github.com/DigitalCodesign/MentorBit-RGB https://github.com/DigitalCodesign/MentorBit-Ultrasonidos https://github.com/DigitalCodesign/MentorBit-Zumbador +https://github.com/ddchung/Async-HC-SR04-Lib https://github.com/DigitalCodesign/Puertas-Logicas-Plugin https://github.com/median-dispersion/Non-Blocking-Melody https://github.com/median-dispersion/XPT2046-Driver @@ -880,6 +881,10 @@ https://github.com/Andy4495/LED744511 https://github.com/Andy4495/SWI2C https://github.com/Andy4495/TIL306 https://github.com/Andy4495/TLC591x +https://github.com/Andy4495/LCD_SharpBoosterPack_SPI +https://github.com/Andy4495/OneMsTaskTimer +https://github.com/Andy4495/Energia-EducationalBP_MKII +https://github.com/Andy4495/Energia-MultiTasking https://github.com/andydoro/DST_RTC https://github.com/angrest/pocketBME280 https://github.com/aniket-hpp/TFT_eSPI_Scroll @@ -2291,6 +2296,7 @@ https://github.com/EnviroDIY/KellerModbus https://github.com/EnviroDIY/SensorModbusMaster https://github.com/EnviroDIY/Sodaq_DS3231 https://github.com/EnviroDIY/YosemitechModbus +https://github.com/EnviroDIY/GeoluxCamera https://github.com/eoh-jsc/era-lib https://github.com/epsilonrt/ad7124 https://github.com/epsilonrt/EepromSecureData @@ -5163,6 +5169,9 @@ https://github.com/rei-vilo/PDLS_EXT3_Basic_Global https://github.com/rei-vilo/PDLS_EXT3_Basic_Touch https://github.com/rei-vilo/PDLS_EXT3_Basic_Wide https://github.com/rei-vilo/PDLS_EXT4_Basic_Matter +https://github.com/rei-vilo/PDLS_Common +https://github.com/rei-vilo/PDLS_Basic +https://github.com/PervasiveDisplays/Pervasive_Wide_Medium https://github.com/reiniiriarios/arduino-mqtt-looped https://github.com/remicaumette/esp8266-redis https://github.com/remocons/boho-arduino @@ -5336,6 +5345,8 @@ https://github.com/RobTillaart/Adler https://github.com/RobTillaart/ADS1X15 https://github.com/RobTillaart/ADT7470 https://github.com/RobTillaart/AGS02MA +https://github.com/RobTillaart/AGS2616 +https://github.com/RobTillaart/AGS3870 https://github.com/RobTillaart/AGS3871 https://github.com/RobTillaart/AM2315 https://github.com/RobTillaart/AM2315C @@ -5346,6 +5357,7 @@ https://github.com/RobTillaart/AnalogUVSensor https://github.com/RobTillaart/Angle https://github.com/RobTillaart/AngleConvertor https://github.com/RobTillaart/ANSI +https://github.com/RobTillaart/APDS9900 https://github.com/RobTillaart/AS5600 https://github.com/RobTillaart/AsyncAnalog https://github.com/RobTillaart/AtomicWeight @@ -5502,6 +5514,7 @@ https://github.com/RobTillaart/PCA9632 https://github.com/RobTillaart/PCA9634 https://github.com/RobTillaart/PCA9635 https://github.com/RobTillaart/PCA9685_RT +https://github.com/RobTillaart/PCA9698_RT https://github.com/RobTillaart/PCF8574 https://github.com/RobTillaart/PCF8575 https://github.com/RobTillaart/PCF8591 @@ -5525,7 +5538,9 @@ https://github.com/RobTillaart/RAIN https://github.com/RobTillaart/randomHelpers https://github.com/RobTillaart/relativity https://github.com/RobTillaart/rotaryDecoder +https://github.com/RobTillaart/rotaryDecoder8 https://github.com/RobTillaart/rotaryDecoderSwitch +https://github.com/RobTillaart/rotaryDecoderSwitch5 https://github.com/RobTillaart/RS485 https://github.com/RobTillaart/RunAvgWeight https://github.com/RobTillaart/runningAngle @@ -5554,7 +5569,9 @@ https://github.com/RobTillaart/Student https://github.com/RobTillaart/SWSerialOut https://github.com/RobTillaart/SWSPI https://github.com/RobTillaart/TCA9548 +https://github.com/RobTillaart/TCA9554 https://github.com/RobTillaart/TCA9555 +https://github.com/RobTillaart/TCS3210 https://github.com/RobTillaart/Temperature https://github.com/RobTillaart/TEMT6000 https://github.com/RobTillaart/timing @@ -5733,7 +5750,6 @@ https://github.com/Seeed-Studio/Grove_LED_Matrix_Driver https://github.com/Seeed-Studio/Grove_LoRa_433MHz_and_915MHz_RF https://github.com/Seeed-Studio/Grove_Mini_Track_Ball https://github.com/Seeed-Studio/Grove_Motor_Driver_TB6612FNG -https://github.com/Seeed-Studio/Grove_Serial_MP3_Player_V2.0 https://github.com/Seeed-Studio/Grove_SHT31_Temp_Humi_Sensor https://github.com/Seeed-Studio/Grove_Sunlight_Sensor https://github.com/Seeed-Studio/Grove_Temper_Humidity_TH02 @@ -7638,13 +7654,13 @@ https://github.com/humacompany/Huma_Buttons https://github.com/KriBielinski/PrecDueTimer https://github.com/KriBielinski/InterruptStepper https://github.com/ripred/CodeSizeProfiler -https://github.com/KDaniels-dev/Stepper595 +https://github.com/KDDaniels/Stepper595 https://github.com/Stutchbury/InputEvents https://github.com/QuickSpot/walter-arduino https://github.com/sagar-koirala/TelloESP32 https://github.com/AlessioSavelli/DMXasLED https://github.com/zimbora/EspMQTTClient -https://github.com/npuckett/AltController +https://github.com/DigitalFuturesOCADU/AltController https://github.com/digitalfen/ArtificialDateTime https://github.com/digitalfen/PseudoDateTime https://github.com/digitalfen/ArtificialRTC @@ -7662,13 +7678,20 @@ https://github.com/moononournation/Dev_Device_Pins.git https://github.com/ELOWRO/ADS1119 https://github.com/kelasrobot/KelasRobotIO https://github.com/rescenic/rescenicio -https://github.com/JokoArdh/inIo https://github.com/robbywm/RobbyIO/ https://github.com/cakraawijaya/MQ2_LPG https://github.com/edwiyanto/CreatorKidsIO https://github.com/cakraawijaya/ESP_FC28 https://github.com/CMB27/ModbusSlaveLogic https://github.com/wwhai/MOTY-Mini-Temperature-Sensor.git -https://github.com/kelasrobot/FoonteDuino https://github.com/stacknix/stackmq-esp32 https://github.com/marekburiak/ESP32_MQTTClient +https://github.com/levkovigor/PTZProtocolHandler +https://github.com/Alex-Stone-Github/pepstep +https://github.com/AirNgin/Airngin-esp32-mqtt-client +https://github.com/samy101/edge-ai-arduino-library +https://github.com/robertsonics/WAV_Trigger_Pro_Qwiic_Arduino_Library +https://github.com/YoavPaz/I2CR-CPP +https://github.com/Alex-Stone-Github/CNCShield +https://github.com/bitbank2/FastEPD +https://github.com/jerry-magnin/Mem24CSM01