1
0
mirror of https://github.com/arduino/library-registry.git synced 2025-11-05 10:50:36 +03:00

Merge branch 'main' into main

This commit is contained in:
MatteoPologruto
2025-09-26 07:12:04 -07:00
committed by GitHub
15 changed files with 1844 additions and 113 deletions

29
.github/CONTRIBUTING.md vendored Normal file
View File

@@ -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)

View File

@@ -7,6 +7,9 @@ updates:
# See: https://docs.github.com/en/code-security/supply-chain-security/keeping-your-actions-up-to-date-with-dependabot # See: https://docs.github.com/en/code-security/supply-chain-security/keeping-your-actions-up-to-date-with-dependabot
- package-ecosystem: github-actions - package-ecosystem: github-actions
directory: / # Check the repository's workflows under /.github/workflows/ directory: / # Check the repository's workflows under /.github/workflows/
assignees:
- per1234
open-pull-requests-limit: 100
schedule: schedule:
interval: daily interval: daily
labels: labels:
@@ -14,6 +17,9 @@ updates:
- package-ecosystem: github-actions - package-ecosystem: github-actions
target-branch: production target-branch: production
directory: / directory: /
assignees:
- per1234
open-pull-requests-limit: 100
schedule: schedule:
interval: daily interval: daily
labels: labels:
@@ -21,6 +27,9 @@ updates:
- package-ecosystem: gomod - package-ecosystem: gomod
target-branch: production target-branch: production
directory: /.github/workflows/assets/validate-registry/ directory: /.github/workflows/assets/validate-registry/
assignees:
- per1234
open-pull-requests-limit: 100
schedule: schedule:
interval: daily interval: daily
labels: labels:
@@ -28,6 +37,9 @@ updates:
- package-ecosystem: pip - package-ecosystem: pip
target-branch: production target-branch: production
directory: / directory: /
assignees:
- per1234
open-pull-requests-limit: 100
schedule: schedule:
interval: daily interval: daily
labels: labels:

55
.github/workflows/assets/accesslist.yml vendored Normal file
View File

@@ -0,0 +1,55 @@
# 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
# They later changed their username to galihru, for which an additional entry was added.
name: 4211421036
access: deny
reference: https://github.com/arduino/library-registry/pull/6269#pullrequestreview-2813557457
- 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: galihru
access: deny
reference: https://github.com/arduino/library-registry/pull/6514#pullrequestreview-2969201873
- 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
- host: github.com
name: tremaru
access: deny
reference: https://github.com/arduino/library-registry/pull/6697

View File

@@ -34,7 +34,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install Ruby - name: Install Ruby
uses: ruby/setup-ruby@v1 uses: ruby/setup-ruby@v1

View File

@@ -34,7 +34,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Initialize markdownlint-cli problem matcher - name: Initialize markdownlint-cli problem matcher
uses: xt0rted/markdownlint-problem-matcher@v3 uses: xt0rted/markdownlint-problem-matcher@v3
@@ -50,7 +50,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Determine whether only modified files should be checked - name: Determine whether only modified files should be checked
id: check-modified id: check-modified

View File

@@ -212,7 +212,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install Prettier - name: Install Prettier
run: sudo npm install --global prettier run: sudo npm install --global prettier

View File

@@ -33,7 +33,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Install markdown-toc - name: Install markdown-toc
run: sudo npm install --global markdown-toc run: sudo npm install --global markdown-toc

View File

@@ -22,7 +22,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Download JSON schema for GitHub Actions workflows - name: Download JSON schema for GitHub Actions workflows
id: download-schema id: download-schema

View File

@@ -67,7 +67,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Check YAML - name: Check YAML
continue-on-error: ${{ matrix.configuration.continue-on-error }} continue-on-error: ${{ matrix.configuration.continue-on-error }}

View File

