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

131 Commits

Author SHA1 Message Date
per1234
14d97cbc41 Merge pull request #18 from arduino/squash
Use squash merge for submission PRs
2021-04-27 08:30:15 -07:00
per1234
9710f18cd5 Provide assistance in the event of a merge conflict
It's certain that merge conflicts will occur as submitters take time to resolve blocking issues and other submissions are
accepted in the meantime. The PR merge will fail in this case.

Previously there was no provision for handling merge conflicts. The workflow run just failed at the merge job with no
comment from the bot.

The goal is for the automated system to work with the submitter as much as possible. Towards this goal, when the merge
fails, the bot will now comment to explain the problem and provide a link to a general tutorial for using the GitHub PR
merge conflict system.

A review is requested from the Tooling Team so that they can assist in the event the user is unable to resolve the merge
conflict, or the failure was caused by something else.
2021-04-27 07:51:47 -07:00
per1234
1df5fd85b5 Use squash merge for submission PRs
There is no good reason for a submission to consist of more than one commit.

As the submitter works with the bot to produce a compliant submission, they will sometimes end up with PRs that consist
of multiple non-atomic commits, which would pollute the repository's commit history if not squashed at the time of the
merge.
2021-04-26 21:55:19 -07:00
per1234
d83eb2b22c Remove unnecessary property reference from issue number definition for comment feedback comment
The "Manage PRs" workflow can be triggered by either a `pull_request_target` or `issue_comment` event. This means that
the `issue_number` parameter of the GitHub API request must be defined using both the `github.event.pull_request.number`
and `github.event.issue.number` properties because a different one is defined depending on which event was the trigger.
The exception is the API request for the bot comment used to provide immediate feedback when the workflow is triggered by
a comment. This API request is only ever used with an issue_comment event trigger, so the
github.event.pull_request.number property is not needed.
2021-04-26 17:07:09 -07:00
per1234
de21247de0 Remove unnecessary enabled job from "Manage PRs" workflow
This job was an artifact from an earlier version of the workflow, and was no longer necessary. It only added additional
code.
2021-04-26 14:23:02 -07:00
per1234
23c59049c4 Merge pull request #13 from arduino/comment-on-comment-trigger
Provide immediate response to comment trigger
2021-04-26 01:36:58 -07:00
per1234
83b4acfac7 Provide immediate response to comment trigger
When there is a problem with the submission that must be resolved in the library repository, a comment mentioning
`@ArduinoBot` is used to trigger the "Manage PRs" workflow.

We are accustomed to seeing the checks status in the PR thread when workflows are running. However, with a comment
triggered workflow this does not happen. The only indication of the workflow running is on the "Actions" tab. This can
leave the submitter wondering if their comment had any effect as the workflow takes some time to run before providing
feedback.

This uncertainty can be avoided by making the bot immediately comment to acknowledge that the check is in progress.
2021-04-25 23:35:39 -07:00
per1234
cad90e58f6 Comment on submission acceptance
Previously, as soon as a submission was compliant, the PR was merged silently. This might leave the submitter wondering
whether the submission process is complete.

There is some uncertain delay for the library release to be added to the server, the index to be generated, and the index
to propagate through the CDN, which might result in an increased support burden as the submitters comment or open issues
asking what is happening.

This is avoided by making the bot comment on the PR thread after the PR is merged, notifying the submitter that the
process was successful and that there will be some delay before the library is available from Library Manager.

Indexer logs URLs are provided for each submission, allowing the submitter to monitor the indexing process, both
immediately after the acceptance, as well as after they make future releases.
2021-04-25 22:21:36 -07:00
per1234
e1d572d8ab Merge pull request #9 from arduino/format-yaml
Reduce excessive line lengths in YAML files
2021-04-14 02:39:19 -07:00
per1234
016fc6cb8c Use custom matrix job names in check-submissions job
The "Manage PRs" GitHub Actions workflow generates a matrix job for each library submitted by the PR. The default job
name is generated from the job's matrix object. This contains the complete submission data, which results in a long and
somewhat cryptic job name that can make the workflow run more difficult to interpret.

The only necessary information is the description of the job's purpose ("check") and the submission URL (multiple URLs
per PR are supported). A custom job name allows for only using this information in the job name.
2021-04-14 00:50:06 -07:00
per1234
d96fcc48fd Reduce excessive line lengths in YAML files
The yamllint configuration advocates for keeping line lengths within 120 characters. While exceeding this length only
results in a warning, I think it is beneficial to stay within that limit when it is possible and doesn't have a harmful
effect. In that spirit, I have reduced the long lines where this was easily done. There remain a few that are either not
possible or else not reasonable to reduce, and that's OK.
2021-04-13 17:48:16 -07:00
per1234
eafd6bbaf9 Remove dependencies caching from workflows
After I set up caching in the template workflows, doubts were raised about whether it provided any benefits. I don't know
enough about this subject to make a call on that and I have been unable to get any more information on the subject.

