Skip to content

Flag renaming: replace underscores with dashes #17880

@deepthi

Description

@deepthi

For a while now, new flags have been added with - rather than _, with the result that we have a mix of the two conventions in flag naming. For example, a snippet from vttablet's flags

      --vstream-binlog-rotation-threshold int                            Byte size at which a VStreamer will attempt to rotate the source's open binary log before starting a GTID snapshot based stream (e.g. a ResultStreamer or RowStreamer) (default 67108864)
      --vstream_dynamic_packet_size                                      Enable dynamic packet sizing for VReplication. This will adjust the packet size during replication to improve performance. (default true)
      --vstream_packet_size int                                          Suggested packet size for VReplication streamer. This is used only as a recommendation. The actual packet size may be more or less than this amount. (default 250000)

We want to standardize on - as the delimiter. However, this will be a breaking change that we need to phase in over multiple releases.
Given how close we are to code freeze for v22 (Apr 1), we should plan the first phase of this for v23. Unlike the standard 2 release deprecation/deletion, we should give our users more grace period to adapt to new flag names, so we'll support both forms for 2 releases, v23 and v24. We'll drop support for underscores in v25.

This is being done as part of the LFX project: #17687

Plan:

  • Support both forms of flags in v23 and v24
  • Remove support for underscores in flag names in v25

Tasks:
We need to go through every binary, and add the - form of flags wherever we currently have _ and deprecate the old ones.

List of binaries to conquer:

  • vtctld
  • vtctldclient
  • vttablet
  • vtgate
  • vtorc
  • mysqlctl
  • mysqlctld
  • vtcombo
  • vttestserver
  • vtbackup
  • vtclient
  • everything else

Note: We don't really want to extend the usage of DualFormatVar for flags, because technically that supports a mix of dashes and underscores, and that is not what we want to do.

Sub-issues

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions