Skip to content

Commit 98ce0cf

Browse files
CodingAnarchyclaude
andcommitted
Release v0.7.1: MySQL compilation fixes and Rust 2024 edition upgrade
### Fixed - Fixed missing `batch_id` field in MySQL `DeadJobRow::into_job()` method - Added missing `use sqlx::Row;` import for MySQL `.get()` method functionality - Fixed type annotation for MySQL bulk insert operations - Removed unused imports to clean up compilation warnings ### Changed - Updated to Rust Edition 2024 for latest language features - Set minimum supported Rust version (MSRV) to 1.86 - All features now compile successfully with MySQL and PostgreSQL ### Technical - Resolved MySQL-specific compilation errors in `src/queue.rs` - Enhanced import handling for database-specific Row traits - Improved code quality with clippy fixes and warning cleanup - All 124+ tests pass with both database backends 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <[email protected]>
1 parent 815988c commit 98ce0cf

22 files changed

+841
-500
lines changed

CHANGELOG.md

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,27 @@ All notable changes to this project will be documented in this file.
55
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
66
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
77

8+
## [0.7.1] - 2025-06-27
9+
10+
### Fixed
11+
- **🔧 MySQL Compilation Fixes**
12+
- Fixed missing `batch_id` field in MySQL `DeadJobRow::into_job()` method
13+
- Added missing `use sqlx::Row;` import for MySQL `.get()` method functionality
14+
- Fixed type annotation for MySQL bulk insert operations
15+
- Removed unused imports to clean up compilation warnings
16+
17+
### Changed
18+
- **⚡ Updated to Rust Edition 2024**
19+
- Bumped Rust edition from 2021 to 2024 for latest language features
20+
- Set minimum supported Rust version (MSRV) to 1.86
21+
- All features now compile successfully with MySQL and PostgreSQL
22+
23+
### Technical
24+
- Resolved MySQL-specific compilation errors in `src/queue.rs`
25+
- Enhanced import handling for database-specific Row traits
26+
- Improved code quality with clippy fixes and warning cleanup
27+
- All 124+ tests pass with both database backends
28+
829
## [0.7.0] - 2025-06-27
930

1031
### Added

CLAUDE.md

Lines changed: 12 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,17 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
66

77
Hammerwork is a high-performance, database-driven job queue library for Rust with support for both PostgreSQL and MySQL. It provides async/await job processing with configurable retry logic, delayed jobs, job prioritization with weighted scheduling, and worker pools.
88

9+
## Development Notes
10+
11+
- SQLx compile-time query checking requires database connections
12+
- PostgreSQL uses `FOR UPDATE SKIP LOCKED` for efficient job polling
13+
- MySQL implementation uses transaction-based locking (less optimal)
14+
- Priority-aware queries use `ORDER BY priority DESC, scheduled_at ASC`
15+
- Weighted selection uses hash-based algorithms for Send compatibility
16+
- Tracing is integrated for observability
17+
- Examples demonstrate database configurations, cron scheduling, and prioritization
18+
- Use edition 2024 as the preference
19+
920
## Common Development Commands
1021

1122
### Building and Testing
@@ -92,14 +103,4 @@ Both PostgreSQL and MySQL implementations use a single table `hammerwork_jobs` w
92103
- **Transaction safety**: Uses database transactions for job state changes
93104
- **Type-safe job handling**: Job handlers return `Result<()>` for error handling
94105
- **Priority-aware scheduling**: Weighted and strict priority algorithms prevent starvation
95-
- **Comprehensive monitoring**: Statistics track priority distribution and performance
96-
97-
## Development Notes
98-
99-
- SQLx compile-time query checking requires database connections
100-
- PostgreSQL uses `FOR UPDATE SKIP LOCKED` for efficient job polling
101-
- MySQL implementation uses transaction-based locking (less optimal)
102-
- Priority-aware queries use `ORDER BY priority DESC, scheduled_at ASC`
103-
- Weighted selection uses hash-based algorithms for Send compatibility
104-
- Tracing is integrated for observability
105-
- Examples demonstrate database configurations, cron scheduling, and prioritization
106+
- **Comprehensive monitoring**: Statistics track priority distribution and performance

Cargo.toml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,8 @@ warp = { version = "0.3" }
2828

2929
[package]
3030
name = "hammerwork"
31-
version = "0.7.0"
32-
edition = "2021"
31+
version = "0.7.1"
32+
edition = "2024"
3333
description = "A high-performance, database-driven job queue for Rust with PostgreSQL and MySQL support, featuring job prioritization, cron scheduling, timeouts, rate limiting, Prometheus metrics, alerting, and comprehensive statistics collection"
3434
license = "MIT"
3535
repository = "https://github.com/CodingAnarchy/hammerwork"
@@ -39,6 +39,7 @@ documentation = "https://docs.rs/hammerwork"
3939
readme = "README.md"
4040
keywords = ["database", "job-queue", "async", "postgres", "mysql"]
4141
categories = ["database", "asynchronous", "concurrency"]
42+
rust-version = "1.86"
4243

4344
[dependencies]
4445
tokio = { workspace = true }

0 commit comments

Comments
 (0)