This is the beta release for second stable version of Pueue.
Shortly after releasing v1.0.0
a few short-comings of some design decisions became apparent.
This release aims to remove all those short-comings or important missing features.
Some of those changes required breaking changes of both internal APIs and datastructures, as well as the CLI interfaces and the configuration file.
Since this project sticks to SemVer, this meant that a new major release was necessary.
Hopefully, this will be the last stable release for quite a while.
There are a few features planned that might introduce further breaking changes, but those will most likely need quite some time to implement (if we manage to implement them at all).
Anyhow, I'm quite pleased with the overall state of this release!
A lot of cool and convenient stuff has been added and quite a bit of internal logic has been streamlined and cleaned up.
Also a huge thanks to all contributors that helped working on this version!
Added
- Introduce the
rm
(remove),re
(restart) andfo
(follow) subcommand aliases #245. - Allow to set the amount of parallel tasks at group creation by Spyros Roum #245.
- When calling
pueue
without a subcommand, thestatus
command will be called by default #247. - Add the
--group
parameter to thepueue clean
command #248. - Add
output
for a task's log output as template parameters for callbacks #269. - Add
--lines
parameter topueue follow
to only show specified number of lines from stdout before following #270. - Notify the user if a task is added to a paused group #265.
- Notify the user that when killing whole groups, those groups are also paused #265.
- Implementation of configuration profiles #244.
This supports multiple profiles in a singlepueue.yml
, which can be loaded via the--profile/-p $name
flag. - Added the
shared.runtime_directory
config variable for any runtime related files, such as sockets. XDG_CONFIG_HOME
is respected for Pueue's config directory #243.XDG_DATA_HOME
is used if thepueue_directory
config isn't explicitly set #243.XDG_RUNTIME_DIR
is used if the newruntime_directory
config isn't explicitly set #243.- The unix socket is now located in the
runtime_directory
by default #243. - The
format-status
subcommand #213.
This is a preliminary feature, which allows users to use external tools, such asjq
, to filter Pueue'sstate -j
output and pipe them back intoformat-status
to display it.
This feature will probably be removed once a proper internal filter logic has been added.
The simplest usage looks like this:pueue status --json | jq -c '.tasks' | pueue format-status
Changed
- Improved memory footprint for reading partial logs.
- Always only show the last X lines of output when using
pueue log
without additional parameters. pueue parallel
without arguments now also shows the groups with their current limit likepueue group
. #264- Configuration files will no longer be changed programatically #241.
- Default values for all most configuration variables have been added #241.
- Breaking changes:
stderr
andstdout
of Pueue's tasks are now combined into a single file.
This means a few things.- One doesn't have to filter for stderr any longer.
- All logs are now combined in a single chronologically correct log file.
- One can no longer filter for stderr/stdout specific output.
- Breaking changes: The
group
subcommand now hasgroup add [-p $count] $name
andgroup remove $name
subcommands.
The oldgroup [-a,-p,-r]
flags have been removed. - Breaking changes: The configuration for groups can no longer be done via configuration file.
This means, that groups can only be edited, created or deleted via the commandline interface.
The amount of parallel tasks will also be reset to1
when upgrading.
Removed
- No longer read
/etc/pueue/
configuration files.
Pueue isn't designed as a system wide service, hence this doesn't make any sense to have system wide configuration files. - If multiple configuration files are found, they're no longer merged together.
Instead, only the first file will be used.
Fixed
- Recover tasks from
Locked
state if editing fails #267 pueue log
now behaves the same for local and remote logs.
Remote logs previously showed more lines under some circumstances.- panic due to rogue
.unwrap()
when filtering for a non-existing group inpueue status
.