@@ -1,11 +1,11 @@
name: Manage PRs name: Manage PRs
env: 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: | MAINTAINERS: |
# GitHub user names to request reviews from in cases where PRs can't be managed automatically. # GitHub user names to request reviews from in cases where PRs can't be managed automatically.
- per1234 - per1234
CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT: check-submissions-failed CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PREFIX: check-submissions-failed-
ERROR_MESSAGE_PREFIX: ":x: **ERROR:** " ERROR_MESSAGE_PREFIX: ":x: **ERROR:** "
on: on:
@@ -114,7 +114,7 @@ jobs:
run: echo "::set-output name=head::$(jq -c .head.sha "${{ steps.configuration.outputs.path }}/${{ env.JSON_IDENTIFIER }}")" run: echo "::set-output name=head::$(jq -c .head.sha "${{ steps.configuration.outputs.path }}/${{ env.JSON_IDENTIFIER }}")"
- name: Upload diff file to workflow artifact - name: Upload diff file to workflow artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
path: ${{ steps.configuration.outputs.path }}/${{ steps.configuration.outputs.filename }} path: ${{ steps.configuration.outputs.path }}/${{ steps.configuration.outputs.filename }}
name: ${{ steps.configuration.outputs.artifact }} name: ${{ steps.configuration.outputs.artifact }}
@@ -125,6 +125,7 @@ jobs:
runs-on: ubuntu-latest runs-on: ubuntu-latest
outputs: outputs:
conclusion: ${{ steps.parse-request.outputs.conclusion }}
type: ${{ steps.parse-request.outputs.type }} type: ${{ steps.parse-request.outputs.type }}
error: ${{ steps.parse-request.outputs.error }} error: ${{ steps.parse-request.outputs.error }}
arduinoLintLibraryManagerSetting: ${{ steps.parse-request.outputs.arduinoLintLibraryManagerSetting }} arduinoLintLibraryManagerSetting: ${{ steps.parse-request.outputs.arduinoLintLibraryManagerSetting }}
@@ -133,8 +134,10 @@ jobs:
indexer-logs-urls: ${{ steps.parse-request.outputs.indexer-logs-urls }} indexer-logs-urls: ${{ steps.parse-request.outputs.indexer-logs-urls }}
steps: 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 - name: Checkout local repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Download submission parser - name: Download submission parser
id: download-parser id: download-parser
@@ -144,13 +147,13 @@ jobs:
location: ${{ runner.temp }} location: ${{ runner.temp }}
- name: Download diff - name: Download diff
uses: actions/download-artifact@v3 uses: actions/download-artifact@v5
with: with:
path: ${{ needs.diff.outputs.path }} path: ${{ needs.diff.outputs.path }}
name: ${{ needs.diff.outputs.artifact }} name: ${{ needs.diff.outputs.artifact }}
- name: Remove no longer needed artifact - name: Remove no longer needed artifact
uses: geekyeggo/delete-artifact@v2 uses: geekyeggo/delete-artifact@v5
with: with:
name: ${{ needs.diff.outputs.artifact }} name: ${{ needs.diff.outputs.artifact }}
@@ -160,12 +163,15 @@ jobs:
chmod u+x "${{ steps.download-parser.outputs.file-path }}" chmod u+x "${{ steps.download-parser.outputs.file-path }}"
REQUEST="$( \ REQUEST="$( \
"${{ steps.download-parser.outputs.file-path }}" \ "${{ steps.download-parser.outputs.file-path }}" \
--accesslist=".github/workflows/assets/accesslist.yml" \
--diffpath="${{ needs.diff.outputs.path }}/${{ needs.diff.outputs.filename }}" \ --diffpath="${{ needs.diff.outputs.path }}/${{ needs.diff.outputs.filename }}" \
--repopath="${{ github.workspace }}" \ --repopath="${{ github.workspace }}" \
--listname="repositories.txt" \ --listname="repositories.txt" \
--submitter="${{ github.actor }}" \
)" )"
# Due to limitations of the GitHub Actions workflow system, dedicated outputs must be created for use in # Due to limitations of the GitHub Actions workflow system, dedicated outputs must be created for use in
# certain workflow fields. # 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=type::$(echo "$REQUEST" | jq -r -c '.type')"
echo "::set-output name=error::$(echo "$REQUEST" | jq -r -c '.error')" echo "::set-output name=error::$(echo "$REQUEST" | jq -r -c '.error')"
echo "::set-output name=arduinoLintLibraryManagerSetting::$(echo "$REQUEST" | jq -r -c '.arduinoLintLibraryManagerSetting')" echo "::set-output name=arduinoLintLibraryManagerSetting::$(echo "$REQUEST" | jq -r -c '.arduinoLintLibraryManagerSetting')"
@@ -191,10 +197,13 @@ jobs:
labels: | labels: |
- "topic: ${{ needs.parse.outputs.type }}" - "topic: ${{ needs.parse.outputs.type }}"
# Handle problem found by the parser that can potentially be resolved by requester.
parse-fail: parse-fail:
needs: needs:
- parse - parse
if: needs.parse.outputs.error != '' if: >
needs.parse.outputs.conclusion != 'declined' &&
needs.parse.outputs.error != ''
runs-on: ubuntu-latest runs-on: ubuntu-latest
steps: steps:
@@ -219,6 +228,56 @@ jobs:
More information: More information:
https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request 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: check-submissions:
name: Check ${{ matrix.submission.submissionURL }} name: Check ${{ matrix.submission.submissionURL }}
needs: needs:
@@ -226,6 +285,7 @@ jobs:
if: > if: >
needs.parse.outputs.type == 'submission' || needs.parse.outputs.type == 'submission' ||
needs.parse.outputs.type == 'modification' needs.parse.outputs.type == 'modification'
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
@@ -275,6 +335,15 @@ jobs:
if: matrix.submission.error != '' if: matrix.submission.error != ''
run: echo "PASS=false" >> "$GITHUB_ENV" 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 - name: Install Arduino Lint
if: env.PASS == 'true' if: env.PASS == 'true'
run: | run: |
@@ -376,15 +445,23 @@ jobs:
if: env.PASS == 'false' if: env.PASS == 'false'
run: touch ${{ env.FAIL_FLAG_PATH }} # Arbitrary file to provide content for the flag artifact run: touch ${{ env.FAIL_FLAG_PATH }} # Arbitrary file to provide content for the flag artifact
# Each workflow artifact must have a unique name. The job matrix doesn't provide a guaranteed unique string to use
# for a name so it is necessary to generate one.
- name: Generate unique artifact suffix
if: env.PASS == 'false'
run: |
echo "CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_SUFFIX=$(cat /proc/sys/kernel/random/uuid)" >> "$GITHUB_ENV"
# The value of a job matrix output is set by whichever job happened to run last, not of use for this application. # The value of a job matrix output is set by whichever job happened to run last, not of use for this application.
# So it's necessary to use an alternative means of indicating that at least one submission failed the checks. # So it's necessary to use an alternative means of indicating that at least one submission failed the checks.
- name: Upload failure flag artifact - name: Upload failure flag artifact
if: env.PASS == 'false' if: env.PASS == 'false'
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
if-no-files-found: error if-no-files-found: error
include-hidden-files: true
path: ${{ env.FAIL_FLAG_PATH }} path: ${{ env.FAIL_FLAG_PATH }}
name: ${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT }} name: ${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PREFIX }}${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_SUFFIX }}
check-submissions-result: check-submissions-result:
needs: check-submissions needs: check-submissions
@@ -393,20 +470,32 @@ jobs:
outputs: outputs:
pass: ${{ steps.failure-flag-exists.outcome == 'failure' }} pass: ${{ steps.failure-flag-exists.outcome == 'failure' }}
env:
CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PATH: ${{ github.workspace }}/artifacts
steps: steps:
- name: Download submission check failure flag artifacts
uses: actions/download-artifact@v5
with:
path: ${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PATH }}
pattern: ${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT_PREFIX }}*
- name: Check for existence of submission check failure flag artifact - name: Check for existence of submission check failure flag artifact
id: failure-flag-exists id: failure-flag-exists
uses: actions/download-artifact@v3
continue-on-error: true continue-on-error: true
with: # actions/download-artifact does not create a folder per its `path` input if no artifacts match `pattern`.
name: ${{ env.CHECK_SUBMISSIONS_FAIL_FLAG_ARTIFACT }} 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: check-submissions-fail:
needs: needs:
- parse
- check-submissions-result - 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 runs-on: ubuntu-latest
steps: steps:
- name: Comment instructions to fix errors detected during submission checks - name: Comment instructions to fix errors detected during submission checks
uses: octokit/request-action@v2.x uses: octokit/request-action@v2.x
@@ -432,6 +521,37 @@ jobs:
More information: More information:
https://github.com/${{ github.repository }}/blob/main/README.md#if-the-problem-is-with-the-pull-request 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: merge:
needs: needs:
- diff - diff
@@ -474,7 +594,7 @@ jobs:
- name: Checkout index source branch - name: Checkout index source branch
if: steps.merge.outcome == 'success' if: steps.merge.outcome == 'success'
uses: actions/checkout@v4 uses: actions/checkout@v5
with: with:
ref: production ref: production
@@ -584,6 +704,7 @@ jobs:
- parse - parse
# These request types can't be automatically approved. # These request types can't be automatically approved.
if: > if: >
needs.parse.outputs.conclusion != 'declined' &&
needs.parse.outputs.type != 'submission' && needs.parse.outputs.type != 'submission' &&
needs.parse.outputs.type != 'invalid' needs.parse.outputs.type != 'invalid'
runs-on: ubuntu-latest runs-on: ubuntu-latest
@@ -610,8 +731,10 @@ jobs:
needs: needs:
# Run after all other jobs # Run after all other jobs
- parse-fail - parse-fail
- decline-request
- merge-fail - merge-fail
- check-submissions-fail - check-submissions-fail
- decline-submissions
- label - label
- not-submission - not-submission
# Run if any job failed. The workflow is configured so that jobs only fail when there is an unexpected error. # Run if any job failed. The workflow is configured so that jobs only fail when there is an unexpected error.

