CHANGELOG updates for 3.4.0#8548
Conversation
This one is moot because we've decided to not support these macOS versions anyway - see 8379922. This is because it will no longer build because we're using fstatat now - 71a0d83. We've also decided to drop workarounds immediately, so it's pretty permanent and not just a matter of reverting the fstatat commit - see 01919f1 and parents. So it's superseded by the line about dropping support for macOS < 10.10. |
There was a problem hiding this comment.
Wow! This is amazing work, thank you! I agree almost completely with your choices on what to ignore. I think 8447 could probably go in, though I'm happy to add that at some stage.
I've made some suggestions below to align the entries a bit more to the style I prefer. I've never explicitly codified it, but there's a few terminology choices and I try to stick to present tense, positive statements (avoiding "no longer crashes" or similar), and user observable changes (like "X can now Y", rather than "Made X work with Y"). I'm happy to make these edits after merge if you would prefer.
CHANGELOG.rst
Outdated
|
|
||
| Other improvements | ||
| ------------------ | ||
| - Encourage users to ask questions on Unix & Linux StackExchange instead of the programming-centered StackOverflow (:issue:`8495`). |
There was a problem hiding this comment.
ok, although I think this is a good place for such announcements (if they are important)
CHANGELOG.rst
Outdated
| ---------------- | ||
| - The minimum version of CMake required to build fish was raised to 3.5.0. | ||
| - The CMake installation supports absolute paths for ``CMAKE_INSTALL_DATADIR`` (:issue:`8150`). | ||
| - A build failure when using NetBSD curses on non-NetBSD platforms has been fixed (:issue:`8087`). |
There was a problem hiding this comment.
Maybe "Building using NetBSD curses works on all platforms"
CHANGELOG.rst
Outdated
| - The minimum version of CMake required to build fish was raised to 3.5.0. | ||
| - The CMake installation supports absolute paths for ``CMAKE_INSTALL_DATADIR`` (:issue:`8150`). | ||
| - A build failure when using NetBSD curses on non-NetBSD platforms has been fixed (:issue:`8087`). | ||
| - The build system no longer tries to override the default linker with LLVM's ``lld`` or GNU ``gold`` (:issue:`8152`). |
There was a problem hiding this comment.
Maybe "The build system does not choose a different linker"
There was a problem hiding this comment.
the "different" sounds a bit lonely, but it seems fine
CHANGELOG.rst
Outdated
| - fish's escape sequence removal now also knows Tmux's wrapped escapes. | ||
| - Vi cursor shaping and $PWD reporting is now also enabled on foot (:issue:`8422`). | ||
| - Add a workaround for the ``Terminal.app`` terminal: export ``CLICOLOR`` to ``ls`` because new BSD ``ls`` does not enable colors otherwise (:issue:`8309`). | ||
| - Add workarounds for the ``st`` terminal to make the :kbd:`Delete` and :kbd:`Shift-Tab` keys work (:issue:`8352`, :issue:`8354`). |
There was a problem hiding this comment.
Rather than "Add a workaround" (what the developer has done) I suggest sticking with language that is more in line with what users observe. eg "The :kbd:Delete and :kbd:Shift-Tab keys work more reliably under st (:issue:8352, :issue:8354)"
CHANGELOG.rst
Outdated
| - Skin-tone emoji modifiers (U+1F3FB through U+1F3FF) are now measured as width 0 (:issue:`8275`). | ||
| - fish's escape sequence removal now also knows Tmux's wrapped escapes. | ||
| - Vi cursor shaping and $PWD reporting is now also enabled on foot (:issue:`8422`). | ||
| - Add a workaround for the ``Terminal.app`` terminal: export ``CLICOLOR`` to ``ls`` because new BSD ``ls`` does not enable colors otherwise (:issue:`8309`). |
There was a problem hiding this comment.
What about "ls will use colours on newer versions of Apple Terminal.app"
There was a problem hiding this comment.
Yep, better. I added an "also" so it's clearer that colors are the norm rather than the exception.
- ``ls`` will use colors also on newer versions of Apple's Terminal.app (:issue:`8309`).
CHANGELOG.rst
Outdated
| - Command lines spanning multiple lines will not be overwritten by the completion pager when it fills the entire terminal (:issue:`8509`, :issue:`8405`). | ||
| - When redrawing a multiline prompt, the old prompt was not fully cleared. This has been corrected (:issue:`8163`). | ||
| - Interactive completion would occasionally ignore the last word on the command line due to a race condition. This has been fixed (:issue:`8175`). | ||
| - fish would print errors when trying to autoload completions for command names with embedded null bytes, because those names are truncated by C library routines. This has been fixed by refusing to autoload commands with null bytes (:issue:`8195`). |
There was a problem hiding this comment.
I think this can be dropped, it's a pretty pathological case.
CHANGELOG.rst
Outdated
| - When redrawing a multiline prompt, the old prompt was not fully cleared. This has been corrected (:issue:`8163`). | ||
| - Interactive completion would occasionally ignore the last word on the command line due to a race condition. This has been fixed (:issue:`8175`). | ||
| - fish would print errors when trying to autoload completions for command names with embedded null bytes, because those names are truncated by C library routines. This has been fixed by refusing to autoload commands with null bytes (:issue:`8195`). | ||
| - When a short-lived fish process writes a universal variable, propagation was slow in some cases. This has been sped up (:issue:`8209`). |
There was a problem hiding this comment.
How about "Propagation of universal variables from a fish process that is closing is faster"?
CHANGELOG.rst
Outdated
| - Interactive completion would occasionally ignore the last word on the command line due to a race condition. This has been fixed (:issue:`8175`). | ||
| - fish would print errors when trying to autoload completions for command names with embedded null bytes, because those names are truncated by C library routines. This has been fixed by refusing to autoload commands with null bytes (:issue:`8195`). | ||
| - When a short-lived fish process writes a universal variable, propagation was slow in some cases. This has been sped up (:issue:`8209`). | ||
| - The commandline buffer is drawn in the correct place if the prompt has a trailing empty line (:issue:`8298`). |
There was a problem hiding this comment.
I've tried to stick with "command line" to refer to the current command line buffer, but there's a few other places this needs fixing too.
There was a problem hiding this comment.
done, I'll add a commit fixing the other occurrences in 3.4.0
CHANGELOG.rst
Outdated
| - fish would print errors when trying to autoload completions for command names with embedded null bytes, because those names are truncated by C library routines. This has been fixed by refusing to autoload commands with null bytes (:issue:`8195`). | ||
| - When a short-lived fish process writes a universal variable, propagation was slow in some cases. This has been sped up (:issue:`8209`). | ||
| - The commandline buffer is drawn in the correct place if the prompt has a trailing empty line (:issue:`8298`). | ||
| - When the pager invoked by a builtin's ``--help`` flag was killed by a signal, fish would crash with an assertion failure, which has been fixed (:issue:`8308`). |
There was a problem hiding this comment.
This is pretty niche! I think it can go, or trimmed down to "A crash when reading help text has been fixed"
CHANGELOG.rst
Outdated
|
|
||
| New or improved bindings | ||
| ^^^^^^^^^^^^^^^^^^^^^^^^ | ||
| - Binding :kbd:`Escape` used to break arrow key bindings, because their key codes are prefixed by the escape character. This has been fixed (:issue:`8428`). |
There was a problem hiding this comment.
What about "Escape can now be bound without breaking arrow-key bindings"?
"commandline" is usually the term we use in source code, and it's also a builtin but user visible text should be English.
I used the command from fish-shell#8092 to list issues/PRs with missing changelog entries, and went through most of them and added them to the changelog (or the "ignore" list). This commit message lists the processed issues in a consistent format, and lists the action/reason. For each issue/PR there are twolines: - Issue/PR number + subject - (I used bare issue numbers to avoid cross-referencing on github). - verdict - "added new entry" means that we add a changelog line - "added to existing entry" means that we added the issue link to an existing changelog line. Usually we don't add multiple issue links, but sometimes there are multiple interesting issues. - if the verdict ends with ", ignoring", we added it to the "ignore" list in the changelog. The issues are grouped by verdict, with the interesting/leftover ones on top. The "gh" script is already a quantum leap but we should still find better ways to share the burden of writing the changelog. I noticed that there are many minor updates that can probably be ignored. Filtering them out doesn't take much time but it adds up, especially if it's a single person doing it. Here's the adapted script I used: for issue in (gh issue list --state closed --milestone "fish 3.4.0" -L 500 | sort -n | cut -f 1) egrep --quiet '\W'$issue CHANGELOG.rst; or echo https://github.com/fish-shell/fish-shell/issues/$issue end for pr in (gh pr list --state all --search "milestone:\"fish 3.4.0\"" -L 500 | sort -n | cut -f 1) egrep --quiet '\W'$pr CHANGELOG.rst; or echo https://github.com/fish-shell/fish-shell/pull/$pr end --- Issue 8153: Work around `setpgid` error on older Apple platforms workaround for old OSs for which we've since dropped support, ignoring Issue 8511: math: (n n): incorrect error improved error output, which is very nice but too minor, ignoring Issue 8205: Fish autocomplete error on iOS procursus niche fix, ignoring Issue 8271: Fix `fish_key_reader` wrapper check minor update to not create a harmless alias for fish_key_reader, ignoring Issue 8289: funced dosn't like backslash escapes in function names minor escaping fix, ignoring Issue 8310: Hide whatis database building from the user not something many users would notice in the first place, ignoring Issue 8368: Duplicated "Type 'help argparse' for related documentation" for argparse minor update to error message, ignoring Issue 8444: Variable highlight color does not span lines very obscure fix, ignoring Issue 8195: Errors when trying to autocomplete (invalid) UTF-8 escapes niche fix, ignoring Issue 8308: assertion normal_exited() failed related to paged builtin help niche fix, ignoring Issue 8358: sigsegv on set --show variable (when LANG is set to fr_FR.utf8) niche(?) fix, ignoring Issue 8170: Builtin math ncr can be extremely slow performance improvement only when the input is NaN, ignoring Issue 8204: Always use LC_NUMERIC=C internally performance improvement for math, ignoring --- Issue 8295: Add --function to `read` added to existing entry (565) Issue 8283: Added completions for ethtool added to existing entry Issue 8315: Add dart completion added to existing entry Issue 8330: Add common lisp completions(sbcl/roswell) added to existing entry Issue 8354: Fix st issue with shift+tab added to existing entry (8352) Issue 8391: Support vi-mode cursors in Foot Terminal added to existing entry (8167) Issue 8405: Completions pager should redraw if the subbed completion wraps/unwraps the line added to existing entry (8509) --- Issue 8530: Speed up, fix fish_status_to_signal 8530 added new entry Issue 8547: command -v nonexistent should exit 127 added new entry Issue 8431: Abbr -q return status inconsistent added new entry Issue 8428: Binding escape as user binding breaks escape sequence bindings (arrows, etc) added new entry Issue 8483: Windows "color" command completion added new entry Issue 8087: Doesn't build when using netbsd curses on Linux added new entry Issue 8152: Don't override linker added new entry Issue 8156: Add completions for `git-sizer` added new entry Issue 8163: `d3ceba107e88b6c6e1a0358ebcb30366aeef653f` causes issues with repainting multi-line prompt added new entry Issue 8175: Completion sometimes missing the last token added new entry Issue 8179: `set -S` should mark read-only variables added new entry Issue 8209: Slow interaction between backgrounding, universal variables, and repainting added new entry Issue 8274: Unsetting `$fish_emoji_width` doesn't clear the cached width added new entry Issue 8298: If prompt ends in an empty line, the commandline is inserted at the width of the line before added new entry Issue 8309: colors don't kick in for ls on macOS Big Sur, Monterey (and maybe FreeBSD) added new entry Issue 8337: Adds sub-command clear-session to history command. Issue 5791 added new entry (as 5791) Issue 8352: Fix delete-key in st added new entry Issue 8373: Add clasp completion added new entry Issue 8434: argparse completions added new entry Issue 8510: fish_key_reader ^C warning isn't right added new entry Issue 8519: Use `--almost-all` in `la` function added new entry --- Issue 1363: improve the experience of using fish over mosh listed as 8376, ignoring Issue 8305: incomplete man page completions listed as 8309, ignoring Issue 8059: Support "$(cmd)" command substitution without line splitting listed as 159, ignoring Issue 8127: fish_config: Read colorschemes from .theme files listed as 8132, ignoring Issue 8130: funced: edit the whole file, not just the function definition listed as 391, ignoring Issue 8270: builtin cd: print error about broken symlink listed as 8264, ignoring Issue 8306: fix man completion for BSD's mandoc listed as 8305, ignoring Issue 8441: Don't escape tildes that come from custom completions listed as 8441, ignoring --- Issue 8429: `cargo run --example` completions break with nested example directories update to e 7440 xisting completions, ignoring Issue 8446: Use `cargo run --example` to get list of examples update to existing completions, ignoring Issue 8338: Display local branches before unique remote branches in git completion update to existing completions, ignoring Issue 8118: Node completion: add v8 sparkplug option update to existing completions, ignoring Issue 8183: Add zypper subcommands completion update to existing completions, ignoring Issue 8184: completion nmap: suppress warning when local scripts folder exists update to existing completions, ignoring Issue 8191: add missing `git commit` completions update to existing completions, ignoring Issue 8192: Updated ping completions update to existing completions, ignoring Issue 8202: Add `--function` to `set` completion update to existing completions, ignoring Issue 8219: completion: support `--no` prefixes for mpv flag options update to existing completions, ignoring Issue 8241: complete "mpc load" update to existing completions, ignoring Issue 8243: Add and fix completions for new options update to existing completions, ignoring Issue 8249: Fix completions/ls.fish update to existing completions, ignoring Issue 8256: Fix completions/coredumpctl.fish and add new complete update to existing completions, ignoring Issue 8311: completions/git: Handle "1 .T" & "1 AT" files update to existing completions, ignoring Issue 8323: completions/xbps-query: add missing `-p` completions update to existing completions, ignoring Issue 8326: Update ldapsearch.fish update to existing completions, ignoring Issue 8327: small fix completions/duply.fish update to existing completions, ignoring Issue 8334: Update ip.fish update to existing completions, ignoring Issue 8344: Fix ant completion update to existing completions, ignoring Issue 8365: Update dmesg completions update to existing completions, ignoring Issue 8367: No hints for -g|--global and -U|--universal flags for abbr command update to existing completions, ignoring Issue 8381: Updated systemd-analyze completions update to existing completions, ignoring Issue 8406: vmctl completion function call needs to be quoted update to existing completions, ignoring Issue 8480: pabcnetcclear command completion update update to existing completions, ignoring --- Issue 8495: Stop linking to StackOverflow doc update, ignoring Issue 8176: document `--no-config` doc update, ignoring Issue 8260: Theme demo needs to be adjusted so that only unmatched quote is an error doc update, ignoring Issue 8380: no error about wrong >>? redirection operator doc update, ignoring Issue 8385: set -l works outside of command block doc update, ignoring Issue 8409: Some enhancements to "for" and "while" loop pages doc update, ignoring Issue 8439: Html docs: Remove link underlines again? doc update, ignoring Issue 8457: Old-style options support "=" assignment operator in complete builtin doc update, ignoring Issue 8522: Document prompt_hostname doc update, ignoring --- Issue 8221: edit_command_buffer: use "command" to ignore any functions with the same name only helps broken systems, ignoring Issue 8287: Prepend command to cat only helps broken systems, ignoring Issue 8299: Make less version check compatible with older Fish only helps broken systems, ignoring Issue 8487: fish_config doesn't work without curses module only helps broken systems, ignoring --- Issue 8128: fix 'socket file name too long' error test fix with long tempdirs (macOS), not really user-visible, ignoring Issue 8449: Give tests a more generic name not user-visible, ignoring Issue 8353: string tests sometimes failing on macOS (Github Actions) not user-visible, ignoring Issue 6477: history merge test fails on OpenBSD not user-visible, ignoring --- Issue 8471: Obtain Deno completions from itself update to an unreleased feature (7138), ignoring Issue 8253: `string length --visible` performance update to an unreleased feature, ignoring Issue 8277: Backspace character is ignored when calculating string widths update to an unreleased feature, ignoring Issue 8314: `fish_config choose` leaves previous right prompt in place update to an unreleased feature, ignoring Issue 8394: parenthesis characters outer of $(command substitution) in string cause error update to an unreleased feature, ignoring Issue 8500: Parser bug with command substitutions in strings inside parenthesis update to an unreleased feature, ignoring Issue 8419: fish_config: silently doesn't set color schemes. regression, not in any release, ignoring Issue 8438: :program: in sphinx doesn't link regression, not in any release, ignoring Issue 8478: __fish_seen_argument.fish throws exception when autocompleting regression, not in any release, ignoring --- Issue 8280: Fix typo in abbr docs typofix, ignoring Issue 8321: Fix typo in `set_colors` command documentation typofix, ignoring Issue 8257: Typo funcions -> functions typofix, ignoring --- Issue 8206: remove make_pair no behavior change, ignoring Issue 8222: replace push_back with emplate_back no behavior change, ignoring Issue 8224: clang-tidy: remove pointless virtual no behavior change, ignoring Issue 8227: change value to rvalue reference no behavior change, ignoring Issue 8228: convert const ref to rvalue ref no behavior change, ignoring Issue 8229: clang-tidy: use for range loops no behavior change, ignoring Issue 8230: fix deleted constructors nno behavior change, ignoring Issue 8231: clang-tidy: const reference conversions no behavior change, ignoring Issue 8235: clang-tidy: simplify two bool returns no behavior change, ignoring Issue 8237: clang-tidy: replace size comparisons with empty no behavior change, ignoring Issue 8239: clang-tidy: replace NULL with nullptr no behavior change, ignoring Issue 8252: add constexpr no behavior change, ignoring Issue 8430: __fish_seen_subcommand_from and __fish_seen_argument update no behavior change (apart from a regression that's fixed), ignoring Issue 8476: Run fish_indent on all non-test .fish files no behavior change, ignoring Issue 8477: Use test command instead of bracket command no behavior change, ignoring Issue 8521: Fix code scanning alert - Wrong type of arguments to formatting function no behavior change, ignoring Issue 8236: clang-tidy: replace push_back with emplace_back no behavior change, ignoring ---
|
Thanks for the review! I think I have addressed all comments, so this should be ready. (I haven't resolved threads since I don't know how to do that with the github API) The ignore list is really essential, we should definitely keep sharing this information in future (in whatever form is convenient). (Of course we might have relevant changes that don't have issues, or issues that we forget to milestone but that shouldn't happen too often.)
Yeah definitely, I confused this with one of the changes that prepend "command" somewhere to protect against false friends.. |
|
Thanks, that's excellent. |
No description provided.