Skip to content

Communicate first run Internet access requirement to user #784

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
3 tasks done
per1234 opened this issue Jan 28, 2022 · 1 comment
Open
3 tasks done

Communicate first run Internet access requirement to user #784

per1234 opened this issue Jan 28, 2022 · 1 comment
Assignees
Labels
topic: code Related to content of the project itself type: enhancement Proposed improvement

Comments

@per1234
Copy link
Contributor

per1234 commented Jan 28, 2022

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
@per1234
Copy link
Contributor Author

per1234 commented Jul 18, 2022

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
Labels
topic: code Related to content of the project itself type: enhancement Proposed improvement
Projects
None yet
Development

No branches or pull requests

3 participants