1. 11 Jul, 2022 2 commits
  2. 01 Jul, 2022 1 commit
  3. 28 Jun, 2022 1 commit
    • per1234's avatar
      [skip changelog] Document library dependency version constraints (#1786) · 9b6c9c46
      per1234 authored
      Arduino libraries may specify dependencies on other libraries in their metadata. The Arduino Library Manager offers the
      option to install these dependencies when the user installs the library.
      
      By default, the latest version of the dependency is installed. However, libraries may be compatible or tested working
      only with specific versions of a dependency. In this case, the library developer may wish to specify a particular
      version or version range of the dependency.
      
      Arduino CLI and the Arduino Library index system has had support for such dependency version constraints for the last
      2.5 years, but it was never documented so has only been used by the few library developers who discovered it via other
      means.
      
      The dependencies version constraint system is hereby fully documented in the Arduino library specification. This will
      allow meaningful benefit to finally come from the work done to add this valuable capability.
      9b6c9c46
  4. 27 Jun, 2022 1 commit
    • per1234's avatar
      [skip changelog] Enable Codecov reports on pull requests (#1783) · 124c35d3
      per1234 authored
      * [skip changelog] Revert "codecov: Disable pull request comments"
      
      This reverts commit 5c9eee34.
      
      Codecov will now automatically comment on pull requests to provide a report of the code coverage impact that would
      result from the proposed changes.
      
      These comments are valuable for several reasons:
      
      - Brings test deficiencies to the contributor's attention
      - Encourages contributors to improve PRs that originally had insufficient test coverage for the added code
      - Facilitates the review process for the maintainers
      - Increases awareness of code coverage trends in the project (the Codecov website is great for this, but likely rarely visited)
      
      * [skip changelog] Add support to "Test Go" workflow for alternative Codecov configuration paths
      
      For the sake of efficiency, the "Test Go" GitHub Actions workflow is configured to run only when relevant files are
      modified. Since the workflow uploads code coverage data to Codecov, the Codecov configuration file is one of these files.
      
      The standard filename for the Codecov configuration file is codecov.yml, and the workflow's path filter was configured
      for that filename. It turns out an alternative filename is also recognized: .codecov.yml, which is used by this project.
      Two subfolders are also supported in addition to the root of the repository as locations for the configuration file.
      
      The workflow's paths filter was not configured for the alternative filename and locations, meaning the workflow would
      not be triggered on change to the Codecov configuration in projects that use the alternative configuration file name or
      locations.
      
      The workflow's paths filter is hereby configured to recognize changes to any valid Codecov configuration file.
      124c35d3
  5. 23 Jun, 2022 1 commit
    • per1234's avatar
      [skip changelog] Restore globbing of nightly build artifact filename (#1781) · 4a4b784c
      per1234 authored
      During a refactoring of the "Publish Nightly Build" workflow, globbing of the macOS build artifact filename in the
      repackaging step was accidentally lost, causing the glob pattern to be treated instead as a string and the updated
      package saved to a file named by that string instead of to the original filename.
      
      This resulted in the workflow failing with errors like:
      
      Artifact path is not valid: /arduino-cli_nightly-*macOS_64bit.tar.gz. Contains the following character: Asterisk *
      
      The previous `basename` command was providing the globbing. After the refactoring, `basename` is no longer needed, so an
      alternative way to achieve globbing is needed. It seems the preferred approach is use of an array. Since the globbing
      will only expand to a single filename, the array can be referenced as before by the rest of the step, since it will
      resolve to the first element in the array (equivalent to `$PACKAGE_FILENAME[0]`).
      4a4b784c
  6. 22 Jun, 2022 1 commit
    • Umberto Baldi's avatar
      Add support for macos arm64 build (#1770) · 0de6c37b
      Umberto Baldi authored
      * add support for macos arm64 build in the taskfile
      
      * update workflows to handle darwin_arm64 notarization
      
      - the gon config is now hardcoded in the workflow (it allows customization)
      - the notarization step is run in parallel now
      - the updated checksum is passed to the `create-release` job
      - the `create-release` job handles the checksum update in `checksum.txt` file
      
      * use working-directory, this should simplify a bit the workflow
      
      * we cannot upload all the artifacts since the job is being parallelized
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * add macos arm 64 download links in `installation.md`
      0de6c37b
  7. 21 Jun, 2022 2 commits
  8. 20 Jun, 2022 1 commit
  9. 17 Jun, 2022 2 commits
  10. 14 Jun, 2022 2 commits
    • dependabot[bot]'s avatar
      [skip changelog] Bump actions/setup-python from 3 to 4 (#1754) · 813cfe73
      dependabot[bot] authored
      * Bump actions/setup-python from 3 to 4
      
      Bumps [actions/setup-python](https://github.com/actions/setup-python) from 3 to 4.
      - [Release notes](https://github.com/actions/setup-python/releases)
      - [Commits](https://github.com/actions/setup-python/compare/v3...v4)
      
      ---
      updated-dependencies:
      - dependency-name: actions/setup-python
        dependency-type: direct:production
        update-type: version-update:semver-major
      ...
      Signed-off-by: default avatardependabot[bot] <support@github.com>
      
      * Use non-version specific reference URLs for tool version workflow variables
      
      GitHub Actions actions are used by the workflows to set up development tools in the runner workspace.
      
      In order to facilitate updates to new versions of these tools, we set the version to be set up via environment variables
      at the top of the workflow.
      
      Since this variable definition is separate from the step using the action, it might not be immediately apparent to the
      maintainer which version syntaxes are supported. For this reason, comments were added with the URL to the relevant
      section of the consuming action's documentation. Previously, these URLs were made to point to the version of the
      documentation that matched the version of the action in use by the workflow. Since we only use a major version ref, the
      expectation was that this would only need to be updated rarely. However, it turned out that the major version bump cycle
      is significantly shorter than expected. In addition, it is easy to forget the update because action version update PRs
      are provided by Dependabot, which obviously won't update the URLs in the comments.
      
      So it will be best to use a URL that points to the documentation at the tip of the default branch of the action
      repository. The likelihood of the documentation provided by this URL not matching the behavior of the release version of
      the action in use is likely less than it is for an outdated URL.
      Co-authored-by: default avatardependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      813cfe73
    • Cristian Maglie's avatar
  11. 13 Jun, 2022 3 commits
  12. 06 Jun, 2022 3 commits
  13. 03 Jun, 2022 2 commits
  14. 01 Jun, 2022 2 commits
  15. 31 May, 2022 3 commits
  16. 25 May, 2022 1 commit
  17. 24 May, 2022 3 commits
    • Cristian Maglie's avatar
      [breaking] Implementation of sketch profiles (#1713) · 7e9e4cac
      Cristian Maglie authored
      * cosmetic: renamed import
      
      * Simplify function pm.DownloadPlatformRelease
      
      * Implementation of the Profiles parser
      
      * Added methods to get profiles from sketch
      
      * Added gRPC parameters to support profiles
      
      * Added function to load packages for profiles
      
      * Added support for profiles in compile command
      
      * Added progress callback and installMissing flag (stubs) in pm.PrepareLibrariesAndPackageManagersForProfile
      
      * Added auto-install procedures for profiles
      
      * Handle platform not found errors
      
      * Draft implementation of upload with profiles
      
      * Made packagemamager.loadToolsFromPackage public
      
      * Simplified callbacks in commands.Init
      
      * cosmetic: added shortcut variable for library manager
      
      * cosmetic: added shortcut variable for package manager; small readability improvement
      
      * Wiring profiles into arduino-cli and gRPC implementation
      
      * Made gRPC Init return a full Profile structure
      
      Makes it more future-proof in case of further expasion
      
      * (tech debt) Disable profiles if compiling with --libraries/--library
      
      * Fixed some linter warnings
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Added profiles specification docs
      
      * Allow both sketch.yaml and .yml (with priority for .yaml)
      
      * Correctly handle nil return value
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Apply suggestions from code review
      
      * Provide `core install` suggestions only when compiling without profiles
      
      * Remove stray comment
      
      * Fixed some comments in protoc files
      
      * Apply suggestions from code review
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      
      * Implemented missing AsYaml methods and added tests
      
      * Apply suggestions from code review
      
      * run of prettier formatter
      
      * Preserve profiles ordering in profiles.yaml
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      7e9e4cac
    • Cristian Maglie's avatar
      Fixed '--libraries' and '--library' flags description in compile command (#1732) · 48dd5c77
      Cristian Maglie authored
      * Fixed '--libraries' and '--library' flags description in compile command.
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      48dd5c77
    • Cristian Maglie's avatar
      Allow downloading index and signature in a single tar.bz2 archive (#1734) · 652bcace
      Cristian Maglie authored
      * Allow downloading index and signature in a tar.bz2 archive
      
      * Make some configurations resilient to empty settings
      
      * Added tests
      
      * fix comment
      
      * Apply suggestions from code review
      Co-authored-by: default avatarUmberto Baldi <34278123+umbynos@users.noreply.github.com>
      
      * Allow .tar.bz2 package index URL
      
      * Fix errors in timeout checks
      
      * Fixed check for stale package_index.json files
      Co-authored-by: default avatarUmberto Baldi <34278123+umbynos@users.noreply.github.com>
      652bcace
  18. 23 May, 2022 1 commit
  19. 20 May, 2022 1 commit
  20. 12 May, 2022 2 commits
  21. 11 May, 2022 2 commits
    • Cristian Maglie's avatar
      Improved gRPC debug logger (#1730) · b6d36c6d
      Cristian Maglie authored
      Since many gRPC calls may happen together, to better understand what's
      happening now:
      
      - each call is identified by a sequence number (even if they are
        interleaved)
      - when a non-streaming calls ends a "CALL END" log is printed
      b6d36c6d
    • George White's avatar
      Use real names for libs in upgrade commands (#1725) · ca8c48a7
      George White authored
      The real name for a lib (the name stored in the library.properties)
      is required to find a library in the index. The installed name, which
      matches the diretory name, is not valid for looking up libraries in
      the index.
      
      Libraries that do not have a library.properties file, or where the
      name value in that file does not match the value in library_index.json,
      cannot be upgrade by the CLI.
      
      Also Fix tests for outdated libs
      
      The tests for update and outdated changed the library.properties
      file for an installed lib, but also wiped out the name field.
      Since we rely on that field to determine the library name when
      using the RealName property, the test's change was causing a failure
      outside the scope of the test itself.
      ca8c48a7
  22. 10 May, 2022 1 commit
    • per1234's avatar
      [skip changelog] Use form-based issue templates (#1729) · 554c49d3
      per1234 authored
      High quality feedback via GitHub issues is a very valuable contribution to the project. It is important to make the
      issue creation and management process as efficient as possible for the contributors, maintainers, and developers.
      
      Issue templates are helpful to the maintainers and developers because it establishes a standardized framework for the
      issues and encourages the contributors to provide the essential information.
      
      The contributor is now presented with a web form when creating an issue. This consists of multi-line input fields that
      have the same formatting, preview, and attachment capabilities as the standard GitHub Issue composer, in addition to
      menus and checkboxes where appropriate.
      
      The use of this form-based system should provide a much better experience for the contributors and also result in higher
      quality issues by establishing a standardized framework for the issues and encouraging contributors to provide the
      essential information.
      
      A template chooser allows the contributor to select the appropriate template type, redirects support requests to the
      appropriate communication channels via "Contact Links", and provides a prominent link to security policy to guide any
      vulnerability disclosures.
      
      The clear separation of the types of issues encourages the reporter to fit their report into a specific issue category,
      resulting in more clarity. Automatic labeling according to template choice allows the reporter to do the initial
      classification.
      554c49d3
  23. 05 May, 2022 2 commits