Skip to content

Snapshot release 2023-05-02

Compare
Choose a tag to compare
@oxalica oxalica released this 02 May 18:19
· 119 commits to main since this release
2023-05-02

Happy International Workers' Day! Fight for workers' rights against
overwork "culture" in China!

Features

  • Automatic flake archiving.

  • Flake inputs evaluation and type inference. (#76)

    Due to limitations of nix flake show backend, only known output fields are
    completed, including packages or devShells, but not custom lib.
    legacyPackages is only traversed since Nix 2.14, the first version to
    support filtering packages for only the current system.

    # flake.nix
    {
      inputs.rust-overlay.url = "github:oxalica/rust-overlay";
      outputs = { rust-overlay, ... }: let
        rustPkg = rust-overlay.packages.x86_64-linux.|; # default, rust, rust_nightly, ...
      in ...;
    }
  • Dynamic fields are now inferred to the rest type.
    This helps the common flake output usage:
    rust-overlay.packages.${system}.| # default, rust, ...

  • Auto-reloading flake when flake.{nix,lock} is changed on disk.

    This requires the LSP client to support didChangeWatchedFiles capability.
    VSCode and coc.nvim support it out-of-box, while Neovim's builtin LSP
    requires manual configurations
    (neovim/neovim#22405 (comment)).

  • Progress bars for various costly loading operations.

Fixes

  • Suppress unused warnings for flake auto-inputs. (#73)
  • Parsing errors for string escapes. (#75)
  • Completion for fresh-created unsaved flake.nix.

Internal

  • The LSP frontend is heavily refactored into async-style. The framework
    library is also switched from lsp-server to async-lsp. (#74)
  • MSRV is bumped to 1.68