Home Explore Blog CI



nushell

1st chunk of `blog/2020-01-07-nushell-0_8_0.md`
977365d0e21108a0aed692c2b8edcb27a7e09697a3f238830000000100000dc2
---
title: Nushell 0.8.0
author: Sophia Turner
author_site: https://twitter.com/sophiajturner
author_image: https://www.nushell.sh/blog/images/sophiajt.jpg
excerpt: We're happy to announce the 0.8.0 release of Nu. This continues a series of internal improvements, with better stability and correctness, and, of course, new features.
---

# Nushell 0.8.0

Nushell, or Nu for short, is a new shell that takes a modern, structured approach to your commandline. It works seamlessly with the data from your filesystem, operating system, and a growing number of file formats to make it easy to build powerful commandline pipelines.

We're happy to announce the 0.8.0 release of Nu. This continues a series of internal improvements, with better stability and correctness, and, of course, new features.

# Where to get it

Nu 0.8.0 is available as [pre-built binaries](https://github.com/nushell/nushell/releases/tag/0.8.0) or from [crates.io](https://crates.io/crates/nu). If you have Rust installed you can install it using `cargo install nu`.

If you want more goodies, you can install `cargo install nu --features=stable`.

As part of this release, we also publish a set of plugins you can install and use with Nu. To install, use `cargo install nu_plugin_<plugin name>`.

```
❯ ls nu_plugin_* | sort-by name | get name
────┬──────────────────────
 #  │ <value>
────┼──────────────────────
  0 │ nu_plugin_average
  1 │ nu_plugin_binaryview
  2 │ nu_plugin_fetch
  3 │ nu_plugin_inc
  4 │ nu_plugin_match
  5 │ nu_plugin_post
  6 │ nu_plugin_ps
  7 │ nu_plugin_str
  8 │ nu_plugin_sum
  9 │ nu_plugin_sys
 10 │ nu_plugin_textview
 11 │ nu_plugin_tree
────┴──────────────────────
```

# Unwrapping your presents (sophiajt, andrasio, with help from ubsan)

A classic trick when writing Rust is to use the `.unwrap()` method. This method gives you a quick way to say "panic if you see this happen". When prototyping, it's easy to use this as a way to develop code more quickly, but as a codebase matures you move away from it.

It was time for Nu to move away from using this shortcut. Fixing the unwraps is a lot of work, but the end result is a codebase that reports errors more reliably and doesn't panic as often if something unexpected happens -- which just is what you want when you're making a shell!

We're happy to say there are now no more unwraps in the Nu codebase. We have more improvements in mind, but this already is a big upgrade from where we were a few weeks ago.

# Clippy cleanliness (thibran, vorot93, sophiajt)

Along the same theme of making code as clean as we can, we recently adopted using the `clippy` tool. Clippy is a tool to help point out common mistakes or inefficiencies in your Rust code. The end result of working through its warnings is often a cleaner looking codebase that's also a bit more efficient as a result.

The Nu codebase is now clippy-clean, and we're enforcing this on every new checkin to the codebase.

# Improved

## `which` gets better (avandesa)

```shell
> which which
───────┬──────────────────────────┬─────────
 arg   │ path                     │ builtin
───────┼──────────────────────────┼─────────

Title: Nushell 0.8.0 Release: Internal Improvements and New Features
Summary
Nushell 0.8.0 is released with improvements in stability, correctness, and new features. It's available as pre-built binaries or from crates.io. The release includes a set of plugins that can be installed. The codebase has been improved by removing `.unwrap()` calls and adopting the `clippy` tool for cleaner code. `which` command is improved.