Skip to content

v7.17.0

Choose a tag to compare

@kdeldycke kdeldycke released this 25 May 12:14
Immutable release. Only release title and notes can be modified.
  • All built-in themes now apply the man-pages(7) font convention: literal tokens (command and subcommand names, aliases, option flags, choice values) render bold, and replaceable tokens (metavars, argument names) render italic, layered on top of each palette's colors. The split is declared by the new LITERAL_STYLES / REPLACEABLE_STYLES frozensets in click_extra.theme, and a test enforces that every built-in theme keeps it. To avoid piling bold onto slots that already stand out, heading (now color + underline), deprecated, and search drop their bold; critical keeps it, as it is the only cue distinguishing it from error. In light and solarized_dark, heading is recolored (to magenta and violet respectively) so it stays distinct from the now-bold options and subcommands it previously shared a color with.
  • Add a manpage built-in theme: a colorless palette rendering the same bold-literal / italic-replaceable convention with no color, shadowing how man-pages(7) typesets a command. Selectable via --theme manpage.
  • HelpCommand now raises click.NoSuchCommand instead of click.UsageError when an unknown subcommand is requested. The user sees did-you-mean suggestions: Error: No such command 'instal'. (Did you mean one of: 'install', 'uninstall'?).
  • Bump the Click floor to 8.4.1. Click 8.4.0 (PR pallets/click#3423) injects a space between an option's help text and its (DEPRECATED) label. The 8.4.1 floor (not 8.4.0) is required because Click 8.4.0 (PR pallets/click#3404) delayed set_parameter_source until after process_value, so eager callbacks that introspect ctx.get_parameter_source(self.name) read None and missed whether the option was set from the command line, environment, or default. This broke ColorOption's NO_COLOR/FORCE_COLOR precedence detection, ConfigOption's explicit-vs-autodiscover branching, and ShowParamsOption's Source column. Click 8.4.1 (PR pallets/click#3484) restores the pre-8.4.0 contract.
  • Remove the HelpExtraFormatter.write_usage override. Click 8.4.0 (PR pallets/click#3420) made TextWrapper measure visible width instead of raw bytes, so the 24-bit-RGB-theme wrap workaround is no longer needed.
  • Drop the explicit type=UNPROCESSED from NoConfigOption.__init__. Click 8.4.0 (PR pallets/click#3363) auto-detects UNPROCESSED for flag_value with non-basic types, so the flag_value=NO_CONFIG sentinel reaches Option unchanged on its own.
  • Bump the requests floor to 2.34. Requests 2.34.0 ships inline type annotations, so the types-requests stub package is no longer needed and has been removed from the typing dependency group.
  • Bump the myst-parser floor in the docs dependency group to 5.1. Doc builds now use myst-parser's native "alert" syntax extension (added in 5.1.0) instead of the in-tree regex converter in click_extra.sphinx.alerts; "alert" is added to myst_enable_extensions in docs/conf.py. The in-tree converter remains in place for the base test dependency group, where myst-parser>=4 still resolves to 4.x on Python 3.10.
  • Drop the colorama test-matrix variation. Click PR pallets/click#3505 merged the Colorama-removal branch into stable, making a dedicated CI axis unnecessary.

Full changelog: v7.16.1...v7.17.0


🛡️ VirusTotal scans

Binary Detections Analysis
click-extra-7.17.0-linux-arm64.bin 0 / 52 View scan
click-extra-7.17.0-linux-x64.bin 0 / 59 View scan
click-extra-7.17.0-macos-arm64.bin 1 / 60 View scan
click-extra-7.17.0-macos-x64.bin pending View scan
click-extra-7.17.0-windows-arm64.exe 1 / 68 View scan
click-extra-7.17.0-windows-x64.exe 5 / 71 View scan