specwrk 0.19.1 → 0.19.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 86a495d990068d402539acc8e3e06ba3380d49f2c7f647c4ddb9359e8c6644f3
4
- data.tar.gz: 723d7ade3f6fde1fef61dd523611f73b5791885fbfec529f79f1113fdccb6802
3
+ metadata.gz: befb2589fe879bbe901360402374acb906359ff133c877a9169bcb0f928d1833
4
+ data.tar.gz: 30c49a123a026d5a4af2da4fadf01cfc92637b095328c83c660d5a3ee7c26d43
5
5
  SHA512:
6
- metadata.gz: f892c6d698d85db59d06b3372d7f7a41ce8011f38c3343e9ce41ee41e5592c0ea034686242c94a928433eddb878211509a72231bd407e8f346498b95ec31ac19
7
- data.tar.gz: d9af25e6db969725369118561c2d3e1ec37c86a3cb26c054b6abba3a45b2617076afdd3b66feb9ed668b988a0f8ed888e007cb5ec24eee35318b50084c1987a5
6
+ metadata.gz: 9e997305868b8cca5ce07ea2285462ed26b01079ccebe09617749ae76c42380787b68ed693af0df4aa6cf1e196b941c5449ae7034cf21614b16650c73de4fc6b
7
+ data.tar.gz: 21bb6a0af32806ed771f0e49ac0295e87ac6f57afb6259b5d74e09971adc5be23bdb1a5bcfb6762578f3f85b0387478d23767f1068e1fc53dd0dd2a63e84bbd3
data/.standard.yml CHANGED
@@ -1,3 +1,3 @@
1
1
  # For available configuration options, see:
2
2
  # https://github.com/standardrb/standard
3
- ruby_version: 3.1
3
+ ruby_version: 3.4
data/CHANGELOG.md CHANGED
@@ -1,5 +1,64 @@
1
1
  # Changelog
2
2
 
