All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This version adds breaking changes:
- The configuration file structure has been changed. There's now a
shared
section. - The configuration files have been moved to a dedicated
pueue
subdirectory.
- Unix socket support (#90)
- New option to specify a configuration file on startup for daemon and client.
- Warning messages for removing/killing tasks (#111) by Julian Kaindl
- Better message on
pueue group
, when there are no groups yet. - Guide on how to connect to remote hosts via ssh port forwarding.
- Move a lot of documentation from the README and FAQ into Github's wiki. The docs have been restructured at the same time.
- Never create a default config when starting the client. Only starting the daemon can do that.
- Better error messages when connecting with wrong secret.
- Windows: The configuration file will now also be placed in
%APPDATA%\Local\pueue
.
- Fixed panic, when killing and immediately removing a task. (#119)
- Fixed broken non-responsive daemon, on panic in threads. (#119)
- Don't allow empty commands on
add
. - The client will never persist/write the configuration file. (#116)
- The daemon will only persist configuration file on startup, if anything changes. (#116)
- (Probably fixed) Malformed configuration file. (#116)
- Non-existing tasks were displayed as successfully removed. (#108)
- Remove child process handling logic for MacOs, since the library simply doesn't support this.
- Remove unneeded
config
features and reduce compile time by ~10%. Contribution by LovecraftianHorror (#112) - Remove futures-timers, effectively reducing compile time by ~14%. (#112)
- Update to comfy-table v1.1.0, reducing compile time by another ~10%. (#112)
- Linux process handling now always sends signals to it's direct children, if the root process is a
sh -c
process. Previously, this behavior was somewhat ambiguous and inconsistent. (#109)
- Update workflow to build arm binaries.
- New
-e
and-p
flags to edit tasks on restart.-e
forcommand
,-p
forpath
. Both can be added at the same time.
- Internal refactoring of the client code. Mostly structure.
- Improved CLI validation. Several subcommands accepted empty task id vectors, when they shouldn't.
- Don't do any code styling, if
stdout
is no tty.
- Fix local
stderr
formatting forlog
. - Fix missing sleep in local
follow
loop, resulting in single core 100% CPU usage.
- New default behavior for
follow
. Implemented by JP-Ellis. - Delete everything in Pueue's
task_logs
folder onreset
.
pueue_aliases.yml
, which allows some shell-like aliasing.-c
flag forkill
andreset
.
--children/-c
flag forstart
andstop
. This sends theSIGSTOP
/SIGSTART
signal not only to the main process of a task, but also to direct children. This is, for instance, useful if you're starting tasks via a shell script.
- Fixed formatting bug in
pueue log
. Fixed by sourcefrog.
- Groups! Tasks can now be assigned to a group. Each group acts as their own queue and each group has their own setting for parallel task execution. Groups can also be paused/resumed individually.
- Added
--group
flag forstatus
. This will only print tasks of a specific group - Add new flags
--default
tokill
. With this flag only tasks in the default queue will be affected. - Users can now specify a custom callback that'll be called whenever tasks finish.
- Environment variable capture. Tasks will now start with the variables of the environment
pueue add
is being called in.
log
now also works on running and paused tasks. It thereby replaces some ofshow
's functionality.- Rename
show
tofollow
. Thefollow
is now only for actually following the output of a single command. follow
(previouslyshow
) now also reads directly from disk, ifread_local_logs
is set totrue
.- The
--all
flag now affects all groups AND the default queue forkill
,start
andpause
.
- Dependencies! This adds the
--after [ids]
option. Implemented by tinou98.
Task with this option will only be started, if all specified dependencies successfully finish. Tasks with failed dependencies will fail as well. - New state
FailedToStart
. Used if the process cannot be started. - New state
DependencyFailed
. Used if any dependency of a task fails. - New config option
read_local_logs
. Default:true
We assume that the daemon and client run on the same machine by default. This removes the need to send logs via socket, since the client can directly read the log files.
Set tofalse
if you, for instance, use Pueue in combination with SSH port forwarding.
- Pueue no longer stores log output in its backup files.
- Process log output is no longer permanently stored in memory. This significantly reduced RAM usage for large log outputs. Huge thanks for helping with this to sourcefrog!
- Process log output is compressed in-memory on read from disk. This leads to reduced bandwidth and RAM usage.
- Set
start
for processes. (Seems to have broken in 0.2.0)
pause_on_failure
configuration flag. Set this to true to pause the daemon as soon as a task fails.- Add
--stashed
flag torestart
. - Add
-p/--path
flag to allow editing of a stashed/queued task's path. - Better network utilization for
pueue log
.
- Respect
Killed
tasks onpueue clean
. - Show
Killed
status inpueue log
. - Fix
pueue log
formatting. - Show daemon status if no tasks exist.
- Better error messages when daemon isn't running.
- New
--delay
flag, which delays enqueueing of a task. Can be used onstart
andenqueue
. Implemented by taylor1791. --stashed
flag forpueue add
to add a task in stashed mode. Implemented by taylor1791.
- Generating completion files moved away from build.rs to the new
pueue completions {shell} {output_dir}
subcommand. This seems to be the proper way to generate completion files with clap. There is abuild_completions.sh
script to build all completion files to the known location for your convenience.
- Fix
edit
command. - Several wrong state restorations after restarting pueue.
- [BUG] Fix wrong TCP receiving logic.
- Automatically create config directory.
- Fix and reword cli help texts.
- Basic Windows support. Huge thanks to Lej77 for implementing this!
- Integrate completion script build in
build.rs
.
- Dependency updates
- Change table design of
pueue status
.
- Handle broken UTF8 in
show
with-f
and-e
flags. - Allow restart of
Killed
processes.
- Add --daemonize flag for daemon to daemonize pueued without using a service manager.
- Add
shutdown
subcommand for client for being able to manually kill the pueue daemon.
- Replace prettytables-rs with comfy-table.
- Replace termion with crossterm.