Since the caching significantly increases the complexity of the workflows, which may make them more difficult to maintain
and contribute to, I think it's best to just remove all the caching for now. I hope to eventually be able to revisit this
topic and restore caching in any workflows where it is definitely beneficial.
2021-04-12 02:45:29 -07:00
per1234
0c09834a08 Bring workflow into compliance with the JSON schema 2021-04-09 09:32:26 -07:00
per1234
30aeffc9b0 Add CI workflow to lint YAML files
On every push and pull request that affects relevant files, and periodically, run yamllint to check the YAML files of
the repository for issues.

The .yamllint.yml file is used to configure yamllint:
https://yamllint.readthedocs.io/en/stable/configuration.html
2021-04-09 09:32:26 -07:00
per1234
834af544d0 Add CI workflow to validate GitHub Actions workflows
On every push or pull request that affects the repository's GitHub Actions workflows, and periodically, validate them
against the JSON schema.
2021-04-09 08:52:43 -07:00
per1234
4b40e08342 Add table of contents to documentation
It will be helpful to the reader to be able to get an overview of the documentation content and quickly navigate to the
section of interest.

The table of contents are automatically generated using the markdown-toc tool.

Because it can be easy to forget to update the table of contents when the documentation content is changed, I have added
a CI workflow to check for missed updates to readme ToC. On every push or pull request that affects the repository's
documentation, it will check whether the table of contents matches the content.
2021-04-09 08:42:55 -07:00
per1234
cb3d8004fc Configure Dependabot to check for outdated actions used in workflows
Dependabot will periodically check the versions of all actions used in the repository's workflows. If any are found to
be outdated, it will submit a pull request to update them.
NOTE: Dependabot's PRs will sometimes try to pin to the patch version of the action (e.g., updating `uses: foo/bar@v1`
to `uses: foo/bar@v2.3.4`). When the action author has provided a major version ref, use that instead
(e.g., `uses: foo/bar@v2`). Dependabot will automatically close its PR once the workflow has been updated.
More information:
https://docs.github.com/en/github/administering-a-repository/keeping-your-actions-up-to-date-with-dependabot
2021-04-08 21:47:01 -07:00
per1234
7947b23061 Change license to Creative Commons Zero v1.0 Universal
Now that the parser tool code has been removed from the repository, the previous license is no longer appropriate.
2021-03-31 09:17:49 -07:00
per1234
3a5826a784 Simplify license check CI system
Now that the parser tool is moved out of the repository, it makes less sense to use the taskfile-based approach for the
CI infrastructure. In order to make the repository more contributor-friendly, the license checking system is now
confined to a single workflow file.
2021-03-31 09:17:25 -07:00
per1234
d38ccc82a0 Simplify documentation and configuration file CI system
Now that the parser tool is moved out of the repository, it makes less sense to use the taskfile-based approach for the
CI infrastructure. In order to make the repository more contributor-friendly, the documentation and configuration
checking system is now confined to the .github subfolder.
2021-03-31 09:16:20 -07:00
per1234
7d32d9911e Simplify code spell CI system
Now that the parser tool is moved out of the repository, it makes less sense to use the taskfile-based approach for the
CI infrastructure. In order to make the repository more contributor-friendly, the spell checking system is now reduced to
a single workflow file.
2021-03-31 09:16:20 -07:00
per1234
b0eccfe5b6 Move submission parser tool to dedicated repository 2021-03-31 09:16:20 -07:00
per1234
cb6c0a2bb5 Use curl to get PR diff
This approach allows the diff to be written directly to a file, rather than needing to sanitize the contents of the
output from the octokit/request-action before writing it to the file via the shell.
2021-02-01 21:44:35 -08:00
per1234
da261b4a79 Correct readme URL in bot comments 2021-02-01 02:30:33 -08:00
per1234
a7ef80e1a4 Get PR diff from GitHub API
This avoids the need to checkout the PR head ref.
2021-02-01 02:30:33 -08:00
per1234
f5928a6800 Host index source file in repository
The index source file contains the normalized URL and the metadata that can't be derived from the library releases
("types" data and locked name) for each of the libraries in the Library Manager index. It's most appropriate to store it
in the same repository as the submission list.
2021-01-20 22:06:43 -08:00
per1234
1cdeda201c Remove untested triggers from the "Manage PRs" workflow
I had intended to test these out but didn't get around to it. The workflow_dispatch might be convenient, but it's not at
all essential since the same thing can be accomplished by commenting on the PR.
2021-01-20 00:51:40 -08:00
per1234
b871bfcb5a Get PR diff in dedicated job
This isolates the PR branch checkout from the request parsing process.
2021-01-20 00:51:40 -08:00
per1234
7071c247b0 Export index entry as workflow artifact
Rather that committing directly to the index source file repository, save the index entry to a workflow artifact, which
will be consumed by the system that updates the index source file.
2021-01-20 00:51:35 -08:00
per1234
3fc5f76339 Don't use index source file for URL duplication check
It's possible to accomplish the same thing in a more simple and secure manner by using the submission list.
2021-01-20 00:51:03 -08:00
per1234
050ac29d24 Automate the Library Manager submission process
Submissions of libraries to the Arduino Library Manager index can be done by submitting a pull request adding repositor
URLs to the list. The submissions are checked for compliance wih the requirements for addition to the index and as soon
as they are passing the pull request is merged and the entries are pushed to the index source file.
2021-01-19 00:05:38 -08:00