# Prepare the release of pijul-0.8

**URL:** <https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73>\
**Category:** Development\
**Created:** [September 5, 2017, 6:22am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73 "2017-09-05T06:22:51Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![lthms](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/lthms/32/124_2.png) [@lthms](https://discourse.pijul.org/u/lthms)\
**Post date:** [September 5, 2017, 6:22am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/1 "2017-09-05T06:22:51Z")

</div>

Hi everyone. I think the current state of pijul is pretty interesting and we should release it. Here is the current ChangeLog.

What do you think?

# ChangeLog

## Features

- Pijul can now deal with cyclic conflicts when unrecording a patch
- Add a new flag `--recursive` to `pijul add` to add a directory and its content  
recursively
- Add support for pre-record hooks to be defined in the `meta.toml` file of a  
repository

## Enhancement

- Add the patch ID in `pijul changes` output
- Conditionally use liner or rustyline to be more portable
- Download patches into a temporary directory and rename them later to perform  
“atomic downloads”
- Improve the conflict markers for conflicts targeting zombie lines
- Show a cursor for changes while recording a patch (in the form of “x/y”)
- Use a pager for `pijul changes`, `pijul blame` and `pijul diff`
- Check if a patch hash given as argument of pijul commands is a valid base64  
representation before using it
- Pijul does not need stdin to be a pty anymore

## Bug Fixes

- Moving a file then reverting was removing the file
- An incorrect unsafe call to Sanakirja was introducing a bug in patch ordering
- Pijul was incorrectly complaining about missing dependencies when applying  
some patches
- Pijul needed two patches to move a tracked file into an untracked directory
- `pijul apply` was waiting for something from stdin for no valid reason
- `pijul unrecord` was introducing wrong conflicts when unrecording only one  
side of the concurrent deletion of some edges

## Dependencies

- liner 1.0 is a new dependency for unix
- pager 0.12 is a new dependency
- getch: 0.1.1 -\> 0.2.0

## Known issues

- `pijul clone --from-branch <branch>` puts the new repository in an incorrect state with no patch but the correct files
- Pijul displays the color markers when not printing to a TTY
- Pijul crashes when writing to a pipe that closes

---

<div class="post-metadata">

**Author:** ![pmeunier](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/pmeunier/32/4_2.png) [@pmeunier](https://discourse.pijul.org/u/pmeunier)\
**Post date:** [September 5, 2017, 6:47am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/2 "2017-09-05T06:47:05Z")

</div>

Let’s call that 0.8, and the next release will have tags. I’ll release today, thanks **a lot** for the changelog.

---

<div class="post-metadata">

**Author:** ![lthms](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/lthms/32/124_2.png) [@lthms](https://discourse.pijul.org/u/lthms)\
**Post date:** [September 5, 2017, 6:58am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/3 "2017-09-05T06:58:26Z")

</div>

Before releasing, I think we should consider adding the patches of @laumann related to progress output. It is a very neat feature that, I think, would be very reassuring for new contributors as, for now, pijul takes quite some time to clone its upstream repository.

What do you think, @pmeunier, @laumann?

---

<div class="post-metadata">

**Author:** ![pmeunier](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/pmeunier/32/4_2.png) [@pmeunier](https://discourse.pijul.org/u/pmeunier)\
**Post date:** [September 6, 2017, 6:53am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/4 "2017-09-06T06:53:08Z")

</div>

Sure. I’ll do that now.

---

<div class="post-metadata">

**Author:** ![laumann](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/laumann/32/8_2.png) [@laumann](https://discourse.pijul.org/u/laumann)\
**Post date:** [September 6, 2017, 7:56am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/5 "2017-09-06T07:56:25Z")

</div>

Good work with the changelog 👍

---

<div class="post-metadata">

**Author:** ![lthms](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/lthms/32/124_2.png) [@lthms](https://discourse.pijul.org/u/lthms)\
**Post date:** [September 6, 2017, 8:20am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/6 "2017-09-06T08:20:39Z")

</div>

This is great! You will need to update the ChangeLog with the related entry. I wonder if it should be put in the “Feature” or “Enhancement” sections (I also wonder if we should merge those two sections, to be honest).

---

<div class="post-metadata">

**Author:** ![lthms](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/lthms/32/124_2.png) [@lthms](https://discourse.pijul.org/u/lthms)\
**Post date:** [September 7, 2017, 10:16pm UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/7 "2017-09-07T22:16:27Z")

</div>

@pmeunier, if you need any help to prepare the release in any way, feel free to ask!

---

<div class="post-metadata">

**Author:** ![lthms](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/lthms/32/124_2.png) [@lthms](https://discourse.pijul.org/u/lthms)\
**Post date:** [September 9, 2017, 9:28pm UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/8 "2017-09-09T21:28:04Z")

</div>

Quick heads-up of the current state of `pijul-0.8`.

# Updated CHANGELOG

Patch to get this new ChangeLog

## Features

- Add a new flag `--recursive` to `pijul add` to add a directory and its content  
recursively
- Add support for hooks
- Manually add patch dependencies when recording a new patch

## Enhancement

- Pijul can now deal with cyclic conflicts when unrecording a patch
- Add the patch ID in `pijul changes` output
- Conditionally use liner or rustyline to be more portable
- Download patches into a temporary directory and rename them later to perform  
“atomic downloads”
- Improve the conflict markers for conflicts targeting zombie lines
- Show a cursor for changes while recording a patch (in the form of “x/y”)
- Use a pager for `pijul changes`, `pijul blame` and `pijul diff`
- Check if a patch hash given as argument of pijul commands is a valid base64  
representation before using it
- Pijul does not need stdin to be a pty anymore
- Report an error when dropping a SSH session

## Bug Fixes

- Moving a file then reverting was removing the file
- An incorrect unsafe call to Sanakirja was introducing a bug in patch ordering
- Pijul was incorrectly complaining about missing dependencies when applying  
some patches
- Pijul needed two patches to move a tracked file into an untracked directory
- `pijul apply` was waiting for something from stdin for no valid reason
- `pijul unrecord` was introducing wrong conflicts when unrecording only one  
side of the concurrent deletion of some edges
- `pijul checkout <branch>` was sometimes failing with a “not enough space”  
error message

## Dependencies

- getch: 0.1.1 -\> 0.2.0
- libc is no longer a dependency
- liner 1.0 is a new dependency for unix
- pager 0.12 is a new dependency
- termion is a new dependency for unix

# Pending Patches

To be applied to `master` before releasing or not, this is the choice of the pijul team.

## Pijul clone/pull reporting

- [Nest discussion with patches attached](https://nest.pijul.com/pijul_org/pijul/discussions/164)
- Tested by: @lthms
- Suggested CHANGELOG entry (in **Enhancement** ): “_Pijul now reports the number of patches it fetches and applies_”

## Ignore files and `pijul status`

- [Nest discussion with patches attached](https://nest.pijul.com/pijul_org/pijul/discussions/168)
- Suggested CHANGELOG entry (in **Enhancement** ):
  - “_Pijul now displays hidden files in `pijul status`_”
  - “_An empty `ignore` file is created in `.pijul/local` when initiating a new repository_”

## `patch-name” hook

- [Nest discussion with patch attached](https://nest.pijul.com/pijul_org/pijul/discussions/177)
- The entry “_Add support for hooks_” is enough, I think

* * *

Hope this can help!

---

<div class="post-metadata">

**Author:** ![laumann](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/laumann/32/8_2.png) [@laumann](https://discourse.pijul.org/u/laumann)\
**Post date:** [September 14, 2017, 6:57pm UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/9 "2017-09-14T18:57:36Z")

</div>

Aaaaaaaaaaaaand it’s out! 🎉 Really awesome work with the changelog @lthms!

---

<div class="post-metadata">

**Author:** ![donpdonp](https://yyz1.discourse-cdn.com/flex031/user_avatar/discourse.pijul.org/donpdonp/32/67_2.png) [@donpdonp](https://discourse.pijul.org/u/donpdonp)\
**Post date:** [December 30, 2017, 5:53am UTC](https://discourse.pijul.org/t/prepare-the-release-of-pijul-0-8/73/10 "2017-12-30T05:53:00Z")

</div>

How can I disable the pager? ive tried “$ PAGER=cat pijul log” without success. (verison 0.8.3)
