Skip to content
Choose a tag to compare


@pashagolub pashagolub released this
Choose a tag to compare

Breaking Changes

This v4 release is backward-incompatible with previous v3 versions.

  • Do not try to run this release against the old-version timetable schema.
  • The best way to run it against the clean database or rename schema, e.g.
ALTER SCHEMA timetable RENAME TO timetable_old;

Please, use our new detailed manual to know more about new features and settings.

Changelog 💔🌄🧪

[!] add configuration file support with Viper, closes #177 bebab44
[!] add CopyFromFile built-in task f87d6fc
[!] add Readthedocs documentation (#254) 004b31f
[!] merge timetable.command table with timetable.task, closes #261 8604b18
[!] reimplement logging, closes #158 (#231) 4313948
[!] remove jmoiron/sqlx and DATA-DOG/go-sqlmock dependencies, closes #187 #202 6542b71
[!] remove old migrations and start from scratch, closes #258 020563d
[!] rewrite cron handling from scratch 35a8cc8 fbfbfb2
[!] rewrite pgengine and scheduler without global variables as classes fa37167
[!] use Go 1.16 to build releases 729ef31
[!] use new consistent terminology: command -> task -> chain f59fdda
[+] add $PGTT_CLIENTNAME env var 31faae6
[+] add --cronworkers and --intervalworkers options under "Resource" group 91f5c0e
[+] add .pgpass support, closes #247 d3a317f
[+] add --chain-timeout command-line parameter, closes #270 7f27a50
[+] add --log-database-level command-line parameter, closes #274 338c28c
[+] add --task-timeout command line parameter 80428a7
[+] add all release badge 0b1ae61
[+] add chain timeout, closes #267 05b9736
[+] add config.example.yaml file bebab44
[+] add config_test 5df8386
[+] add database comments for objects f59fdda
[+] add docs badge e325ff5
[+] add high load skip timeout to LogHook 0513ba8
[+] add log hook for PostgreSQL using COPY machinery 93d51cc
[+] add LogHook tests 0513ba8
[+] add output for built-in and SQL tasks to the timetable.execution_log, closes #185 (#224) 681caf3
[+] add pgengine.NewDB function 330cb62
[+] add pgxpoolIface 33fa7a4
[+] add support for logging to file, closes #272 6a73a80
[+] add supported cloud environments to the readme, #256 70c9f49
[+] add supported PostgreSQL versions and operating systems to the readme, closes #256 5695742
[+] add task timeout, closes #271 80428a7
[+] add TASK_STARTED and TASK_DONE statuses, rename STARTED to CHAIN_STARTED 660e32b
[+] add TestMigratorOptions() and increase TestMigrateTxError() coverage 466c909
[+] add TestSchedulerExclusiveLocking() 08e7ff9
[+] add TestSelectChains() 3696f01
[+] add time zone information to the manual 77c0237
[+] add version number to all release files, closes #228 cf72721
[+] allow specify content-type for SendMail built-in task, closes #225 (#226) 100bedd
[+] bump 1.2.0 af98bfd
[+] bump to 1.8.1 e7b30fd
[+] bump jackc/pgconn version to 1.9.0 7f2d671
[+] bump jackc/pgtype version to 1.8.0 7f2d671
[+] bump jackc/pgx version to 4.12.0 7f2d671
[+] bump jessevdk/go-flags version to 1.5.0 7f2d671
[*] bump georgysavva/scany to 0.2.9 c1f9529
[+] create Dependabot config file 37729d7
[+] delete only succeeded self-destructive chains, closes #265 613a945
[+] increase TestMigrations() coverage 975d68c
[+] Increase v4 tests coverage (#222) 9689e50
[+] insert run status immediately during max_instance check, closes #223 5765662
[+] introduce PgxIface, PgxConnIface, PgxPoolIface b028eaa
[+] move cache settings to LogHook 0513ba8
[+] set client name during LogHook creation 0513ba8
[+] specify password for tests explicitly 524046f
[+] use //go:embed for migration .sql files aaee11d
[+] use //go:embed for pgengine .sql files b453937
[+] use retcode and deferred functions instead of os.Exit() 7a1cdfa
[*] change "--port" command-line option type to integer bebab44
[*] decrease run_status rows usage by using only task related information 660e32b
[*] improve and rename get_running_jobs() to get_chain_running_statuses() 7a1cdfa
[*] improve TestExecuteSQLTask() 396cc88
[*] improve timetable.run_status table 7a1cdfa
[*] make go test fail fast in the build action 35a8cc8
[*] make pgengine.NewDB() and config.NewCmdOptions() use variadic string params 524046f
[*] move health_check() function to job_functions.sql 7a1cdfa
[*] move Logger to appropriate file b5bcece
[*] move PgURL parsing to the pgengine bebab44
[*] move SetupCloseHandler to main.go 7a1cdfa
[*] remove sensitive information from logs, closes #286 aba954d
[*] remove unused chain.excluded_execution_configs column f59fdda
[*] remove unused PgEngine.CanProceedChainExecution() 4cf2323
[*] remove unused timetable.trig_chain_fixer(), closes #255 5b033d7
[*] rename pgengine.UpdateChainRunStatus to AddChainRunStatus 660e32b
[*] rename rus_status.current_execution_element column to command_id 660e32b
[*] replace "--verbose" command-line option with "--loglevel" bebab44
[*] return immediately from pgengine.CanProceedChainExecution if context expired 34946b8
[*] simplify pgengine.CanProceedChainExecution() function 7a1cdfa
[*] simplify, #256 b7cc5bf
[*] split options into groups: Connection, Logging, Start, etc. bebab44
[*] store remote database connection strings in chain table directly, closes #234 20f28f8
[*] support alpha-beta strings in tag name for Release action e7318a8
[*] switch to ory/mail from abandoned gomail, closes #248 21858fd
[*] update Golang version used in Github Actions 944b903
[*] update latest release badge by including pre-releases 8645ee0
[*] use channel for error instead of variable 0513ba8
[*] use dashes in long command-line parameters names 6a73a80
[*] uses error log level during tests by default 524046f
[-] fix 'date/time field value out of range' error in next_run(), fixes #237 35a8cc8
[-] fix --pgurl ignored during connection, closes #252 5d771df
[-] fix empty long dash separated command-line parameters, fixes #279 4e8016f
[-] fix ErrNoRows check in CanProceedChainExecution() f0701c4
[-] fix SelectChain() 8b802c3
[-] remove database/sql from import eeb3eb4
[-] remove STRICT option from add_job() function, fixes #291 2eff73a
[-] remove unneeded logging CheckNeedMigrateDb() function f59fdda