Bot releases are visible (Hide)
[+]
add comment for timetable.task.autonomous
column by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/641
[+]
bump golangci/golangci-lint-action
from 3 to 4 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/640
[+]
bump jackc/pgx/v5
from 5.5.2 to 5.5.4 by @dependabot in #638 #643[*]
switch to compound assignment operators by @Massinja in https://github.com/cybertec-postgresql/pg_timetable/pull/642
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.8.0...v5.9.0
Published by pashagolub 9 months ago
[+]
bump jackc/pgx/v5
from 5.5.1 to 5.5.2 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/632
[+]
update Grafana dashboard, closes #627 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/635
[-]
fix deprecated --skip-publish
goreleaser option in GHA, closes #633 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/634
[-]
fix self-destruct interval chains, fixes #631 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/637
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.7.0...v5.8.0
Published by pashagolub 10 months ago
timetable.execution_log.ignore_error
column, closes #629 by @pashagolub in #630actions/setup-go
from 4 to 5 by @dependabot in #620actions/stale
from 8 to 9 by @dependabot in #621github.com/spf13/viper
from 1.17.0 to 1.18.0 by @dependabot in #619github/codeql-action
from 2 to 3 by @dependabot in #624golang.org/x/crypto
from 0.16.0 to 0.17.0 by @dependabot in #625jackc/pgx/v5
from 5.4.3 to 5.5.1 by @dependabot in #614 #622pashagolub/pgxmock/v3
from 3.1.0 to 3.3.0 by @dependabot in #613 #628spf13/viper
from 1.18.0 to 1.18.2 by @dependabot in #623 #626Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.6.0...v5.7.0
Published by pashagolub about 1 year ago
[!]
bump Go version to v1.21, closes #599 by @pashagolub in #600[!]
add chain error handling, closes #575 by @pashagolub in #576[+]
bump stretchr/testify
from 1.8.3 to 1.8.4 by @dependabot in #572[+]
bump spf13/viper
from 1.15.0 to 1.17.0 by @dependabot in #607 #571[+]
bump sirupsen/logrus
from 1.9.2 to 1.9.3 by @dependabot in #577[+]
bump pashagolub/pgxmock
to v3, closes #605 by @pashagolub in #611 #606[+]
bump jackc/pgx/v5
from 5.3.1 to 5.4.3 by @dependabot in #596 #593 #581 #580[+]
bump goreleaser/goreleaser-action
from 4 to 5 by @dependabot in #603[+]
bump actions/checkout
from 3 to 4 by @dependabot in #602[+]
add support for goreleaser v1.19, fixes #586 by @pashagolub in #587[+]
add concurrency clause to GHA workflows by @pashagolub in #609[+]
add ability to start a chain with delay, closes #573 by @pashagolub in #574[+]
add a Sphinx conf.py
file to documentation, fixes #590 by @pashagolub in #591[+]
add a sample of a retry logic for chains, closes #518 by @pashagolub in #578[+]
add .readthedocs.yaml
configuration file v2 by @pashagolub in #608[*]
update supported versions in SECURITY.md
by @pashagolub in #579[*]
refactor autonomous and remote tasks execution, fixes #584 by @pashagolub in #585[-]
reset session before returning connection to the pool by @amihajlovic in #589Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.5.0...v5.6.0
Published by pashagolub over 1 year ago
[+]
bump stretchr/testify
from 1.8.2 to 1.8.3 by @dependabot in #567[+]
bump sirupsen/logrus
from 1.9.0 to 1.9.2 by @dependabot in #564 #566[+]
bump pashagolub/pgxmock/v2
from 2.6.0 to 2.7.0 by @dependabot in #562[*]
improve Download
chain sample 66372b6[-]
make sure panics output won't be hidden, fixes #569 by @pashagolub in #570[-]
fix connection usage for replicas and locked sessions, fixes #565 by @pashagolub in #568Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.4.0...v5.5.0
Published by pashagolub over 1 year ago
[+]
bump actions/setup-go
from 3 to 4 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/553
[+]
bump pashagolub/pgxmock/v2
to 2.6.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/559
[*]
remove unused parameters and code by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/558
[-]
alter timetable.execution_log.txid
column type to bigint
, fixes #560 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/561
[-]
fix exit code for --init
command, fixes #556 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/557
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.3.0...v5.4.0
Published by pashagolub over 1 year ago
[!]
add file log rotation machinery, closes #522 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/550
[!]
add log rotation configuration, closes #524 #525 #551 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/552
[+]
allow database logging disabling, closes #548 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/549
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.2.0...v5.3.0
Published by pashagolub over 1 year ago
[+]
add $PGTT_PGSSLMODE
environment variable support, closes #546 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/547
[+]
bump jackc/pgx/v5
from 5.3.0 to 5.3.1 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/545
[+]
bump stretchr/testify
from 1.8.1 to 1.8.2 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/543
[-]
fix executor context for pgengine.SetCurrentTaskContext()
, fixes #541 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/542
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.1.0...v5.2.0
Published by pashagolub over 1 year ago
[!]
bump Go version to v1.20 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/540
[!]
bump goreleaser/goreleaser-action from 3 to 4 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/519
[+]
add curl
to the Docker image, closes #529 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/538
[+]
bump elgohr/Publish-Docker-Github-Action
from 4 to 5 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/516
[+]
bump jackc/pgx/v5
from 5.2.0 to 5.3.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/539 #517[+]
bump sethvargo/go-retry
from 0.2.3 to 0.2.4 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/520
[+]
bump spf13/viper
from 1.14.0 to 1.15.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/537
[*]
cron_split_to_arrays()
raises error for incorrect range and step values, closes #527 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/535
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v5.0.0...v5.1.0
Published by pashagolub almost 2 years ago
[!]
add suport for jackc/pgx/v5
by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/488
[+]
replace deprecated golint
with revive
, closes #502 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/503
[+]
add /startchain
and /stopchain
REST API endpoints, closes #482 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/498
[+]
add email sending example to the docs, closes #495 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/496
[+]
bump actions/setup-go
from 2 to 3 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/489
[+]
bump pashagolub/pgxmock/v2
to 2.4.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/513
[+]
bump spf13/viper
to 1.14.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/510
[+]
bump stretchr/testify
to 1.8.1 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/506
[+]
use sethvargo/go-retry
for the reconnection logic, closes #480 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/481
[*]
use pgx.RowToStructByName
instead of local one, closes #514 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/515
[*]
use envvar in GHA instead of deprecated set-output
command, closes #499 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/509
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.9.0...v5.0.0
Published by pashagolub about 2 years ago
[+]
bump jackc/pgx/v4
to 4.17.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/471
[+]
bump georgysavva/scany
to 1.1.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/462
[+]
bump pashagolub/pgxmock
to 1.8.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/474
[+]
bump sirupsen/logrus
to 1.9.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/460
[+]
provide migration script from pgAgent
to pg_timetable
, closes #341 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/465
[*]
do not produce connection string for the current database in pgagent_to_pg_timetable.sql
, fixes #467 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/468
[-]
prevent running several instances with the same clientname
, fixes #475 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/476
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.8.0...v.4.9.0
Published by pashagolub over 2 years ago
[+]
add dependabot
check for GitHub actions, closes #449 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/450
[+]
add txid
column to timetable.execution_log
, closes #436 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/437
[+]
bump actions/checkout
to 3 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/452
[+]
bump github/codeql-action
to 2 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/451
[+]
bump go.mod
to 1.18, closes #444 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/454
[+]
bump goreleaser/goreleaser-action
to 3 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/453
[+]
bump spf13/viper
to 1.12.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/440
[+]
bump stretchr/testify
to 1.8.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/456
[+]
provide migration tool from pg_cron
to pg_timetable
, closes #343 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/439
[-]
add timetable.migration
table to migrate_v3_to_v4.sql
script, fixes #457 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/458
[-]
fix migration #436 on timetable.execution_log
for non-empty table, closes #442 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/443
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.7.0...v4.8.0
Published by pashagolub over 2 years ago
[+]
add psql
client to the Docker image by default, closes #429 05e5921[+]
bump georgysavva/scany
to v1.0.0
90fda6e[+]
bump golangci/golangci-lint-action
to v3
, closes #421 e73168d[+]
bump jackc/pgconn
to v1.12.0
8da1cb2[+]
bump jackc/pgtype
to v1.11.0
8da1cb2[+]
bump jackc/pgx/v4
to v4.16.1
660fcdf[+]
bump pashagolub/pgxmock
to v1.6.0
e1d4259[+]
bump spf13/viper
to v1.11.0
7db27c5[+]
use shogo82148/actions-goveralls
instead of jandelgado/gcov2lcov-action
and coverallsapp/github-action
52e667e[*]
rename LOG
database log level to INFO
, closes #417 4cacdab[-]
fix "cannot fetch chains if chain.timeout
field is NULL", fixes #413 d57cc64[-]
fix Test and Build GHA workflow on Ubuntu fail, fixes #435 52e667e[-]
prevent release workflow running on Dependabot pull requests, fixes #391 cc14480[-]
trim possible leading or trailing white space from the command 3cb4609Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.6.0...v4.7.0
Published by pashagolub over 2 years ago
[-] small fix for elgohr/Publish-Docker-Github-Action/issues/155
Published by pashagolub over 2 years ago
[+]
use the latest Go v1.18 for workflows, closes #410 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/411
[+]
bump stretchr/testify
to 1.7.1 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/404
[+]
add CopyToFile
built-in command, closes #405 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/406
[-]
fix failed Update Docker
workflow, closes #408 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/409
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.5.0...v4.6.0
Published by pashagolub over 2 years ago
[+]
add started_at
column to active_session
and active_chain tables
, closes #394 f6771ef[+]
add version arguments to Update Docker
workflow e67c687[+]
bump jackc/pgx/v4
to 4.15.0 12cc52a[+]
bump pashagolub/pgxmock
to 1.4.4 1c28407[*]
add star history to readme 0ae08c9[*]
improve TestLogHook()
test case dad8820[*]
start REST API server immediately after config parsing, fixes #392 9e68353[*]
update ER-schema in docs a203bcb[*]
use Max()
in getTimeoutContext()
instead of direct comparison 209ad5f[-]
protect concurrent read and write of interval chains map, fixes #400 [*] remove obsolete intervalChainMutex
884778bFull Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.4.0...v4.5.0
Published by pashagolub over 2 years ago
[!]
add REST API, resolves #378 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/379
[!]
provide migration script from v3 to v4 transition, resolves #338 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/377
[!]
rewrite active chain handling by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/382
[+]
bump georgysavva/scany
0.3.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/374
[+]
bump jackc/pgx/v4
to 4.14.0 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/357
[+]
bump pashagolub/pgxmock
to 1.4.3 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/362
[+]
bump spf13/viper
to 1.10.1 by @dependabot in https://github.com/cybertec-postgresql/pg_timetable/pull/366
[+]
bump jackc/puddle
to 1.2.1 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/376
[+]
output version information on demand, closes #385 by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/386
[*]
save some space for big tables by @ukolovda in https://github.com/cybertec-postgresql/pg_timetable/pull/373
[*]
use constants for exit codes by @pashagolub in https://github.com/cybertec-postgresql/pg_timetable/pull/365
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.3.0...v4.4.0
[!]
add REST API, resolves #378 83ac6e9
[!]
introduce internal web-server for REST API 4ecff4b
[!]
provide migration script from v3 to v4 transition, resolves #338 9310da2
[+]
add 00381
migration b03b2be
[+]
add RestApi
section and --rest-port
command-line option 83ac6e9
[+]
add Scheduler.IsReady()
method to be used in REST API 83ac6e9
[+]
add Scheduler.status
property and RunningStatus
constant 83ac6e9
[+]
add TestRemoveChainRunStatus()
test case 7237986
[+]
add timetable.active_chain
table and remove timetable.run_status
, closes #381, fixes #370 b12c922
[+]
add REST API documentation 63c8bee
[+]
bump georgysavva/scany
to 0.3.0 4888e75
[+]
bump jackc/pgx/v4
to 4.14.1 0ce5cff
[+]
bump jackc/pgtype
to 1.9.1 0ce5cff
[+]
bump pashagolub/pgxmock
to 1.4.2 740b5e6
[+]
bump pashagolub/pgxmock
to 1.4.3, merge #362 f1bfbec
[+]
bump spf13/viper
to 1.10.1 951361b
[+]
bump jackc/puddle
to 1.2.1 b0f060f
[+]
output version information on demand, closes #385 52e1217
[*]
enhance PgEngine.Finalize()
with cleaning dead chains b12c922
[*]
enhance timetable.try_lock_client_name()
with cleaning dead chains b12c922
[*]
remove Chain.RunStatusID
field b12c922
[*]
remove PgEngine.FixSchedulerCrash()
b12c922
[*]
rewrite PgEngine.InsertChainRunStatus()
b12c922
[*]
remove timetable.get_chain_running_statuses()
and timetable.health_check()
b12c922
[*]
rename and update PgEngine.AddChainRunStatus()
to PgEngine.RemoveChainRunStatus()
b12c922
[*]
return ExitCodeDBEngineError
if cannot reconnect in main()
b12c922
[*]
save some space for big 34a1944
[*]
use constants for exit codes 817ec74
[-]
fix "error: cannot insert multiple commands into a prepared statement (SQLSTATE 42601)" 81b1f3b
[-]
fix parameter naming in dockerfile 8767c87
[-]
fix S1023: redundant return
statement (gosimple) 672452b
Published by pashagolub almost 3 years ago
[!]
add built-in "Shutdown" task to stop pg_timetable session, closes #322 716be98 e4cd1b0
[!]
refactor timetable.task as plain schema without tree-like dependencies, resolves #334 7ca9a44
[+]
add job_exclusive
parameter to timetable.add_job()
cf20851
[+]
add Scheduler.SendChain()
and Scheduler.SendIntevalChain()
methods 8216879
[+]
add Scheduler.Shutdown()
method e4cd1b0
[+]
add scheduler.ShutdownStatus
constant e4cd1b0
[+]
add Scheduler.terminateChains()
method e4cd1b0
[+]
add Shutdown.sql
sample e4cd1b0
[+]
add Shutdown
definition to the manual 716be98
[+]
add Gitpod workspaces support, closes #351 (#352) d05c634 0321faa
[+]
built-in "SendMail" task now can read attachments data from parameters by @ukolovda d7d227b
[+]
bump jackc/pgconn
to 1.10.1 181e26b
[+]
bump jackc/pgtype
to 1.9.0 181e26b
[+]
increase chain channels capacity to prevent possible deadlock eba52fd
[+]
"Open in Gitpod" button added 1240517
[*]
add database migration and comments to functions 5882ffa
[*]
add function comments to the migration script 6ce5823
[*]
adopt TestSampeScripts()
to the new Shutdown.sql
sample 7d0e84b
[*]
improve scheduler package coverage 6ee6c69
[*]
prettify migrator tests 022046d
[*]
rename PgEngine.MustCommitTransaction()
to PgEngine.CommitTransaction()
e4cd1b0
[*]
rename PgEngine.MustRollbackTransaction()
to PgEngine.RollbackTransaction()
e4cd1b0
[*]
rewrite samples according to the new schema ec378cd
[-]
fix "cannot stop chain execution with timetable.notify_chain_stop()
", closes #332 2c36ef6
[-]
fix failed migration to plain ordering if task
table was not empty, fixes #344 17a2055
[-]
fix query in PgEngine.GetChainParamValues()
26d9b90
[-]
fix task marked as successful even if retCode != 0
and IgnoreError is False
, fixes #336 bad99d0
[-]
implement non-blocking channel sending to avoid deadlock 56dd433
[-]
increase connConfig.MaxConns
property value to avoid deadlock, fixed #350 3cf7b7a
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.2.0...v4.3.0
Published by pashagolub about 3 years ago
This release fixes the bug in database logging functionality. Please, update immediately!
[!]
upgrade to Go 1.17, closes #311 b653cc4
[*]
add darwin/386
and windows/386
to the ignore list for goreleaser
429edff
[*]
add windows/arm64
to the ignore list for goreleaser
18766e2
[*]
bump jandelgado/gcov2lcov-action
to v1.0.8 dccf63a
[*]
bump pashagolub/pgxmock
to 1.4.0 c7f5322
[*]
bump spf13/viper
to 1.9.0 990601b
[*]
provide more informative message for cancelled connection ca64b99
[*]
use goreleaser/goreleaser-action@v2
instead of master
993f94b
[+]
add --timeout
connection option with default value of 90 seconds 7806cb9
[+]
add move_task_up()
and move_task_down()
functions, closes #314 a113894
[+]
add function to delete task from the chain, closes #316 57798da
[+]
append SQL function timetable.delete_job
to delete chain and its tasks a297aa1
[+]
create codeql-analysis.yml 04e7588
[+]
increase go-version in the Build
action 1a420a0
[+]
increase go-version in the Release
action 4a4c106
[+]
update config example with timeout option 22c8e80
[+]
update readme.rst with --timeout
description 2f69950
[-]
add missing migrations for some added functions, fixes #329 e55987e
[-]
fix cron rule typo 8240b5d
[-]
fix initial schema for tests bbeffaa
[-]
fix logging to the database being stopped after several minutes, closes #327 7806cb9
[-]
fix using env variable $PGTT_CLIENTNAME as --clientname
0288f10
[-]
update manual for SendMail
task, fixes #313 04ee108
Full Changelog: https://github.com/cybertec-postgresql/pg_timetable/compare/v4.1.0...v4.2.0
Published by pashagolub about 3 years ago
[+]
add TestExecuteMigrationScript()
1963865
[+]
add TestInitMigrator()
864de04
[+]
bump jackc/pgx/v4
to 4.13.0 121f734
[+]
bump pashagolub/pgxmock
to 1.3.0 9bb4131
[*]
force PgEngine.initMigrator()
to return new instance every time 3a2b0cb
[*]
remove extra check from ExecuteMigrationScript()
e7976c6
[*]
remove warning about development branch 343213f
[-]
fix "cannot scan null into *string" error for parameters with NULL value, fixes #305 0f038a9
[-]
fix ExecuteMigrationScript()
file path 9d96eb8
[-]
fix PgEngine.MigrateDb()
when called due --upgrade
command line argument 9d96eb8
[-]
fix timetable.is_cron_in_time()
, closes #305 9d96eb8
[-]
fix broken links to the documentation, closes #304 d3d2e1b
[-]
fix doc badge 309c0cd
[-]
update manual chapter "1.3. Command line options", fixes #302 0e54130