View File

@@ -19,7 +19,7 @@ jobs:
steps: steps:
- name: Checkout - name: Checkout
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Spell check - name: Spell check
uses: codespell-project/actions-codespell@master uses: codespell-project/actions-codespell@master

View File

@@ -19,7 +19,7 @@ on:
env: env:
CONFIGURATIONS_FOLDER: .github/label-configuration-files CONFIGURATIONS_FOLDER: .github/label-configuration-files
CONFIGURATIONS_ARTIFACT: label-configuration-files CONFIGURATIONS_ARTIFACT_PREFIX: label-configuration-file-
jobs: jobs:
check: check:
@@ -27,7 +27,7 @@ jobs:
steps: steps:
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Download JSON schema for labels configuration file - name: Download JSON schema for labels configuration file
id: download-schema id: download-schema
@@ -70,13 +70,13 @@ jobs:
file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }} file-url: https://raw.githubusercontent.com/arduino/tooling-project-assets/main/workflow-templates/assets/sync-labels/${{ matrix.filename }}
- name: Pass configuration files to next job via workflow artifact - name: Pass configuration files to next job via workflow artifact
uses: actions/upload-artifact@v3 uses: actions/upload-artifact@v4
with: with:
path: | path: |
*.yaml *.yaml
*.yml *.yml
if-no-files-found: error if-no-files-found: error
name: ${{ env.CONFIGURATIONS_ARTIFACT }} name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}${{ matrix.filename }}
sync: sync:
needs: download needs: download
@@ -105,18 +105,19 @@ jobs:
echo "::set-output name=flag::--dry-run" echo "::set-output name=flag::--dry-run"
- name: Checkout repository - name: Checkout repository
uses: actions/checkout@v4 uses: actions/checkout@v5
- name: Download configuration files artifact - name: Download configuration file artifacts
uses: actions/download-artifact@v3 uses: actions/download-artifact@v5
with: with:
name: ${{ env.CONFIGURATIONS_ARTIFACT }} merge-multiple: true
pattern: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
path: ${{ env.CONFIGURATIONS_FOLDER }} path: ${{ env.CONFIGURATIONS_FOLDER }}
- name: Remove unneeded artifact - name: Remove unneeded artifacts
uses: geekyeggo/delete-artifact@v2 uses: geekyeggo/delete-artifact@v5
with: with:
name: ${{ env.CONFIGURATIONS_ARTIFACT }} name: ${{ env.CONFIGURATIONS_ARTIFACT_PREFIX }}*
- name: Merge label configuration files - name: Merge label configuration files
run: | run: |

