1. 05 May, 2022 2 commits
  2. 04 May, 2022 1 commit
  3. 03 May, 2022 1 commit
  4. 02 May, 2022 2 commits
  5. 28 Apr, 2022 1 commit
    • Mattia Pennasilico's avatar
      [skip-changelog] Secure boot docs update (#1716) · 7f2e750d
      Mattia Pennasilico authored
      * Fix typo
      
      * Rename custom keys filename to make more clear that private key is used to sign and public key is used for encryption
      
      * Update Security setting postbuild.cmd path
      
      * Update Security setting keychain path
      
      * Update Security setting default keys filename
      7f2e750d
  6. 15 Apr, 2022 2 commits
    • Cristian Maglie's avatar
      [skip-changelog] Some small refactorings (#1711) · 8375a6d7
      Cristian Maglie authored
      * Updated relaxed-semver library to v0.9.0
      
      * Fixed errors translations
      
      * Make architecture explicit in loadPlatform
      
      * Extracted subrotuine loadToolReleaseFromDirectory
      
      * Added cores.InstallPlatformInDirectory(..) helper function
      
      * legacy: allow using a preconfigured library manager in build
      8375a6d7
    • per1234's avatar
      [skip changelog] Detect unused dependency license metadata files (#1712) · 4a626a09
      per1234 authored
      The "Check Go Dependencies" GitHub Actions workflow checks for dependencies with incompatible or unapproved license
      types.
      
      The dependency license metadata consumed by the "Licensed" tool is cached in the project repository, in a dedicated file
      for each dependency.
      
      The `check-cache` job of the workflow checks whether that cache is in sync with the project's current dependencies. It
      does this by using the "Licensed" tool to update the cache and then a `git diff` command to check whether that resulted
      in any changes (which would indicate it is out of sync).
      
      Out of sync states could result from any of three distinct conditions:
      
      - Missing metadata file
      - Incorrect metadata file contents
      - Superfluous metadata file
      
      An incorrectly configured `git diff` command previously caused the last of these to be missed.
      
      My first take at this system was simply using `git diff --exit-code` alone. That detects the last two, but misses the
      first. I added the `git add --intent-to-add .` command to detect added files, but didn't realize that it caused the last
      to be missed.
      
      Superfluous files in the dependency license metadata cache won't actually interfere with its intended functionality, but
      it is still important to avoid an accumulation of unused files.
      
      The new commands will catch all three of the possible out of sync conditions by staging all changes that result from
      the metadata cache update to the repository and then comparing those against the `HEAD` commit.
      
      I considered an alternative approach which works just as well as the chosen one:
      
      ```
      git add .
      git diff --exit-code HEAD
      ```
      
      However, I feel that the `--cached` flag makes the `git diff` command more self-explanatory.
      4a626a09
  7. 14 Apr, 2022 1 commit
  8. 13 Apr, 2022 1 commit
    • Cristian Maglie's avatar
      [skip-changelog] [breaking] Refactoring of download subroutines (#1697) · eabf6934
      Cristian Maglie authored
      * Moved downloaders subroutines in 'resources' package
      
      * Moved function to the correct file
      
      * Merge Download subroutine for resources
      
      * Factored all download subroutines
      
      * Allow passing nil Config in resource.Download method
      
      * Moved some package in their appropriate place.
      
      httpclient is now under arduino/httpclient.
      Some configuration values have been moved under 'configuration' package,
      and the related subroutines have been refactored.
      
      * Created IndexResource and factored out all download utilities
      
      * Fix regression in unit-tests
      
      * Adjusted integration tests
      
      * Fixed linter problems
      
      * Moved DownloadFile from 'resources' package into 'httpclient'
      
      * Factored all progress reports callback definitions in the rpc package
      
      * Updated UPGRADING.md
      
      * Applied suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Fixed typos
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      eabf6934
  9. 11 Apr, 2022 4 commits
  10. 06 Apr, 2022 1 commit
  11. 04 Apr, 2022 1 commit
  12. 01 Apr, 2022 2 commits
    • per1234's avatar
      [skip changelog] Remove unused GitHub release download stats workflow (#1702) · 0364ce35
      per1234 authored
      The "github-stats" GitHub Actions workflow periodically gathers GitHub release asset download statistics for Arduino CLI
      and pushes the results to Datadog.
      
      There are no known problems with this workflow. However, the companion "arduino-stats" workflow that did the same for
      the downloads of Arduino CLI from downloads.arduino.cc was broken and thus removed from the repository.
      
      The GitHub stats are not very valuable on their own as they only provide an unknown fraction of the total downloads of
      Arduino CLI. They have also not ended up being used. Since it doesn't provide any value and represents a maintenance
      burden, it is hereby removed from the repository.
      0364ce35
    • per1234's avatar
      [skip changelog] Remove broken download stats workflow (#1701) · 7bfa5fb9
      per1234 authored
      The "arduino-stats" GitHub Actions workflow was designed to periodically gather download statistics from Arduino CDN and
      push results to Datadog.
      
      The recorded stats showed a periodic decrease in total download count. Since this is patently impossible, it is clear
      that something was wrong with the system and that the recorded data was not usable. An investigation into the problem
      was never done.
      
      On 2022-03-14, the runs of the "arduino-stats" GitHub Actions workflow began to fail. Because there had not been any
      relevant change in the repository between the last successful run and the first failing run, it seems that some external
      change caused the breakage. Since the workflow was not ever working successfully and the lack of an investigation about
      that indicates that the stats are not of immediate importance, the best course of action is to simply remove the broken
      infrastructure from the repository rather than investing time into fixing something that isn't being used anyway.
      7bfa5fb9
  13. 28 Mar, 2022 1 commit
    • Cristian Maglie's avatar
      [skip-changelog] Some static-check fixes (#1700) · 38ebf641
      Cristian Maglie authored
      * Fixed some staticcheck warnings
      
      commands/core/search_test.go:24:2: package "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1" is being imported more than once (ST1019)
              commands/core/search_test.go:25:2: other import of "github.com/arduino/arduino-cli/rpc/cc/arduino/cli/commands/v1"
      i18n/cmd/po/parser.go:34:2: should check returned error before deferring file.Close() (SA5001)
      i18n/cmd/po/parser.go:105:48: cutset contains duplicate characters (SA1024)
      
      * Fixed some staticcheck warnings
      
      arduino/libraries/librariesindex/json.go:33:38: unknown JSON option "required" (SA5008)
      arduino/libraries/librariesindex/json.go:34:38: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:39:37: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:40:37: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:44:37: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:45:37: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:51:51: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:53:51: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:57:51: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:58:51: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:59:51: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:69:34: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:70:34: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:71:34: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:88:36: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:89:36: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:90:36: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:95:30: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:96:30: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:97:30: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:98:30: unknown JSON option "required" (SA5008)
      arduino/cores/packageindex/index.go:99:30: unknown JSON option "required" (SA5008)
      arduino/cores/tools.go:30:35: unknown JSON option "required" (SA5008)
      arduino/cores/tools.go:37:36: unknown JSON option "required" (SA5008)
      arduino/cores/tools.go:45:18: unknown JSON option "required" (SA5008)
      arduino/sketch/sketch.go:51:14: unknown JSON option "required" (SA5008)
      arduino/sketch/sketch.go:53:14: unknown JSON option "omitepty" (SA5008)
      cli/lib/search.go:103:16: unknown JSON option "required" (SA5008)
      cli/lib/search.go:107:24: unknown JSON option "required" (SA5008)
      cli/lib/search.go:183:9: the argument is already a string, there's no need to use fmt.Sprintf (S1025)
      
      * Fixed some staticcheck warnings
      
      arduino/builder/sketch.go:165:5: should use !bytes.Equal(existingBytes, source) instead (S1004)
      arduino/builder/sketch_test.go:133:2: this value of err is never used (SA4006)
      arduino/cores/board.go:125:3: the surrounding loop is unconditionally terminated (SA4004)
      arduino/cores/packagemanager/package_manager.go:432:4: should replace loop with platforms = append(platforms, platform.GetAllInstalled()...) (S1011)
      arduino/cores/status.go:191:28: func ToolDependency.extractTool is unused (U1000)
      arduino/cores/status.go:203:28: func ToolDependency.extractRelease is unused (U1000)
      arduino/libraries/librariesindex/json.go:141:9: empty branch (SA9003)
      
      * Fixed some staticcheck warnings
      
      arduino/monitors/null.go:48:14: should use time.Since instead of time.Now().Sub (S1012)
      arduino/resources/checksums.go:79:5: should use !bytes.Equal(algo.Sum(nil), digest) instead (S1004)
      arduino/resources/checksums.go:155:6: func createPackageFile is unused (U1000)
      arduino/resources/helpers.go:65:12: this condition occurs multiple times in this if/else if chain (SA4014)
      arduino/resources/helpers_test.go:40:24: unnecessary use of fmt.Sprintf (S1039)
      cli/feedback/feedback.go:187:12: should use String() instead of fmt.Sprintf (S1025)
      cli/globals/globals.go:31:2: var tr is unused (U1000)
      cli/lib/args.go:89:6: should use strings.EqualFold instead (SA6005)
      commands/daemon/monitor.go:176:6: this value of slots is never used (SA4006)
      38ebf641
  14. 24 Mar, 2022 1 commit
    • Umberto Baldi's avatar
      Add secure boot support for compile command. (#1686) · b86e5cf7
      Umberto Baldi authored
      * add flags to allow the override of the keys used to sign and encrypt a binary for the boards that support the secure boot
      
      * add integration test for ReplaceSecurityKeys() function
      
      * fix regression introduced: target platform could be nil so using before checking is not a good idea
      
      * apply suggestions from code review
      
      * rename of some flags (done to accommodate the proposed changes in platform.txt)
      
      * change approach: override keys using `builderCtx.CustomBuildProperties`
      
      * add check in the builder regarding the usage of "build.keys.type" properties
      
      * add secure boot to the platform specifications
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * modify the check on in the builder regarding the usage of "build.keys" properties:
      The "build.keys.type" is no longer mandatory, and the default is "public_keys"
      We also check if the secureboot keys are all defined or none of them is.
      
      * remove check on the flags specifying the keys, it's the tool responsibility to check if they are valid
      
      * move content to a guides section
      
      * add specifications regarding `build.keys` properties
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * add link to external resource to provide a quick explanation of the reason for an Arduino boards platform developer to add a "secure boot" capability
      
      * change `tools.imgtool.build.pattern` to `tools.imgtool.flags`
      
      The property had the same form as the special `tools.TOOL_NAME.ACTION.pattern` properties
      However, there is not a `build` action, the form of the property gives the impression that it is one that has special treatment by the build system.
      
      It looks like the convention is `*.flags`
      
      * add small section explaining why is recommended to use these prop names
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Correct error message
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      b86e5cf7
  15. 23 Mar, 2022 1 commit
  16. 22 Mar, 2022 1 commit
    • per1234's avatar
      [skip changelog] Disable internal anchor checks by link checker tool (#1692) · f470f407
      per1234 authored
      Validation of links to internal anchors was recently added to the markdown-link-check tool used to check for broken
      links in this project's documentation.
      
      Although a much needed feature, unfortunately it does not currently support anchors created by HTML anchor tags.
      
      For example, this is valid and common Markdown:
      
      [click here](#some-anchor)
      <a name="some-anchor"></a>
      
      but will fail the check:
      
      ERROR: 1 dead links found!
      [x] #some-anchor -> Status: 404
      
      This type of link markup is used by the protoc-gen-doc tool that generates the gRPC interface documentation, which
      causes a spurious failure of the link check.
      
      The solution is to configure markdown-link-check to skip these links (which was the behavior anyway with versions 3.8.7
      and older). That will be reverted whenever the tool is able to correctly validate internal anchor links.
      f470f407
  17. 14 Mar, 2022 1 commit
  18. 10 Mar, 2022 2 commits
  19. 04 Mar, 2022 1 commit
    • Jesse Vincent's avatar
      [skip changelog] Make use of 'avr' as example platform more consistent (#1680) · 8b53b850
      Jesse Vincent authored
      * Make use of 'avr' as example platform more consistent
      
      It's fairly easy to miss the one line early in the doc that says this text uses 'avr' as an example, leading a reader to possibly believe the documentation hasn't been updated since 'avr' was the only platform choice. Within the doc, the text was a little inconsistent as to how it referred to the avr platform and platform specific tools. This change tries to standardize how we refer to the example platform.
      
      * Fix a couple lint errors.
      
      * Fix prettier lint errors.
      
      * Fix an additional prettier lint error
      
      * Update docs/sketch-build-process.md
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      8b53b850
  20. 03 Mar, 2022 1 commit
  21. 02 Mar, 2022 1 commit
  22. 01 Mar, 2022 1 commit
  23. 23 Feb, 2022 3 commits
  24. 18 Feb, 2022 1 commit
  25. 17 Feb, 2022 2 commits
  26. 04 Feb, 2022 2 commits
  27. 03 Feb, 2022 1 commit
  28. 01 Feb, 2022 1 commit