Issues related to the Nest, i.e. this website. The source code for the Nest is not yet public.

#107 multiline change messages

Opened by benaryorg on June 22, 2025
benaryorg on June 22, 2025

As encountered in pijul/969, change messages with line breaks are badly handled in the frontend, both in nest and pijul itself, though the latter isn’t as intrusive as the former.

Change messages are ideally used not just to describe “I did things”, but include a brief explanation of what changed, and usually also include arguments of why things changed so that someone stumbling upon some odd code (using credit for instance) can just look up the change and instantly get all the context they require to understand why the change was made. The nest and pijul both seem to be very much tied to a single line change description, which is at odds with what version control in general is supposed to do; to describe the history of changes so one can infer from the repository itself why things are as they are. Nobody (meaningfully) uses version control just to copy code around without context, otherwise we’d just be using rsync or sending .patch files on mailinglists. Heck there’s an entire OpenBSD song about VCS being about history. There are several key usages of version control:

  • this worked two days ago, why is it broken now? (a potential equivalent of git bisect despite being contrary to pijul philosophy)
  • this bit of code looks odd, why was this implemented? (change after credit or log)
  • who might know more about this part of the code? (credit or log)
  • working on versioned – in the sense of SemVer – software (i.e. having a 3.x and 4.x moving targets with 3.0 and 3.1 being fixed to a certain state)

All of these should be part of the repository without requiring outside data, to an extent. An entire discussion need not be part of the change, however the resulting “we chose this approach because” often should be. Everyone who has ever moved a project from one VCS to another, or even just from GitHub to a private ForgeJo, knows the pain of losing context of changes all too well. Nest and pijul should be able to handle such additional context better, either in an attached sort of way (such as git notes) or ideally part of the change itself so that the repository itself does not just handle the C of VCS, but also the V.

With all that prelude; nest (in discussions and elsewhere) should probably render the first line of the change message prominently while folding the rest of it in some sort of UI which can be unfolded on demand.