Skip to content

Communicate first run Internet access requirement to user #784

Open
@per1234

Description

@per1234
Contributor

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:ctags@5.8-arduino11 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

Related

Issue checklist

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

Activity

per1234

per1234 commented on Jul 18, 2022

@per1234
ContributorAuthor

Some nice advancements have been made toward resolving this.

#1169 introduces two important advancements:

  • A notification is shown when the "Arduino AVR Boards" platform and "Arduino_BuiltIn" first run installations fail unexpectedly.
    image
  • "Arduino AVR Boards" platform and "Arduino_BuiltIn" first run installations will be retried on next startup when they fail unexpectedly.

Unfortunately, there was also a regression that causes the IDE to hang at the splash screen on first run without Internet connection (#2042), which prevents the IDE from reaching the state where the notification can be shown to the user.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

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

      Participants

      @silvanocerza@per1234@91volt

      Issue actions

        Communicate first run Internet access requirement to user · Issue #784 · arduino/arduino-ide