Preparing pijul-0.11.0


It’s “funny” because one of my patches for rc2 fixes this issue.

You might want to use a pijul built with master (or maybe it is what you tried to do, and I misundertood).


no, no, I was using 0.10.1.
Now I’ll try building latest master, but in the last few days I had to stop using it because of a “error: nodb” error. I’ll report back.


I confirm I can’t use pull with pijul from latest master:

pijul pull                                    
error: NoDb
pijul pull --from-branch testing --to-branch=testing
error: NoDb

No backtrace available. Status, record, add work.


It is an internal issue due to the partial clone feature. Normally you can fix it easily, for instance with pijul record. Calling this command, even if it does nothing visible, should do the trick


  1. Mai 2018 15:07 de


wow, magic!
I’ll play around with testing then, and report any bugs if found.


Doesn’t always work. On a repo which needed the “record” trick to solve “error: nodb”, trying dist BEFORE using the trick the operation aborts with the error but doesn’t delete the bad archive.

  1. find a repo which needs the “record” trick to solve error: nodb. Probably any created with 0.10?
  2. BEFORE using the trick, run pijul dist
  3. exits in error, doesn’t delete the empty archive it created.


I wonder if it is related to the presence of try! at various places within the pijul and libpijul souce code. Otherwise, I don’t understand from where it comes from.

Edit: Actually no, it was me, I was not trying to remove the good file D: it should be fixed now.

Thanks for the report, @yory! If you find anything else, don’t hesitate, it is really appreciate a lot.


I can confirm it was fixed. Thank’you!


For your information, the current pijul upstream is in a strange state right now, because @pmeunier and I caused the “first real-world conflict since the new patch format”, and uncover several bugs in the process.

We will keep you up-to-date regarding the resolution of the situation.

On the bride sight, it is less bugs inside pijul code base, and more test cases!


Okay, so the trouble are behind us, thanks to @pmeunier expertise. The bugs should be fixed, and new test cases have been added to avoid regression (which is great).

If you pulled any patches yesterday (Sunday 13), then you should clone the repository again. Unrecord does not work quite well in this situation, because one patch was ill-formed.

Sorry for the inconvenience.


@lthms, do you think we’re far from Pijul 0.11? I’d like to upgrade the Nest to use it, but I try not to work with development versions.


I think we can. As far as I can tell, the “remaining issue” which I was considering blocking for releasing pijul-0.11 is gone, thanks to you. I will try to review the difference between the latest RC and the current state of master, update the changelog one more time, and propose a tag for the release.

I am currently working extensively on my PhD manuscript, so I don’t have as much time as at the end of April, but I will try to do it as soon as possible (probably tomorrow).

Is that okay with you?


I didn’t mean to put any pressure on you! I was just curious. What you’re proposing is totally ok with me!


So, as you might have noticed, it took me a bit more time than expected. I’ve been able to look into pijul again today, and I really think we can release a new version this week. I’ve tried @flobec this afternoon, it looks like it works great. I haven’t seen new tests about the two new interactive commands: it might worth adding them. I also wanted to bump several dependencies, and if we want to use the latest rand, we need to update Sanakirja as well (I have created two related discussion on the nest).

I am very sorry for my long silence. I have to send my manuscript September 1st, so I don’t think I will contribute a lot to pijul this summer. But I really want to help release pijul-0.11.


@pmeunier could you have a look at sanakirja#10 and sanakirja#11, please? It would be awesome!


I have finally sent my manuscript this week-end and would love to get involve again in pijul development. If it is okay with everyone, I will try to work on the release this week. :slight_smile:


Congratulations! I was actually tempted to ask for you the other day, because the forum was so silent. Glad to hear you’ve sent your manuscript :raised_hands:t2:

I’m also glad to see you coming back. Thanks for all the work you’ve put into this :blush:


Congratulations @lthms! Enjoy this very cool moment of academic life!

I’ve been pretty busy on other projects lately (moving to Ireland was one, and implied lots of other stuff).

Before we can release 0.11, I’ve still got some work to do:

  • One issue is that I don’t want to release the “patches of patches” feature yet. The problem is that the patch that introduced that feature had to fix a large number of other problems in order to do so, and the feature itself was only a minor part. I don’t know whether that patch caused a disruption in compatibility, but it might have. Then if we decide we don’t have to worry about repository compatibility, I’d like to make another change, which is to use little-endian u64 instead of [u8;8] (equivalent in representation to big-endian u64) in the repositories. I have no idea how much these conversions cost (probably not very much), but comparisons between keys in the database is probably the most frequent operation, and this is a very easy optimisation (albeit small).

  • The Nest is not yet ready for 0.11. I’ve been working slowly on upgrading it to the new Tokio (by fixing pleingres and thrussh), and splitting small reusable chunks (such as user sessions) into their own crates. The repository format there is not yet 0.11. Of course, this shouldn’t cause any problem, since the protocol is independent from the repository format, but it just makes debugging easier, since problems in libpijul are more often reported as “Nest bugs/fix the Nest/please open-source the Nest” rather than “Pijul bugs”.


Oh, so you have implemented it? I would love to hear more about the actual implementation, UX choices and so on. Maybe we could restart the discussion on the related topic. :slight_smile: What is the (set of) patch(es) that introduces the change?

As far as I can tell, you already have to clone a repository to use an up-to-date pijul (I mean, I had to). I don’t know why. If we can provide a conversion tool this time, I think it is fine.

Ack, for the Nest.

Good luck on your new life in Ireland!


Btw, patches of the pijul repository start becoming less and less obvious as times goes. I would really like if we could try to write patch description more often (if not always).

I can’t write changelog if I don’t understand the changes :\

Edit: Sorry, this message is a bit poorly written. I really think patch descriptions are an important thing to consider, as it would help contributors and enthusiasts alike, for basically similar reasons: it is sometimes to understand the reason that motivated certain patches, right now.