New release - Pijul 0.8

Thursday, September 14, 2017
By Pierre-√Čtienne Meunier

We’re proud to announce a new release of Pijul: version 0.8.

This version is a major step for us, in terms of stability, usability, and documentation. This post is a short summary of the things we have improved.

A manual

Pijul now has a manual. It’s far from perfect, but contains a tutorial to get started with Pijul and the Nest, and a full reference of all the commands.

Comments welcome! The repository for the manual itself is on the Nest, at https://nest.pijul.com/pijul/manual.

Stability

We’ve improved a lot on stability, especially with respect to conflicts. A number of major bugs were fixed in libpijul, in particular:

I am planning on writing a few more blog posts with war stories about how I noticed and fixed these.

Portability

We have improved on portability, after getting feedback from users of FreeBSD, of various Linux distributions, of OSX and Windows.

In particular, terminal input and output has been through more tests and cases, and has been improved, for instance by using a pager on commands with potentially long outputs, and detecting whether the output is a pseudo-terminal.

Improvements of the Nest

The Nest has also changed completely since our last release: we’ve abandoned the pull request model, because patches are more flexible than that.

Since my last blog post, I’ve also dropped the “tokio hyper ersatz” way of handling HTTP, and am now using Hyper. It is super pleasant to use (past the initial setup part, which wasn’t too easy, since I wanted to run different servers on the same event loop, i.e. on the same thread).

Last minute bonus: a new release of Thrussh

As part of the Pijul project, I wrote Thrussh about a year ago, and updated it to use tokio in a hackish way in the end of 2016.

I just completed a new release, using tokio-io, and a more idiomatic use of tokio everywhere. The code has also been cleaned, and should be able to cope better with asynchronous problems when combining it with other protocols (like we do in the Nest).