Hello list, I'm happy to announce the release of gwish v0.2!
gwish (pronounced [gu̯iʃ]) is a command-line gwit client written in POSIX shell
as a one-piece script. It strives to have absolute minimal dependencies which
you can find in a 10-year-old GNU/Linux box. When possible, gwish tries to
use the example commands shown in the gwit specification, so as to serve as a
proof-of-concept, reference and inspiration for other implementations.
If you have any issues or comments, don't hesitate to contact me. Thank you!
----
This release adds support for site introductions, which are used for mirroring
sites, finding out new remotes and discovering new sites. Site configuration
checks have been greatly enhanced for closer spec compliance. A new mode for
scripting-friendly output has been added, and site name caching can speed up
some listings.
Features:
- The `mirror` command may be invoked without a repo location (remote URL), in
which case it gathers remotes for the given site present in other sites'
introductions, and asks which one to use.
- The `remotes` command also lists (prefixed by `#`) the remotes for the given
site present in other sites' introductions (along with the introducer's site
ID and name). Remotes in site configuration but disabled in the mirror are
also listed.
- The new `intro` command may be used to mirror a site given a file with an
introduction. Remotes in the introduction are tried in order, and the rest
of remotes are added to the mirror.
- The new `discover` command lists new sites proposed by locally mirrored ones
via introductions, along with their proposed names.
- Listing commands (namely `sites`, `remotes` and `discover`) honour the
`GWISH_PORCELAIN` environment variable: if set and non-empty, they produce
an output amenable to parsing by scripts.
- The `remove` command now requires interactive confirmation of removal, or an
extra `force` argument.
Enhancements:
- Extend site configuration checks to limit multivalue number, drop overlong
values, drop illegal empty or multiline values, drop names consisting of
whitespace or starting with `0x`, and to warn when such issues are found.
Newlines and control characters in names are replaced. Remote repo
locations with newlines are not supported.
- New in-memory cache for site names, for listing operations where the same
site name may be shown many times.
- Minor optimizations (case-insensitive searches, nulls-to-newlines
conversion, variable interpolation).
Bugfixes:
- Fix regular expression to identify language-dependent descriptions
(`desc-xx`) in site configuration.
- Fix (sometimes invisible) trailing space when showing site name.
- Minor fixes (missing `read` options, command descriptions, system
compatibility claims).
--
Ivan Vilata i Balaguer -- https://elvil.net/
Ivan Vilata i Balaguer (2025-03-09 00:44:52 +0100) wrote:
> Hello list, I'm happy to announce the release of gwish v0.2!
I'm still trying to create a template for gwish announcements, and I realise
that I forgot to include the project's URL, sorry!
<https://git.sr.ht/~ivilata/gwish>
Cheers,
--
Ivan Vilata i Balaguer -- https://elvil.net/