1. 20 Jul, 2021 1 commit
  2. 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
  3. 15 Jul, 2021 1 commit
  4. 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
  5. 12 Jul, 2021 1 commit
  6. 06 Jul, 2021 2 commits
  7. 05 Jul, 2021 2 commits
  8. 02 Jul, 2021 3 commits
  9. 01 Jul, 2021 3 commits
  10. 23 Jun, 2021 1 commit
  11. 22 Jun, 2021 1 commit
  12. 21 Jun, 2021 1 commit
  13. 18 Jun, 2021 3 commits
  14. 17 Jun, 2021 2 commits
  15. 16 Jun, 2021 3 commits
    • 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
    • Silvano Cerza's avatar
      3ae63cfc
    • Silvano Cerza's avatar
      [skip changelog] Update proto files build step (#1277) · c8059b5d
      Silvano Cerza authored
      * [skip changelog] Update proto files build step
      
      * Added missing go.sum
      
      * Update builders to 1.16.4
      
      * Fixed crossbuild for Linux ARMv6/ARMv7
      
      * Fixed macOS_64bit build
      Co-authored-by: default avatarCristian Maglie <c.maglie@arduino.cc>
      c8059b5d
  16. 14 Jun, 2021 1 commit
  17. 07 Jun, 2021 1 commit
  18. 04 Jun, 2021 1 commit
  19. 03 Jun, 2021 4 commits
    • Roberto Sora's avatar
      Replace "Arduino Pro IDE" with proper link to Arduino IDE 2.0 (#1309) · aa61c4b1
      Roberto Sora authored
      * Replace "Arduino Pro IDE" with proper link to Arduino IDE 2.0
      
      * Run prettier
      aa61c4b1
    • Umberto Baldi's avatar
    • per1234's avatar
      [skip changelog] Specify that `includes` field items should be in library (#1305) · b8d8a9ca
      per1234 authored
      The library.properties `includes` field specifies a custom list of files to be added to the sketch by the IDE as
      `#include` directives. Library authors sometimes add filenames from library dependencies to this field. However, that
      doesn't make any sense because all Arduino development software versions with support for the `includes` field have also
      had support for resolution of the dependencies of libraries, meaning that there is no need for these `#include`
      directives to be placed in the sketch.
      
      For this reason, Arduino Lint rule LP052 ("library.properties includes field item(s) not found in library.") was
      configured as an error when the tool is in the default "specification" compliance mode. Since the required rules in this
      mode are intended to match the official Arduino Library Specification, it is important that mention be made in the
      `includes` field that it should contain files of the library itself.
      
      Since this requirement is fairly common sense, and the format of the library.properties fields documentation somewhat
      constraining, I attempted to document it with minimal verbosity.
      b8d8a9ca
    • Umberto Baldi's avatar
      Implement function to verify index signature with custom key (#1304) · 7eb9c57a
      Umberto Baldi authored
      * add gpg public key to verify board_index.json
      
      * add new function to allow the usage of another gpg key
      
      * add new test and enhance existing ones
      
      * apply suggestions by @cmaglie
      
      * move `module_firmware_index.gpg.key` under `testdata/`
      7eb9c57a
  20. 31 May, 2021 2 commits
    • per1234's avatar
      [skip changelog] Remove redundant artifact upload from test workflow (#1303) · cdbebe98
      per1234 authored
      Previously, there were two steps in the test workflow for the Linux ARM64 artifact upload. Although it did no real harm
      since it simply replaced the artifact from the first upload with a duplicate, it does slow down the workflow and adds a
      little more of a maintenance burden, so better to remove it.
      cdbebe98
    • per1234's avatar
      [skip changelog] Quote all variables in GitHub Actions workflow shell commands (#1302) · c65c2b2b
      per1234 authored
      Unquoted variables in shell commands can result in very confusing bugs caused by unexpected interpretation of characters
      in the variable contents by the shell, such as globbing and word splitting.
      
      The immediate motivation for this change is that the unquoted certificate password for the macOS notarization guaranteed
      a someone a headache when the password wasn't so well behaved as the author of the previously fragile command had
      assumed:
      
      security: SecKeychainItemImport: MAC verification failed during PKCS12 import (wrong password?)
      c65c2b2b
  21. 28 May, 2021 1 commit
    • per1234's avatar
      [skip changelog] Document "Library Name Priority" (#1301) · 5115d44c
      per1234 authored
      When multiple libraries contain files matching an `#include` directive, Arduino CLI must pick one. Multiple factors are
      used in order to make an intelligent determination of which library is best. In order to enhance this determination, the
      library.properties `name` value is now one of those factors. The other factors are already documented in the "Sketch
      Build Process" documentation, but this newly added feature was previously undocumented.
      5115d44c
  22. 26 May, 2021 1 commit
    • Silvano Cerza's avatar
      Improved lib detection: check for matching name in library.properties (#1276) (#1300) · c342eaca
      Silvano Cerza authored
      * Improved lib detection: check for matching name in library.properties
      
      The library may be stored in a directory that doesn't match the library
      name, for example we had a case in the wild where the directories:
      
         libraries/onewire_2_3_4/...
         libraries/onewireng_1_2_3/...
      
      were used instead of:
      
         libraries/OneWire/...
         libraries/OneWireNg/...
      
      this lead to incorrect selection of onewireng_1_2_3 when using OneWire.h
      (because the OneWireNg had an architecture=avr that had priority over
      the architecture=* of onewire_2_3_4).
      
      This commit will restore priority straight.
      
      * Added test for lib resolve improvement
      
      * Lib discovery: always prefer libraries with the correct directory name
      
      * [skip changelog] Add integration test
      Co-authored-by: default avatarSilvano Cerza <silvanocerza@gmail.com>
      Co-authored-by: default avatarCristian Maglie <c.maglie@arduino.cc>
      c342eaca
  23. 24 May, 2021 1 commit
  24. 20 May, 2021 1 commit
    • per1234's avatar
      [skip changelog] Use new arduino/setup-task action name in CI/CD workflows (#1294) · 2666b6ec
      per1234 authored
      The GitHub Actions action for installing Task action has graduated from its original home in the experimental
      `arduino/action` repository with the move to a dedicated permanent repository at `arduino/setup-task`.
      
      A 1.0.0 release has been made and a `v1` ref that will track all releases in the major version 1 series. Use of the
      action's major version ref will cause the workflow to benefit from ongoing development to the action at each patch or
      minor release up until such time as a new major release is made. At this time the user will be given the opportunity
      to evaluate whether any changes to the workflow are required by the breaking change that triggered the major release
      before manually updating the major ref (e.g., `uses: arduino/setup-task@v2`).
      2666b6ec
  25. 19 May, 2021 1 commit