Releases: cybertec-postgresql/pg_timetable
v4.5.0
What's Changed 🚢👋🍆
[+]addstarted_atcolumn toactive_sessionandactive_chain tables, closes #394 f6771ef[+]add version arguments toUpdate Dockerworkflow e67c687[+]bumpjackc/pgx/v4to 4.15.0 12cc52a[+]bumppashagolub/pgxmockto 1.4.4 1c28407[*]add star history to readme 0ae08c9[*]improveTestLogHook()test case dad8820[*]start REST API server immediately after config parsing, fixes #392 9e68353[*]update ER-schema in docs a203bcb[*]useMax()ingetTimeoutContext()instead of direct comparison 209ad5f[-]protect concurrent read and write of interval chains map, fixes #400 [*] remove obsoleteintervalChainMutex884778b
Full Changelog: v4.4.0...v4.5.0
v4.4.0
Changelog 🚦🕸️🚄
[!] add REST API, resolves #378 by @pashagolub in #379
[!] provide migration script from v3 to v4 transition, resolves #338 by @pashagolub in #377
[!] rewrite active chain handling by @pashagolub in #382
[+] bump georgysavva/scany 0.3.0 by @dependabot in #374
[+] bump jackc/pgx/v4 to 4.14.0 by @dependabot in #357
[+] bump pashagolub/pgxmock to 1.4.3 by @dependabot in #362
[+] bump spf13/viper to 1.10.1 by @dependabot in #366
[+] bump jackc/puddle to 1.2.1 by @pashagolub in #376
[+] output version information on demand, closes #385 by @pashagolub in #386
[*] save some space for big tables by @ukolovda in #373
[*] use constants for exit codes by @pashagolub in #365
Full Changelog: 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
v4.3.0
Changelog 🛑🪜📎
[!] 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: v4.2.0...v4.3.0
v4.2.0
This release fixes the bug in database logging functionality. Please, update immediately!
Changelog 🔧🐛🪵
[!] 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
New Contributors 🙏
- @bruce-one made their first contribution in #321
- @ukolovda made their first contribution in #324
Full Changelog: v4.1.0...v4.2.0
v4.1.0
Changelog 🛠️🦘📜
[+] 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
v4.0.0
Breaking Changes
This v4 release is backward-incompatible with previous v3 versions.
- Do not try to run this release against the old-version
timetableschema. - 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 github.com/pashagolub/pgxmock 1.2.0 af98bfd
[+] bump github.com/spf13/viper 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 readme.md, #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