Prepare the release of pijul-0.8

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
3 Likes

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

1 Like

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?

Sure. I’ll do that now.

Good work with the changelog :+1:

1 Like

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).

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

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

Ignore files and pijul status

  • Nest discussion with patches attached
  • 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


Hope this can help!

2 Likes

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

1 Like

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