F30 Self-Contained Change proposal: Fish 3.0

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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>&amp;&amp;</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




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Fedora Announce]     [Fedora Users]     [Fedora Kernel]     [Fedora Testing]     [Fedora Formulas]     [Fedora PHP Devel]     [Kernel Development]     [Fedora Legacy]     [Fedora Maintainers]     [Fedora Desktop]     [PAM]     [Red Hat Development]     [Gimp]     [Yosemite News]

  Powered by Linux