New Releases: GWS, Zet, Stag, gpak, zetweb
Yesterday I had a quite fruitful day, completing planned things for 3 of my projects. Here’s the recap of changes in each one of them, plus some more.
GWS 0.2
There’s not a lot of things happening in GWS at the moment, but I finally managed to fix a bug in webhook which had caused a scary print after refs deletion. This was the final thing which held me back from releasing a new version.
Location of cgitrc
There’s one breaking change: GWS changes a directory in gitolite-admin
repository from which cgitrc
will be read. Seamless migration procedure is
following:
- create cgit directory in gitolite-admin repository
- copy your cgitrc into this directory
- commit and push
- update GWS
- remove old cgitrc
Agefiles
cgit might use so-called “agefiles”: special files kept git bare repository
which mark the time of last change in that repository. GWS now supports
creating them via gitolite’s POST_GIT
trigger. New installations have it
enabled by default, but if you’re upgrading, you should add it yourself in a
section “Custom triggers” in your gitolite.rc:
POST_GIT => [
'agefile',
],
Better support for mobile views
Included cgit style is now responsive. If you’re updating, you should include the following section in your cgitrc:
head-include=/config/git/cgit-data/head.html
Stag 0.11.0
Stag saw a lot of development and really some cool features recently. Newest version is 0.11.0, but be sure to check also current master, because it already has some cool features adding better support for Asciidoc.
Breaking changes
There are some breaking changes in this release:
- minimum Python version is 3.8
- Asciidoc plugin previously supported ordinary front-matters for metadata. It no longer supports it, because Asciidoc has its own metadata format, which is more natural for it. Note however that for proper lists support, you should use a currently not released stag from master.
- xml plugin was renamed to
raw_markup
and it now supports XML, JSON, YAML and TOML files as well
Better support for sites deployed in subdirectories
With this version Stag supports creating proper URLs for sites deployed in
subdirectories (vhosts). If you configure your site root as e.g.
https://example.com/subdir
, then stag will correctly include subdir
in URLs created by macros (e.g. by ref
, but also newly added absref
and
absurl
).
As a part of this, built-in HTTP server will rewrite configured site root.
You can now also change the site root URL by passing --url
parameter, which
is especially useful for certain deployment scenarios.
Easier to use built-in server
From this release, when you run stag serve
, it’ll do 2 things to make the
experience even nicer:
- it’ll choose a random open port on your computer and use it to serve your site,
- and then it’ll automatically open it in your web browser.
There are also many other improvements for HTTP server. It now better detects file changes which trigger automatic rebuilds. It’ll also rebuild the whole site when config.toml is changed. On top of that, rebuilds wont remove the output directory, you and your scripts can sit inside it, without the fear that stag will pull a rug from under your feet.
Overall, the experience of dev webserver should be much better now than before.
gpak 0.9.1
This is a bugfix release of gpak. Most prominent fix is fixing the invocation
of adduser
in docker, which had failed and prevented many commands which
needed root access.
Zet 0.11.0
I think I’m getting closer to 1.0 release of zet, which in my eyes is a milestone where a software develops a stable, backward-compatible API. I’m not there yet, because there are still some inconsistencies and I don’t use all of Zet’s features every day to catch them. I find most of them when I develop new subcommands (modules) for Zet and I don’t do it very often, because I find the existing set quite feature-complete for my day-to-day habits.
Breaking change in zet replace
There’s a breaking change in zet replace
: --insensitive
flag was renamed
to --case-insensitive
.
Bad news is that this isn’t the last time this option changes. In future
release it’ll change once again to --ignore-case
, to align with zet
search
and grep
. Sorry for that.
New Command
There’s a new command in non-core built-in modules: zet run
. It allows
running arbitrary command inside a notebook’s directory (NOT inside
$ZET_ROOT
), a default notebook by default.
Shell completions
I created shell completion scripts for Bash and ZSH. They are quite simple (because I hate writing shell completion scripts), but I hope to improve them in future. One thing which they certainly need is completing files in notebooks given by selectors.
Zetweb
I have created Zetweb: experimental web interface for Zet. It’s nothing fancy, because I’m a poor-ass web developer, but it supports dynamic page changes and searches and some caching for rendering speed.
That’s it! Thanks for reading this far and have fun!