Skip to content

Keep long-term compatibility for _ command style and provide an env variable to suppress deprecation warnings (ESPTOOL-1219) #1137

@TinyuZhao

Description

@TinyuZhao

Is your feature request related to a problem?

First of all, thank you for your continuous work on esptool and the improvements introduced in v5.
I am an engineer who frequently switches between multiple development environments, including different versions of ESP-IDF and Arduino (PlatformIO and Arduino IDE). Because these environments bundle different versions of esptool, the recent change from underscore (_) command/option names to dash (-) names has caused some practical compatibility issues.

Background of the issue

  • Newer Arduino builds already include esptool v5.x, where old commands with _ still work but print deprecation warnings.
  • Older Arduino / ESP-IDF environments only support the old _ form.
  • This means I cannot use the new - style universally without breaking older environments.
  • At the same time, keeping the _ style causes v5 to output warnings every time, which becomes noisy in daily use.

Because I frequently jump between these environments (and many automation scripts rely on consistent commands), this change brings noticeable inconvenience.

Describe the solution you'd like

I would like to propose two enhancements:

1. Keep long-term compatibility for underscore (_) command and option names

Even if they remain marked as “deprecated”, keeping them functional permanently would greatly improve compatibility across mixed-toolchain environments and avoid breaking older Arduino/IDF setups.

2. Add an environment variable to disable the deprecation warnings

Something like:

ESPTOOL_HIDE_DEPRECATED_WARNING=1

or any similar flag.

This would:

  • Reduce console noise for users who must continue using old-style commands for compatibility reasons
  • Avoid modifying many scripts just to silence harmless warnings
  • Keep default behavior unchanged for most users

Additional context

Many users work with mixed environments (IDF, Arduino, PlatformIO, CI systems). Since these ecosystems evolve at different speeds and bundle different versions of esptool, it’s currently impossible to use a single consistent command style across all of them.

Having a compatibility switch + warning suppression would significantly improve workflow for engineers dealing with legacy and new environments simultaneously.

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions