https://fedoraproject.org/wiki/Changes/Fish_3.0 == Summary == Update [https://fishshell.com/ Fish] to 3.0. == Owner == * Name: [[User:ignatenkobrain|Igor Gnatenko]] * Email: ignatenkobrain@xxxxxxxxxxxxxxxxx == Detailed Description == Not only update it in F30 but also provide new version as opt-in for F28 and F29. == Benefit to Fedora == The new version of Fish has quite some number of bugfixes, features and performance improvements. == Scope == * Proposal owners: Put fish 3.0 into a module (that means it will be available for F28 and F29) and mark it as default in Rawhide. * Other developers: N/A (not a System Wide Change) * Release engineering: [https://pagure.io/releng/issue/8077 #8077] * Policies and guidelines: N/A (not a System Wide Change) * Trademark approval: N/A (not needed for this Change) == Upgrade/compatibility impact == * Process and job expansion has largely been removed. <code>%</code> will no longer perform these expansions, except for <code>%self</code> for the PID of the current shell. Additionally, job management commands (<code>disown</code>, <code>wait</code>, <code>bg</code>, <code>fg</code> and <code>kill</code>) will expand job specifiers starting with <code>%</code> ([https://github.com/fish-shell/fish-shell/issues/4230 #4230], [https://github.com/fish-shell/fish-shell/issues/1202 #1202]). * <code>set x[1] x[2] a b</code>, to set multiple elements of an array at once, is no longer valid syntax ([https://github.com/fish-shell/fish-shell/issues/4236 #4236]). * A literal <code>{}</code> now expands to itself, rather than nothing. This makes working with <code>find -exec</code> easier ([https://github.com/fish-shell/fish-shell/issues/1109 #1109], [https://github.com/fish-shell/fish-shell/pull/4632 #4632]). * Literally accessing a zero-index is now illegal syntax and is caught by the parser ([https://github.com/fish-shell/fish-shell/issues/4862 #4862]). (fish indices start at 1) * Successive commas in brace expansions are handled in less surprising manner. For example, <code>{,,,}</code> expands to four empty strings rather than an empty string, a comma and an empty string again ([https://github.com/fish-shell/fish-shell/issues/3002 #3002], [https://github.com/fish-shell/fish-shell/pull/4632 #4632]). * <code>for</code> loop control variables are no longer local to the <code>for</code> block ([https://github.com/fish-shell/fish-shell/issues/1935 #1935]). * Variables set in <code>if</code> and <code>while</code> conditions are available outside the block ([https://github.com/fish-shell/fish-shell/issues/4820 #4820]). * Local exported (<code>set -lx</code>) vars are now visible to functions ([https://github.com/fish-shell/fish-shell/issues/1091 #1091]). * The new <code>math</code> builtin (see below) does not support logical expressions; <code>test</code> should be used instead ([https://github.com/fish-shell/fish-shell/issues/4777 #4777]). * Range expansion will now behave sensibly when given a single positive and negative index (<code>$foo[5..-1]</code> or <code>$foo[-1..5]</code>), clamping to the last valid index without changing direction if the list has fewer elements than expected. * <code>read</code> now uses <code>-s</code> as short for <code>--silent</code> (à la <code>bash</code>); <code>--shell</code>'s abbreviation (formerly <code>-s</code>) is now <code>-S</code> instead ([https://github.com/fish-shell/fish-shell/issues/4490 #4490]). * <code>cd</code> no longer resolves symlinks. fish now maintains a virtual path, matching other shells ([https://github.com/fish-shell/fish-shell/issues/3350 #3350]). * <code>source</code> now requires an explicit <code>-</code> as the filename to read from the terminal ([https://github.com/fish-shell/fish-shell/issues/2633 #2633]). * Arguments to <code>end</code> are now errors, instead of being silently ignored. * The names <code>argparse</code>, <code>read</code>, <code>set</code>, <code>status</code>, <code>test</code> and <code>[</code> are now reserved and not allowed as function names. This prevents users unintentionally breaking stuff ([https://github.com/fish-shell/fish-shell/issues/3000 #3000]). * The <code>fish_user_abbreviations</code> variable is no longer used; abbreviations will be migrated to the new storage format automatically. * The <code>FISH_READ_BYTE_LIMIT</code> variable is now called <code>fish_byte_limit</code> ([https://github.com/fish-shell/fish-shell/issues/4414 #4414]). * Environment variables are no longer split into arrays based on the record separator character on startup. Instead, variables are not split, unless their name ends in PATH, in which case they are split on colons ([https://github.com/fish-shell/fish-shell/issues/436 #436]). * The <code>history</code> builtin's <code>--with-time</code> option has been removed; this has been deprecated in favor of <code>--show-time</code> since 2.7.0 ([https://github.com/fish-shell/fish-shell/pull/4403 #4403]). * The internal variables <code>__fish_datadir</code> and <code>__fish_sysconfdir</code> are now known as <code>__fish_data_dir</code> and <code>__fish_sysconf_dir</code> respectively. == How To Test == 0. Make sure to have modular repositories enabled 1. Run dnf module install fish:3 2. Try out normal workload in fish == User Experience == * fish now supports <code>&&</code> (like <code>and</code>), <code>||</code> (like <code>or</code>), and <code>!</code> (like <code>not</code>), for better migration from POSIX-compliant shells ([https://github.com/fish-shell/fish-shell/issues/4620 #4620]). * fish may be started in private mode via <code>fish --private</code>. Private mode fish sessions do not have access to the history file and any commands evaluated in private mode are not persisted for future sessions. A session variable <code>$fish_private_mode</code> can be queried to detect private mode and adjust the behavior of scripts accordingly to respect the user's wish for privacy. * A new <code>wait</code> command for waiting on backgrounded processes ([https://github.com/fish-shell/fish-shell/pull/4498 #4498]). * <code>alias</code> has a new <code>--save</code> option to save the generated function immediately ([https://github.com/fish-shell/fish-shell/pull/4878 #4878]). * <code>funced</code> has a new <code>--save</code> option to automatically save the edited function after successfully editing ([https://github.com/fish-shell/fish-shell/pull/4668 #4668]). * <code>history search</code> supports globs for wildcard searching ([https://github.com/fish-shell/fish-shell/issues/3136 #3136]) and has a new <code>--reverse</code> option to show entries from oldest to newest ([https://github.com/fish-shell/fish-shell/pull/4375 #4375]). * <code>set</code> has new <code>--append</code> and <code>--prepend</code> options ([https://github.com/fish-shell/fish-shell/issues/1326 #1326]). * <code>set</code> has a new <code>--show</code> option to show lots of information about variables ([https://github.com/fish-shell/fish-shell/issues/4265 #4265]). * <code>string match</code> with an empty pattern and <code>--entire</code> in glob mode now matches everything instead of nothing ([https://github.com/fish-shell/fish-shell/issues/4971 #4971]). * <code>string split</code> supports a new <code>--no-empty</code> option to exclude empty strings from the result ([https://github.com/fish-shell/fish-shell/pull/4779 #4779]). * <code>string</code> has new subcommands <code>split0</code> and <code>join0</code> for working with NUL-delimited output. * <code>string</code> no longer stops processing text after NUL characters ([https://github.com/fish-shell/fish-shell/issues/4605 #4605]) * <code>string escape</code> has a new <code>--style regex</code> option for escaping strings to be matched literally in <code>string</code> regex operations. * <code>test</code> now supports floating point values in numeric comparisons. * Pressing Ctrl-C while running a script now reliably terminates fish ([https://github.com/fish-shell/fish-shell/issues/5253 #5253]). See https://fishshell.com/release_notes.html for more. == Dependencies == N/A (not a System Wide Change) == Contingency Plan == * Contingency mechanism: (What to do? Who will do it?) N/A * Contingency deadline: N/A (not a System Wide Change) == Documentation == https://fishshell.com/release_notes.html -- Ben Cotton Fedora Program Manager TZ=America/Indiana/Indianapolis _______________________________________________ devel mailing list -- devel@xxxxxxxxxxxxxxxxxxxxxxx To unsubscribe send an email to devel-leave@xxxxxxxxxxxxxxxxxxxxxxx Fedora Code of Conduct: https://getfedora.org/code-of-conduct.html List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines List Archives: https://lists.fedoraproject.org/archives/list/devel@xxxxxxxxxxxxxxxxxxxxxxx