1. 16 Nov, 2022 2 commits
    • MatteoPologruto's avatar
      [skip-changelog] Migrate tests from `test_core.py` to `core_test.go` (#1949) · f8506aa3
      MatteoPologruto authored
      * Migrate TestCoreSearchNoArgs from test_core.py to core_test.go
      
      * Migrate TestCoreUpdateIndexUrlNotFound from test_core.py to core_test.go
      
      * Migrate TestCoreUpdateIndexInternalServerError from test_core.py to core_test.go
      
      * Migrate TestCoreInstallWithoutUpdateIndex from test_core.py to core_test.go
      
      * Migrate TestCoreDownload from test_core.py to core_test.go
      
      * Migrate TestCoreInstall from test_core.py to core_test.go
      
      * Migrate TestCoreUninstall from test_core.py to core_test.go
      
      * Migrate TestCoreUninstallToolDependencyRemoval from test_core.py to core_test.go
      
      * Migrate TestCoreZipslip from test_core.py to core_test.go
      
      * Migrate TestCoreBrokenInstall from test_core.py to core_test.go
      
      * Migrate TestCoreUpdateWithLocalUrl from test_core.py to core_test.go
      
      * Migrate TestCoreSearchManuallyInstalledCoresNotPrinted from test_core.py to core_test.go
      
      * Migrate TestCoreListAllManuallyInstalledCore from test_core.py to core_test.go
      
      * Migrate TestCoreListUpdatableAllFlags from test_core.py to core_test.go
      
      * Migrate TestCoreUpgradeRemovesUnusedTools from test_core.py to core_test.go
      
      * Migrate TestCoreInstallRemovesUnusedTools from test_core.py to core_test.go
      
      * Migrate TestCoreListWithInstalledJson from test_core.py to core_test.go
      
      * Migrate TestCoreSearchSortedResults from test_core.py to core_test.go
      
      * Migrate TestCoreListSortedResults from test_core.py to core_test.go
      
      * Migrate TestCoreListDeprecatedPlatformWithInstalledJson from test_core.py to core_test.go
      
      * Migrate TestCoreListPlatformWithoutPlatformTxt from test_core.py to core_test.go
      
      * Migrate TestCoreWithMissingCustomBoardOptionsIsLoaded from test_core.py to core_test.go
      
      * Migrate TestCoreListOutdatedCore from test_core.py to core_test.go
      
      * Migrate TestCoreLoadingPackageManager from test_core.py to core_test.go
      
      * Migrate TestCoreIndexWithoutChecksum from test_core.py to core_test.go
      
      * Migrate TestCoreInstallEsp32 from test_core.py to core_test.go
      
      * Migrate TestCoreSearchUpdateIndexDelay from test_core.py to core_test.go
      
      * Migrate TestCoreDownloadMultiplePlatforms from test_core.py to core_test.go
      
      * Migrate TestCoreInstallCreatesInstalledJson to core_test.go and delete test_core.py
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      
      * Update internal/integrationtest/core/core_test.go
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      Co-authored-by: default avatarCristian Maglie <c.maglie@bug.st>
      f8506aa3
    • MatteoPologruto's avatar
      [skip-changelog] Migrate tests from `test_compile_part_4.py` to `compile_part_4_test.go` (#1924) · 0c823ea0
      MatteoPologruto authored
      * Migrate TestCompileWithLibrary from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithLibraryPriority from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestRecompileWithDifferentLibrary from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithConflictingLibrariesInclude from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithInvalidBuildOptionJson from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithEsp32BundledLibraries from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithEsp8266BundledLibraries from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestGenerateCompileCommandsJsonResilience from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileSketchWithTppFileInclude from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileSketchWithIppFileInclude from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithoutUploadAndFqbn from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileNonInstalledPlatformWithWrongPackagerAndArch from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithKnownPlatformNotInstalled from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileManuallyInstalledPlatformUsingBoardsLocalTxt from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithRelativeBuildPath from test_compile_part_4.py to compile_part_4_test.go
      
      * Migrate TestCompileWithFakeSecureBootCore to compile_part_4_test.go and delete test_compile_part_4.py
      
      * Rearrange compile tests to share the same environment
      0c823ea0
  2. 15 Nov, 2022 1 commit
  3. 14 Nov, 2022 1 commit
  4. 08 Nov, 2022 1 commit
  5. 07 Nov, 2022 6 commits
    • Cristian Maglie's avatar
      15d01aab
    • per1234's avatar
      [skip changelog] Update all mentions of Arduino Pro IDE (#1966) · fffbeaa3
      per1234 authored
      The Arduino Pro IDE application was mentioned several places throughout the documentation. That project became Arduino
      IDE 2.x 1.5 years ago while still in the alpha development phase.
      
      All users of the project will now know it by the name "Arduino IDE 2.x", so the documentation should do the same.
      fffbeaa3
    • per1234's avatar
      [skip changelog] Set correct version for nightly build protobuf archive filename · e6e5dd60
      per1234 authored
      Different version identifiers are used for the build archive filenames depending on the type of build:
      
      Local: git-snapshot
      Tester: test-<reference>-git-snapshot
      Nightly: nightly-<date>
      Production: <tag>
      
      The use of a nightly build version format is specified by setting the `NIGHTLY` environment variable to `true` in the
      GitHub Actions workflow.
      
      An additional step was recently added to the build workflows: the generation of archives of protocol buffer files to
      publish along with the builds. The setting of the `NIGHTLY` environment variable in that step was neglected in the
      nightly build workflow, which caused the protocol buffer archive file to be named with the local build version
      identifier instead of the nightly build version identifier. This also resulted in the protocol buffer archive file not
      being added to the checksums file.
      e6e5dd60
    • per1234's avatar
      [skip changelog] Don't error protobuf archive task if distribution folder already exists · caa34276
      per1234 authored
      The `protoc:collect` task generates a ZIP archive of the project's protocol buffer files for inclusion with the
      published builds.
      
      In the case of the nightly and release build workflows, the distribution folder the archive is generated into was
      already created by the build operations in the preceeding workflow job. Previously, the task (and thus entire build
      workflow) would fail in this case when attempting to create the folder that already exists:
      
      mkdir: cannot create directory ‘../dist’: File exists
      
      In addition to the obvious purpose, the `--parents` flag of the `mkdir` command also has the following additional
      effect:
      
      > no error if existing
      
      So adding this flag to the command resolves the spurious failure. It will create the folder when necessary, but simply
      carry on with the rest of the task when it does exist.
      caa34276
    • per1234's avatar
      [skip changelog] Add missing checkout steps to build publishing workflow jobs · e4eb58b7
      per1234 authored
      GitHub Actions workflows are used to automatically generate nightly builds and production releases of the project.
      
      A workflow job is dedicated to the publishing of the build. Previously, this job only needed to download the workflow
      artifact containing the build filess created by the previous job, generate a checksum file, and upload the builds to
      Arduino's server. None of these operations had any need for the contents of the repository, so a checkout step was not
      added to the job.
      
      An additional operation was recently added to the publishing job: the generation of archives containing the protocol
      buffer files to publish along with the builds. This new operation does require the contents of the repository. A
      checkout step was not added to the job at that time, which caused the protocol buffer generation step and the publishing
      job to fail:
      
      task: No Taskfile found in "/home/runner/work/arduino-cli/arduino-cli". Use "task --init" to create a new one
      
      The problem is resolved by adding a step that uses the `actions/checkout` GitHub Actions action to checkout the Arduino
      CLI repository into the runner machine to make it available for use in that job.
      e4eb58b7
    • MatteoPologruto's avatar
      [skip-changelog] Migrate tests from `test_sketch.py` to `sketch_test.go` (#1921) · 4bb8314f
      MatteoPologruto authored
      * Migrate TestSketchNew from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveNoArgs from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArg from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchDotArgRelativeZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchDotArgAbsoluteZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchDotArgRelativeZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchDotArgAbsoluteZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchDotArgCustomZipPathAndNameWithExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPathAndNameWithExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPathAndNameWithExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPath from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPathAndNameWithExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPathAndNameWithoutExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPathAndNameWithExtension from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveNoArgsWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgRelativeZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgAbsoluteZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgRelativeZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgAbsoluteZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveDotArgCustomZipPathAndNameWithExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithRelativeZipPathAndNameWithExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveRelativeSketchPathWithAbsoluteZipPathAndNameWithExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPathWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithRelativeZipPathAndNameWithExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPathAndNameWithoutExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveAbsoluteSketchPathWithAbsoluteZipPathAndNameWithExtensionWithIncludeBuildDirFlag from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveWithPdeMainFile from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveWithMultipleMainFiles from test_sketch.py to sketch_test.go
      
      * Migrate TestSketchArchiveCaseMismatchFails to sketch_test.go and delete test_sketch.py
      
      * Rearrange tests using subtests
      4bb8314f
  6. 04 Nov, 2022 2 commits
    • MatteoPologruto's avatar
      [skip-changelog] Run integration tests concurrently (#1953) · e53d2f5c
      MatteoPologruto authored
      * Run integration tests concurrently
      
      This enhancement reduces the amount of time needed to execute integration tests, since each test package no longer has to wait for the previous ones to be completed. In order to do this, a regex is used
      to match each test file. It is also specified the path to the directory that contains the file.
      
      * Merge all test files that share a package into one
      
      Having different test files that shared the same package was inefficient, because the whole package test was run one time for each file. This enhancement avoids repeating the same tests more than once.
      e53d2f5c
    • Cristian Maglie's avatar
      Added libraries `.development` flag detection (#1962) · ec3e71ca
      Cristian Maglie authored
      * Added in_development flag in Library gRPC message
      
      * Small cosmetic fix in docs
      
      * Implemented 'in_development' flag in libraries loader
      
      * Added unit-test
      ec3e71ca
  7. 31 Oct, 2022 1 commit
    • per1234's avatar
      [skip changelog] Document filter setting capability of Library/Boards Manager links (#1958) · 4dcf0da6
      per1234 authored
      Arduino IDE allows opening searches in Library Manager and Boards Manager by clicking a link with a special format in a
      comment of the sketch.
      
      During the initial implementation in Arduino IDE 1.x, support for setting the "Type" filter via the URI in addition to
      specifying search keywords was attempted and claimed to work, but never did work. For this reason, it was not previously
      mentioned in the sketch specification.
      
      During the reimplementation of the Library/Boards Manager link feature for Arduino IDE 2.x, the "Type" filter setting
      capability was finally truly implemented, and expanded to also support setting the "Topic" filter in Library Manager via
      the same mechanism.
      
      Now that support for the filter setting capability has been released in Arduino IDE 2.0.1, it should be documented in
      the sketch specification.
      4dcf0da6
  8. 28 Oct, 2022 2 commits
  9. 25 Oct, 2022 1 commit
    • Silvano Cerza's avatar
      Add task to collect proto files and add steps to release them with tester,... · 13f22553
      Silvano Cerza authored
      Add task to collect proto files and add steps to release them with tester, nightly and stable builds (#1931)
      
      * Add task to zip all .proto files for release
      
      * Add proto files in nightly released files
      
      * Add proto files in tester released files
      
      * Add proto files in stable released files
      
      * Fix tester build workflow
      
      * Fix checksums.txt creation in tester and stable build releases
      
      * Change build job of tester build workflow to be generic
      
      * Fix Publish Tester Build job dependencies
      13f22553
  10. 24 Oct, 2022 5 commits
  11. 21 Oct, 2022 5 commits
  12. 20 Oct, 2022 1 commit
  13. 18 Oct, 2022 4 commits
  14. 17 Oct, 2022 1 commit
    • Umberto Baldi's avatar
      Add windows `.msi` installer to the CI (#1899) · ea43a9c6
      Umberto Baldi authored
      * add step to generate a windows msi installer of the Arduino CLI
      
      * remove warning:
      
      `warning : Solution properties are only available during IDE builds or when building the solution file from the command line. To turn off this warning set <DefineSolutionProperties>false</DefineSolutionProperties> in your .wixproj`
      
      * fix error caused by wix peculiar version constraints:
      
      `error CNDL0108: The Product/@Version attribute's value, '0.0.0-test', is not a valid version.  Legal version values should look like 'x.x.x.x' where x is an integer from 0 to 65534.`
      
      * fix `error LGHT0103: The system cannot find the file 'arduino-cli.exe'`
      
      * final adjustments in wix config
      
      * exclude prettier from checking the installer config files, prettier does not support xml out of the box
      
      * add download links
      
      * temporarily disable s3 push and homebrew update for testing
      
      * Upload nightly artifacts for testing
      
      * add windows check certs
      
      * bump to latest windows-sdk and document better
      
      specify timestamp algorithm. Apparently this is required in the latest version of the sdk
      
      * remove useless job id not used anymore (followup of #1883)
      
      * fixed comments
      
      * It's useless to use the output from setupmsbuild
      
      * use YAML-style syntax
      
      * try to uniform the usage of version/tag across the workflow
      
      * Revert "Upload nightly artifacts for testing" && "temporarily disable s3 push and homebrew update for testing"
      
      This reverts commit 3123dfd8ea0b2fa4d2fd33aa4ccd5696f34355d2.
      This reverts commit 24fa25ca65be2d8f149729f3c169479e1848fa51.
      
      * Apply suggestions from code review
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      Co-authored-by: default avatarper1234 <accounts@perglass.com>
      ea43a9c6
  15. 14 Oct, 2022 1 commit
  16. 13 Oct, 2022 2 commits
  17. 12 Oct, 2022 2 commits
  18. 11 Oct, 2022 2 commits
    • per1234's avatar
      [skip changelog] Move upload of coverage data to dedicated job in test workflow (#1915) · 08d746dd
      per1234 authored
      * Move upload of coverage data to dedicated job in test workflow
      
      The code coverage data generated by running the unit tests in the "Test Go" GitHub Actions workflow is uploaded to
      Codecov.
      
      This upload is prone to occasional transient failures. With the previous workflow configuration this caused a failure of
      the Linux test run job. Contributors would need to review the logs to understand that these failures were not caused by
      a test failing. The failure also causes the ongoing jobs that run the tests on other operating systems to be immediately
      canceled, meaning their full test results are not available. The entire test suite must be reran just to attempt the
      upload again.
      
      Moving the upload to a dedicated workflow job makes it faster and easier for contributors to interpret the cause of a
      test failure. It also allows the test suite to complete for all operating systems, making their results immediately
      available to the contributor even when the coverage data upload fails. The coverage upload job can be reran, making
      recovery from a transient failure more efficient.
      
      * Use a single step to upload coverage data in "Test Go" workflow
      
      The code coverage data generated by running the unit tests in the "Test Go" GitHub Actions workflow is uploaded to
      Codecov. Arduino CLI's unit tests are split into two collections: those covering the modernized part of the codebase,
      and those covering the "legacy" code inherited from arduino-builder. A separate code coverage data file is produced for
      each of these collections.
      
      The `codecov/codecov-action` GitHub Actions action is used to perform this upload. Previously, a separate step was used
      for the upload of each of the code coverage files. The action provides the capability to specify multiple files for
      upload in a comma-separated list. This approach will make the workflow more efficient and reliable.
      08d746dd
    • MatteoPologruto's avatar
      [skip-changelog] Migrate tests from `test_board.py` to `board_test.go` (#1847) · fb9d4a8e
      MatteoPologruto authored
      * Migrated TestBoardList from test_board.py to board_test.go
      
      * Migrated TestBoardListWithInvalidDiscovery from test_board.py to board_test.go
      
      * Migrated TestBoardListall from test_board.py to board_test.go
      
      * Migrated TestBoardListallWithManuallyInstalledPlatform from test_board.py to board_test.go
      
      * Migrated TestBoardDetails from test_board.py to board_test.go
      
      * Migrated TestBoardDetailsNoFlags from test_board.py to board_test.go
      
      * Migrated TestBoardDetailsListProgrammersWithoutFlags from test_board.py to board_test.go
      
      * Migrated TestBoardDetailsListProgrammersFlags from test_board.py to board_test.go
      
      * Migrated TestBoardSearch from test_board.py to board_test.go
      
      * Migrated TestBoardAttachWithoutSketchJson from test_board.py to board_test.go
      
      * Migrated TestBoardSearchWithOutdatedCore to board_test.go and deleted test_board.py
      fb9d4a8e