Skip to content

Communicate first run Internet access requirement to user #784

Open
@per1234

Description

@per1234

Describe the problem

On the first run, Arduino IDE must download some files from the Internet:

  • builtin:serial-discovery
  • builtin:mdns-discovery
  • builtin:ctags
  • The "Arduino AVR Boards" platform
  • The standard libraries

If the IDE does not have Internet access at that time, it can not reach a functional state. There is currently no communication to the user in this situation.

This is a change from Arduino IDE 1.x, which is in a fully functional state from the start with no hard dependency on an Internet connection (though obviously Library/Boards Manager can't be used).

To reproduce

  1. Quit the IDE if it is running.
  2. Rename or delete (:warning: cautiously) the following folders to simulate the environment of a first run:
    • Windows:
      C:\Users\<username>\.arduinoIDE
      
      C:\Users\<user name>\AppData\Local\Arduino15
      
      C:\Users\<user name>\AppData\Roaming\arduino-ide
      
      C:\Users\<user name>\Documents\Arduino
      
    • Linux:
      ~/.arduinoIDE
      
      ~/.arduino15
      
      ~/.config/arduino-ide
      
      ~/Arduino
      
    • macOS:
      ~/.arduinoIDE
      
      ~/Library/Arduino15
      
      ~/Library/Application Support/arduino-ide
      
      ~/Arduino
      
  3. Disconnect your computer from the Internet.
  4. Start the Arduino IDE.
  5. Wait as long as you need to feel confident the IDE has finished doing all first run procedures.
  6. Connect an Arduino board to your computer.
  7. Open the board/port selector.
    🐛 Notice that the board and port are not listed.
  8. Select Tools > Board from the Arduino IDE menus.
    🐛 Notice that the expected "Arduino AVR Boards" menu item is not present.
  9. Open the Tools > Port menu.
    🐛 Notice that the port of your board is not listed.
  10. Open the Sketch > Include Library menu.
    🐛 Notice that there are no libraries.

After you connect to the Internet and restart the IDE, the discoveries will be installed, so the missing ports issue will resolve itself at that time 🙂. However, the missing "Arduino AVR Boards" platform and libraries condition is persistent 🐛 because this is only attempted on the first run, whether or not it fails.

Expected behavior

  • Communicate to the user when resources could not be installed on first run.
  • Record whether the arduino:avr and "Arduino_BuiltIn" installations were successful, and if not then retry on subsequent startups.
    • Note: This must be done based on a dedicated record, and not on the presence/absence of these installations because users may have later removed unwanted installations after they were successfully installed automatically.

Arduino IDE version

Original report

2.0.0-rc3-snapshot.1d88263

Last verified with

9a6a457

Operating system

Windows

Operating system version

10

Additional context

At one time, the IDE showed a notification when there was no Internet connection (#266), which was cryptic but at least gave some feedback:

Request loadSketch failed with message: 2 UNKNOWN: downloading builtin:[email protected] tool: Get "https://downloads.arduino.cc/tools/ctags-5.8-arduino11-pm-i686-mingw32.zip": dial tcp: lookup downloads.arduino.cc: no such host

But that notification is no longer shown (probably because the system has been made more tolerant of error conditions).


Additional reports:

Issue checklist

  • I searched for previous reports in the issue tracker
  • I verified the problem still occurs when using the latest nightly build
  • My report contains all necessary details

Metadata

Metadata

Assignees

Labels

topic: codeRelated to content of the project itselftype: enhancementProposed improvement

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions