I just released libretools 20240707 to [libre] and pushed the source
tarball to <https://repo.parabola.nu/other/libretools/>.

TL;DR: Make sure that your `/etc/libretools.conf.pacnew` is merged,
maybe uncomment a HOOKPRERELEASE line in libretools.conf.

This is a maintenance release, without any motivating features or
bugfixes.  But it's pretty big; certainly the highest-effort release
in a while.  Most of it is end-user invisible, but there's still a lot
of mostly-minor visible stuff to note here.

Changes from v20240528 to v20240707:

  Features:

  - messages.sh:
     + Has a new `gnuerror` function that prints error messages in the
       style of GNU error(3).  `librexgettext` recognizes `gnuerror`
       by default.
     + The `panic` function now accepts an optional format string and
       args.  `librexgettext` recognizes `panic` by default.
     + The `panic` function now prints a stacktrace before exiting.

  - librerelease:
     + HOOK{PRE,POST}RELEASE are now arrays, so it is possible to
       specify multiple commands for each.

  - librefetch:
     + The logs from running `mksource()` are now saved like other
       makepkg logs (thanks Bill Auger!).

  Changes:

  - All programs now have more consistent argument parsing, all
    respond to both `-h` and `--help`, and now simply print an error
    message for invalid flags instead of printing the whole `--help`
    text (which often lead people to not notice the error message).

  - librerelease:
     + No longer unconditionally launches a background SSH connection;
       if you need this functionality, there is an option in
       libretools.conf to enable it (uncomment a HOOKPRERELEASE line).
       This is similar to the pre-v20240327 behavior, but the default
       libretools.conf now has it turned off instead of turned on.
     + The staging lock is now *not* yet held when running
       HOOKPRERELEASE.
     + The pbot-notification is now a HOOKPOSTRELEASE, instead of
       being hard-coded.  That means you can turn it off in
       libretools.conf, but I'm not sure why you would want to.  This
       is more about the smell of having too much code in the
       librerelease core.

  - librefetch:
     + When running `mksource()`, a new `mkvalidpgpkeys=()` variable
       is used, rather than sharing the main `validpgpkeys=()`
       variable (thanks Bill Auger!).
     + The librefetch output is now more clearly separated from normal
       makepkg output (thanks Bill Auger!).

  - pkgbuild-check-nonfree:
     + The exit code numbers have changed.

  - The `indent` helper is now `$(librelib indent)` instead of
    `$(librelib chroot/indent)`.

  Bugfixes:

  - v20180103 and later erronously installed a second copy of
    blacklist.sh to `/usr/bin/` (it is normally installed to
    `/usr/lib/libretools/`).  blacklist.sh does nothing useful when
    invoked as a stand-alone script.  The copy in `/usr/bin/` has now
    been removed.

  - libremakepkg: With recent versions of pacman, a copy of
    locally-built package files could end up in the host
    `/var/cache/pacman/pkg/`, which could cause "corrupt package"
    errors on subsequent rebuilds.  This has been fixed, and
    libremakepkg will no longer ever place locally-build packages in
    the system CacheDir.

  - librexgettext: Now recognizes messages.sh `plainerr` and `ask` by
    default; this should have been done in v20240528 when `plainerr`
    and `ask` were added.

  - librerelease:
     + No longer doubles the ellipsis when waiting for a lock.
     + No longer releases the lock too early.
     + A mis-configured GPGKEY no longer prevents warnings/diagnostics
       about mis-configured libretools.conf from showing.
     + The pbot notification now consistently sorts packages per the
       'C' locale; previously it would fail to do so if `LC_COLLATE`
       was set in the environment (it set `LANG=` when it should have
       set either `LC_ALL=` or `LC_COLLATE=`).

  Deprecations/upcoming-changes:

  - A future version of libretools will drop the `libregit`
    compatibility wrapper around `gitget`.

  - A future version of libretools will drop `libre://` URL support
    from librefetch.

  - A future version of libretools will drop the `set_var` function
    from `conf.sh`.

  - A future version of libretools may change librerelease back to use
    the pre-v20240327 `REPODEST` config variable, removing the
    `TIER0_*` variables.  See the discussion on the v20240327 release
    announcement.

  Maintenance:

  - The code is now formatted with `shfmt`.

  - The new target `make format` formats the code with `shfmt`.

  - The new target `make lint` checks that the code is formatted with
    `shfmt`, as well as a few other formatting checks.

  - The new target `make msgmerge` runs msgmerge on the `.po` files,
    so it is now easier to keep them in-sync with the sources.

  - The target `make check` now requires:
     + the `bats-file` support library
     + the `bats-assert` support library
     + an `es_*` locale to be enabled in `/etc/locale.gen`

-- 
Happy hacking,
~ Luke T. Shumaker
_______________________________________________
Dev mailing list
Dev@lists.parabola.nu
https://lists.parabola.nu/mailman/listinfo/dev

Reply via email to