Release v13 (#727)

* Write release blog post

* Bump versions

* Update contributors
This commit is contained in:
Ellie Huxtable 2023-02-26 21:22:29 +00:00 committed by GitHub
parent 8a2fa44b01
commit fe5f728aa6
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 285 additions and 74 deletions

8
Cargo.lock generated
View file

@ -70,7 +70,7 @@ dependencies = [
[[package]] [[package]]
name = "atuin" name = "atuin"
version = "12.0.0" version = "13.0.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"atuin-client", "atuin-client",
@ -108,7 +108,7 @@ dependencies = [
[[package]] [[package]]
name = "atuin-client" name = "atuin-client"
version = "12.0.0" version = "13.0.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"atuin-common", "atuin-common",
@ -147,7 +147,7 @@ dependencies = [
[[package]] [[package]]
name = "atuin-common" name = "atuin-common"
version = "12.0.0" version = "13.0.0"
dependencies = [ dependencies = [
"chrono", "chrono",
"serde", "serde",
@ -156,7 +156,7 @@ dependencies = [
[[package]] [[package]]
name = "atuin-server" name = "atuin-server"
version = "12.0.0" version = "13.0.0"
dependencies = [ dependencies = [
"async-trait", "async-trait",
"atuin-common", "atuin-common",

View file

@ -1,6 +1,6 @@
[package] [package]
name = "atuin" name = "atuin"
version = "12.0.0" version = "13.0.0"
authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"] authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"]
edition = "2021" edition = "2021"
rust-version = "1.59" rust-version = "1.59"
@ -44,9 +44,9 @@ sync = ["atuin-client/sync"]
server = ["atuin-server", "tracing-subscriber"] server = ["atuin-server", "tracing-subscriber"]
[dependencies] [dependencies]
atuin-server = { path = "atuin-server", version = "12.0.0", optional = true } atuin-server = { path = "atuin-server", version = "13.0.0", optional = true }
atuin-client = { path = "atuin-client", version = "12.0.0", optional = true, default-features = false } atuin-client = { path = "atuin-client", version = "13.0.0", optional = true, default-features = false }
atuin-common = { path = "atuin-common", version = "12.0.0" } atuin-common = { path = "atuin-common", version = "13.0.0" }
log = "0.4" log = "0.4"
env_logger = "0.10.0" env_logger = "0.10.0"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "atuin-client" name = "atuin-client"
version = "12.0.0" version = "13.0.0"
authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"] authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"
@ -23,7 +23,7 @@ sync = [
] ]
[dependencies] [dependencies]
atuin-common = { path = "../atuin-common", version = "12.0.0" } atuin-common = { path = "../atuin-common", version = "13.0.0" }
log = "0.4" log = "0.4"
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }

View file

@ -1,6 +1,6 @@
[package] [package]
name = "atuin-common" name = "atuin-common"
version = "12.0.0" version = "13.0.0"
authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"] authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"

View file

@ -1,6 +1,6 @@
[package] [package]
name = "atuin-server" name = "atuin-server"
version = "12.0.0" version = "13.0.0"
authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"] authors = ["Ellie Huxtable <ellie@elliehuxtable.com>"]
edition = "2018" edition = "2018"
license = "MIT" license = "MIT"
@ -9,7 +9,7 @@ homepage = "https://atuin.sh"
repository = "https://github.com/ellie/atuin" repository = "https://github.com/ellie/atuin"
[dependencies] [dependencies]
atuin-common = { path = "../atuin-common", version = "12.0.0" } atuin-common = { path = "../atuin-common", version = "13.0.0" }
tracing = "0.1" tracing = "0.1"
chrono = { version = "0.4", features = ["serde"] } chrono = { version = "0.4", features = ["serde"] }

View file

@ -0,0 +1,173 @@
---
title: Announcing Atuin v13
description: Release notes for Atuin v13
slug: release-v13
authors: [ellie]
tags: [release]
---
Announcing a new release of Atuin! v13 is out now. Atuin allows you to easily search and sync your shell history across many machines.
You can update your installation via your system package manager, or by downloading the latest release from the [release page](https://github.com/ellie/atuin/releases).
We had a lot of changes in this release - I'll call out a few, but this is not exhaustive.
## Crossterm
Deserving of a special callout, we now use [Crossterm](https://github.com/ellie/atuin/pull/331) as our TUI backend - this has been a huge effort, and has taken almost a year. Thank you to Conrad for pushing through it, and [@pdecat](https://github.com/pdecat) for your contributions!
In the future this will allow for things like (possible) Windows support, and only using a small part of the screen for the search UI. It also handles async input better.
Please let us know if you experience any issues!
## New features
### Pretty Stats
<center>
![stats image](stats.png)
</center>
While procrastinating writing [his talk](https://www.youtube.com/watch?v=7pU3gOVAeVQ), Conrad [added](https://github.com/ellie/atuin/pull/707) a new and improved stats display! Just run `atuin stats` to see your statistics. It'd be awesome to see what yours looks like, so please share it with us on [Twitter](https://twitter.com/atuinsh) or [Discord](https://discord.gg/Fq8bJSKPHh)!
### Custom history list format
List history however you want! You can now specify the output format of `atuin history list`
Example
```
atuin history list --format "{time} - [{duration}] - {directory}$\t{command}"
```
See more on the [docs page](/docs/commands/list)!
### History filter
The history filter allows you to exclude commands from history tracking - maybe you want to keep ALL of your `curl` commands totally out of your shell history, or maybe just some matching a pattern.
This supports regular expressions, so you can hide pretty much whatever you want! Thanks for the PR @jbaiter
Configure it in your client-side Atuin config, for example
```
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
history_filter = [
"^secret-cmd",
"^innocuous-cmd .*--secret=.+"
]
```
### Mnemonic key (BIP39)
Previously, it was awkward to copy your Atuin key from machine to machine. Even more awkward to back it up!
We now use BIP39 to display your key in a nice + easily readable haiku-style format. Still - please don't share it!
## Improvements
- Better error messages
- Nix install files + instructions
- Exit when pushing the down arrow from the most recent entry
- Refactor to support generic server-side databases
- Make it easier to disable the ctrl-r and/or up arrow bindings
- Update to axum6
## Fixes
- Fish now handles multi-line commands properly
- Listing history for the current session now works
- Fix `atuin init` for Fish
## Contributor Shoutout!
### [@patricksjackson](https://github.com/patricksjackson)
* Fix minor typo in config.md in https://github.com/ellie/atuin/pull/615
* Re-enable arm docker builds in https://github.com/ellie/atuin/pull/616
* Handle multiline commands in fish shell in https://github.com/ellie/atuin/pull/623
* install.sh: Fallback to using cargo in https://github.com/ellie/atuin/pull/639
* Fix session history listing in https://github.com/ellie/atuin/pull/620
### [@pdecat](https://github.com/pdecat)
* Add support for some additional keys in interactive mode in https://github.com/ellie/atuin/pull/634
* Allow overriding filter and search modes from CLI in https://github.com/ellie/atuin/pull/635
### [@Sciencentistguy](https://github.com/Sciencentistguy)
* Rework `atuin init` in https://github.com/ellie/atuin/pull/652
* Improve error message when $AUTIN_SESSION is not set. in https://github.com/ellie/atuin/pull/654
* Add nix files and install instructions in https://github.com/ellie/atuin/pull/477
### [@BapRx](https://github.com/BapRx)
* chore(#621): Exit atuin when pressing down arrow on most recent entry in https://github.com/ellie/atuin/pull/659
* docs: Remove human short flag from docs, duplicate of help -h in https://github.com/ellie/atuin/pull/663
* feat(history): Add new flag to allow custom output format in https://github.com/ellie/atuin/pull/662
### [@yolo2h](https://github.com/yolo2h)
* docs: Fix typo in zh-CN/README.md in https://github.com/ellie/atuin/pull/666
### [@s1ck](https://github.com/s1ck)
* Fix CI build badge in https://github.com/ellie/atuin/pull/683
### [@conradludgate](https://github.com/conradludgate)
* display mnemonic key in https://github.com/ellie/atuin/pull/694
* axum6 with typesafe state in https://github.com/ellie/atuin/pull/674
* crossterm support in https://github.com/ellie/atuin/pull/331
* stats in https://github.com/ellie/atuin/pull/707
### [@evanpurkhiser](https://github.com/evanpurkhiser)
* Remove whitespace in template client config.tom in https://github.com/ellie/atuin/pull/697
* Fix missing `-` in key-binding.md in https://github.com/ellie/atuin/pull/698
### [@eripa](https://github.com/eripa)
* docs(README): add static activity graph example by @eripa in https://github.com/ellie/atuin/pull/680
### [@trygveaa](https://github.com/trygveaa)
* Allow using existing key file on login by @trygveaa in https://github.com/ellie/atuin/pull/688
### [@frukto](https://github.com/frukto)
* Make the install script more robust by @frukto in https://github.com/ellie/atuin/pull/692
### [@jbaiter](https://github.com/jbaiter)
* Add `history_filter` setting to exclude commands from history by @jbaiter in https://github.com/ellie/atuin/pull/716
### [@hunger](https://github.com/hunger)
* fish: Fix `atuin init` for the fish shell by @hunger in https://github.com/ellie/atuin/pull/699
### [@ekroon](https://github.com/ekroon)
* Add support for generic database in AppState by @ekroon in https://github.com/ellie/atuin/pull/711
## New Contributors
I very much appreciate the work from all contributors, but a special mention to everyone who made their _first_ contribution in this release, no matter how large or small
* [@pdecat](https://github.com/pdecat) made their first contribution in https://github.com/ellie/atuin/pull/634
* [@BapRx](https://github.com/BapRx) made their first contribution in https://github.com/ellie/atuin/pull/659
* [@yolo2h](https://github.com/yolo2h) made their first contribution in https://github.com/ellie/atuin/pull/666
* [@s1ck](https://github.com/s1ck) made their first contribution in https://github.com/ellie/atuin/pull/683
* [@evanpurkhiser](https://github.com/evanpurkhiser) made their first contribution in https://github.com/ellie/atuin/pull/697
* [@eripa](https://github.com/eripa) made their first contribution in https://github.com/ellie/atuin/pull/680
* [@trygveaa](https://github.com/trygveaa) made their first contribution in https://github.com/ellie/atuin/pull/688
* [@frukto](https://github.com/frukto) made their first contribution in https://github.com/ellie/atuin/pull/692
* [@jbaiter](https://github.com/jbaiter) made their first contribution in https://github.com/ellie/atuin/pull/716
* [@hunger](https://github.com/hunger) made their first contribution in https://github.com/ellie/atuin/pull/699
* [@ekroon](https://github.com/ekroon) made their first contribution in https://github.com/ellie/atuin/pull/711
## Future plans
I've been talking about it for ages and ages, but now that my life has _finally_ settled down I'm going to be focusing on getting [deletions](https://github.com/ellie/atuin/issues/592) out for the next release. We will be switching to an event-based sync, which should allow for many more features and cool things in the future!
## Other changes
### Talk
I spoke about Atuin at FOSDEM! If you want to know more about the project + video is your thing, you can watch it here
<iframe width="560" height="315" src="https://www.youtube.com/embed/uyRmV19qJ2o" title="YouTube video player" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" allowfullscreen></iframe>
### Website
Well... this is new. Previously I never bothered writing much about new releases, and basically just used the autogenerated GitHub release. The docs should be much easier to find here too!
### Twitter
I also opened a Twitter account for Atuin - [@atuinsh](https://twitter.com/atuinsh)
If you fancy chatting to us about anything here, or otherwise, please feel free to drop by the [Discord](https://discord.gg/Fq8bJSKPHh)!
**Full Changelog**: https://github.com/ellie/atuin/compare/v12.0.0...v13.0.0

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View file

@ -11,3 +11,20 @@ title: Listing History
| `--session/-s` | Enable listing history for the current session only (default: false) | | `--session/-s` | Enable listing history for the current session only (default: false) |
| `--human` | Use human-readable formatting for the timestamp and duration (default: false) | | `--human` | Use human-readable formatting for the timestamp and duration (default: false) |
| `--cmd-only` | Show only the text of the command (default: false) | | `--cmd-only` | Show only the text of the command (default: false) |
| `--format` | Specify the formatting of a command (see below) |
## Format
Customize the output of `history list`
Example
```
atuin history list --format "{time} - {duration} - {command}"
```
Supported variables
```
{command}, {directory}, {duration}, {user}, {host} and {time}
```

View file

@ -191,6 +191,17 @@ or `py`.
^core go$ | rb$ | py$ ^core go$ | rb$ | py$
``` ```
## Server config ### history_filter
`// TODO` The history filter allows you to exclude commands from history tracking - maybe you want to keep ALL of your `curl` commands totally out of your shell history, or maybe just some matching a pattern.
This supports regular expressions, so you can hide pretty much whatever you want!
```
## Note that these regular expressions are unanchored, i.e. if they don't start
## with ^ or end with $, they'll match anywhere in the command.
history_filter = [
"^secret-cmd",
"^innocuous-cmd .*--secret=.+"
]
```

View file

@ -1,63 +1,73 @@
const CONTRIBUTORS: &str = r#" const CONTRIBUTORS: &str = r#"
avinassh (@avinassh) Baptiste
b3nj5m1n (@b3nj5m1n) Benjamin Vergnaud
bl-ue (@bl-ue) Brad Robel-Forrest <brad@bitpony.com>
Benjamin Vergnaud (@bvergnaud) Bruce Huang <helbingxxx@gmail.com>
Brad Robel-Forrest (@bradrf) Conrad Ludgate <conradludgate@gmail.com>
Bruce Huang (@helbing) CosmicHorror <LovecraftianHorror@pm.me>
c-14 (@c-14) Daniel <daniel.hub@outlook.de>
ConradLudgate (@conradludgate) Ellie Huxtable <ellie@elliehuxtable.com>
CosmicHorror (@LovecraftianHorror) Eric Crosson
Daniel (@daniel0611) Eric Ripa <eric@ripa.io>
DanielAtCosmicDNA (@DanielAtCosmicDNA) Erwin Kroon
Ellie Huxtable (@ellie) Evan Purkhiser <evanpurkhiser@gmail.com>
Eric Crosson (@EricCrosson) Frank Hamand <frankhamand@gmail.com>
Frank Hamand (@frankh) Herby Gillot <herby.gillot@gmail.com>
Herby Gillot (@herbygillot) Ian Smith <ismith@mit.edu>
Ian Smith (@ismith) Ilkin Bayramli
Ilkin Bayramli (@ibayramli) Violet Shreve <github@shreve.io>
Jakob Schrettenbrunner (@schrej) Jakob Schrettenbrunner <dev@schrej.net>
Jakub Jirutka (@jirutka) Jakob-Niklas See <github@nwex.de>
Jakub Panek (@panekj) Jakub Jirutka <jakub@jirutka.cz>
Jamie Quigley (@Sciencentistguy) Jakub Panek <me@panekj.dev>
Jannik (@mozzieongit) Jamie Quigley <jamie@quigley.xyz>
jean-santos (@jean-santos) Jannik <jannik.peters@posteo.de>
Jerome Ducret (@DucretJe) Jerome Ducret <jdiphone34@gmail.com>
Klas Mellbourn (@Mellbourn) Johannes Baiter <johannes.baiter@gmail.com>
Laurent le Beau-Martin (@laurentlbm) Klas Mellbourn <klas@mellbourn.net>
lchausmann (@lchausmann) Laurent le Beau-Martin
Lucas Burns (@lmburns) Lucas Burns
Lucy (@Absolucy) Lucy <lucy@absolucy.moe>
Luke Baker (@lukebaker) Luke Baker <lukebaker@gmail.com>
Manel Vilar (@manelvf) Manel Vilar <manelvf@gmail.com>
Mark Wotton (@mwotton) Mark Wotton <mwotton@gmail.com>
Martin Indra (@Indy2222) Martin Indra <martin.indra@mgn.cz>
Mat Jones (@mrjones2014) Martin Junghanns <m.junghanns@mailbox.org>
mb6ockatf (@mb6ockatf) Mat Jones <mat@mjones.network>
Michael Bianco (@iloveitaly) Michael Bianco <iloveitaly@gmail.com>
Michael Mior (@michaelmior) Michael Mior <michael.mior@gmail.com>
morguldir (@morguldir) Omer Katz <omer.drow@gmail.com>
mundry (@mundry) Orhun Parmaksız <orhunparmaksiz@gmail.com>
networkException (@networkException) Patrick
Noyzen (@noyez) Patrick Decat <pdecat@gmail.com>
Omer Katz (@thedrow) Patrick Jackson <patrick@jackson.dev>
Orhun Parmaksız (@orhun) Plamen Dimitrov <pdimitrov@pevogam.com>
Patrick (@pmarschik) Sam Edwards <sam@samedwards.ca>
Patrick Jackson (@patricksjackson) Sam Lanning <sam@samlanning.com>
Plamen Dimitrov (@pevogam) Sandro <sandro.jaeckel@gmail.com>
Sam Edwards (@dotsam) Satyarth Sampath <satyarth.23@gmail.com>
Sam Lanning (@s0) Simon Elsbrock <simon@iodev.org>
Sandro (@SuperSandro2000) Tobias Hunger <tobias.hunger@gmail.com>
Satyarth Sampath (@notsatyarth) Trygve Aaberge <trygveaa@gmail.com>
Simon Elsbrock (@elsbrock) TymanWasTaken <tbeckman530@gmail.com>
TymanWasTaken (@TymanWasTaken) Ubiquitous Photon
Ubiquitous Photon (@UbiquitousPhoton) Webmaster At Cosmic DNA
Violet (@shreve) Will Fancher <elvishjerricco@gmail.com>
Will Fancher (@ElvishJerricco) Yolo <noah.chang@outlook.com>
wpbrz (@wpbrz) Yuvi Panda <yuvipanda@gmail.com>
xfzv (@xfzv) ZhiHong Li <joker_lizhih@163.com>
Yuvi Panda (@yuvipanda) avinassh
ZhiHong Li (@OnePieceJoker) b3nj5m1n
c-14 <git@c-14.de>
frukto <fruktopus@gmail.com>
jean-santos <jeanpnsantos@gmail.com>
lchausmann <jazz-github@zqz.dk>
mb6ockatf
morguldir <morguldir@protonmail.com>
mundry
noyez <noyez@ithryn.net>
wpbrz
xfzv
"#; "#;
pub fn run() { pub fn run() {