3
+ ## Unreleased
4
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.19.1...main)
5
+ - Add msgpack to the docker server — [#178](https://github.com/danielwestendorf/specwrk/pull/178) by [@danielwestendorf](https://github.com/danielwestendorf)
6
+
7
+ ## v0.19.1 — 2025-12-08
8
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.19.0...v0.19.1)
9
+ - Add missing require for serializer in base adapter — [#177](https://github.com/danielwestendorf/specwrk/pull/177) by [@danielwestendorf](https://github.com/danielwestendorf)
10
+
11
+ ## v0.19.0 — 2025-12-08
12
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.18.0...v0.19.0)
13
+ - Add support for configured serializer, adding msgpack — [#176](https://github.com/danielwestendorf/specwrk/pull/176) by [@danielwestendorf](https://github.com/danielwestendorf)
14
+
15
+ ## v0.18.0 — 2025-12-07
16
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.17.1...v0.18.0)
17
+ - Spawn workers with `spawn` instead of `fork` — [#174](https://github.com/danielwestendorf/specwrk/pull/174) by [@danielwestendorf](https://github.com/danielwestendorf)
18
+ - If pending is empty, return before acquiring lock — [#173](https://github.com/danielwestendorf/specwrk/pull/173) by [@danielwestendorf](https://github.com/danielwestendorf)
19
+ - Fix typo resulting in wrong group by — [#166](https://github.com/danielwestendorf/specwrk/pull/166) by [@danielwestendorf](https://github.com/danielwestendorf)
20
+
21
+ ## v0.17.1 — 2025-12-06
22
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.17.0...v0.17.1)
23
+ - Version bump only (no functional changes) — [@danielwestendorf](https://github.com/danielwestendorf)
24
+
25
+ ## v0.17.0 — 2025-12-06
26
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.16.3...v0.17.0)
27
+ - Add bucket store — [#170](https://github.com/danielwestendorf/specwrk/pull/170) by [@danielwestendorf](https://github.com/danielwestendorf)
28
+ - s/Bucket/BucketStore — [#171](https://github.com/danielwestendorf/specwrk/pull/171) by [@danielwestendorf](https://github.com/danielwestendorf)
29
+ - Bucket at seed — [#172](https://github.com/danielwestendorf/specwrk/pull/172) by [@danielwestendorf](https://github.com/danielwestendorf)
30
+ - Split Store classes into their own files — [#169](https://github.com/danielwestendorf/specwrk/pull/169) by [@danielwestendorf](https://github.com/danielwestendorf)
31
+ - Fix worker failing to flush on worker exit — [#167](https://github.com/danielwestendorf/specwrk/pull/167) by [@danielwestendorf](https://github.com/danielwestendorf)
32
+ - Typo — [#168](https://github.com/danielwestendorf/specwrk/pull/168) by [@danielwestendorf](https://github.com/danielwestendorf)
33
+
34
+ ## v0.16.3 — 2025-12-01
35
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.16.2...v0.16.3)
36
+ - Disable locks on heartbeat and health endpoints — [#163](https://github.com/danielwestendorf/specwrk/pull/163) by [@danielwestendorf](https://github.com/danielwestendorf)
37
+ - Add specwrk worker info to logger — [#164](https://github.com/danielwestendorf/specwrk/pull/164) by [@danielwestendorf](https://github.com/danielwestendorf)
38
+ - Ignore Agents.md — [#165](https://github.com/danielwestendorf/specwrk/pull/165) by [@danielwestendorf](https://github.com/danielwestendorf)
39
+
40
+ ## v0.16.2 — 2025-10-23
41
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.16.1...v0.16.2)
42
+ - exit(1) from seed process when example size is zero — [#158](https://github.com/danielwestendorf/specwrk/pull/158) by [@danielwestendorf](https://github.com/danielwestendorf)
43
+
44
+ ## v0.16.1 — 2025-10-03
45
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.16.0...v0.16.1)
46
+ - Ensure next_examples are always cleared after execution — [#156](https://github.com/danielwestendorf/specwrk/pull/156) by [@danielwestendorf](https://github.com/danielwestendorf)
47
+ - More frequent heartbeats — [#154](https://github.com/danielwestendorf/specwrk/pull/154) by [@danielwestendorf](https://github.com/danielwestendorf)
48
+ - Ensure mutex is held when a lock is expected — [#153](https://github.com/danielwestendorf/specwrk/pull/153) by [@danielwestendorf](https://github.com/danielwestendorf)
49
+
50
+ ## v0.16.0 — 2025-10-02
51
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.15.10...v0.16.0)
52
+ - Support retry of all client requests, configurable count — [#151](https://github.com/danielwestendorf/specwrk/pull/151) by [@danielwestendorf](https://github.com/danielwestendorf)
53
+ - Expire workers from worker heartbeats — [#149](https://github.com/danielwestendorf/specwrk/pull/149) by [@danielwestendorf](https://github.com/danielwestendorf)
54
+ - Fix a few minor typos in README — [#147](https://github.com/danielwestendorf/specwrk/pull/147) by [@danielwestendorf](https://github.com/danielwestendorf)
55
+ - Run flake test if the srv uri is localhost — [#146](https://github.com/danielwestendorf/specwrk/pull/146) by [@danielwestendorf](https://github.com/danielwestendorf)
56
+
57
+ ## v0.15.10 — 2025-08-28
58
+ [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.15.9...v0.15.10)
59
+ - Handle default path for start and seed better — [#144](https://github.com/danielwestendorf/specwrk/pull/144) by [@danielwestendorf](https://github.com/danielwestendorf)
60
+ - Mention Redis storage adapter — [@danielwestendorf](https://github.com/danielwestendorf)
61
+
3
62
  ## v0.15.9 — 2025-08-28
4
63
  [Compare](https://github.com/danielwestendorf/specwrk/compare/v0.15.8...v0.15.9)
5
64
  - Support lock skipping for read-only endpoints — [#139](https://github.com/danielwestendorf/specwrk/pull/139) by [@danielwestendorf](https://github.com/danielwestendorf)
@@ -14,7 +14,7 @@ COPY $GEM_FILE ./
14
14
  RUN gem install ./$GEM_FILE --no-document
15
15
  RUN rm ./$GEM_FILE
16
16
 
17
- RUN gem install pitchfork thruster specwrk-store-redis_adapter
17
+ RUN gem install pitchfork thruster specwrk-store-redis_adapter msgpack
18
18
  COPY config.ru ./
19
19
  COPY docker/pitchfork.conf ./
20
20
 
@@ -22,31 +22,43 @@ module Specwrk
22
22
  end
23
23
 
24
24
  module MessagePack
25
- module_function
26
-
27
25
  def ensure_loaded!
26
+ return if defined?(::MessagePack)
27
+
28
28
  require "msgpack"
29
29
  rescue LoadError
30
30
  raise LoadError, "Unable to use msgpack, gem not found. Add `gem 'msgpack' to your Gemfile and bundle install"
31
31
  end
32
32
 
33
- module_function
34
-
35
33
  def adapter_name
36
34
  "msgpack"
37
35
  end
38
36
 
39
37
  def dump(value)
38
+ packer.tap(&:clear)
39
+ .tap { it.write(value) }
40
+ .then(&:to_s)
41
+ end
42
+
43
+ def load(payload)
44
+ unpacker.tap(&:reset)
45
+ .tap { it.feed(payload) }
46
+ .then { it.read }
47
+ end
48
+
49
+ def packer
40
50
  ensure_loaded!
41
51
 
42
- ::MessagePack.dump(value)
52
+ Thread.current[:__specwrk_msgpack_packer] ||= ::MessagePack::Packer.new
43
53
  end
44
54
 
45
- def load(payload)
55
+ def unpacker
46
56
  ensure_loaded!
47
57
 
48
- ::MessagePack.load(payload, symbolize_keys: true)
58
+ Thread.current[:__specwrk_msgpack_unpacker] ||= ::MessagePack::Unpacker.new(symbolize_keys: true)
49
59
  end
60
+
61
+ module_function :ensure_loaded!, :adapter_name, :dump, :load, :packer, :unpacker
50
62
  end
51
63
  end
52
64
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Specwrk
4
- VERSION = "0.19.1"
4
+ VERSION = "0.19.2"
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: specwrk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.19.1
4
+ version: 0.19.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Westendorf