Skip to content

chore: release v0.7.0#70

Merged
deepjoy merged 1 commit into
mainfrom
release-plz-2026-03-22T00-46-49Z
Mar 24, 2026
Merged

chore: release v0.7.0#70
deepjoy merged 1 commit into
mainfrom
release-plz-2026-03-22T00-46-49Z

Conversation

@github-actions
Copy link
Copy Markdown
Contributor

@github-actions github-actions Bot commented Mar 22, 2026

🤖 New release

  • taskmill: 0.6.0 -> 0.7.0 (⚠ API breaking changes)

taskmill breaking changes

--- failure constructible_struct_adds_field: externally-constructible struct adds field ---

Description:
A pub struct constructible with a struct literal has a new pub field. Existing struct literals must be updated to include the new field.
        ref: https://doc.rust-lang.org/reference/expressions/struct-expr.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/constructible_struct_adds_field.ron

Failed in:
  field TaskEventHeader.base_priority in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:97
  field TaskEventHeader.effective_priority in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:101
  field TaskEventHeader.base_priority in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:97
  field TaskEventHeader.effective_priority in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:101
  field SchedulerSnapshot.paused_groups in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:54
  field SchedulerSnapshot.rate_limits in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:56
  field SchedulerSnapshot.aging_config in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:58
  field SchedulerSnapshot.group_allocations in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:61
  field SchedulerSnapshot.paused_groups in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:54
  field SchedulerSnapshot.rate_limits in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:56
  field SchedulerSnapshot.aging_config in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:58
  field SchedulerSnapshot.group_allocations in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:61
  field TaskHistoryRecord.memo in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:401
  field TaskHistoryRecord.memo in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:401
  field TaskRecord.memo in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:282
  field TaskRecord.pause_reasons in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:284
  field TaskRecord.pause_duration_ms in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:287
  field TaskRecord.paused_at_ms in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:290
  field TaskRecord.memo in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:282
  field TaskRecord.pause_reasons in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:284
  field TaskRecord.pause_duration_ms in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:287
  field TaskRecord.paused_at_ms in /tmp/.tmpZkVbXk/taskmill/src/task/mod.rs:290
  field SchedulerConfig.aging_config in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:310
  field SchedulerConfig.aging_config in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:310

--- failure enum_tuple_variant_changed_kind: An enum tuple variant changed kind ---

Description:
A public enum's exhaustive tuple variant has changed to a different kind of enum variant, breaking possible instantiations and patterns.
        ref: https://doc.rust-lang.org/reference/items/enumerations.html
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/enum_tuple_variant_changed_kind.ron

Failed in:
  variant SubmitOutcome::Inserted in /tmp/.tmpZkVbXk/taskmill/src/task/submission.rs:105
  variant SubmitOutcome::Inserted in /tmp/.tmpZkVbXk/taskmill/src/task/submission.rs:105

--- failure enum_variant_added: enum variant added on exhaustive enum ---

Description:
A publicly-visible enum without #[non_exhaustive] has a new variant.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#enum-variant-new
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/enum_variant_added.ron

Failed in:
  variant SchedulerEvent:GroupPaused in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:197
  variant SchedulerEvent:GroupResumed in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:203
  variant SchedulerEvent:GroupWeightChanged in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:205
  variant SchedulerEvent:GroupPaused in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:197
  variant SchedulerEvent:GroupResumed in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:203
  variant SchedulerEvent:GroupWeightChanged in /tmp/.tmpZkVbXk/taskmill/src/scheduler/event.rs:205

--- failure inherent_method_missing: pub method removed or renamed ---

Description:
A publicly-visible method or associated fn is no longer available under its prior name. It may have been renamed or removed entirely.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#item-remove
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/inherent_method_missing.ron

Failed in:
  DomainHandle::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/domain.rs:560
  DomainHandle::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/domain.rs:560
  Scheduler::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/scheduler/queries.rs:69
  Scheduler::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/scheduler/queries.rs:69
  TaskStore::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/store/query/tags.rs:12
  TaskStore::tasks_by_tags_with_prefix, previously in file /tmp/.tmpWFZkvt/taskmill/src/store/query/tags.rs:86
  TaskStore::tasks_by_tags, previously in file /tmp/.tmpWFZkvt/taskmill/src/store/query/tags.rs:12
  TaskStore::tasks_by_tags_with_prefix, previously in file /tmp/.tmpWFZkvt/taskmill/src/store/query/tags.rs:86

--- failure method_parameter_count_changed: pub method parameter count changed ---

