1. 04 Oct, 2022 2 commits
  2. 03 Oct, 2022 1 commit
    • per1234's avatar
      [skip changelog] Fix pull request template markup (#1901) · 2ad24a76
      per1234 authored
      * [skip changelog] Use correct markup for PR template headings
      
      This repository uses a pull request template in order to provide a standardized structure for pull request messages.
      
      The template imposes a framework for the organization of the pull request message by providing a section to contain each
      of the distinct types of important information to be included in the pull request. As should be obvious, the only
      correct formatting for section headings is heading markup, yet somehow list markup was chosen instead. This collides
      with the appropriate use of lists within the sections.
      
      The template is hereby changed to use the correct markup for headings.
      
      * [skip changelog] Move contributor guide link to appropriate section of PR template
      
      This repository uses a pull request template in order to provide a standardized structure for pull request messages.
      
      The template includes a link to the project's contributor guide. Previously, this link was at the bottom of the
      template, separated from the other content by a horizontal rule. One of the unfortunate ambiguities of the Markdown
      syntax is that the horizontal rule syntax is the same as the "setext" H2 heading syntax, with the differentiation
      depending on whether the prior line is empty. This results in text intended to be part of the "Other information"
      section of the PR message instead being formatted as an H2 heading if the contributor does not add an empty line at the
      end of the "Other information" section.
      
      Moving the link to the section of the template that contains a checklist for the PR requirements makes the relevant
      information readily accessible to the contributor while also avoiding the creation of a formatting trap.
      2ad24a76
  3. 29 Sep, 2022 1 commit
    • MatteoPologruto's avatar
      [skip-changelog] Use a matrix to create parallel builds for each OS (#1883) · 9c784d80
      MatteoPologruto authored
      * Use a matrix create parallel builds for each os
      
      Using a matrix to run each build task greatly improves performances,
      since they can all start concurrently. The finishing time of the job
      will be equal to the one of the longer task to build, instead of being
      the sum of each individual task's finishing time.
      
      * Calculate checksums during release creation
      
      Checksums of the output files where previously calculated during the initial creation of the artifacts, during the notarization process and, finally, at the release creation's step.
      The whole process has been simplified and checksums are now computed only during the creation of the release.
      
      * Set condition to create changelog once
      
      The changelog is the same for each OS. It does not make sense to generate it more than once.
      
      * Disable s3 push for testing
      
      * Upload nightly artifacts for testing
      
      * Fix linux_arm_6 typo
      
      * Stop uploading nigthly artifacts
      
      * Enable s3 pushing
      
      * Upload build artifacts separately
      
      Previously, the different builds were firstly uploaded using a single artifact, which was then downloaded to create different ones and eventually deleted.
      Now, since builds are created concurrently, the same matrix can be used to directly upload an artifact for each build. It's necessary to use a second job to calculate the checksum related to
      each build and save them all in a single .txt file.
      9c784d80
  4. 28 Sep, 2022 1 commit
  5. 27 Sep, 2022 1 commit
    • MatteoPologruto's avatar
      [skip-changelog] Set test environment directory as CLI WorkingDir (#1886) · baa322f9
      MatteoPologruto authored
      * Set test environment directory as CLI WorkingDir
      
      By default, the working directory is the one containing the test.go file. This causes problems when executing commands that have to create files specifically in the working directory, because they either must be deleted manually or the user has to be aware of it and defer a deleting instruction. Furthermore, it messes with tests using relative paths.
      Setting the environment directory as the CLI's WorkingDir prevents the above mentioned issues from occurring.
      
      * Fix errors related to the change of the working directory
      
      * Use absolute path to create daemon environment
      baa322f9
  6. 26 Sep, 2022 1 commit
    • MatteoPologruto's avatar
      [skip-changelog] Migrate tests from `test_compile_part_1.py` to `compile_part_1_test.go` (#1861) · 6c3755c7
      MatteoPologruto authored
      * Migrate TestCompileWithoutFqbn from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileErrorMessage from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithSimpleSketch from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestOutputFlagDefaultPath from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithSketchWithSymlinkSelfloop from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileBlacklistedSketchname from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithoutPrecompiledLibraries from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithBuildPropertiesFlag from test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithBuildPropertyContainingQuotes from
      test_compile_part_1.py to compile_part_1_test.go
      
      * Migrate TestCompileWithMultipleBuildPropertyFlags to compile_part_1_test.go and delete test_compile_part_1.py
      
      * Shorten testsuite ProjectName and DataDir to prevent errors on Windows runner
      
      Long paths caused certain commands to fail on the Windows runner. Reducing their lengths prevents those errors from occurring.
      6c3755c7
  7. 21 Sep, 2022 2 commits
  8. 20 Sep, 2022 1 commit
  9. 19 Sep, 2022 1 commit
  10. 15 Sep, 2022 1 commit
  11. 12 Sep, 2022 1 commit
  12. 09 Sep, 2022 2 commits
  13. 06 Sep, 2022 3 commits
  14. 02 Sep, 2022 8 commits
  15. 01 Sep, 2022 1 commit
  16. 30 Aug, 2022 1 commit
  17. 27 Aug, 2022 1 commit
  18. 26 Aug, 2022 2 commits
    • Cristian Maglie's avatar
      63f1e185
    • Cristian Maglie's avatar
      [breaking] daemon: Fix concurrency and streamline access to PackageManager (#1828) · 276b0cc9
      Cristian Maglie authored
      * legacy: Removed ToolsLoader step
      
      It has been splitted and merged into HardwareLoader and TargetBoardResolver
      that are more appropriate.
      
      * Fixed some function comments
      
      * Thread-safe protect access to instances map
      
      * Removed state-altering methods from PackageManager
      
      They have been moved into a Builder object that has the ability to build
      a new PackageManager. This allows to clearly separate subrotuines that
      actually change the status of the PackageManager from subroutines that
      just need to query it.
      
      * Created packagemanager.Explorer to query PackageManager data
      
      The Explorer object can be see as a read-only "view" to the underlying
      PackageManager: we may ask the PackageManager to create an Explorer on
      itself. The returned explorer will held a read-lock on the
      PackageManager until it's disposed.
      
      This architecture should prevent unwanted changes on the PackageManager
      while it's being used, and viceversa, when the PackageManager is updated
      it should be guaranteed that no Explorers are reading it.
      
      * PlatformInstall/Uninstall must release PackageManager.Explorer before calling commands.Init
      
      Otherwise, since Init will try to take a write-lock, it will block
      indefinitely.
      
      * Moved commands.InstanceContainer -> rpc.InstanceCommand
      
      * Created a coreInstancesContainer
      
      This container will handle all the atomic access to the instances map.
      
      * Made CoreInstance.PackageManager field private
      
      * Moved the reminder of PackageManager functions to Explorer or Builder
      
      * Now GetPackageManager accepts an rpc.InstanceCommand
      
      It has also been deprecated in favor of GetPackageManagerExplorer.
      
      * Now GetLibraryManager accepts an rpc.InstanceCommand
      
      * Refactored automatic builtin-tool installation
      
      * Added gRPC LibraryUpgrade call and fixed 'lib upgrade' command
      
      * Explorer and Builder should not extend PackageManager
      
      Previuosly the methods PackageManager.NewBuilder and
      PackageManager.NewExplorer were available also on Builder and Explorer.
      
      Now Builder and Explorer does not inherith these methods anymore,
      avoiding trivial errors like the one fixed in this commit in the
      builder_utils package.
      
      * Updated documentation
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      276b0cc9
  19. 24 Aug, 2022 3 commits
  20. 22 Aug, 2022 1 commit
  21. 16 Aug, 2022 1 commit
    • per1234's avatar
      [skip changelog] Add readme for localization data (#1837) · 9fe8560e
      per1234 authored
      Arduino CLI has been translated to 12 languages.
      
      The localization process follows the following steps:
      
      1. An English language source string is defined in the Arduino CLI codebase
      2. The source string is pushed to Transifex
      3. Community translators localize the string
      4. The localization data is pulled into the Arduino CLI repository
      5. The localization data is incorporated into the Arduino CLI distribution
      
      Experience with maintenance of the Arduino IDE 1.x project indicates that the data files generated at step (4) can
      appear to be the appropriate place to make edits for casual contributors not familiar with the project's sophisticated
      internationalization infrastructure.
      
      Since those files are generated by automated systems, any edits made there would only be overwritten, so it is important
      to clearly communicate the correct way to make enhancements or corrections to these strings. This is accomplished by a
      local readme file most likely to be seen by those working in the folder containing these files, which supplements the
      existing information about translation in the project's CONTRIBUTING.md.
      9fe8560e
  22. 12 Aug, 2022 1 commit
  23. 11 Aug, 2022 1 commit
    • per1234's avatar
      [skip changelog] Update broken or outdated links (#1833) · 513f5a12
      per1234 authored
      * [skip changelog] Remove unused link reference definitions in docs
      
      Parts of the documentation use reference links, where the inline markup uses a label, which matches to a link reference
      definition elsewhere in the documentation.
      
      The major disadvantage of this approach is that unused link reference definitions are often left behind after the
      referencing text is removed, cluttering up the documentation and increasing the maintenance burden. That was the case
      here.
      
      The unused link reference definitions are hereby removed.
      
      * [skip changelog] Fix broken links in documentation
      
      Some of the documentation links no longer reached their intended target.
      
      These were not caught by the Markdown link check for one of two reasons:
      
      - Redirects to a useless generic page instead of the moved specific target page
      - Links in non-Markdown files
      
      * [skip changelog] Update documentation links that depend on redirects
      
      Some of the links in the documentation used URLs that were redirecting to the new location of the target page.
      
      Even though these links still took the reader to the intended place eventually, it is safest to not rely on them
      continuing to work for the long term, so is best to update to point directly to the target.
      513f5a12
  24. 10 Aug, 2022 2 commits
    • Cristian Maglie's avatar
      Fix gRPC `BoardList*` methods concurrency issues (#1804) · 9c334ed8
      Cristian Maglie authored
      * Improved streaming of pluggable-discoveries events (WIP)
      
      Now the DiscoveryManager is able to start the discoveries and add/remove
      them in a thread-safe way. Also the watchers may connect and disconnect
      seamlessly at any time, the incoming events from the discovery are
      broadcasted correctly to each active watcher.
      
      This refactoring dramatically simplifies the DiscoveryManager design.
      
      * Added discovery id in discovery.Event struct
      
      * Cache active ports and transmit them when a new watcher connects
      
      * Correctly handle discovery cleanup
      
      * Fixed wrong test
      
      * Correctly handle discovery cleanup and re-add
      
      * Added some doc comments in the source code
      
      * Move Unlock under defer
      
      * Factored subrotuine into a function
      
      it will be useful in the next commits.
      
      * Do not cache ports in the DiscoveryClient
      
      there is already a cache in the DiscoveryManager there is no need to
      duplicate it.
      
      * Discovery: eventChan must be protected by mutex when doing START_SYNC
      
      otherwise the discovery may send some events before the eventChan is
      setup (and those events will be lost)
      
      * Increased error level for logging watchers that lags
      
      * Updated discvoery_client to the latest API
      
      * Report discovery start errors
      
      * Update arduino/discovery/discovery_client/main.go
      Co-authored-by: default avatarUmberto Baldi <34278123+umbynos@users.noreply.github.com>
      Co-authored-by: default avatarUmberto Baldi <34278123+umbynos@users.noreply.github.com>
      9c334ed8
    • Abirdcfly's avatar