1. 27 Aug, 2021 1 commit
  2. 26 Aug, 2021 3 commits
  3. 25 Aug, 2021 2 commits
  4. 24 Aug, 2021 5 commits
  5. 23 Aug, 2021 1 commit
    • Silvano Cerza's avatar
      Add support for Pluggable Discoveries (#1333) · ec027a7f
      Silvano Cerza authored
      * [skip changelog] Add DiscoveryManager to PackageManager
      
      * Add loading of PluggableDiscoveries when loading a platform release
      
      * Added compatibility layer for non-pluggable platforms
      
      * Implemented board list with discoveries
      
      * Implemented discovery loading after initialization
      
      * Implemented board watch with discoveries
      
      * Fix load discoveries tests
      
      * Fix some issues with board list watcher
      
      * Fix FindToolsRequiredFromPlatformRelease not returning discoveries
      
      * Enhanced handling of some discoveries states
      
      * Fix PackageManager reset
      
      * Add function to convert discovery.Port to rpc.Port
      
      * Moved reference argument parsing to new package
      
      * Fix functions docstrings
      
      * Remove duplicated code to initialize Sketch path
      
      * Add property conversion for platform not supporting pluggable discovery
      
      * Fix board list watch not working
      
      * Fix crash when converting Port to rpc struct
      
      * Add generic Port argument
      
      * Change gRPC upload functions to use new Port message
      
      * Add support for upload user fields
      
      * Fix upload unit tests
      
      * Fix code naming issues
      
      * Added builtin:mdns-discovery
      
      * Do not panic if discovery tool is not installed
      
      * Implemented port/protocol detection at CLI startup time
      
      * Perform 1200bps-touch only on serial ports
      
      * Added missing properties for pluggable upload
      
      * Correctly implemented 'board list' timeout option
      
      * Updated mdns-discovery to 0.9.2
      
      * Add documentation
      
      * Add board properties to board list command and gRPC function
      
      * Fix documentation and code comments
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Fix crash when attempting upload without specifying port address
      
      * Fix unit tests
      
      * Update go-properties-orderedmap to fix discovery properties issues
      
      * Fix more documentation
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Clarify pluggable discovery specification
      
      * More documentation fixes
      
      * Add upload_port properties docs in platform specification
      
      * Change links from pluggable discovery RFC to official docs
      
      * Add more upload mock integration tests
      
      * Fix integration tests
      
      * Change property to declare pluggable discoveries
      
      * Change property to declare pluggable discoveries
      
      * Fix documentation
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Fix loading of platform not supporting pluggable discovery
      
      * Fix more documentation
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Add pluggable discovery states documentation
      
      * Enhanced handling of pluggable discoveries states
      
      * Discoveries processes are now killed if the HELLO command fails
      
      * Add pluggable discovery logging
      
      * Enhanced handling of failing pluggable discoveries
      
      * Fix pluggable discoveries parallelization
      
      * Discoveries event channels are now created when start sync is called
      
      * Cached ports are now reset on discovery stop
      
      * Renamed ListSync methods to ListCachedPorts
      
      * Pluggable discovery upload user fields are now limited to 50 chars
      
      * Fix i18n strings
      
      * Fix failing integration tests
      
      * Fix i18n data
      
      * Fix integration tests again
      
      * [skip changelog] Internationalize strings added for pluggable discovery support (#1384)
      
      * Update docs/pluggable-discovery-specification.md
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Fix failing workflows
      
      * Updated upload-mock tests for generation
      
      * Added a lot of mock upload test (also with programmer option)
      
      * test_upload_mock: Handle '{' and '}' in recipes
      
      * network ota: autoconvert network_patter from legacy
      
      * Automatically add port detection properties for network discovery
      
      * Slightly improved 'board list' text output
      
      * Default 'board list' timeout to 1s
      
      * Added some code review fixes
      
      * Added unit test for legacy-package conversion to pluggable discovery
      Co-authored-by: default avatarCristian Maglie <c.maglie@arduino.cc>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      ec027a7f
  6. 20 Aug, 2021 1 commit
    • per1234's avatar
      [skip changelog] Use major version ref for `actions/github-script` action (#1404) · 3aceff5f
      per1234 authored
      Use of the major version ref will cause the workflow to benefit from ongoing development to its `actions/github-script`
      GitHub Actions action dependency at each patch or minor release up until such time as a new major release is made.
      Dependabot will submit a PR at that time, which will serve as the notification that a newer version is available. At that
      time, the maintainer should evaluate whether any changes to the workflow are required by the breaking change that
      triggered the major release before manually updating the major ref (i.e., `uses: actions/github-script@v5`).
      3aceff5f
  7. 17 Aug, 2021 1 commit
    • per1234's avatar
      [skip changelog] Run relevant workflows on release branch creation (#1400) · 1985936d
      per1234 authored
      * [skip changelog] Run relevant workflows on release branch creation
      
      The trunk-based development strategy is employed by this repository. This means that the release branch may contain a
      subset of the history of the default branch.
      
      The status of the GitHub Actions workflows should be evaluated before making a release. However, this is not so simple as
      checking the status of the commit at the tip of the release branch. The reason is that, for the sake of efficiency, the
      workflows are configured to run only when the processes are relevant to the trigger event (e.g., no need to run the Go
      unit tests for a change to the readme).
      
      In the case of the default branch, you can simply set the workflow runs filter to that branch and then check the result
      of the latest run of each workflow of interest. However, that was not possible to do with the release branch since it
      might be that the workflow was never run in that branch. The status of the latest run of the workflow in the default
      branch might not match the status for the release branch if the release branch does not contain the full history.
      
      For this reason, it will be helpful to trigger all relevant workflows on the creation of a release branch. This will
      ensure that each of those workflows will always have at least one run in the release branch. Subsequent commits pushed to
      the branch can run based on their usual trigger filters and the status of the latest run of each workflow in the branch
      will provide an accurate indication of the state of that branch.
      
      Branches are created for purposes other than releases, most notably feature branches to stage work for a pull request.
      Because the workflows are very comprehensive, it would not be convenient or efficient to run them on the creation of
      every feature branch.
      
      Unfortunately, GitHub Actions does not support filters on the `create` event of branch creation like it does for the
      `push` and `pull_request` events. There is support for a `branches` filter of the `push` event, but that filter is an AND
      to the `paths` filter and this application requires an OR. For this reason, the workflows must be triggered by the
      creation of any branch. The unwanted job runs are prevented by adding a `run-determination` job with the branch filter
      handled by Bash commands. The other jobs of the workflow use this `run-determination` job as a dependency, only running
      when it indicates they should via a job output. Because this minimal `run-determination` job runs very quickly, it is
      roughly equivalent to the workflow having been skipped entirely for non-release branch creations. This approach has been
      in use for some time already in the website deployment workflow.
      
      * [skip changlog] Simplify jobs run determination logic
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      1985936d
  8. 13 Aug, 2021 3 commits
    • per1234's avatar
      [skip changelog] Don't require Codecov upload success for test run in fork (#1397) · 408cee85
      per1234 authored
      * [skip changelog] Use major version refs of action in "Test Go" workflow
      
      Use of the major version ref will cause the workflow to benefit from ongoing development to the actions up until such
      time as a new major release of an action is made, at which time we would need to evaluate whether any changes to the
      workflow are required by the breaking change that triggered the major release before updating the major ref
      (e.g., `uses: codecov/codecov-action@v3`).
      
      The previous pin to the patch version required an update to the workflow on every action release in order to keep it
      updated.
      
      * [skip changelog] Don't require Codecov upload success for test run in fork
      
      The "Test Go" workflow uploads code coverage data to Codecov. There will occasionally be spurious upload failures caused
      by transient network outages. These will typically succeed after the workflow is re-run, but the option to re-run is not
      offered when the workflow run passes.
      
      Because it's important that the data be complete, the `codecov/codecov-action` action is configured to fail the workflow
      run if the upload does not succeed. However, the upload will never be able to succeed for workflow runs in a fork where
      the owner has not set up Codecov. For this reason, the `fail_ci_if_error` input setting is made conditional upon the
      repository name.
      
      The result is:
      
      - Coverage data upload success is required for all workflow runs in the `arduino/arduino-cli` repository.
      - Uploads are attempted for workflow runs in forks (because the fork owner might have Codecov set up and want the data),
        but they are not required to succeed and will fail silently.
      408cee85
    • per1234's avatar
      [skip changelog] Sync install script with template (#1396) · bec94dba
      per1234 authored
      * [skip changelog] Bring shell scripts into compliance with standard formatting
      
      A standardized style for all Arduino Tooling shell scripts has been established. The `.editorconfig` file is updated
      accordingly and all the repository's scripts made compliant with it.
      
      * [skip changelog] Sync install script with template
      
      We have assembled a collection of reusable project assets:
      https://github.com/arduino/tooling-project-assets
      These assets will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" installation script, and those are
      introduced to this repository via this pull request.
      
      Notable:
      
      - ShellCheck compliance
      - Support for specifying nightly build versions (e.g., "nightly-latest") via the script argument
      - Remove cryptic output not of interest to the user (likely forgotten debug artifacts from script development)
      bec94dba
    • per1234's avatar
      [skip changelog] Sync "Release" workflow with template (#1395) · c4d39e35
      per1234 authored
      We have assembled a collection of reusable GitHub Actions workflows:
      https://github.com/arduino/tooling-project-assets
      These workflows will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" workflow, and those are introduced to this repository via this pull request.
      
      Notable:
      
      - Replace changelog file read, deprecated `actions/create-release`, and asset upload steps with the comprehensive `ncipollo/release-action` action
      c4d39e35
  9. 12 Aug, 2021 5 commits
    • per1234's avatar
      [skip changelog] Sync "Publish Nightly Build" CI workflow with template (#1394) · 2d88f113
      per1234 authored
      * [skip changelog] Remove obsolete link footnotes from readme
      
      These have been replaced by more maintainable direct links.
      
      * [skip changelog] Sync "Publish Nightly Build" CI workflow with template
      
      We have assembled a collection of reusable GitHub Actions workflows:
      https://github.com/arduino/tooling-project-assets
      These workflows will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" workflow, and those are introduced to this repository via this pull request.
      
      Notable:
      
      - Improved failure reporting
      - Manual triggers to allow publishing on demand
      2d88f113
    • per1234's avatar
      [skip changelog] Sync "Check Python" CI workflow with template (#1393) · 7989a4ef
      per1234 authored
      * [skip changelog] Sync "Check Python" CI workflow with template
      
      We have assembled a collection of reusable project assets:
      https://github.com/arduino/tooling-project-assets
      These assets will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" assets, and those are
      introduced to this repository here.
      
      Notable:
      
      - Check for black formatting style compliance
      - Update tool dependencies
      - Standardize linting task name and deprecate old task name
      - Add cyclomatic complexity check
      - Add pep8-naming plugin to flake8
      
      * [skip changelog] Restore formatting compliance of Python code after black update
      
      After updating the black formatter tool, the new version wanted a small change in the Python formatting.
      
      * Remove obsolete Python linting task
      
      The sync with the template documentation assets has resulted in new standardized names for some of the tasks.
      
      The `python:check` task has been renamed to `python:lint`
      7989a4ef
    • per1234's avatar
      [skip changelog] Add formatting check to "Check Protocol Buffers" workflow (#1391) · ab31c21b
      per1234 authored
      On every push and pull request that affects relevant files, check the protocol buffer files for code formatting
      inconsistency.
      ab31c21b
    • per1234's avatar
      [skip changelog] Run formatting and linting CI checks on all Go modules (#1390) · 3f2e910c
      per1234 authored
      The repository contains multiple Go modules. Previously, the CI workflow that lints and checks the formatting of the
      repository's Go code was only checking the primary module in the root of the repo.
      
      This workflow is now expanded to cover all Go code through the use of a dedicated matrix job for each of the modules.
      
      Arbitrary Go module paths can be specified to the tasks by defining the `GO_MODULE_PATH` environment variable. If this
      variable is not defined, the default root module path is used as default, preserving the previous task behavior.
      3f2e910c
    • per1234's avatar
      [skip changelog] Revert "Add skip changelog prefix to Dependabot workflow... · d052cf64
      per1234 authored
      [skip changelog] Revert "Add skip changelog prefix to Dependabot workflow update commits (#1381)" (#1389)
      
      This reverts commit 4fbf7b7b.
      
      It turns out there is an undocumented maximum length of 15 characters for this prefix:
      
      https://github.com/arduino/arduino-cli/network/updates
      
      ```
      Dependabot encountered the following error when parsing your .github/dependabot.yml:
      
      The property '#/updates/0/commit-message/prefix' was not of a maximum string length of 15
      Please update the config file to conform with Dependabot's specification.
      ```
      Unfortunately, even though it is possible to reduce the prefix length by 1 with the removal of the trailing space, we
      still end up with 16 characters.
      d052cf64
  10. 11 Aug, 2021 5 commits
    • Matthijs Kooijman's avatar
      Fix error printing when core uninstall fails during upgrade (#1371) · f632a9d2
      Matthijs Kooijman authored
      The code tried to log the wrong error, which was nil, hiding the real
      error.
      
      This originally occurred for example when a version of the core was already
      installed manually in the sketchbook, and you would try to install
      another version using arduino-cli, though that has since been fixed
      (arduino-cli no longer tries to uninstall cores from the sketchbook).
      
      To still reproduce this problem, you can e.g. break the permissions of
      an installed core:
      
          $ arduino-cli core install arduino:avr@1.8.1
          (...)
          $ chmod a-w ~/.arduino15/packages/arduino/hardware/avr/1.8.1
          $ arduino-cli core install arduino:avr@1.8.2
          Tool arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 already installed
          Tool arduino:avrdude@6.3.0-arduino17 already installed
          Tool arduino:arduinoOTA@1.3.0 already installed
          Downloading packages...
          arduino:avr@1.8.2 already downloaded
          Upgrading arduino:avr@1.8.1 with arduino:avr@1.8.2...
          Error upgrading platform: %!s(<nil>)...
          Error during install: upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied
      
      With this fix applied, this produces a proper error message:
      
          $ arduino-cli core install arduino:avr@1.8.2
          Tool arduino:avr-gcc@7.3.0-atmel3.6.1-arduino5 already installed
          Tool arduino:avrdude@6.3.0-arduino17 already installed
          Tool arduino:arduinoOTA@1.3.0 already installed
          Downloading packages...
          arduino:avr@1.8.2 already downloaded
          Upgrading arduino:avr@1.8.1 with arduino:avr@1.8.2...
          Error upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied...
          Error during install: upgrading platform: removing platform files: unlinkat /home/matthijs/.arduino15/packages/arduino/hardware/avr/1.8.1/firmwares: permission denied
      f632a9d2
    • dependabot[bot]'s avatar
      [skip-changelog] Bump pyyaml from 5.3 to 5.4 (#1385) · 08bb76a0
      dependabot[bot] authored
      Bumps [pyyaml](https://github.com/yaml/pyyaml) from 5.3 to 5.4.
      - [Release notes](https://github.com/yaml/pyyaml/releases)
      - [Changelog](https://github.com/yaml/pyyaml/blob/master/CHANGES)
      - [Commits](https://github.com/yaml/pyyaml/compare/5.3...5.4)
      
      ---
      updated-dependencies:
      - dependency-name: pyyaml
        dependency-type: direct:production
      ...
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      08bb76a0
    • per1234's avatar
      Remove duplicate task for protobuf docs generation (#1387) · e4c54ec3
      per1234 authored
      The "gRPC reference" section of the documentation website is automatically generated from the repository's protocol
      buffer files. In order to make this generation process easy for developers to run, the necessary commands are defined in
      a task.
      
      For some reason, there were two tasks for this purpose, with different names and descriptions, but identical commands.
      This makes the taskfile more difficult to understand and more difficult to maintain.
      
      One of the tasks, `protoc:docs` is called by the `docs:generate` task. The other, `docs:gen:protobuf`, is not used or
      referenced anywhere in the repository. So I have removed `docs:gen:protobuf` from the taskfile.
      e4c54ec3
    • per1234's avatar
      Sync testing infrastructure with "template" assets (#1388) · 3e414555
      per1234 authored
      * [skip changelog] Sync testing infrastructure with "template" assets
      
      We have assembled a collection of reusable project assets:
      https://github.com/arduino/tooling-project-assets
      These will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" assets, and those are hereby
      introduced to this repository.
      
      Notable:
      
      - Configure paths filters to avoid unnecessary workflow runs
      - Increased parallelism
      - Improved maintainability
      
      * Remove obsolete testing tasks
      
      The sync with the template testing assets has resulted in new standardized names for some of the test runner tasks:
      
      - `test-unit` -> `go:test`
      - `test-integration` -> `go:test-integration`
      
      * [skip changelog] Update package names in imports
      
      As of Go 1.7 the `golang.org/x/net/context` package is available in the standard library under the name `context`.
      
      * [skip changelog] Tidy root module dependencies
      
      Result of running `go mod tidy` with Go 1.16.6.
      
      * [skip changelog] Tidy `github.com/arduino/arduino-cli/arduino/discovery/discovery_client` module's dependencies
      
      Result of running `go mod tidy` with Go 1.16.6.
      
      * [skip changelog] Tidy `github.com/arduino/arduino-cli/term_example` module's dependencies
      
      Result of running `go mod tidy` with Go 1.16.6.
      
      * [skip changelog] Tidy `github.com/arduino/arduino-cli/docsgen` module's dependencies
      
      Result of running `go mod tidy` with Go 1.16.6.
      3e414555
    • per1234's avatar
      [skip changelog] Move website versioning information out of CONTRIBUTING.md (#1386) · 5bce623f
      per1234 authored
      * [skip changelog] Fix broken workflow link
      
      The GitHub Actions workflow used to deploy the documentation website was renamed to a filename more suitable for
      existence in a collection of reusable workflows that have multiple variations according to project requirements.
      
      The link to the file was not updated accordingly, which resulted it breaking.
      
      * [skip changelog] Move website versioning information out of CONTRIBUTING.md
      
      This content is for maintainers, and is not of interest to the average contributor. It makes an already overly long
      contributor guide even more overwhelming, and thus likely to be skipped.
      
      The documentation versioning and publishing system is now maintained in a centralized repository hosting a collection of
      reusable project assets. The documentation content previously located in CONTRIBUTING.md has all been migrated there and
      expanded.
      
      Since this is not high level contributor guidelines, it will be better to maintain it in a single place, linking to that
      documentation as needed.
      5bce623f
  11. 10 Aug, 2021 3 commits
    • per1234's avatar
      [skip changelog] Sync documentation assets with templates (#1383) · f04d18ff
      per1234 authored
      * [skip changelog] Sync documentation assets with templates
      
      We have assembled a collection of reusable project assets:
      https://github.com/arduino/tooling-project-assets
      These assets will be used in the repositories of all Arduino tooling projects.
      
      Some significant improvements and standardizations have been made in the upstream "template" assets, and those are
      introduced to this repository here.
      
      Notable:
      
      - Use markdownlint to check for common problems and formatting.
      - Make link check task Windows compatible
      - Streamline website versioning system
      - Use modern MkDocs versioning features
      - Make command reference generation task Windows compatible
      - Consolidate all Python dependency management to Poetry
      - Standardize documentation-related task names and deprecate old task names
      
      * Remove obsolete documentation tasks
      
      The sync with the template documentation assets has resulted in new standardized names for some of the documentation
      management tasks:
      
      - `docs:gen:commands` -> `go:cli-docs`
      - `docs:gen` -> `docs:generate`
      - `docs:build` -> `docs:check`
      - `docs:serve` -> `website:serve`
      - `docs:check-links` -> `markdown:check-links`
      
      * [skip changelog] Use standard list prefix in Markdown
      
      This is the standardized ordered list prefix for use in all Arduino Tooling Markdown files.
      
      The Markdown renderer will automatically handle numbering. Manual numbering means that either all following list items
      need to be renumbered every time a list item is added or removed, resulting in more work for contributors and reviewers.
      
      * [skip changelog] Use standardized Markdown code block style
      
      "Code fencing" is superior to the indentation code block syntax of Markdown because it permits syntax highlighting. Even
      in cases where syntax highlighting is not applicable, a consistent style should be used throughout all the Markdown files
      of Arduino Tooling projects.
      f04d18ff
    • Cristian Maglie's avatar
      [skip-changelog] Update github.com/miekg/dns lib to v1.1.43 (#1382) · a0676389
      Cristian Maglie authored
      * Update github.com/miekg/dns lib to v1.1.43
      
      * fix go.sum in docsgen folder
      
      * fix go.sum in client_example folder
      a0676389
    • per1234's avatar
      [skip changelog] Sync general formatting check workflow with template (#1380) · 7ef3ebb2
      per1234 authored
      * [skip changelog] Sync general formatting check workflow with template
      
      We have assembled a collection of reusable GitHub Actions workflows:
      https://github.com/arduino/tooling-project-assets
      These workflows will be used in the repositories of all Arduino tooling projects.
      
      The Prettier formatting tool is used in the tasks for formatting and checking the formatting of the repository's
      Markdown and YAML files. Prettier supports a long list of other languages. There is no reason not to take advantage of
      those capabilities as well, so the new workflow applies it to all supported files.
      
      Several of the tasks have been deprecated in favor of the new `general:format-prettier` task:
      
      - `docs:check`
      - `docs:format`
      - `config:check`
      - `config:format`
      
      These still work as before, but they now display a deprecation warning.
      
      * Remove superfluous formatting tasks
      
      These are replaced by the `general:format-prettier` task. Even though that doesn't provide a formatting compliance check,
      the developer doesn't have any need for such a thing, since they will be better off to simply format, and the CI now
      takes the approach of formatting and then failing if it produced a diff.
      
      * [skip changelog] Bring all files into Prettier formatting style compliance
      
      Previously, Prettier was only run on the Markdown and YAML files. With the new expanded scope of Prettier coverage, the
      JSON files are now required to be compliant.
      7ef3ebb2
  12. 09 Aug, 2021 2 commits
    • per1234's avatar
      [skip changelog] Add skip changelog prefix to Dependabot workflow update commits (#1381) · 4fbf7b7b
      per1234 authored
      Dependabot is configured to submit pull requests for updates to the GitHub Actions actions used in the repository's
      workflows whenever a new version is available. These commits will not result in any user facing changes and so should not
      be mentioned in the release changelog.
      
      The changelog generation system automatically excludes any commit that has the `[skip changelog]` prefix on its message
      title. Adding this changelog to the commits generated by Dependabot will save the release manager time when cleaning up
      the raw changelog.
      4fbf7b7b
    • per1234's avatar
      [skip changelog] Sync certificate check CI workflow with template (#1379) · 0db96b30
      per1234 authored
      We have assembled a collection of reusable GitHub Actions workflows:
      https://github.com/arduino/tooling-project-assets
      These workflows will be used in the repositories of all Arduino tooling projects.
      
      Some minor improvements and standardizations have been made in the upstream "template" workflow, and those are introduced to this repository via this pull request.
      Notable:
      
      - Trigger workflow run on modification to facilitate testing.
      - `repository_dispatch` event trigger to allow for automated triggering across many repositories via the GitHub API following a relevant external change.
      - Change Slack webhook repository secret name.
      - Use major version ref of `rtCamp/action-slack-notify` so that the latest release of the action is used up to the next major bump.
      0db96b30
  13. 06 Aug, 2021 4 commits
  14. 05 Aug, 2021 3 commits
    • per1234's avatar
      Expand i18n coverage to all relevant strings (#1370) · e31a717e
      per1234 authored
      * Bring Go code formatting into compliance
      
      * Expand i18n coverage to all relevant strings
      
      This provides internationalization of the strings of the Arduino CLI code base. It will now be possible to completely
      translate the primary Arduino CLI user interface.
      
      We decided that the log messages would be excluded from the internationalization scope for now. The reason is that the
      addition of these strings would significantly increase the workload on the community translators, while generally being
      of less visibility and/or importance to the users. Even though on an individual basis there are surely specific log
      messages of higher importance than specific non-log strings that were internationalized, the log/non-log dichotomy
      provided an objective criterion for determining which strings were in scope for this initial effort. Perhaps we will
      expand the i18n coverage at some time in the future after there has been good progress on the initial translation effort.
      
      Some techniques were employed to facilitate translation:
      
      - Code references were moved out of strings in cases where a translator might mistake them for prose and translate them.
      - Indices were added to printf verbs when multiple were present in a string. This allows the translator to easily insert
        them at the appropriate location in the sentence structure without being required to understand the Go printf syntax
        and without being restricted to their relative order in the English language source string.
      Co-authored-by: default avatarSilvano Cerza <3314350+silvanocerza@users.noreply.github.com>
      e31a717e
    • per1234's avatar
      [skip changelog] Configure Dependabot to check for outdated actions used in workflows (#1373) · 92a4c3aa
      per1234 authored
      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 occasionally propose 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
      92a4c3aa
    • per1234's avatar
      [skip changelog] Remove obsolete "Dependabot Preview" configuration file (#1372) · df46e787
      per1234 authored
      Dependabot Preview shut down 2021-08-03. It is replaced by GitHub-native Dependabot, which uses the
      `.github/dependabot.yml` configuration file, with a different data format.
      
      From an investigation into how the obsolete configuration could be migrated to the new format, I determined that the
      specific "security updates only" configuration used by this repository is not provided by the new configuration file,
      which is for configuring updates of any outdated dependencies. The "security updates" feature is configured via the
      repository settings (Settings > Security & analysis).
      
      Since the old file is no longer used, and might cause confusion, it is best to remove it from the repository.
      df46e787
  15. 28 Jul, 2021 1 commit
    • per1234's avatar
      [breaking] Pass user locale preference directly to i18n package (#1365) · 7b68b48d
      per1234 authored
      The user can configure their locale preference via the `locale` configuration key. This information is given priority by
      the `github.com/arduino/arduino-cli/configuration` package over the automatically detected locale.
      
      Previously, the `i18n` package got the configuration setting from the `github.com/arduino/arduino-cli/configuration`
      package, but this will result in an import cycle when the `i18n` package is used to enable translation of the output
      strings of the `configuration` package.
      
      To avoid this, the caller now reads the configuration and passes the locale code to the `i18n` package via its `Init`
      function:
      
      i18n.Init("it")
      
      The argument can be omitted if only automated locale detection is needed:
      
      i18n.Init()
      7b68b48d