Description:
A publicly-visible method now takes a different number of parameters, not counting the receiver (self) parameter.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#fn-change-arity
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/method_parameter_count_changed.ron

Failed in:
  taskmill::store::TaskStore::set_waiting now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/hierarchy.rs:17
  taskmill::store::TaskStore::pause now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/cancel_expire.rs:18
  taskmill::store::TaskStore::peek_next now takes 1 parameters instead of 0, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:34
  taskmill::store::TaskStore::pop_next_batch now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:156
  taskmill::store::TaskStore::pop_next now takes 1 parameters instead of 0, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:257
  taskmill::TaskStore::set_waiting now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/hierarchy.rs:17
  taskmill::TaskStore::pause now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/cancel_expire.rs:18
  taskmill::TaskStore::peek_next now takes 1 parameters instead of 0, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:34
  taskmill::TaskStore::pop_next_batch now takes 2 parameters instead of 1, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:156
  taskmill::TaskStore::pop_next now takes 1 parameters instead of 0, in /tmp/.tmpZkVbXk/taskmill/src/store/lifecycle/transitions.rs:257

--- failure trait_method_parameter_count_changed: pub trait method parameter count changed ---

Description:
A trait method now takes a different number of parameters.
        ref: https://doc.rust-lang.org/cargo/reference/semver.html#major-any-change-to-trait-item-signatures
       impl: https://github.com/obi1kenobi/cargo-semver-checks/tree/v0.46.0/src/lints/trait_method_parameter_count_changed.ron

Failed in:
  TypedExecutor::finalize now takes 3 instead of 2 parameters, in file /tmp/.tmpZkVbXk/taskmill/src/domain.rs:205
  TypedExecutor::finalize now takes 3 instead of 2 parameters, in file /tmp/.tmpZkVbXk/taskmill/src/domain.rs:205
Changelog

0.7.0 - 2026-03-24

