diff --git a/.github/workflows/audit.yaml b/.github/workflows/audit.yaml index ea49e18d..b1c3b574 100644 --- a/.github/workflows/audit.yaml +++ b/.github/workflows/audit.yaml @@ -10,6 +10,10 @@ on: - '**/deny.toml' pull_request: + paths: + - '**/Cargo.toml' + - '**/Cargo.lock' + - '**/deny.toml' workflow_call: diff --git a/.github/workflows/ci.yaml b/.github/workflows/ci.yaml index 27904383..91c5a909 100644 --- a/.github/workflows/ci.yaml +++ b/.github/workflows/ci.yaml @@ -1,7 +1,14 @@ on: push: branches: [main, develop] + paths: + - "**/Cargo.toml" + - "**/*.rs" pull_request: + paths: + - "**/Cargo.lock" + - "**/Cargo.toml" + - "**/*.rs" workflow_call: name: Check and Test @@ -47,7 +54,6 @@ jobs: command: test args: --all - fmt: name: Rustfmt runs-on: ubuntu-latest diff --git a/CHANGELOG.md b/CHANGELOG.md index cc5d127a..e4010acb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,7 @@ All notable changes to this project are documented in this file. ## [Unreleased] +- *bump*: to v1.0.0-rc.10 ([#775](https://github.com/apalis-dev/apalis/pull/775)) - ci(deps): bump actions/cache from 4 to 6 ([#752](https://github.com/apalis-dev/apalis/pull/752)) - **chore (api)!**: standardize execution context ([#751](https://github.com/apalis-dev/apalis/pull/751)) - **chore**: bump opentelemetry_sdk ([#750](https://github.com/apalis-dev/apalis/pull/750)) diff --git a/Cargo.lock b/Cargo.lock index be3a5719..271f7d70 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -208,7 +208,7 @@ checksum = "330a5ed07fa54e4702c9d6c4174f74427fc0ef6e214bbd677ae50a5099946470" [[package]] name = "apalis" -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" dependencies = [ "apalis-core", "apalis-file-storage", @@ -235,7 +235,7 @@ dependencies = [ [[package]] name = "apalis-codec" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" dependencies = [ "apalis-core", "bincode", @@ -247,7 +247,7 @@ dependencies = [ [[package]] name = "apalis-core" -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" dependencies = [ "dashmap", "document-features", @@ -271,7 +271,7 @@ dependencies = [ [[package]] name = "apalis-file-storage" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" dependencies = [ "apalis-codec", "apalis-core", @@ -290,7 +290,7 @@ dependencies = [ [[package]] name = "apalis-workflow" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" dependencies = [ "apalis-codec", "apalis-core", diff --git a/apalis-core/Cargo.toml b/apalis-core/Cargo.toml index 4c90e627..2a419233 100644 --- a/apalis-core/Cargo.toml +++ b/apalis-core/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apalis-core" -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" authors = ["Njuguna Mureithi "] edition.workspace = true repository.workspace = true diff --git a/apalis-core/README.md b/apalis-core/README.md index 76bcdb25..864cd3d3 100644 --- a/apalis-core/README.md +++ b/apalis-core/README.md @@ -48,11 +48,11 @@ Specific documentation for tasks can be found in the [`task`] and [`task::builde ##### Relevant Guides: -- [**Defining Task arguments**](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/task_fn/guide/index.html) - Creating effective task arguments that are scalable and type-safe +- [**Defining Task arguments**](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/task_fn/guide/index.html) - Creating effective task arguments that are scalable and type-safe ### Backends -The [`Backend`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/backend/trait.Backend.html) trait serves as the core abstraction for all task sources. +The [`Backend`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/backend/trait.Backend.html) trait serves as the core abstraction for all task sources. It defines task polling mechanisms, streaming interfaces, and middleware integration points.
@@ -68,16 +68,16 @@ It defines task polling mechanisms, streaming interfaces, and middleware integra #### Inbuilt Implementations -- [`MemoryStorage`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/backend/memory/struct.MemoryStorage.html) : In-memory storage based on channels -- [`Pipe`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/backend/pipe/index.html) : Pipe-based backend for a stream-to-backend pipeline -- [`CustomBackend`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/backend/custom/index.html) : Flexible backend composition allowing custom functions for task management +- [`MemoryStorage`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/backend/memory/struct.MemoryStorage.html) : In-memory storage based on channels +- [`Pipe`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/backend/pipe/index.html) : Pipe-based backend for a stream-to-backend pipeline +- [`CustomBackend`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/backend/custom/index.html) : Flexible backend composition allowing custom functions for task management Backends handle task persistence, distribution, and reliability concerns while providing a uniform interface for worker consumption. ### Workers -The [`Worker`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/worker/index.html) is the core runtime component responsible for task polling, execution, and lifecycle management: +The [`Worker`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/worker/index.html) is the core runtime component responsible for task polling, execution, and lifecycle management: #### Worker Lifecycle @@ -94,7 +94,7 @@ The following are the main components the worker module: - [`Worker`] - Actual worker implementation that processes tasks - [`WorkerContext`] - Runtime state including task counts and execution status - [`Event`] - Worker event enumeration (`Start`, `Engage`, `Idle`, `Error`, `Stop`) -- [`Ext`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/worker/ext/index.html) - Extension traits and middleware for adding functionality to workers +- [`Ext`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/worker/ext/index.html) - Extension traits and middleware for adding functionality to workers #### Example: Building and Running a Worker @@ -129,11 +129,11 @@ Learn more about workers in the [`worker`](crate::worker) and [`worker::builder` ##### Relevant Tutorials: - [**Creating task handlers**](crate::task::task_fn) - Defining task processing functions using the [`TaskFn`] trait -- [**Testing task handlers with `TestWorker`**](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/worker/test_worker/index.html) - Specialized worker implementation for unit and integration testing +- [**Testing task handlers with `TestWorker`**](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/worker/test_worker/index.html) - Specialized worker implementation for unit and integration testing ### Monitor -The [`Monitor`](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/monitor/struct.Monitor.html) helps manage and coordinate multiple workers: +The [`Monitor`](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/monitor/struct.Monitor.html) helps manage and coordinate multiple workers: **Main Features:** @@ -166,7 +166,7 @@ async fn main() { } ``` -Learn more about the monitor in the [`monitor` module](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/monitor/index.html. +Learn more about the monitor in the [`monitor` module](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/monitor/index.html. ### Middleware diff --git a/apalis-workflow/Cargo.toml b/apalis-workflow/Cargo.toml index 1584da74..275ad6f3 100644 --- a/apalis-workflow/Cargo.toml +++ b/apalis-workflow/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apalis-workflow" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" edition.workspace = true repository.workspace = true authors = ["Njuguna Mureithi "] @@ -18,7 +18,7 @@ petgraph = { version = "0.8.3", features = ["serde-1"] } serde = { version = "1.0", features = ["derive"] } serde_json = "1" tower = { version = "0.5", features = ["util"], default-features = false } -apalis-core = { path = "../apalis-core", version = "1.0.0-rc.9", default-features = false, features = [ +apalis-core = { path = "../apalis-core", version = "1.0.0-rc.10", default-features = false, features = [ "sleep", "serde", ] } diff --git a/apalis/Cargo.toml b/apalis/Cargo.toml index d7bfbf82..523c0936 100644 --- a/apalis/Cargo.toml +++ b/apalis/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apalis" -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" authors = ["Geoffrey Mureithi "] description = "Simple, extensible and multithreaded background task processing for Rust" edition.workspace = true @@ -71,7 +71,7 @@ full = [ docsrs = ["document-features"] [dependencies.apalis-core] -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" default-features = false path = "../apalis-core" @@ -103,7 +103,7 @@ version = "0.1.44" optional = true [dev-dependencies] -apalis-core = { path = "../apalis-core", version = "1.0.0-rc.9" } +apalis-core = { path = "../apalis-core", version = "1.0.0-rc.10" } serde = "1" tokio = { version = "1", features = ["full"] } tracing-subscriber = { version = "0.3.23", default-features = false, features = [ diff --git a/apalis/README.md b/apalis/README.md index 16e062e4..7d1d60fa 100644 --- a/apalis/README.md +++ b/apalis/README.md @@ -32,7 +32,7 @@ ## Features -- **Simple, predictable task handling** - [Task handlers](https://docs.rs/apalis-core/1.0.0-rc.9/apalis_core/task/task_fn/index.html) are just async functions, with a macro-free API +- **Simple, predictable task handling** - [Task handlers](https://docs.rs/apalis-core/1.0.0-rc.10/apalis_core/task/task_fn/index.html) are just async functions, with a macro-free API - **Robust task execution** - Built-in retries, rate limiting, timeouts, idempotency, and error handling - **Multiple storage backends** - Redis, PostgreSQL, SQLite, and in-memory storage - **Advanced task management** - Prioritization, scheduling, metadata, and result tracking @@ -65,8 +65,8 @@ To get started, just add to Cargo.toml ```toml [dependencies] -apalis = { version = "1.0.0-rc.9" } -# apalis-redis = { version = "1.0.0-rc.9" } # Use redis/sqlite/postgres etc +apalis = { version = "1.0.0-rc.10" } +# apalis-redis = { version = "1.0.0-rc.10" } # Use redis/sqlite/postgres etc ``` ## Usage diff --git a/supply-chain/config.toml b/supply-chain/config.toml index 89f7cbaf..f7ca5d6b 100644 --- a/supply-chain/config.toml +++ b/supply-chain/config.toml @@ -70,15 +70,15 @@ version = "1.0.104" criteria = "safe-to-deploy" [[exemptions.apalis]] -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" criteria = "safe-to-deploy" [[exemptions.apalis-core]] -version = "1.0.0-rc.9" +version = "1.0.0-rc.10" criteria = "safe-to-deploy" [[exemptions.apalis-workflow]] -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" criteria = "safe-to-deploy" [[exemptions.atomic-waker]] diff --git a/utils/apalis-codec/Cargo.toml b/utils/apalis-codec/Cargo.toml index 243eeddd..30d35d5d 100644 --- a/utils/apalis-codec/Cargo.toml +++ b/utils/apalis-codec/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "apalis-codec" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" rust-version.workspace = true edition.workspace = true repository.workspace = true @@ -21,7 +21,7 @@ bincode = ["dep:bincode", "dep:thiserror"] msgpack = ["dep:rmp-serde", "dep:serde", "apalis-core/serde", "dep:thiserror"] [dependencies] -apalis-core = { path = "../../apalis-core", version = "1.0.0-rc.9", default-features = false } +apalis-core = { path = "../../apalis-core", version = "1.0.0-rc.10", default-features = false } serde = { version = "1.0", features = ["derive"], optional = true } serde_json = { version = "1", optional = true } bincode = { version = "2.0.1", optional = true } diff --git a/utils/apalis-file-storage/Cargo.toml b/utils/apalis-file-storage/Cargo.toml index c12be127..f80079f4 100644 --- a/utils/apalis-file-storage/Cargo.toml +++ b/utils/apalis-file-storage/Cargo.toml @@ -1,12 +1,12 @@ [package] name = "apalis-file-storage" -version = "0.1.0-rc.9" +version = "0.1.0-rc.10" rust-version.workspace = true edition.workspace = true repository.workspace = true authors = ["Njuguna Mureithi "] license = "MIT" -description = "A test-friendly single process file-based storage backend for apalis" +description = "A file-based backend for apalis that supports json and csv" publish = true documentation = "https://docs.rs/apalis-file-storage" keywords = ["apalis", "file", "storage", "backend", "rust"] @@ -16,7 +16,7 @@ categories = ["database", "filesystem", "asynchronous", "data-structures"] [dependencies] serde = { version = "1.0.229", features = ["derive"] } -apalis-core = { path = "../../apalis-core", version = "1.0.0-rc.9", default-features = false, features = [ +apalis-core = { path = "../../apalis-core", version = "1.0.0-rc.10", default-features = false, features = [ "sleep", "serde", ] } @@ -33,7 +33,7 @@ futures-util = { version = "0.3.34", features = [ "std", ], default-features = false } futures-core = { version = "0.3.34", default-features = false } -apalis-codec = { path = "../apalis-codec", version = "0.1.0-rc.9", default-features = false, features = [ +apalis-codec = { path = "../apalis-codec", version = "0.1.0-rc.10", default-features = false, features = [ "json", ] } tempfile = "3.27.0"