From fd3eb86d951af40736d2a5fabbd410e152000ac7 Mon Sep 17 00:00:00 2001 From: Mohamed Sohail Date: Fri, 1 Nov 2024 11:13:57 +0300 Subject: [PATCH] release: v0.25.0 * prepare release (docs): v0.25.0 * docs: add PR 946 to changelog * 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. * docs: add Redis Cluster compatibility caveat --- .github/ISSUE_TEMPLATE/bug_report.md | 15 +++++++----- .github/ISSUE_TEMPLATE/feature_request.md | 4 +++- CHANGELOG.md | 29 ++++++++++++++++++++--- README.md | 10 ++++---- internal/base/base.go | 2 +- 5 files changed, 45 insertions(+), 15 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/CHANGELOG.md b/CHANGELOG.md index c167e8dc8..d7b7ac70e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,33 @@ 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) +- 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) +- 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/README.md b/README.md index 40f89f03b..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 @@ -45,16 +44,19 @@ 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. +### 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!** ## 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: 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"