Added

  • implement observability metrics export (#20) (#88)
  • [breaking] implement priority aging and weighted fair scheduling (#84)
  • [breaking] implement token-bucket rate limiting per task type and group (#82)
  • [breaking] implement group-level pause and resume (#81)
  • add Throughput to all criterion benchmarks so critcmp shows ops/sec (#78)
  • [breaking] normalize timestamps from TEXT to epoch millisecond INTEGER (#75)
  • expose fail_fast() on SubmitBuilder and DomainSubmitBuilder (#73)
  • add tag key prefix queries for namespace-scoped discovery (#71)
  • [breaking] support passing state from execute() to finalize() via typed Memo (#69)

Fixed

  • use distinct critcmp group names so PR benchmark diff shows two columns (#77)
  • use distinct critcmp group names for PR benchmark comparison (#74)
  • use distinct critcmp group names for PR benchmark comparison (#72)

Other

  • add migration guide for 0.7.0 (#85)
  • consolidate paused_groups migration into standard include_str! pattern (#83)
  • [breaking] improve benchmark throughput across submit, dispatch, retry, and failure paths (#80)
  • skip transaction for retry requeue and tune slow benchmarks (#79)
  • [breaking] consolidate migrations from 9 chronological files into 4 object-oriented files (#76)


This PR was generated with release-plz.

@github-actions github-actions Bot force-pushed the release-plz-2026-03-22T00-46-49Z branch 15 times, most recently from 787864f to 7be488f Compare March 24, 2026 14:13
@github-actions github-actions Bot force-pushed the release-plz-2026-03-22T00-46-49Z branch from 7be488f to df5e086 Compare March 24, 2026 14:48
@deepjoy deepjoy closed this Mar 24, 2026
@deepjoy deepjoy reopened this Mar 24, 2026
@deepjoy deepjoy marked this pull request as ready for review March 24, 2026 14:50
@deepjoy deepjoy enabled auto-merge (squash) March 24, 2026 14:51
@deepjoy deepjoy merged commit 449e79e into main Mar 24, 2026
2 checks passed
@github-actions
Copy link
Copy Markdown
Contributor Author

Benchmark Comparison

Click to expand
group                                       main                                    pr
-----                                       ----                                    --
backoff_delay/constant                      1.01     43.8±1.00ns 435.6 MElem/sec    1.00     43.5±0.08ns 438.0 MElem/sec
backoff_delay/exponential                   1.00    186.5±2.94ns 102.3 MElem/sec    1.03    192.0±0.67ns 99.4 MElem/sec
backoff_delay/exponential_jitter            1.00    406.2±3.34ns 47.0 MElem/sec     1.12    453.8±0.73ns 42.0 MElem/sec
backoff_delay/linear                        1.00     76.0±1.06ns 250.8 MElem/sec    1.00     75.9±0.12ns 251.1 MElem/sec
batch_submit/1000                           1.07     34.6±3.57ms 28.2 KElem/sec     1.00     32.4±2.43ms 30.2 KElem/sec
byte_progress/byte_reporting_500            1.05    207.1±5.55ms  2.4 KElem/sec     1.00    196.8±3.42ms  2.5 KElem/sec
byte_progress/noop_500                      1.06    208.4±5.06ms  2.3 KElem/sec     1.00    196.3±4.08ms  2.5 KElem/sec
byte_progress_snapshot/100_tasks            1.05     90.8±2.91ms  1101 Elem/sec     1.00     86.3±2.56ms  1159 Elem/sec
concurrency_scaling/1                       1.07    638.5±7.87ms   783 Elem/sec     1.00    599.1±6.25ms   834 Elem/sec
concurrency_scaling/2                       1.09    418.6±8.06ms  1194 Elem/sec     1.00    383.5±4.92ms  1303 Elem/sec
concurrency_scaling/4                       1.09    254.5±6.10ms  1964 Elem/sec     1.00    234.3±4.06ms  2.1 KElem/sec
concurrency_scaling/8                       1.07    209.1±5.67ms  2.3 KElem/sec     1.00    196.3±3.59ms  2.5 KElem/sec
count_by_tags/100                           1.04    131.5±3.66µs  7.4 KElem/sec     1.00    126.7±2.60µs  7.7 KElem/sec
count_by_tags/1000                          1.04    222.5±5.53µs  4.4 KElem/sec     1.00    213.8±3.42µs  4.6 KElem/sec
count_by_tags/5000                          1.01    608.9±6.89µs  1642 Elem/sec     1.00   604.1±10.77µs  1655 Elem/sec
dep_chain_dispatch/10                       1.08     16.3±0.16ms   614 Elem/sec     1.00     15.1±0.18ms   662 Elem/sec
dep_chain_dispatch/25                       1.10     40.8±0.59ms   613 Elem/sec     1.00     37.1±0.61ms   674 Elem/sec
dep_chain_dispatch/50                       1.09     80.4±1.31ms   621 Elem/sec     1.00     73.7±1.10ms   678 Elem/sec
dep_chain_submit/10                         1.06      3.1±0.17ms  3.1 KElem/sec     1.00      3.0±0.11ms  3.3 KElem/sec
dep_chain_submit/200                        1.06     81.4±4.95ms  2.4 KElem/sec     1.00     76.7±3.53ms  2.5 KElem/sec
dep_chain_submit/50                         1.06     17.4±1.01ms  2.8 KElem/sec     1.00     16.4±0.75ms  3.0 KElem/sec
dep_fan_in_dispatch/10                      1.07      7.4±0.13ms  1496 Elem/sec     1.00      6.9±0.12ms  1603 Elem/sec
dep_fan_in_dispatch/100                     1.08     44.9±1.24ms  2.2 KElem/sec     1.00     41.6±1.93ms  2.4 KElem/sec
dep_fan_in_dispatch/50                      1.08     24.4±0.53ms  2.0 KElem/sec     1.00     22.6±0.51ms  2.2 KElem/sec
dispatch_and_complete/1000                  1.06    417.1±7.99ms  2.3 KElem/sec     1.00    392.3±5.27ms  2.5 KElem/sec
dispatch_group_scaling/1                    1.10    458.4±8.27ms  1090 Elem/sec     1.00    418.4±6.73ms  1194 Elem/sec
dispatch_group_scaling/10                   1.09    456.5±6.21ms  1095 Elem/sec     1.00    417.9±6.10ms  1196 Elem/sec
dispatch_group_scaling/100                  1.08    455.3±7.40ms  1098 Elem/sec     1.00    419.7±6.24ms  1191 Elem/sec
dispatch_group_scaling/50                   1.09    456.9±7.62ms  1094 Elem/sec     1.00    419.3±6.67ms  1192 Elem/sec
dispatch_no_groups/500                      1.08    209.0±4.90ms  2.3 KElem/sec     1.00    193.4±3.40ms  2.5 KElem/sec
dispatch_one_group/500                      1.12    458.0±8.34ms  1091 Elem/sec     1.00    407.7±6.22ms  1226 Elem/sec
dispatch_permanent_failure/500              1.09    380.6±6.19ms  1313 Elem/sec     1.00    348.6±5.86ms  1434 Elem/sec
history_by_type/100                         1.00    221.2±7.49µs  4.4 KElem/sec     1.00    220.2±5.66µs  4.4 KElem/sec
history_by_type/1000                        1.02   809.5±65.18µs  1235 Elem/sec     1.00   793.7±50.30µs  1259 Elem/sec
history_by_type/5000                        1.00   795.1±44.73µs  1257 Elem/sec     1.03   822.3±43.55µs  1216 Elem/sec
history_query/100                           1.00   407.9±19.70µs  2.4 KElem/sec     1.06   434.1±20.83µs  2.2 KElem/sec
history_query/1000                          1.00   424.6±24.52µs  2.3 KElem/sec     1.06   448.2±21.83µs  2.2 KElem/sec
history_query/5000                          1.00   443.5±21.72µs  2.2 KElem/sec     1.01   449.4±24.54µs  2.2 KElem/sec
history_stats/100                           1.03    130.2±1.12µs  7.5 KElem/sec     1.00    127.0±0.90µs  7.7 KElem/sec
history_stats/1000                          1.04    197.7±2.36µs  4.9 KElem/sec     1.00    190.0±1.33µs  5.1 KElem/sec
history_stats/5000                          1.03    491.3±3.26µs  2035 Elem/sec     1.00    476.4±1.55µs  2.0 KElem/sec
mixed_priority_dispatch/500                 1.09    253.3±5.27ms  1973 Elem/sec     1.00    232.6±2.99ms  2.1 KElem/sec
peek_next/100                               1.04    122.6±4.18µs  8.0 KElem/sec     1.00    118.1±2.54µs  8.3 KElem/sec
peek_next/1000                              1.06    125.5±4.86µs  7.8 KElem/sec     1.00    117.9±2.50µs  8.3 KElem/sec
peek_next/5000                              1.05    124.6±5.14µs  7.8 KElem/sec     1.00    118.6±2.89µs  8.2 KElem/sec
query_ids_by_tags/100                       1.05    191.0±5.22µs  5.1 KElem/sec     1.00    182.4±3.38µs  5.4 KElem/sec
query_ids_by_tags/1000                      1.00    807.5±9.06µs  1238 Elem/sec     1.01    817.8±6.48µs  1222 Elem/sec
query_ids_by_tags/5000                      1.00      3.5±0.04ms   284 Elem/sec     1.04      3.6±0.02ms   274 Elem/sec
retryable_dead_letter/constant              1.11    120.0±1.73ms   833 Elem/sec     1.00    108.3±1.70ms   923 Elem/sec
retryable_dead_letter/exponential           1.09    118.2±1.52ms   846 Elem/sec     1.00    108.3±0.82ms   923 Elem/sec
retryable_dead_letter/exponential_jitter    1.10    118.4±1.72ms   844 Elem/sec     1.00    108.1±0.78ms   925 Elem/sec
retryable_dead_letter/linear                1.10    118.6±1.35ms   843 Elem/sec     1.00    107.6±1.42ms   929 Elem/sec
submit_dedup_hit/1000                       1.04   213.6±10.33ms  4.6 KElem/sec     1.00    204.8±6.42ms  4.8 KElem/sec
submit_tasks/1000                           1.06    187.2±7.12ms  5.2 KElem/sec     1.00    177.1±4.84ms  5.5 KElem/sec
submit_with_tags/0                          1.04     92.1±4.21ms  5.3 KElem/sec     1.00     88.7±3.30ms  5.5 KElem/sec
submit_with_tags/10                         1.03   247.2±14.32ms  2022 Elem/sec     1.00   238.9±12.04ms  2.0 KElem/sec
submit_with_tags/20                         1.05   408.6±24.18ms  1223 Elem/sec     1.00   388.2±17.80ms  1287 Elem/sec
submit_with_tags/5                          1.04   172.0±11.23ms  2.8 KElem/sec     1.00    164.8±6.88ms  3.0 KElem/sec
tag_values/100                              1.04    136.7±5.98µs  7.1 KElem/sec     1.00    132.1±3.50µs  7.4 KElem/sec
tag_values/1000                             1.03    197.8±6.31µs  4.9 KElem/sec     1.00    192.4±3.57µs  5.1 KElem/sec
tag_values/5000                             1.02    466.3±6.49µs  2.1 KElem/sec     1.00    458.8±3.82µs  2.1 KElem/sec

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant