From 261e813576848585c2519bc1ec9cf3a26342d93f Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Tue, 29 Oct 2024 11:07:13 +0300 Subject: [PATCH 1/4] prepare release (docs): v0.25.0 --- CHANGELOG.md | 28 +++++++++++++++++++++++++--- internal/base/base.go | 2 +- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c167e8dc8..3d65d6931 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] -## [0.25.0] - 2023-01-02 +## [0.25.0] - 2024-10-29 + +### Upgrades +- Minumum go version is set to 1.22 (PR: https://github.com/hibiken/asynq/pull/925) +- Internal protobuf package is upgraded to address security advisories (PR: https://github.com/hibiken/asynq/pull/925) +- Most packages are upgraded +- CI/CD spec upgraded + +### Added +- `IsPanicError` function is introduced to support catching of panic errors when processing tasks (PR: https://github.com/hibiken/asynq/pull/491) +- `JanitorInterval` and `JanitorBatchSize` are added as Server options (PR: https://github.com/hibiken/asynq/pull/715) +- `NewClientFromRedisClient` is introduced to allow reusing an existing redis client (PR: https://github.com/hibiken/asynq/pull/742) +- `TaskCheckInterval` config option is added to specify the interval between checks for new tasks to process when all queues are empty (PR: https://github.com/hibiken/asynq/pull/694) +- `Ping` method is added to Client, Server and Scheduler ((PR: https://github.com/hibiken/asynq/pull/585)) +- `RevokeTask` error type is introduced to prevent a task from being retried or archived (PR: https://github.com/hibiken/asynq/pull/882) +- `SentinelUsername` is added as a redis config option (PR: https://github.com/hibiken/asynq/pull/924) +- Some jitter is introduced to improve latency when fetching jobs in the processor (PR: https://github.com/hibiken/asynq/pull/868) +- Add task enqueue command to the CLI (PR: https://github.com/hibiken/asynq/pull/918) + +### Fixes +- Archived tasks that are trimmed should now be deleted (PR: https://github.com/hibiken/asynq/pull/743) +- Fix lua script when listing task messages with an expired lease (PR: https://github.com/hibiken/asynq/pull/709) +- Fix potential context leaks due to cancellation not being called (PR: https://github.com/hibiken/asynq/pull/926) +- Misc documentation fixes +- Misc test fixes -### Added -- Added configuration for Janitor's Interval and Deletion Batch Size (PR: https://github.com/hibiken/asynq/pull/715) ## [0.24.1] - 2023-05-01 diff --git a/internal/base/base.go b/internal/base/base.go index d80ec4272..c6c72d84a 100644 --- a/internal/base/base.go +++ b/internal/base/base.go @@ -23,7 +23,7 @@ import ( ) // Version of asynq library and CLI. -const Version = "0.24.1" +const Version = "0.25.0" // DefaultQueueName is the queue name used if none are specified by user. const DefaultQueueName = "default" From 917d6f7a7da9bddc5021e721b2be9c0511154685 Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Wed, 30 Oct 2024 08:33:44 +0300 Subject: [PATCH 2/4] docs: add PR 946 to changelog --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3d65d6931..d7b7ac70e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -25,6 +25,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - `SentinelUsername` is added as a redis config option (PR: https://github.com/hibiken/asynq/pull/924) - Some jitter is introduced to improve latency when fetching jobs in the processor (PR: https://github.com/hibiken/asynq/pull/868) - Add task enqueue command to the CLI (PR: https://github.com/hibiken/asynq/pull/918) +- Add a map cache (concurrent safe) to keep track of queues that ultimately reduces redis load when enqueuing tasks (PR: https://github.com/hibiken/asynq/pull/946) ### Fixes - Archived tasks that are trimmed should now be deleted (PR: https://github.com/hibiken/asynq/pull/743) From 3530465e1a3460f2fbd8f1194a749d226a2a3efd Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Wed, 30 Oct 2024 08:41:46 +0300 Subject: [PATCH 3/4] docs: update issue templates, add releatively stable update * Ths project should be considered relatively stable because we haven't broken the API in over 2 years. --- .github/ISSUE_TEMPLATE/bug_report.md | 15 +++++++++------ .github/ISSUE_TEMPLATE/feature_request.md | 4 +++- README.md | 5 ++--- 3 files changed, 14 insertions(+), 10 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md index e7faf63a6..2bbb379d7 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.md +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -3,13 +3,20 @@ name: Bug report about: Create a report to help us improve title: "[BUG] Description of the bug" labels: bug -assignees: hibiken - +assignees: + - hibiken + - kamikazechaser + --- **Describe the bug** A clear and concise description of what the bug is. +**Environment (please complete the following information):** + - OS: [e.g. MacOS, Linux] + - `asynq` package version [e.g. v0.25.0] + - Redis/Valkey version + **To Reproduce** Steps to reproduce the behavior (Code snippets if applicable): 1. Setup background processing ... @@ -22,9 +29,5 @@ A clear and concise description of what you expected to happen. **Screenshots** If applicable, add screenshots to help explain your problem. -**Environment (please complete the following information):** - - OS: [e.g. MacOS, Linux] - - Version of `asynq` package [e.g. v1.0.0] - **Additional context** Add any other context about the problem here. diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md index fa64a4719..634413216 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.md +++ b/.github/ISSUE_TEMPLATE/feature_request.md @@ -3,7 +3,9 @@ name: Feature request about: Suggest an idea for this project title: "[FEATURE REQUEST] Description of the feature request" labels: enhancement -assignees: hibiken +assignees: + - hibiken + - kamikazechaser --- diff --git a/README.md b/README.md index 40f89f03b..6392d33a2 100644 --- a/README.md +++ b/README.md @@ -45,7 +45,7 @@ Task queues are used as a mechanism to distribute work across multiple machines. ## Stability and Compatibility -**Status**: The library is currently undergoing **heavy development** with frequent, breaking API changes. +**Status**: The library relatively stable and is currently undergoing **moderate development** with less frequent breaking API changes. > ☝️ **Important Note**: Current major version is zero (`v0.x.x`) to accommodate rapid development and fast iteration while getting early feedback from users (_feedback on APIs are appreciated!_). The public API could change without a major version update before `v1.0.0` release. @@ -53,8 +53,7 @@ Task queues are used as a mechanism to distribute work across multiple machines. If you are using this package in production, **please consider sponsoring the project to show your support!** ## Quickstart - -Make sure you have Go installed ([download](https://golang.org/dl/)). Latest two Go versions are supported (See https://go.dev/dl). +Make sure you have Go installed ([download](https://golang.org/dl/)). The **last two** Go versions are supported (See https://go.dev/dl). Initialize your project by creating a folder and then running `go mod init github.com/your/repo` ([learn more](https://blog.golang.org/using-go-modules)) inside the folder. Then install Asynq library with the [`go get`](https://golang.org/cmd/go/#hdr-Add_dependencies_to_current_module_and_install_them) command: From 117f009f1763e78caa58a76d05a0c52c012f7f32 Mon Sep 17 00:00:00 2001 From: Mohammed Sohail Date: Fri, 1 Nov 2024 11:12:53 +0300 Subject: [PATCH 4/4] docs: add Redis Cluster compatibility caveat --- README.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 6392d33a2..288c908d9 100644 --- a/README.md +++ b/README.md @@ -37,7 +37,6 @@ Task queues are used as a mechanism to distribute work across multiple machines. - [Flexible handler interface with support for middlewares](https://github.com/hibiken/asynq/wiki/Handler-Deep-Dive) - [Ability to pause queue](/tools/asynq/README.md#pause) to stop processing tasks from the queue - [Periodic Tasks](https://github.com/hibiken/asynq/wiki/Periodic-Tasks) -- [Support Redis Cluster](https://github.com/hibiken/asynq/wiki/Redis-Cluster) for automatic sharding and high availability - [Support Redis Sentinels](https://github.com/hibiken/asynq/wiki/Automatic-Failover) for high availability - Integration with [Prometheus](https://prometheus.io/) to collect and visualize queue metrics - [Web UI](#web-ui) to inspect and remote-control queues and tasks @@ -49,6 +48,10 @@ Task queues are used as a mechanism to distribute work across multiple machines. > ☝️ **Important Note**: Current major version is zero (`v0.x.x`) to accommodate rapid development and fast iteration while getting early feedback from users (_feedback on APIs are appreciated!_). The public API could change without a major version update before `v1.0.0` release. +### Redis Cluster Compatibility + +Some of the lua scripts in this library may not be compatible with Redis Cluster. + ## Sponsoring If you are using this package in production, **please consider sponsoring the project to show your support!**