coil 1.5.10 → 1.6.0

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: ec982be3e188f8bf919a70fddf32135e2fe09356460b0f7da417dea3b2bbac93
4
- data.tar.gz: 1c430a19ad3c339671a5b6c15c7d56c721dfe1ac3a27bc14885771354938a606
3
+ metadata.gz: 3001a82b2760896be80a5ec56fc1204367165b28cc56af6b340ba87730313fbc
4
+ data.tar.gz: 2ccb1e2086d97bce9ee46684a536505589fd10949ea08b071c0a2398800c6b8b
5
5
  SHA512:
6
- metadata.gz: b11dffc46647ad704d92bdf27e56ed1eab74c328d15d884ee58f33fdc8c6a2abd39fe8cbb1d0f945614e230b279cbdcff0f127a9845658fa8e761e6dae7696d8
7
- data.tar.gz: 174405a330964ed2588c5668d9443df33b4e8ac89c1feb009059b1df23de7f9f7a613add6165246f863c1520d3ddea018a91e7c97797d0187da5565b7023f3fd
6
+ metadata.gz: 43cce1c487b9bdd6b92d463f7e96b28a28d784cd0b53f9ad2ca6574f6d51e3bbee1b46a9ca972ec51df9f7c920d58dacc51e5830f5283e4c67d006c3a8ef2c66
7
+ data.tar.gz: 064a554c5af74a25cd3b72832ac2bc4fb3171b00c3b152c395382fbba14e9a6f4506623e0f94abce8eb5196a5a2ab1e66274fdd7e9a16ec8db7117f15fcddd73
data/CHANGELOG.md CHANGED
@@ -1,5 +1,12 @@
1
1
  ## main
2
2
 
3
+ ## [1.6.0](https://github.com/OdekoTeam/coil/compare/1.5.10...1.6.0) (2026-03-12)
4
+ #### Fix
5
+ - Eliminate deprecation warning ([12892d6](https://github.com/OdekoTeam/coil/commit/12892d65d0e5ca45b427ebcf307791e3c6ef9079))
6
+ #### Changed
7
+ - Index to improve periodic job performance ([7123545](https://github.com/OdekoTeam/coil/commit/71235458f3bd11754a3db8d53c16a47a524eeec4))
8
+ - **NOTE**: this release includes additional migrations, so **be sure to run** `bundle exec rails coil:install:migrations db:migrate`
9
+
3
10
  ## [1.5.10](https://github.com/OdekoTeam/coil/compare/1.5.9...1.5.10) (2026-03-11)
4
11
  #### Changed
5
12
  - Regenerate test schema ([3e76bde](https://github.com/OdekoTeam/coil/commit/3e76bdec3cff15676673a480ae649855554e4588))
data/Rakefile CHANGED
@@ -3,6 +3,4 @@ require "bundler/setup"
3
3
  APP_RAKEFILE = File.expand_path("spec/dummy/Rakefile", __dir__)
4
4
  load "rails/tasks/engine.rake"
5
5
 
6
- load "rails/tasks/statistics.rake"
7
-
8
6
  require "bundler/gem_tasks"
@@ -0,0 +1,23 @@
1
+ # typed: false
2
+
3
+ class IndexInboxMessagesOnType < ActiveRecord::Migration[8.1]
4
+ disable_ddl_transaction!
5
+
6
+ # Indexing on `type` improves performance when a periodic job queries for all
7
+ # distinct message types, i.e.
8
+ #
9
+ # SELECT DISTINCT "type" FROM "coil_inbox_messages"
10
+ #
11
+ # The existing indices on `(type, key)` involve significantly more data,
12
+ # because `key` is a jsonb column. This can (and often does) cause the query
13
+ # planner to choose a full table scan over an index scan. The decision may
14
+ # depend on whether database maintenance tasks (e.g. autovaccuming) have run
15
+ # recently, and how up-to-date the database statistics are.
16
+ #
17
+ # A simple index on `type` provides a more efficient option, making it far
18
+ # less likely that the query planner will choose a full table scan.
19
+
20
+ def change
21
+ add_index :coil_inbox_messages, :type, algorithm: :concurrently
22
+ end
23
+ end
@@ -0,0 +1,23 @@
1
+ # typed: false
2
+
3
+ class IndexOutboxMessagesOnType < ActiveRecord::Migration[8.1]
4
+ disable_ddl_transaction!
5
+
6
+ # Indexing on `type` improves performance when a periodic job queries for all
7
+ # distinct message types, i.e.
8
+ #
9
+ # SELECT DISTINCT "type" FROM "coil_outbox_messages"
10
+ #
11
+ # The existing indices on `(type, key)` involve significantly more data,
12
+ # because `key` is a jsonb column. This can (and often does) cause the query
13
+ # planner to choose a full table scan over an index scan. The decision may
14
+ # depend on whether database maintenance tasks (e.g. autovaccuming) have run
15
+ # recently, and how up-to-date the database statistics are.
16
+ #
17
+ # A simple index on `type` provides a more efficient option, making it far
18
+ # less likely that the query planner will choose a full table scan.
19
+
20
+ def change
21
+ add_index :coil_outbox_messages, :type, algorithm: :concurrently
22
+ end
23
+ end
data/lib/coil/version.rb CHANGED
@@ -2,5 +2,5 @@
2
2
  # frozen_string_literal: true
3
3
 
4
4
  module Coil
5
- VERSION = "1.5.10"
5
+ VERSION = "1.6.0"
6
6
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: coil
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.10
4
+ version: 1.6.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ivan Brennan
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2026-03-11 00:00:00.000000000 Z
12
+ date: 2026-03-12 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rails
@@ -260,6 +260,8 @@ files:
260
260
  - db/migrate/20250102040649_add_foreign_key_to_outbox_completions_on_delete_cascade.rb
261
261
  - db/migrate/20250102040950_validate_foreign_key_outbox_completions.rb
262
262
  - db/migrate/20250102041225_remove_old_foreign_key_from_outbox_completions.rb
263
+ - db/migrate/20260309171521_index_inbox_messages_on_type.rb
264
+ - db/migrate/20260309173914_index_outbox_messages_on_type.rb
263
265
  - lib/coil.rb
264
266
  - lib/coil/engine.rb
265
267
  - lib/coil/queue_locking.rb