Skip to content

Releases: kamadorueda/alejandra

0.6.0

25 Feb 22:12
Compare
Choose a tag to compare

Added

  • A --check flag, which makes Alejandra emit an exit code of 2
    if any file was changed during formatting.

    This means you can now use Alejandra in your CI/CD
    to ensure your code complies the Alejandra style.

Fixed

  • Multiline strings are handled as utf-8 correctly, preventing panics
    on utf-8 whitespace like:

      ''
      foo
    \u{2002}bar
    ''
  • All inputs and dependencies were updated to their latest version

What's Changed

Full Changelog: 0.5.0...0.6.0

0.5.0

23 Feb 22:02
Compare
Choose a tag to compare

Changed

  • Pattern matching lambdas now always have the comma after the argument:

    -    depthLimit
    +    depthLimit,
        /*
          If this option is true, an error will be thrown, if a certain given depth is exceeded
          */
    -    ,
  • Pattern matching lambdas now support inline comments:

    -  revision ? ""
    -  # Specify revision for the options
    +  revision ? "", # Specify revision for the options
  • If-then-else expressions are indented only when necessary:

    -      then
    -        {
    -          crossDrv = overrideDerivation drv.crossDrv f;
    -          nativeDrv = overrideDerivation drv.nativeDrv f;
    -        }
    +      then {
    +        crossDrv = overrideDerivation drv.crossDrv f;
    +        nativeDrv = overrideDerivation drv.nativeDrv f;
    +      }
  • All inputs and dependencies were updated to their latest version

  • A lot of code was refactored to improve maintainability

What's Changed

Full Changelog: 0.4.0...0.5.0

0.4.0

22 Feb 00:15
Compare
Choose a tag to compare

Added

  • A text user interface with a progress-bar
    and modern, colorful output (requires a tty).

    image

    When no tty is available
    or in non-interactive environments like a CI/CD
    or when piping alejandra to other commands ($ alejandra 2> file, $ alejandra | cat)
    the old school program output will be used.

  • A --exclude option to the CLI.

  • Refactors to the codebase. We now comply with clippy, a Rust linter.

  • A new structure to the codebase and link time optimizations.

    Binaries were reduced in size by 15%
    with respect to the previous release
    (even with the added features),
    performance was improved in the reference machine
    from 45 seconds to 35 while formatting Nixpkgs on a single core.

Changed

  • The old school program output is now less verbose.

    It prints only the path of files that were changed,
    and a summary of the number of errors and files changed during formatting.

Removed

  • The --debug flag in the CLI.

What's Changed

New Contributors

Full Changelog: 0.3.0...0.4.0

0.3.1

21 Feb 00:13
Compare
Choose a tag to compare

Added

  • Prebuilt binaries for armv6l-linux, armv7l-linux, i686-linux.

Changed

  • Native aarch64-linux now use GNU libc instead of musl,
    this makes the binary run faster on multi-threaded hardware.

Fixed

  • All prebuilt binaries are now fully statically linked.
  • An attempt to subtract with overflow in some scenarios of a let-in expression.

What's Changed

New Contributors

Full Changelog: 0.3.0...0.3.1

0.3.0

18 Feb 23:48
Compare
Choose a tag to compare

Changed

  • Let-in expressions are now indented in the top-level of a file.

  • Patterns avoid a new line after @:

    -        args @
    -        {
    +        args @ {
    -  }
    -  @ inp:
    +  } @ inp:
  • Attribute sets no longer have spaces
    before the first element or after the last:

    - { b = 1; }
    + {b = 1;}
  • Pattern matching lambdas no longer have spaces
    before the first or after the last element:

    - ({ ... }: _)
    + ({...}: _)
  • Ellipsis is no longer count as an element when spreading pattern matching lambdas:

    -  {
    -    pkgs,
    -    ...
    -  }:
    +  {pkgs, ...}:
  • Pattern matching lambdas now follow the equal sign:

    -  fnLocationRelative =
    -    {
    -      name,
    -      value,
    -    }:
    +  fnLocationRelative = {
    +    name,
    +    value,
    +  }:
  • with expressions now indent the new scope and follow the equal sign:

    -    binPath =
    -      with pkgs;
    +    binPath = with pkgs;
  • Nested lambdas are now not indented:

      # comment
      a:
    -   # comment
    -   b:
    -     _
    + # comment
    + b:
    +   _
  • Brace-like elements after a pattern entry now follow the exclamation mark:

    -  rootPoolProperties ?
    -    {
    -      autoexpand = "on";
    -    },
    +  rootPoolProperties ? {
    +    autoexpand = "on";
    +  },

Pull Requests

Full Changelog: 0.2.0...0.3.0

0.2.0

17 Feb 06:56
Compare
Choose a tag to compare

Added

  • Pre-built binaries for x86_64-linux and aarch64-linux.

  • Made the logic of the or-default (a or b) node
    to be equal to the binary operator (a $operator b).
    This increases consistency across the same family of elements.

  • Remove users freedom to insert newlines
    before the ? in pattern bindings (a ? b).

    Inserting a newline after the ? is still possible.

    This increases consistency on where to break a long pattern binding.

  • Remove space on empty containers ([], {}).

  • Add a --version flag to the CLI.

  • Reduce 1 indentation level in let-in expressions,
    when the target expression is a parenthesis, attr-set, list, or string.

  • Support inline comments on lists, attr-sets, and let-in expressions.

  • String interpolations in multi-line strings
    now have a nice-looking indentation.

Fixed

  • A bug in the current position counter
    caused a small percentage of multiline comments in Nixpkgs
    to be unaligned by one character.

Pull Requests

Full Changelog: 0.1.0...0.2.0

0.1.0

15 Feb 02:19
Compare
Choose a tag to compare

What's Changed

New Contributors

  • @blaggacao made their first contribution in #5
  • @ModdedGamers made their first contribution in #18
  • @tomberek made their first contribution in #24

Full Changelog: 0.0.0...0.1.0

0.0.0

15 Feb 02:00
Compare
Choose a tag to compare
feat: release into the public domain