14
FAQ.md
View File

@@ -26,6 +26,7 @@
- [When I install a library that I know depends on another library, will this other library be installed as well?](#when-i-install-a-library-that-i-know-depends-on-another-library-will-this-other-library-be-installed-as-well) - [When I install a library that I know depends on another library, will this other library be installed as well?](#when-i-install-a-library-that-i-know-depends-on-another-library-will-this-other-library-be-installed-as-well)
- [Can I install multiple versions of one library and use the proper one in my sketches?](#can-i-install-multiple-versions-of-one-library-and-use-the-proper-one-in-my-sketches) - [Can I install multiple versions of one library and use the proper one in my sketches?](#can-i-install-multiple-versions-of-one-library-and-use-the-proper-one-in-my-sketches)
- [How can I remove a library I installed via Library Manager?](#how-can-i-remove-a-library-i-installed-via-library-manager) - [How can I remove a library I installed via Library Manager?](#how-can-i-remove-a-library-i-installed-via-library-manager)
- [Security & Malware Reporting](#security--malware-reporting)
<!-- tocstop --> <!-- tocstop -->
@@ -43,9 +44,10 @@ When a library is [added to the library list](README.md#adding-a-library-to-libr
More information: More information:
- https://docs.arduino.cc/software/ide-v2/tutorials/ide-v2-installing-a-library#installing-a-library
- https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries#using-the-library-manager - https://docs.arduino.cc/software/ide-v1/tutorials/installing-libraries#using-the-library-manager
- https://arduino.github.io/arduino-cli/latest/commands/arduino-cli_lib/ - https://arduino.github.io/arduino-cli/latest/commands/arduino-cli_lib/
- https://create.arduino.cc/projecthub/Arduino_Genuino/getting-started-with-arduino-web-editor-on-various-platforms-4b3e4a - https://docs.arduino.cc/arduino-cloud/guides/editor/#library-manager
### How is the Library Manager index generated? ### How is the Library Manager index generated?
@@ -70,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? ### 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 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 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. - [ ] The library.properties file must be located in the root of the repository.
@@ -195,3 +199,11 @@ This version of the Arduino IDE does not have an integrated uninstall functional
#### Arduino CLI #### Arduino CLI
Libraries can be uninstalled via [the `arduino-cli lib uninstall` command](https://arduino.github.io/arduino-cli/latest/commands/arduino-cli_lib_uninstall/). Libraries can be uninstalled via [the `arduino-cli lib uninstall` command](https://arduino.github.io/arduino-cli/latest/commands/arduino-cli_lib_uninstall/).
## Security & Malware Reporting
If you think you found a vulnerability, malware or other security-related defect in any Arduino Library projects, please take a look at our security policy and report it to our Security Team 🛡️.
Thank you!
E-mail contact: security@arduino.cc

View File

@@ -15,6 +15,7 @@ This repository contains the list of libraries in the
- [Changing the URL of a library already in Library Manager](#changing-the-url-of-a-library-already-in-library-manager) - [Changing the URL of a library already in Library Manager](#changing-the-url-of-a-library-already-in-library-manager)
- [Removing a library from Library Manager](#removing-a-library-from-library-manager) - [Removing a library from Library Manager](#removing-a-library-from-library-manager)
- [Report a problem with Library Manager](#report-a-problem-with-library-manager) - [Report a problem with Library Manager](#report-a-problem-with-library-manager)
- [Security & Malware Reporting](#security--malware-reporting)
<!-- tocstop --> <!-- tocstop -->
@@ -32,6 +33,16 @@ See the instructions below for detailed instructions on how to do this via the G
### Instructions ### 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 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 [the requirements for admission into the Arduino Library Manager index](FAQ.md#submission-requirements). Each submission will be checked for
compliance before being accepted. compliance before being accepted.
@@ -118,3 +129,11 @@ This repository is not an appropriate place to request support or report problem
own documentation for instructions or ask on the [Arduino Forum](https://forum.arduino.cc/). own documentation for instructions or ask on the [Arduino Forum](https://forum.arduino.cc/).
If the problem is about something else, please submit an issue report [here](https://github.com/arduino/library-registry/issues/new/choose). If the problem is about something else, please submit an issue report [here](https://github.com/arduino/library-registry/issues/new/choose).
## Security & Malware Reporting
If you think you found a vulnerability, malware or other security-related defect in any Arduino Library projects, please take a look at our security policy and report it to our Security Team 🛡️.
Thank you!
E-mail contact: security@arduino.cc

File diff suppressed because it is too large Load Diff