Changelog History
-
v3.0.0 Changes
November 05, 2020🔄 Changelog
[!]
implement asynchronous chain execution, closes #71 a387c0f
[!]
implement exclusive execution mode for chains, resolves #50 c7a538d
[!]
reimplement session locking, resolves #149 ec1f368
[!]
use jackc/pgx PostgreSQL library instead of lib/pq, closes #112 f4c945c
🔒[+]
add Chain.Lock() and Chain.Unlock() methods 233d004
[+]
add debug mode, closes #63 a387c0f
[+]
add getPgxConnString() function 73021c4
👍[+]
add LISTEN\NOTIFY support b8fd7c4
🌲[+]
add Log() function which performs logging to standard output 2b7d5a4
[+]
add mutex to the notificationHandler df062a9
✅[+]
add notification_test da11522
👀[+]
add setupTestCaseEx() function df062a9
✅[+]
add tests for IntervalChain class 80ffce9
✅[+]
add tests for pgengine.ExecuteCustomScripts() function a82b995
✅[+]
add tests for pgengine.ExecuteSchemaScripts() function bcfbada
✅[+]
add tests for pgengine.FinalizeConfigDBConnection() function 6eeae0a
✅[+]
add tests for pgengine.ReconnectDbAndFixLeftovers() function 01bebe6
✅[+]
add tests for pgx logger 749f999
✅[+]
add tests for retrieveAsyncChainsAndRun() function 82434d9
⏱[+]
add tests for scheduler.chainWorker() function 167664e
⚙[+]
add timetable.next_run(timetable.cron) function #105 91473f6
[+]
check if the schema is available already first in TryLockClientName() 73021c4
🔒[+]
create SECURITY.md 0e779de
⏱[+]
explain the ignore_error flag on the scheduler working process. 4c0ca4a
[+]
make chain channels buffered 82434d9
[+]
make intervalChainsChan channel buffered 80ffce9
🌲[+]
make LOG lines green and DEBUG blue b8fd7c4
[+]
prettify pgx logged object output b8fd7c4
[+]
run chains retrieval in parallel b8fd7c4
🌲[+]
use built-in pgx logging for verbose mode 236bbce
👕[+]
use golangci-lint-action instead of binary installation 85e5c74
[+]
use pre-installed PostgreSQL in Github Actions (#163) 12c5ade
[*]
add *.sql files as targets for github action 8a2a36e
[*]
add PostgreSQL v13 to the manual 23d0acb
[*]
awesome-go badge added 96f5958
[*]
change SHELL task kind to PROGRAM, closes #155 ea06e3d
🚚[*]
move chain implementation into separate file ef729d4
🚚[*]
remove unused const 41dac5c
⚡️[*]
update pgx and go-sqlmock dependencies 3d69873
⚡️[*]
update schema 46f95a8
[-]
"Cron syntax "/5 * * * *" don't execute job at 00 minutes" bug fixed, closes #156 15a178f
✅[-]
call DB.Close() in tear down test function 90ac0c8
[-]
fix --name option in --clientname. c4c9246
✅[-]
fix engine tests 7ef5402
👕[-]
fix golint warnings b468219
✅[-]
fix migrator tests 5bac7af
0️⃣[-]
fix README default values docs, spelling c6f2369
[-]
fix remote execution, fixes #164 a61ee58
⏱[-]
fix reschedule() function 38b77ba
✅[-]
fix tests 36ecf8f
[-]
fix tests for pgx library #112 d52ccb8
✅[-]
fix TestSamplesScripts() f76bb74
[-]
fix TestShellCommand ee4dbb2 a5ac83b
[-]
fixes "Interval field value out of range", fixes #148 75bf0d6
👷[-]
use client_name in job_add function, fixes #150 06a294b -
v2.3.0 Changes
July 02, 2020🔄 Changelog
⚡️
[!]
update Go version to 1.14 b8d7d30
[!]
add contexts to all low level engine functions, resolves #142 2c458a3
[!]
add continuous code coverage #140 70f3e21
⚙[!]
add timetable.next_run(timetable.cron) 03cfbef
🚀[+]
add a separate tag to Docker Hub for every release 4495b73
✅[+]
add bootstrap tests 5db1aef
📜[+]
add ClientName argument to cmdparser.NewCmdOptions 16b3383
🌲[+]
add contexts to task and logging functions 56f00f0
[+]
add continuous code coverage enhancement. Closes #140 d426785
[+]
add Coveralls action for push and pull request 128d727
✅[+]
add log tests 5429ed8
⏱[+]
add self destruct chain to scheduler test 088372d
✅[+]
add tests for pgengine migrations b618547
⏱[+]
add tests for scheduler
👷[+]
exit from workers immediately if context done 925fe37
✅[+]
improve pgengine test coverage 4869958
✅[+]
make access.go 100% covered by tests bea9739
[+]
make chains channel buffered b491a35
✅[+]
make cmdparser 100% covered by tests 292c03b
⏱[+]
make interval chain reschedule compatible with context 0389e5b
[+]
make intervalChainsChan channel buffered
✅[+]
make migrator 100% covered by tests 63a1ae8
✅[*]
close database connection at the end of each test e481d9b
🌲[*]
log message prettify 6a61b03
[*]
prettify code 4fd917c
🚚[*]
remove init() function from shell.go 8ec2e7e
[*]
rewrite pgengine.TryLockClientName 06d9a6c
✅[-]
disallow parallel execution of tests 325c0a8
🐳[-]
fix Docker Hub name d9a7633
[-]
fix double sleep time for interval chains bb2b452
✅[-]
fix engine tests 16ef999
👷[-]
fix possible blocking in chain workers b491a35
[-]
fix SelfDestruct.sql sample 5ef5586
[-]
fix TryLockClientName to return True immediately without waiting 46c01b7
🚚[-]
remove Golang setup step. Latest is available automatically 61c207b
🚚[-]
remove unused variable 9626cd0 -
v2.2.1 Changes
June 10, 2020 -
v2.2.0 Changes
May 20, 2020🔄 Changelog
[!]
add--init
command line argument fixes #128, closes #129 f441bfc
💻[!]
add--no-help
command line argument to suppress help output 18768b0
[!]
add Grafana dashboard to monitor chain execution stats dd8608c
[!]
implement custom startup script support with--file
, closes #131 e66ece0
[!]
implement autonomous tasks
✅[+]
add context argument toInitAndTestConfigDBConnection()
4acfaf5
[+]
add context arguments to migrations routines 4acfaf5
[+]
add context arguments to transactions, access and shell routines #118 9b599c2 4acfaf5
[+]
add context topgengine.ReconnectDbAndFixLeftovers()
and use channels
⏱[+]
add context toscheduler.Run()
[+]
addpgengine.IsAlive()
method
[+]
add reconnection routine to themain()
[+]
add sample for autonomous task
[+]
makecmdparser
100% covered with tests, resolves #126 8e787f8
[+]
make built-in 100% tasks 5778939
✅[+]
make download task 100% covered with tests 1f193e1
✅[+]
make mail task 100% covered with tests febeb1f
👷[+]
pass derived contexts to chain workers goroutines
[+]
return ConnectionDropped after failedpgengine.IsAlive()
[+]
rewrite reconnecting routing with channels and context #118 787628a c2cc25d
[+]
set timeout for initial connection to 90 sec #118 19dbca7 9d4c5c4
🌲[*]
improve log messages for reconnection tries #118 4ee0cc3
✅[*]
makeInitAndTestConfigDBConnection()
return boolean 4e1e2c8
[*]
makeMigrateDb()
andCheckNeedMigrateDb()
return boolean #118 4e1e2c8 828f8f2
[*]
makepgengine.WaitTime
public const 032ab3e a1c63ce
✅[*]
pass context argument toInitAndTestConfigDBConnection()
in tests #118 223f1d9 693e817
🌲[*]
prettify log strings 65afcb1
🔨[*]
refactor command line handling b87995f
🚚[*]
remove reconnection routine from pgengine.LogToDB()
👕[*]
set cyclomatic complexity to 16 for linter; resolves #122 73d29fa
[-]
fix "if
block ends with areturn
statement, so drop thiselse
and outdent its block" 16fa2ee 3f8c518
[-]
fix "Cannot log to the database: pq: relation "timetable.log" does not exist" #118 25df3de 74ee9e6
[-]
fix "exported func Run returns unexported type scheduler.runStatus, which can be annoying to use" 310fd5d 3363398
[-]
fix "Host in--pgurl
parameter ignored if port is not specified" f441bfc
⏱[-]
fix "interval chains are not rescheduled if a database error occurs" f6dcb97
⏱[-]
fix "return" to "continue" inscheduler.intervalChainWorker()
8226433
🖨[-]
fix "S1039: unnecessary use of fmt.Sprintf" 8226433
[-]
fix tests connection string 3106fa4 e32cb76
[-]
fix verbose level output
[-]
makescheduler.Run()
return runStatus type #118 20c08e0 d07a486
⏱[-]
reschedule interval chains in a separate goroutines acf02ec -
v2.1.0 Changes
April 13, 2020🔄 Changelog
🛠
[+]
add "output" column to the timetable.execution_log table; fixes #86067e893
[+]
add .yml files as action triggers b258934
👷[+]
log client name and PID of worker at the start of a session cae0572
🌲[+]
make REPAIR pseudo log level red a3fccd6
[+]
PostgreSQL license used 23f27ef
[+]
resolves #108: add client_name to run_status and execution_log tables cae0572
[+]
resolves #115: Implement color output cc1fb64
✅[+]
test only if GoLang files were affected e843dbc
[+]
unshallow step is required for the changelog to work correctly b40beea
⚡️[+]
update golangci-lint version to 1.24.0 7fd8db4
[*]
add link to PR's fdab874
🌲[*]
new pgengine/log.go file added cc1fb64
🚚[*]
remove setup-go action since Go is preinstalled 7fd8db4
[*]
templated license used 4faf8ff
⚡️[*]
update golangci-lint settings 7fd8db4
[-]
do not produce db objects, use db.Ping() instead of sqlx.Connect() 8662f94
[-]
fix "Cannot stop execution if connection lost" #119 #120 2eb6193
[-]
fix "Cannot stop execution inside RECONNECTING cycle" 2eb6193
🖨[-]
fix "S1039: unnecessary use of fmt.Sprintf" 1bb1080
✅[-]
fix pgengine test 581ad8a
[-]
fix workflow with including paths e4b1d8c
[-]
fixes #113: "STARTED deleted fromrun_status
during crash" cae0572
[-]
merge pull request #121 from cybertec-postgresql/120_connection_lost_terminate 19b4a93 -
v2.0.2 Changes
March 17, 2020 -
v2.0.1 Changes
March 13, 2020 -
v2.0.0 Changes
March 06, 2020The new major v2 release introduces:
- 💅 brand new cron-style schedules;
- 👷
@reboot
,@every
and@after
jobs; - 💻 disallow executing the shell tasks using
--no-shell-tasks
command line parameter; - ✅ continuos testing implemented with GitHub Actions;
- 🚀 release packages for different platforms available (
.rpm
,.deb
,.tar.gz
,.zip
;Linux
,macOS
,Windows
) - no external
.sql
files for bootstrapping, only single binary shipped; - ⬆️ upgrade machinery with database migrations implemented, see
--upgrade
option; - 🌲 notice processing added, e.g.,
RAISE NOTICE ...
from tasks collected into the log
-
v0.1.2 Changes
February 26, 2020 -
v0.1.0 Changes
February 25, 2020Embedded SQL and migrations