1. 11 Aug, 2021 2 commits
    • 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
  2. 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
  3. 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
  4. 06 Aug, 2021 4 commits
  5. 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
  6. 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
  7. 22 Jul, 2021 1 commit
  8. 20 Jul, 2021 1 commit
  9. 19 Jul, 2021 1 commit
    • per1234's avatar
      [skip changelog] Make `i18n:generate` task Windows compatible (#1360) · 8cefc960
      per1234 authored
      For the sake of portability of tasks, Task uses `mvdan.cc/sh` to provide an command interpreter that is independent of
      the environment. While one of the great strengths of Task, this produces unexpected results in some rare cases. This is
      one of those cases. There is some unusual interaction between `mvdan.cc/sh`, Windows, and running the `rice embed-go`
      command from the subshell created by the parentheses in this command:
      
      ```
      $ task i18n:update
      ←[32mtask: [i18n:update] go run ./i18n/cmd/main.go catalog generate . > ./i18n/data/en.po
      ←[0m←[32mtask: [i18n:generate] git add -N ./i18n/data
      ←[0m←[32mtask: [i18n:generate] git diff --exit-code ./i18n/data &> /dev/null || (cd ./i18n && rice embed-go)
      ←[0merror reading package: go/build: go list github.com/arduino/arduino-cli/i18n: exec: "go": executable file not found in %PATH%
      ```
      
      It is my belief that the sole purpose of these parentheses was to group the commands and that there is no need to run
      these commands in a subshell. If so, the change to using braces to group the commands without the creation of a subshell
      will have no functional effect on the commands, but will allow the task to run on Windows.
      8cefc960
  10. 15 Jul, 2021 1 commit
  11. 13 Jul, 2021 1 commit
    • Silvano Cerza's avatar
      [breaking] Refactor codebase to use a single Sketch struct (#1353) · e7d4eaab
      Silvano Cerza authored
      * Refactor codebase to use a single Sketch struct
      
      * Add back removed legacy test
      
      * Changed Sketch struct to not use pointers
      
      * Fix small comment
      
      * Fix checkSketchCasing to work with .pde files too
      
      * Add tests loading Sketch with symlinks
      
      * Update UPGRADING.md
      
      * Clarify a code comment
      
      * Add some more tests for Sketches with symlinks
      
      * Fix Sketch symlinks tests for Windows
      e7d4eaab
  12. 12 Jul, 2021 1 commit
  13. 06 Jul, 2021 2 commits
  14. 05 Jul, 2021 2 commits
  15. 02 Jul, 2021 3 commits
  16. 01 Jul, 2021 3 commits
  17. 23 Jun, 2021 1 commit
  18. 22 Jun, 2021 1 commit
  19. 21 Jun, 2021 1 commit
  20. 18 Jun, 2021 3 commits
  21. 17 Jun, 2021 2 commits
  22. 16 Jun, 2021 1 commit
    • Silvano Cerza's avatar
      [breaking] Refactor initialization steps (#1274) · a66fea91
      Silvano Cerza authored
      * [breaking] Split rpc Init and remove Rescan function
      
      * [breaking] Refactored commands package to reflect gRPC changes
      
      * [breaking] Refactored cli package to reflect commands changes
      
      * Fix instance creation for CLI commands that update indexes
      
      * Fix unit tests
      
      * Change update indexes commands to not reload instance after
      
      * Fix installation of builtin tools
      
      * Fix integration tests
      
      * Fix code for linting
      
      * Update i18n files
      
      * Update UPGRADING.md with breaking changes
      
      * Update comment with correct information
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Using callback instead of channel+goroutine for Init
      
      * Enhance platform loading step
      
      * Update client_example to reflect new gRPC changes
      
      * Enhance Init docstring
      
      * Enhance builtin tools installation during Init
      
      * Fix unit test
      
      * Fix integration tests
      
      * [skip changelog] Fix after botched rebase
      
      * Fix issue when using Init to rescan installed core on already initialized instance
      
      * Update generated file from .proto
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarCristian Maglie <c.maglie@arduino.cc>
      a66fea91