Skip to content

Conversation

@per1234
Copy link
Contributor

@per1234 per1234 commented May 29, 2025

The arduino/compile-sketches action provides a platforms input by which the platform dependencies to be installed may be specified.

This input is useful for use cases such as:

  • a 3rd party platform dependency which requires a supplemental package index
  • a platform dependency from an alternative source (e.g., development version of a platform from a Git repo)
  • transitory platform dependencies
  • version pinning

However, the input is not required in the case where the platform is available from the primary package index, since the action will derive the platform ID from the FQBN.

The workflow was based on a workflow from another repository which does explicitly define platform dependencies, and so did require the use of the platform input. However, the platform dependencies data was removed from this workflow, so the platform input serves no purpose and its presence only makes the workflow more difficult to understand and maintain.

per1234 added 2 commits May 28, 2025 20:10
Previously, the "flow style" YAML syntax was used for this mapping. That was inconsistent with the rest of the workflow
code, which uses the "block style" that is the standard for all YAML code in Arduino projects. This type of random
mixing of the two styles makes otherwise fairly intuitive YAML code difficult to understand and maintain for anyone
without deep familiarity with the obscure details of this language.

Worse, the syntax had a form that was not specification-compliant:

https://yaml.org/spec/1.2.2/#823-block-nodes

> Flow nodes must be indented by at least one more space than the parent block collection.

Although some lenient parsers do happen to support the previous non-compliant form, such support is not guaranteed, and
non-compliance will cause a failure when used with any strict parser.
The "arduino/compile-sketches" action provides a `platforms` input by which the platform dependencies to be installed
may be specified.

This input is useful for use cases such as:

* a 3rd party platform dependency which requires a supplemental package index
* a platform dependency from an alternative source (e.g., development version of a platform from a Git repo)
* transitory platform dependencies
* version pinning

However, the input is not required in the case where the platform is available from the primary package index, since the
action will derive the platform ID from the FQBN.

The workflow was based on a workflow from another repository which did explicitly define platform dependencies, and so
did require the use of the `platform` input. However, the platform dependencies data was removed from this workflow, so
the `platform` input serves no purpose and its presence only makes the workflow more difficult to understand and
maintain.
@per1234 per1234 requested a review from cmaglie May 29, 2025 03:15
@per1234 per1234 self-assigned this May 29, 2025
@per1234 per1234 added type: imperfection Perceived defect in any part of project topic: infrastructure Related to project infrastructure labels May 29, 2025
@per1234 per1234 requested a review from eigen-value June 4, 2025 16:02
@cmaglie cmaglie merged commit cbc002e into arduino-libraries:main Jun 11, 2025
@cmaglie cmaglie deleted the unused-action-input branch June 11, 2025 19:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

topic: infrastructure Related to project infrastructure type: imperfection Perceived defect in any part of project

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants