diff --git a/CHANGELOG.rst b/CHANGELOG.rst index ea21b3de1..abb6345dd 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -36,6 +36,13 @@ For distributors and developers which allows you to use `uv `__ to provide Sphinx (e.g. `uv run cargo install --path .`). - The minimum supported Rust version (MSRV) has been updated to 1.85. - Fixed saving/loading of universal variables on Cygwin (:issue:`11948`). +- The standalone build mode has been made the default. + This means that the files in ``$CMAKE_INSTALL_PREFIX/share/fish`` will generally not be used anymore, with minor exceptions. + For now, they are still installed redundantly, to prevent upgrades from breaking already-running shells (:issue:`11921`). + This change means that future upgrades will no longer break running shells when an internal function has changed. + To turn this off (which should not be necessary), + patch out the ``embed-data`` feature from ``cmake/Rust.cmake``. + This option will be removed in future. fish 4.1.3 (released ???) diff --git a/build_tools/release-notes.sh b/build_tools/release-notes.sh index ddd64e466..2b84fe706 100755 --- a/build_tools/release-notes.sh +++ b/build_tools/release-notes.sh @@ -84,7 +84,9 @@ if test -z "$CI" || git -C "$workspace_root" tag | grep -q .; then { echo 'The file downloaded from ``Source code (tar.gz)`` will not build correctly.' echo 'A GPG signature using the key published at '"${FISH_GPG_PUBLIC_KEY_URL:-???}"' is available as ``fish-'"$version"'.tar.xz.asc``.' echo - echo 'The files called ``fish-'"$version"'-linux-\*.tar.xz`` are experimental packages containing a single standalone ``fish`` binary for any Linux with the given CPU architecture.' + echo 'The files called ``fish-'"$version"'-linux-\*.tar.xz`` contain' + echo '`standalone fish binaries `__' + echo 'for any Linux with the given CPU architecture.' } >"$relnotes_tmp/fake-workspace"/CHANGELOG.rst sphinx-build >&2 -j auto \ diff --git a/cmake/Rust.cmake b/cmake/Rust.cmake index 370c2287d..b19451399 100644 --- a/cmake/Rust.cmake +++ b/cmake/Rust.cmake @@ -3,6 +3,8 @@ find_package(Rust REQUIRED) set(FISH_RUST_BUILD_DIR "${CMAKE_BINARY_DIR}/cargo/build") +list(APPEND FISH_CARGO_FEATURES_LIST "embed-data") + if(DEFINED ASAN) list(APPEND CARGO_FLAGS "-Z" "build-std") list(APPEND FISH_CARGO_FEATURES_LIST "asan") diff --git a/doc_src/language.rst b/doc_src/language.rst index 2cc4f568a..022161085 100644 --- a/doc_src/language.rst +++ b/doc_src/language.rst @@ -381,7 +381,6 @@ By default ``$fish_function_path`` contains the following: - A directory for users to keep their own functions, usually ``~/.config/fish/functions`` (controlled by the ``XDG_CONFIG_HOME`` environment variable). - A directory for functions for all users on the system, usually ``/etc/fish/functions`` (really ``$__fish_sysconfdir/functions``). - Directories for other software to put their own functions. These are in the directories under ``$__fish_user_data_dir`` (usually ``~/.local/share/fish``, controlled by the ``XDG_DATA_HOME`` environment variable) and in the ``XDG_DATA_DIRS`` environment variable, in a subdirectory called ``fish/vendor_functions.d``. The default value for ``XDG_DATA_DIRS`` is usually ``/usr/share/fish/vendor_functions.d`` and ``/usr/local/share/fish/vendor_functions.d``. -- The functions shipped with fish, usually installed in ``/usr/share/fish/functions`` (really ``$__fish_data_dir/functions``). If you are unsure, your functions probably belong in ``~/.config/fish/functions``.