From c3d116264a29c39179b0ec73297cfd9921fc2242 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Jan 2023 01:38:24 +0000 Subject: [PATCH 01/31] Bump rack from 2.2.4 to 2.2.6.2 Bumps [rack](https://github.com/rack/rack) from 2.2.4 to 2.2.6.2. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/2.2.4...v2.2.6.2) --- updated-dependencies: - dependency-name: rack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 0a1f364..b553244 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,7 +52,7 @@ GEM rack (>= 1.2, < 3) psych (3.0.2) racc (1.6.0) - rack (2.2.4) + rack (2.2.6.2) rake (13.0.3) rchardet (1.8.0) rdoc (6.3.2) From dd39c77d5c94ed08fb9197c38fdb2c4634c8d42f Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 19 Jan 2023 08:46:03 +0000 Subject: [PATCH 02/31] Bump nokogiri from 1.13.9 to 1.14.0 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.13.9 to 1.14.0. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.13.9...v1.14.0) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index b553244..15629d6 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -33,14 +33,14 @@ GEM semver2 jwt (1.5.6) mime-types (2.99.3) - mini_portile2 (2.8.0) + mini_portile2 (2.8.1) multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nokogiri (1.13.9) + nokogiri (1.14.0) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.13.9-x86_64-darwin) + nokogiri (1.14.0-x86_64-darwin) racc (~> 1.4) nsq-cluster (2.1.0) sys-proctable @@ -51,7 +51,7 @@ GEM multi_xml (~> 0.5) rack (>= 1.2, < 3) psych (3.0.2) - racc (1.6.0) + racc (1.6.2) rack (2.2.6.2) rake (13.0.3) rchardet (1.8.0) From 4ede5875fa1685342c81e53eebc233430381c667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Thu, 2 Feb 2023 17:22:52 +0100 Subject: [PATCH 03/31] feat(workflows): enable ghaction-dependabot-automerge --- .github/workflows/dependabot.yml | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) create mode 100644 .github/workflows/dependabot.yml diff --git a/.github/workflows/dependabot.yml b/.github/workflows/dependabot.yml new file mode 100644 index 0000000..2e5ee58 --- /dev/null +++ b/.github/workflows/dependabot.yml @@ -0,0 +1,17 @@ +name: Dependabot auto-approve +on: pull_request + +permissions: + # Mandatory for both the auto-merge enabling and approval steps + pull-requests: write + # Mandatory for the auto-merge enabling step + contents: write + +jobs: + dependabot: + runs-on: ubuntu-latest + steps: + - name: Automatically merge Dependabot PRs + uses: scalingo/ghaction-dependabot-automerge@v1 + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From f0c341b2c41f43740a4657271a122a3f79fcb6dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Thu, 2 Feb 2023 17:22:55 +0100 Subject: [PATCH 04/31] feat(dependabot): configure for GitHub Actions dependencies --- .github/dependabot.yml | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index 60cde3e..c70bbef 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -9,3 +9,9 @@ updates: interval: "monthly" reviewers: - "Soulou" + - package-ecosystem: "github-actions" + directory: "/" + schedule: + interval: "monthly" + reviewers: + - "Soulou" From 9b6cfd371fc2d817eedcad996a18078c8f747255 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 9 Mar 2023 02:32:40 +0000 Subject: [PATCH 05/31] Bump rack from 2.2.6.2 to 2.2.6.3 Bumps [rack](https://github.com/rack/rack) from 2.2.6.2 to 2.2.6.3. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/v2.2.6.2...v2.2.6.3) --- updated-dependencies: - dependency-name: rack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 15629d6..8ceb3f0 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,7 +52,7 @@ GEM rack (>= 1.2, < 3) psych (3.0.2) racc (1.6.2) - rack (2.2.6.2) + rack (2.2.6.3) rake (13.0.3) rchardet (1.8.0) rdoc (6.3.2) From 24980a44213d07b3cf749c7e6939b3ad38f7c306 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Thu, 16 Mar 2023 12:01:35 +0000 Subject: [PATCH 06/31] Bump rack from 2.2.6.3 to 2.2.6.4 Bumps [rack](https://github.com/rack/rack) from 2.2.6.3 to 2.2.6.4. - [Release notes](https://github.com/rack/rack/releases) - [Changelog](https://github.com/rack/rack/blob/main/CHANGELOG.md) - [Commits](https://github.com/rack/rack/compare/v2.2.6.3...v2.2.6.4) --- updated-dependencies: - dependency-name: rack dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Gemfile.lock b/Gemfile.lock index 8ceb3f0..2dfb0fa 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -52,7 +52,7 @@ GEM rack (>= 1.2, < 3) psych (3.0.2) racc (1.6.2) - rack (2.2.6.3) + rack (2.2.6.4) rake (13.0.3) rchardet (1.8.0) rdoc (6.3.2) From 7b591eb32afb4d76b6c8d52877c2b62abb77626d Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 12 Apr 2023 06:20:30 +0000 Subject: [PATCH 07/31] Bump nokogiri from 1.14.0 to 1.14.3 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.0 to 1.14.3. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.0...v1.14.3) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 2dfb0fa..da6684c 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -37,10 +37,10 @@ GEM multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nokogiri (1.14.0) + nokogiri (1.14.3) mini_portile2 (~> 2.8.0) racc (~> 1.4) - nokogiri (1.14.0-x86_64-darwin) + nokogiri (1.14.3-x86_64-darwin) racc (~> 1.4) nsq-cluster (2.1.0) sys-proctable From a936c645b807d3e78bf6930a8986158d376a55be Mon Sep 17 00:00:00 2001 From: Jean Bertrand Date: Fri, 12 May 2023 10:54:05 +0200 Subject: [PATCH 08/31] deps: upgrade ruby & bundler --- .ruby-version | 2 +- Gemfile.lock | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/.ruby-version b/.ruby-version index cc6c9a4..6a81b4c 100644 --- a/.ruby-version +++ b/.ruby-version @@ -1 +1 @@ -2.3.5 +2.7.8 diff --git a/Gemfile.lock b/Gemfile.lock index da6684c..fc3907e 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,7 +8,7 @@ GEM diff-lcs (1.5.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) - ffi (1.11.1) + ffi (1.15.5) git (1.11.0) rchardet (~> 1.8) github_api (0.16.0) @@ -86,4 +86,4 @@ DEPENDENCIES rspec (~> 3.0) BUNDLED WITH - 1.16.1 + 2.4.13 From f9f3f5f6eec75df829ea957f1e8bd756c8456c24 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 1 Dec 2023 00:59:43 +0000 Subject: [PATCH 09/31] Bump nsq-cluster from 2.1.0 to 2.2.0 Bumps [nsq-cluster](https://github.com/wistia/nsq-cluster) from 2.1.0 to 2.2.0. - [Release notes](https://github.com/wistia/nsq-cluster/releases) - [Changelog](https://github.com/wistia/nsq-cluster/blob/master/CHANGELOG.md) - [Commits](https://github.com/wistia/nsq-cluster/compare/v2.1.0...v2.2.0) --- updated-dependencies: - dependency-name: nsq-cluster dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index fc3907e..7c52ccd 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -8,7 +8,7 @@ GEM diff-lcs (1.5.0) faraday (0.9.2) multipart-post (>= 1.2, < 3) - ffi (1.15.5) + ffi (1.16.3) git (1.11.0) rchardet (~> 1.8) github_api (0.16.0) @@ -33,17 +33,15 @@ GEM semver2 jwt (1.5.6) mime-types (2.99.3) - mini_portile2 (2.8.1) multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nokogiri (1.14.3) - mini_portile2 (~> 2.8.0) - racc (~> 1.4) nokogiri (1.14.3-x86_64-darwin) racc (~> 1.4) - nsq-cluster (2.1.0) - sys-proctable + nokogiri (1.14.3-x86_64-linux) + racc (~> 1.4) + nsq-cluster (2.2.0) + sys-proctable (~> 1.3) oauth2 (1.4.0) faraday (>= 0.8, < 0.13) jwt (~> 1.0) @@ -70,14 +68,14 @@ GEM rspec-support (~> 3.12.0) rspec-support (3.12.0) semver2 (3.4.2) - sys-proctable (1.1.3-universal-darwin) - ffi + sys-proctable (1.3.0) + ffi (~> 1.1) thread_safe (0.3.6) PLATFORMS - ruby x86_64-darwin-16 x86_64-darwin-17 + x86_64-linux DEPENDENCIES bundler (~> 1.0) From 78b8da77e250a655573b24ed6e017ef0da8d2490 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?K=C3=A9vin=20O=27NEILL?= Date: Mon, 8 Jan 2024 18:38:57 +0100 Subject: [PATCH 10/31] fix(NsqdsProducer): implement connected? method --- lib/nsq/nsqds_producer.rb | 4 ++++ spec/lib/nsq/nsqds_producer_spec.rb | 17 +++++++++++++++++ 2 files changed, 21 insertions(+) diff --git a/lib/nsq/nsqds_producer.rb b/lib/nsq/nsqds_producer.rb index 2d88ea9..972e5ee 100644 --- a/lib/nsq/nsqds_producer.rb +++ b/lib/nsq/nsqds_producer.rb @@ -30,6 +30,10 @@ def initialize(opts = {}) end end + def connected? + @producers.any?(&:connected?) + end + def terminate @producers.each do |producer| producer.terminate diff --git a/spec/lib/nsq/nsqds_producer_spec.rb b/spec/lib/nsq/nsqds_producer_spec.rb index 24be5d9..431b4a4 100644 --- a/spec/lib/nsq/nsqds_producer_spec.rb +++ b/spec/lib/nsq/nsqds_producer_spec.rb @@ -48,6 +48,23 @@ def new_consumer(topic = TOPIC) end end + describe '#connected?' do + it 'returns true when all nsqds are connected' do + expect(@producer.connected?).to eq(true) + end + + it 'returns true when at least one nsqd is connected' do + @cluster.nsqd.first.stop + expect(@producer.connected?).to eq(true) + end + + it 'returns false when all nsqds are down' do + @cluster.nsqd.map(&:stop) + wait_for { !@producer.connected? } + expect(@producer.connected?).to eq(false) + end + end + context 'failover strategy' do before do @producer = new_nsqds_producer(@cluster.nsqd, synchronous: true, retry_attempts: 1, ok_timeout: 1) From 8dc02ddf9750aceb8f9cf09a785a45b121b2ae6e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Tue, 6 Feb 2024 03:30:18 +0000 Subject: [PATCH 11/31] Bump nokogiri from 1.14.3 to 1.16.2 Bumps [nokogiri](https://github.com/sparklemotion/nokogiri) from 1.14.3 to 1.16.2. - [Release notes](https://github.com/sparklemotion/nokogiri/releases) - [Changelog](https://github.com/sparklemotion/nokogiri/blob/main/CHANGELOG.md) - [Commits](https://github.com/sparklemotion/nokogiri/compare/v1.14.3...v1.16.2) --- updated-dependencies: - dependency-name: nokogiri dependency-type: indirect ... Signed-off-by: dependabot[bot] --- Gemfile.lock | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Gemfile.lock b/Gemfile.lock index 7c52ccd..67e9a82 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -36,9 +36,9 @@ GEM multi_json (1.13.1) multi_xml (0.6.0) multipart-post (2.0.0) - nokogiri (1.14.3-x86_64-darwin) + nokogiri (1.16.2-x86_64-darwin) racc (~> 1.4) - nokogiri (1.14.3-x86_64-linux) + nokogiri (1.16.2-x86_64-linux) racc (~> 1.4) nsq-cluster (2.2.0) sys-proctable (~> 1.3) @@ -49,7 +49,7 @@ GEM multi_xml (~> 0.5) rack (>= 1.2, < 3) psych (3.0.2) - racc (1.6.2) + racc (1.7.3) rack (2.2.6.4) rake (13.0.3) rchardet (1.8.0) From 608705f6dd0e19fa8eeb5238e74b4208671457f1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Mon, 23 Dec 2024 12:07:10 +0100 Subject: [PATCH 12/31] build(dependabot): replace 'Soulou' with 'leo-scalingo' --- .github/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/dependabot.yml b/.github/dependabot.yml index c70bbef..644cf8a 100644 --- a/.github/dependabot.yml +++ b/.github/dependabot.yml @@ -8,10 +8,10 @@ updates: schedule: interval: "monthly" reviewers: - - "Soulou" + - "leo-scalingo" - package-ecosystem: "github-actions" directory: "/" schedule: interval: "monthly" reviewers: - - "Soulou" + - "leo-scalingo" From e0f96e89263478838e39b47369177db613c78308 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Tue, 5 May 2026 14:08:00 +0200 Subject: [PATCH 13/31] build(asgard): update ownership from IST to UFS --- .sclng/metadata.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.sclng/metadata.toml b/.sclng/metadata.toml index f5f2d68..e3f65ad 100644 --- a/.sclng/metadata.toml +++ b/.sclng/metadata.toml @@ -3,5 +3,5 @@ description = "simple NSQ client library" flags = ["lib"] languages = ["ruby"] owner = "leo@scalingo.com" -team = "IST" +team = "UFS" version = "1.1.0" From f81824b214ba1515a7fa0543758a83b88ab12680 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Tue, 5 May 2026 14:11:56 +0200 Subject: [PATCH 14/31] build(asgard): this lib is tier 1 --- .sclng/metadata.toml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.sclng/metadata.toml b/.sclng/metadata.toml index e3f65ad..2c4758b 100644 --- a/.sclng/metadata.toml +++ b/.sclng/metadata.toml @@ -4,4 +4,5 @@ flags = ["lib"] languages = ["ruby"] owner = "leo@scalingo.com" team = "UFS" -version = "1.1.0" +version = "1.1.2" +tier = 1 From 6c62fcc8593d6721d197611cce00fcdfc5ece529 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Michon?= Date: Tue, 5 May 2026 14:12:48 +0200 Subject: [PATCH 15/31] refactor(workflows): use the new action --- .github/workflows/dependabot.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/dependabot.yml b/.github/workflows/dependabot.yml index 2e5ee58..fe43f2e 100644 --- a/.github/workflows/dependabot.yml +++ b/.github/workflows/dependabot.yml @@ -9,9 +9,9 @@ permissions: jobs: dependabot: - runs-on: ubuntu-latest + runs-on: ubuntu-24.04 steps: - name: Automatically merge Dependabot PRs - uses: scalingo/ghaction-dependabot-automerge@v1 + uses: Scalingo/actions/dependabot-automerge@main env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} From d714aac29ac8d904e7fc99750a167625c805612e Mon Sep 17 00:00:00 2001 From: Morgan Wigmanich Date: Fri, 11 Mar 2022 13:38:58 -0500 Subject: [PATCH 16/31] docs(Backstage): add a catalog-info.yaml file Commit reword for signing requirement --- catalog-info.yaml | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) create mode 100644 catalog-info.yaml diff --git a/catalog-info.yaml b/catalog-info.yaml new file mode 100644 index 0000000..73530bb --- /dev/null +++ b/catalog-info.yaml @@ -0,0 +1,18 @@ +# this is a catalog entity descriptor file for our Backstage instance (https://backstage.wistia.cloud) + +apiVersion: backstage.io/v1alpha1 +kind: Component +metadata: + name: nsq-ruby + description: A worker framework for processing messages from an NSQ topic and channel. + annotations: + github.com/project-slug: wistia/nsq-ruby + backstage.io/techdocs-ref: dir:. + spec: + type: library + owner: infrastructure + lifecycle: production + system: VMA + tags: + - lang#ruby + - pkg#rubygem From 8fb138065b619aae00136cc16245fae06965f271 Mon Sep 17 00:00:00 2001 From: Morgan Wigmanich Date: Fri, 11 Mar 2022 13:38:59 -0500 Subject: [PATCH 17/31] docs(Backstage): add a mkdocs.yaml file Commit reworded for signature requirement --- mkdocs.yaml | 10 ++++++++++ 1 file changed, 10 insertions(+) create mode 100644 mkdocs.yaml diff --git a/mkdocs.yaml b/mkdocs.yaml new file mode 100644 index 0000000..e112932 --- /dev/null +++ b/mkdocs.yaml @@ -0,0 +1,10 @@ +# this file exists to generate techdocs for Backstage (https://backstage.wistia.cloud) + +site_name: nsq-ruby +docs_dir: . +plugins: + - techdocs-core + - same-dir + - exclude: + glob: + - node_modules/* From d477f29f520e181d36afe4a8dfb27df9bef180bf Mon Sep 17 00:00:00 2001 From: Morgan Wigmanich Date: Fri, 11 Mar 2022 15:42:27 -0500 Subject: [PATCH 18/31] Update catalog-info.yaml --- catalog-info.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/catalog-info.yaml b/catalog-info.yaml index 73530bb..b668f49 100644 --- a/catalog-info.yaml +++ b/catalog-info.yaml @@ -8,11 +8,11 @@ metadata: annotations: github.com/project-slug: wistia/nsq-ruby backstage.io/techdocs-ref: dir:. - spec: - type: library - owner: infrastructure - lifecycle: production - system: VMA tags: - lang#ruby - pkg#rubygem +spec: + type: library + owner: infrastructure + lifecycle: production + system: VMA From 5934ee8737776250f97117093a90e0bdec70cac9 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Thu, 30 Nov 2023 10:47:42 +0700 Subject: [PATCH 19/31] Update Gemfile + gemspec to get specs runnable on Ruby 2.7-3.2 (#66) * Update Gemfile + gemspec * Remove jeweler gem * Use VERSION file * Update Gemfile.lock * Add GHA workflow to run tests against several ruby versions * Update certs so openSSL stops complaining * Remove old .ruby-version and .travis.yml + add .tool-versions Reworded for signature requirement --- .github/workflows/run-tests.yml | 30 +++++++++ .ruby-version | 1 - .tool-versions | 1 + .travis.yml | 22 ------- Gemfile | 6 +- Gemfile.lock | 71 +++------------------- Rakefile | 20 ------ VERSION | 1 + nsq-ruby.gemspec | 48 ++------------- spec/support/tls_certs/nsq-ca-cert.pem | 32 +++++----- spec/support/tls_certs/nsq-ca-key.pem | 43 ++++++++----- spec/support/tls_certs/nsq-client-cert.pem | 32 +++++----- spec/support/tls_certs/nsq-client-key.pem | 43 ++++++++----- spec/support/tls_certs/nsq-server-cert.pem | 32 +++++----- spec/support/tls_certs/nsq-server-key.pem | 43 ++++++++----- 15 files changed, 182 insertions(+), 243 deletions(-) create mode 100644 .github/workflows/run-tests.yml delete mode 100644 .ruby-version create mode 100644 .tool-versions delete mode 100644 .travis.yml create mode 100644 VERSION diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml new file mode 100644 index 0000000..5e3a1b6 --- /dev/null +++ b/.github/workflows/run-tests.yml @@ -0,0 +1,30 @@ +name: Run Tests +on: push + +jobs: + test: + strategy: + matrix: + ruby_version: ['2.7', '3.0', '3.1', '3.2'] + runs-on: ubuntu-22.04 + steps: + - name: Install NSQ + shell: bash + run: | + wget https://github.com/nsqio/nsq/releases/download/v1.2.1/nsq-1.2.1.linux-amd64.go1.16.6.tar.gz + tar xvzf nsq-1.2.1.linux-amd64.go1.16.6.tar.gz + mv nsq-1.2.1.linux-amd64.go1.16.6/bin/* /usr/local/bin + + - name: Check out Git repository + uses: actions/checkout@v4 + + - uses: ruby/setup-ruby@v1 + with: + ruby-version: ${{ matrix.ruby_version }} + bundler-cache: true # runs 'bundle install' and caches installed gems automatically + + - name: Run tests + shell: bash + run: | + echo "path: $PATH" + bundle exec rspec spec diff --git a/.ruby-version b/.ruby-version deleted file mode 100644 index 6a81b4c..0000000 --- a/.ruby-version +++ /dev/null @@ -1 +0,0 @@ -2.7.8 diff --git a/.tool-versions b/.tool-versions new file mode 100644 index 0000000..974865f --- /dev/null +++ b/.tool-versions @@ -0,0 +1 @@ +ruby 2.7.6 diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 1927879..0000000 --- a/.travis.yml +++ /dev/null @@ -1,22 +0,0 @@ -language: ruby - -dist: trusty -sudo: false - -cache: bundler - -rvm: - - 2.3.3 - -env: - matrix: - - "NSQ=nsq-1.0.0-compat.linux-amd64.go1.8" - - "NSQ=nsq-0.3.8.linux-amd64.go1.6.2" - -before_install: - - wget https://s3.amazonaws.com/bitly-downloads/nsq/$NSQ.tar.gz -O /tmp/nsq.tar.gz - - tar -xvf /tmp/nsq.tar.gz - - export PATH=$PATH:$PWD/$NSQ/bin/ - -script: - - bundle exec rake spec diff --git a/Gemfile b/Gemfile index 53f474f..43e492e 100644 --- a/Gemfile +++ b/Gemfile @@ -1,8 +1,6 @@ source 'http://rubygems.org' group :development do - gem 'bundler', '~> 1.0' - gem 'jeweler', '~> 2.0' - gem 'nsq-cluster', '~> 2.1' - gem 'rspec', '~> 3.0' + gem 'nsq-cluster', '~> 2.2' + gem 'rspec', '~> 3.10' end diff --git a/Gemfile.lock b/Gemfile.lock index 67e9a82..ea7243a 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,87 +1,32 @@ GEM remote: http://rubygems.org/ specs: - addressable (2.4.0) - builder (3.2.3) - descendants_tracker (0.0.4) - thread_safe (~> 0.3, >= 0.3.1) diff-lcs (1.5.0) - faraday (0.9.2) - multipart-post (>= 1.2, < 3) ffi (1.16.3) - git (1.11.0) - rchardet (~> 1.8) - github_api (0.16.0) - addressable (~> 2.4.0) - descendants_tracker (~> 0.0.4) - faraday (~> 0.8, < 0.10) - hashie (>= 3.4) - mime-types (>= 1.16, < 3.0) - oauth2 (~> 1.0) - hashie (3.5.7) - highline (1.7.10) - jeweler (2.3.9) - builder - bundler - git (>= 1.2.5) - github_api (~> 0.16.0) - highline (>= 1.6.15) - nokogiri (>= 1.5.10) - psych - rake - rdoc - semver2 - jwt (1.5.6) - mime-types (2.99.3) - multi_json (1.13.1) - multi_xml (0.6.0) - multipart-post (2.0.0) - nokogiri (1.16.2-x86_64-darwin) - racc (~> 1.4) - nokogiri (1.16.2-x86_64-linux) - racc (~> 1.4) nsq-cluster (2.2.0) sys-proctable (~> 1.3) - oauth2 (1.4.0) - faraday (>= 0.8, < 0.13) - jwt (~> 1.0) - multi_json (~> 1.3) - multi_xml (~> 0.5) - rack (>= 1.2, < 3) - psych (3.0.2) - racc (1.7.3) - rack (2.2.6.4) - rake (13.0.3) - rchardet (1.8.0) - rdoc (6.3.2) rspec (3.12.0) rspec-core (~> 3.12.0) rspec-expectations (~> 3.12.0) rspec-mocks (~> 3.12.0) - rspec-core (3.12.0) + rspec-core (3.12.2) rspec-support (~> 3.12.0) - rspec-expectations (3.12.0) + rspec-expectations (3.12.3) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) - rspec-mocks (3.12.0) + rspec-mocks (3.12.6) diff-lcs (>= 1.2.0, < 2.0) rspec-support (~> 3.12.0) - rspec-support (3.12.0) - semver2 (3.4.2) + rspec-support (3.12.1) sys-proctable (1.3.0) ffi (~> 1.1) - thread_safe (0.3.6) PLATFORMS - x86_64-darwin-16 - x86_64-darwin-17 - x86_64-linux + ruby DEPENDENCIES - bundler (~> 1.0) - jeweler (~> 2.0) - nsq-cluster (~> 2.1) - rspec (~> 3.0) + nsq-cluster (~> 2.2) + rspec (~> 3.10) BUNDLED WITH - 2.4.13 + 2.1.4 diff --git a/Rakefile b/Rakefile index 763c553..e9f607a 100644 --- a/Rakefile +++ b/Rakefile @@ -10,26 +10,6 @@ end require 'rake' -########### -# Jeweler # -########### -require 'jeweler' -require_relative 'lib/version' -Jeweler::Tasks.new do |gem| - # gem is a Gem::Specification... see http://guides.rubygems.org/specification-reference/ for more options - gem.name = "nsq-ruby" - gem.version = Nsq::Version::STRING - gem.homepage = "http://github.com/wistia/nsq-ruby" - gem.license = "MIT" - gem.summary = %Q{Ruby client library for NSQ} - gem.description = %Q{} - gem.email = "dev@wistia.com" - gem.authors = ["Wistia"] - gem.files = Dir.glob('lib/**/*.rb') + ['README.md'] - # dependencies defined in Gemfile -end -Jeweler::RubygemsDotOrgTasks.new - ######### # Rspec # ######### diff --git a/VERSION b/VERSION new file mode 100644 index 0000000..2bf1c1c --- /dev/null +++ b/VERSION @@ -0,0 +1 @@ +2.3.1 diff --git a/nsq-ruby.gemspec b/nsq-ruby.gemspec index 1ecddf3..6dafd1c 100644 --- a/nsq-ruby.gemspec +++ b/nsq-ruby.gemspec @@ -1,12 +1,6 @@ -# Generated by jeweler -# DO NOT EDIT THIS FILE DIRECTLY -# Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec' -# -*- encoding: utf-8 -*- -# stub: nsq-ruby 2.3.1 ruby lib - Gem::Specification.new do |s| s.name = "nsq-ruby".freeze - s.version = "2.3.1" + s.version = File.read('VERSION') s.required_rubygems_version = Gem::Requirement.new(">= 0".freeze) if s.respond_to? :required_rubygems_version= s.require_paths = ["lib".freeze] @@ -18,46 +12,12 @@ Gem::Specification.new do |s| "LICENSE.txt", "README.md" ] - s.files = [ - "README.md", - "lib/nsq.rb", - "lib/nsq/client_base.rb", - "lib/nsq/connection.rb", - "lib/nsq/consumer.rb", - "lib/nsq/discovery.rb", - "lib/nsq/exceptions.rb", - "lib/nsq/frames/error.rb", - "lib/nsq/frames/frame.rb", - "lib/nsq/frames/message.rb", - "lib/nsq/frames/response.rb", - "lib/nsq/logger.rb", - "lib/nsq/producer.rb", - "lib/version.rb" - ] + s.files = Dir.glob('lib/**/*.rb') + ['README.md'] s.homepage = "http://github.com/wistia/nsq-ruby".freeze s.licenses = ["MIT".freeze] s.rubygems_version = "2.6.8".freeze s.summary = "Ruby client library for NSQ".freeze - if s.respond_to? :specification_version then - s.specification_version = 4 - - if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then - s.add_development_dependency(%q.freeze, ["~> 1.0"]) - s.add_development_dependency(%q.freeze, ["~> 2.0"]) - s.add_development_dependency(%q.freeze, ["~> 2.1"]) - s.add_development_dependency(%q.freeze, ["~> 3.0"]) - else - s.add_dependency(%q.freeze, ["~> 1.0"]) - s.add_dependency(%q.freeze, ["~> 2.0"]) - s.add_dependency(%q.freeze, ["~> 2.1"]) - s.add_dependency(%q.freeze, ["~> 3.0"]) - end - else - s.add_dependency(%q.freeze, ["~> 1.0"]) - s.add_dependency(%q.freeze, ["~> 2.0"]) - s.add_dependency(%q.freeze, ["~> 2.1"]) - s.add_dependency(%q.freeze, ["~> 3.0"]) - end + s.add_development_dependency(%q.freeze, ["~> 2.1"]) + s.add_development_dependency(%q.freeze, ["~> 3.0"]) end - diff --git a/spec/support/tls_certs/nsq-ca-cert.pem b/spec/support/tls_certs/nsq-ca-cert.pem index d94f338..e9cfe03 100644 --- a/spec/support/tls_certs/nsq-ca-cert.pem +++ b/spec/support/tls_certs/nsq-ca-cert.pem @@ -1,16 +1,20 @@ -----BEGIN CERTIFICATE----- -MIIClTCCAf6gAwIBAgIEMoanvDANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJV -UzEWMBQGA1UECBMNU2FuIEZyYW5jaXNjbzEJMAcGA1UEBxMAMREwDwYDVQQKEwhu -c3EgcnVieTEUMBIGA1UEAxMLbnNxIHJ1YnkgQ0ExEjAQBgNVBAUTCTg0NzY4NTU2 -NDAeFw0xNjA0MTgyMjE0MzRaFw00OTEyMzEyMzU5NTlaMG0xCzAJBgNVBAYTAlVT -MRYwFAYDVQQIEw1TYW4gRnJhbmNpc2NvMQkwBwYDVQQHEwAxETAPBgNVBAoTCG5z -cSBydWJ5MRQwEgYDVQQDEwtuc3EgcnVieSBDQTESMBAGA1UEBRMJODQ3Njg1NTY0 -MIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDTS4bpbln5lHkmnMtBuaU1ozPO -X8s2F0fqUd4dssQesm727Qv0REsObq2c8lvEWw1cukDL4aqLrzhj2Cgv3zHDePlY -OlX+PlSAMEmGP1uuk0QLf6nR0q7nJdpR58+pEJsMX4SH9vyUYlpY05sulY0U9tlu -wABIZl+AUd7q68BZGQIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAgQwHQYDVR0lBBYw -FAYIKwYBBQUHAwEGCCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcN -AQELBQADgYEAbepqiMw7tVhnjL6NPdxDj1OCY8/71o2FnsVwp7aTl3qX96BCiqSL -Sa+rmRn8XmGE7OAo6kP76YOHhqiSTc2i8rQyi6NLzmkapv86qbA+GOitehseh5l+ -ZmTFmQlbqFXUCyCUzIDYFVU7rP/mZIsaNuHdVA1YkSLBXCZKXcfxxpY= +MIIDWzCCAkOgAwIBAgIUZGczQQ+DkZLToo8jUQDI5v5DfRQwDQYJKoZIhvcNAQEL +BQAwPTELMAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSEwHwYDVQQKDBhJbnRlcm5l +dCBXaWRnaXRzIFB0eSBMdGQwHhcNMjMxMTI3MTE1NDMwWhcNMzMxMTI0MTE1NDMw +WjA9MQswCQYDVQQGEwJVUzELMAkGA1UECAwCTUExITAfBgNVBAoMGEludGVybmV0 +IFdpZGdpdHMgUHR5IEx0ZDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +ANBFY2Em7cgC7qXqn/IcyW27thNYnKhREdj/mdIjuM6XscF2g8xgdDi0chZAY6c0 +wAYgLg0tw2E1phZssMQAthNDPn6ZdO3f0zqysBckmTRCpqVqvf4vGJPnVVd4qkNA +lDcUjYi7IM6YPPdsOE0fUAbjr3AydY1Teupbbd6iaH6sLtaV5CI+uF3hFuJUmZG8 +kBE4SeKpVR3T+tI9nX9xP81L4MB8f/lm59/JjdwZ2r08NVKjSFIxB8vimhy3EjNf +c68ES2cC7fU0iPEsl0yjdtA2f44bWRFeEulIM/UEEGmYpZaaDgF4FpYJeUnnVEj3 +p5juZ+ZCxF7EoXz1kPRY6skCAwEAAaNTMFEwHQYDVR0OBBYEFGUc93VCGlLU63zr +dUGX8T1tYaPUMB8GA1UdIwQYMBaAFGUc93VCGlLU63zrdUGX8T1tYaPUMA8GA1Ud +EwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAAbBYHJd7oC9rU4jcshv5YmF +KQ1Me1l4iCDgdjPXqmy3H7tE6BtLzuW0D+Vr3+Eoe/g6gvwIhavb5vh4wxMUluyc +mftKleZu+mymel9UbyJHg/ZXlIJCGbEFox2yxg6WFreylbd5TG4irHiZjvnnoOse +DODRqhTDBR5qKmU7Pz3fKWeaQZUegqwMX82dpEdJuzwaFuV24mJAzzMsTSBHPjHn +GLIdt7czJGWtyZAbCmmOta9cbiDyx92CpDcChx81bUJP805M/G08OYaQSDyJxnoc +G0WfrvZoZXZksSnJZnN4NEB0a1CzIQdTVoJqAUuLuT4AFmBQE2dn8CC/oTn8oQ0= -----END CERTIFICATE----- diff --git a/spec/support/tls_certs/nsq-ca-key.pem b/spec/support/tls_certs/nsq-ca-key.pem index c36c817..eaf091f 100644 --- a/spec/support/tls_certs/nsq-ca-key.pem +++ b/spec/support/tls_certs/nsq-ca-key.pem @@ -1,15 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIICWwIBAAKBgQDTS4bpbln5lHkmnMtBuaU1ozPOX8s2F0fqUd4dssQesm727Qv0 -REsObq2c8lvEWw1cukDL4aqLrzhj2Cgv3zHDePlYOlX+PlSAMEmGP1uuk0QLf6nR -0q7nJdpR58+pEJsMX4SH9vyUYlpY05sulY0U9tluwABIZl+AUd7q68BZGQIDAQAB -AoGAD0gzJcb5cveuG4DToplOvaZkJNUA2ZSteuEY84TuclntdKaIas5Vr2GJ5QQS -Zw0+1ioSbayQrTGrHm2P2oaGDr96v7vewkeO8CtP6ewTwvWTKDizf43qpVmP9atU -S4+qpAkAcPoKxV7dDkl/NTJ0rFFILoVYZ5E4kyp6ld7HeNECQQD8wgpRkI//2Xt5 -vssSpxeJYztA/k3MBgA/rspXJFnriStuUSx+VKs3ZEk1XtLZioYpkxHvmhnHMlmn -gABM2BVvAkEA1gFWoAybDc6jYFcITJZltfFZ3a+bR//JgdwSFMaW3r1s840e2QVE -5NXPUXaKvWvVH46HSkzbXGoNOYGt12+F9wJAXiKGZUpJ1yfQbM86IoBIq8phTxtn -Lg0uGommoj3Pn4E+w59HyuUNv1uCSHZAYPTOcr1reKkT4LRH37I0amov0QJAAf+Z -M31qpUJcvDWT2kM9R+mtESjmplF5LEFF2fPQzNuv/MZAl345Gnn0qaoVuZccMmM+ -WC9HjSFgZj0TxoNAGQJAX8RCeouJ0gx/gYcKyZQjeaNOT9MaBVKmQOJ0BaxUs8Zh -2YCOF6o4ikcSYoiT511toUqnvjfhzsbD5mq0Niimsg== ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQDQRWNhJu3IAu6l +6p/yHMltu7YTWJyoURHY/5nSI7jOl7HBdoPMYHQ4tHIWQGOnNMAGIC4NLcNhNaYW +bLDEALYTQz5+mXTt39M6srAXJJk0Qqalar3+LxiT51VXeKpDQJQ3FI2IuyDOmDz3 +bDhNH1AG469wMnWNU3rqW23eomh+rC7WleQiPrhd4RbiVJmRvJAROEniqVUd0/rS +PZ1/cT/NS+DAfH/5ZuffyY3cGdq9PDVSo0hSMQfL4poctxIzX3OvBEtnAu31NIjx +LJdMo3bQNn+OG1kRXhLpSDP1BBBpmKWWmg4BeBaWCXlJ51RI96eY7mfmQsRexKF8 +9ZD0WOrJAgMBAAECggEAPwq53bb4Y8ILddpyxskS6a3Xm7yHUuWTNvGLoJGih5pg +OnTCyVLq6x0nqXedEohDlbcY6XFQQjUIjKIi0Xl7o5IHsS+HNte46vwalC7GVwzT +v59zWiTsVhzAduU1+HxsQM3uV5R5BkALuEMgOawAP82claQYdApwWs8JD0puweSV +v/+Cwv771/5vuQqlkBoCKzdSvq++S2bDOdhqfUYj9C5XRP1Ooj/CUmKg1lvmlbec +wwaEI7+Ixbs+Z1aS3cIQbgkbTx2Ub8g8Hg/Ngg9tBDdl7Z6MENY6SsMIBtZkyUTz +yvYoEgSwszlQutF4g9gjHH8D9RjWvCSwtUvLsy1QTwKBgQDuJdaRu0kszLWNbcb2 +TdugYFGS2TMk8uf/iwGD2fJs0pLlerGewZw6tCh3+H9xDhAzRKlQZylViAXhmNn9 +bZebuvn+aOr1ZU08EGywqi671fUo7MafITPtLJMMRvO+3W27TttoK6iYohHmfV2u +afWkTLHGbXs8NlM8FZWyETzWjwKBgQDf4jOrLleoCRQNwzdrSYK9g5lORM+tVh68 +FPFWisE/uXPWhZSHhaRAV4nkgkJBCfYhawX2G6WX6PKCRLu9I02RUuClWWWbGbtI +fIgUgA1wX24sqC1j01glJMZO6ziKl2D9/LDVLku0cDpKyB8jz9yvqORctppNcpUR +KT55Ex2VJwKBgQDA9xnwxa+aRFlLusq/owC157XRZnshkk1X69uTadMcSFfM5+jq +eXjMvFQaOdmR0tJfqGAFDUIZ0vjo/oCL7/QrtIqCkaLoqme1pp1bXNo3Szu2KH0c +TbwUjsyr4wX3/tW+MzxnIREgdBpLCAQTojnvIlHeNbHobSBujBLa0UrZkwKBgE4y +CW3ej8sm8JQl/PNCB6H9lswZiJe4Hp/+iJR7fiettGHW4hu7d7TpXkYroMxqmEbv +xHNDEMFQIXOSYigbbno1gjT+Vlin0hvtMvJGD2uSST7bto7JQF4ozALAcU0mtj+/ +xFuRAewRzqpT31x4u1G3IZuoQ5iNTrdhumo7XPe9AoGAcU9FFg83QLw0yUDihWsf +83TmO7ocXK9cpcqvDDc3st0q/122ABLUHAfS8k4pjF+EMq2orahKXaXcO93d9cb0 +UR09axBEuESqwetQBVUWQP0zZaMnmoad0ORRuLG6DmzwItr2oYBBauBBnWYow9dp +zebpxkZK13uVDNRrJGirnCw= +-----END PRIVATE KEY----- diff --git a/spec/support/tls_certs/nsq-client-cert.pem b/spec/support/tls_certs/nsq-client-cert.pem index a3d46a8..7b34741 100644 --- a/spec/support/tls_certs/nsq-client-cert.pem +++ b/spec/support/tls_certs/nsq-client-cert.pem @@ -1,17 +1,19 @@ -----BEGIN CERTIFICATE----- -MIICpTCCAg6gAwIBAgIEMoanvTANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJV -UzEWMBQGA1UECBMNU2FuIEZyYW5jaXNjbzEJMAcGA1UEBxMAMREwDwYDVQQKEwhu -c3EgcnVieTEUMBIGA1UEAxMLbnNxIHJ1YnkgQ0ExEjAQBgNVBAUTCTg0NzY4NTU2 -NDAeFw0xNjA0MTgyMjE0MzRaFw00OTEyMzEyMzU5NTlaMGsxCzAJBgNVBAYTAlVT -MRYwFAYDVQQIEw1TYW4gRnJhbmNpc2NvMQkwBwYDVQQHEwAxETAPBgNVBAoTCG5z -cSBydWJ5MRIwEAYDVQQDEwlsb2NhbGhvc3QxEjAQBgNVBAUTCTg0NzY4NTU2NTCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEA9JV79IJrbDnuDytYijCWVL8wCEYt -4Ym1U4BQIJxxlbOv1EW9T4YPYdDI03jB3MVInmSCK7DPiVm64eSooNH7Svz0v4ya -HOgzSq25Xmd85jPGBX1g5jZPeXMU9BeV5LEMNvdOzvSzMYdy5C2ShvdKrjc7AF6X -VhoNvnf61HFERDcCAwEAAaNUMFIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoG -CCsGAQUFBwMCMA8GA1UdEwEB/wQFMAMCAQEwGgYDVR0RBBMwEYIJbG9jYWxob3N0 -hwR/AAABMA0GCSqGSIb3DQEBCwUAA4GBAHK88HlMHiC0HkpJZKrgfwtqFttnOUlG -hD8eo8zl6N4kbZZIFBu0zCyjmzDynxAtOwwit9jcU8jrWVTxqCc57a+kCghvciuI -iV2NmOTgZdIpkBzlTO9Fbl+r3boAtT+q144VmAjHPrEpyI/aD13hbUmVCiBj1/w0 -cGU0qIz5LnUe +MIIDATCCAekCFG154o9A2LtbtwtQgte40glpcMTyMA0GCSqGSIb3DQEBCwUAMD0x +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk +Z2l0cyBQdHkgTHRkMB4XDTIzMTEyNzExNTc0NloXDTMzMTAwNTExNTc0NlowPTEL +MAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn +aXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvqu+N +dKWerAjeuAVgocWGYheI/dQ+UVqcqo3WgP1+LQnBWM4VCjlkes6Y/iyhHaarnjE/ +TtbGIAhMes12Ex+/BB6tUj+zgZBledRdWRK+EQq/1X92h2+beWtMDyGdBuniQe4x ++FQb99X2zyNqz6jDsRpUmpf9MBJcssWWZvZ9N9DFz66epWKG1W36tyDrha/1Ayx9 +c1ilBZZ4wq4Mivzil4moTIk5gC/MPhWqDrygLouJFR9p5MDk1vdSQCoQtKP4pdD+ +Fe/4b2k4XhEvWdA4iC9mssqw2E6L0wgnT/+mPG4Bwrdm41P4Uw7cmWCfk+JDxEde +mNYp3vlZ1sURlyT5AgMBAAEwDQYJKoZIhvcNAQELBQADggEBAFmX4D8+FrEgzuYM +fdZtRcD4g1QnJ8ED9fAO01znyYG4S/xo680xNiRsS3CYk5ZI3ZzcPrKEDMWAtFAl ++4T+4FTWHB5ReIJAO/ElvP1aEaTdRhvsduJjo/gudWW6WLndtMoRPgZzl5HqMcQc +dzCV9DKZisKlbX4RRejr8nw4Hncuvf8TBmSuHMiryLt0CdkPdHYF/ReexlhBqceL +DzoGAYEMdjr+p17FOZNbsRcAtxZUo6Az/i6P/w2GhcfvCS02S5N00W42nmIH7WGr +VKhH8GPE6DmT5WPDxQx7pOww/yV6/KscqHen4X4HFhA6WzCq7uErLCA0Fjkn/rW5 +EsQ/49s= -----END CERTIFICATE----- diff --git a/spec/support/tls_certs/nsq-client-key.pem b/spec/support/tls_certs/nsq-client-key.pem index 70776b6..9aa0142 100644 --- a/spec/support/tls_certs/nsq-client-key.pem +++ b/spec/support/tls_certs/nsq-client-key.pem @@ -1,15 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQD0lXv0gmtsOe4PK1iKMJZUvzAIRi3hibVTgFAgnHGVs6/URb1P -hg9h0MjTeMHcxUieZIIrsM+JWbrh5Kig0ftK/PS/jJoc6DNKrbleZ3zmM8YFfWDm -Nk95cxT0F5XksQw2907O9LMxh3LkLZKG90quNzsAXpdWGg2+d/rUcURENwIDAQAB -AoGAeVS6lBYqshqexPmsx4jI2qupaUFfO1Y0FIM/vJ2/HxNvcy9RdWS8trp7FaT/ -DsTzfFfB12iz26AevDbRjE3+iUFb87j7cWqcd3wLVrA++5+OgJIcbPrgq+eFAA6k -6+6WGwfr+svF0zk5ENdihViceJ27xEKpmmD4m5pELOEwWMECQQD+mnMMCQJcvboX -UvlP5TPoREtldl3svZhfzXX84eR/yeAVQ1h6eYX/gv5DnaK+xcMYstHM30HyDpAi -LZjBwP4XAkEA9ez20KeS3O1e8bQRlL+kw0HptkyK5DEHDSVeb9T3Oj5Niz0mzsIn -kuVSjS3jMjKXXfbGoi1loG0Bsm2nfTve4QJBAIxkSlA2n5DYJcc6v7MopgjLr++Q -55XlriIVv5vkTAWTIfdXnXBblmIgr2hFgjpD/qKd6EZaTZjWIvBVyEf+zZ0CQDUY -8rleVQFKZwN8w4cAUcyuwI1RvXNDeqhF9zviGXcD2K5Fh8mAdhbrWIWO8Mz3y2LI -U17UumqG3qTttAoAEUECQQDAXFSDV8RZ+Y90Fo50/lhQHG+GVXxgEa+bM+rn+vXa -RPnY1CaB4AaAP7ulPEefdwcf9GX22AekLALISKECzq6s ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQCvqu+NdKWerAje +uAVgocWGYheI/dQ+UVqcqo3WgP1+LQnBWM4VCjlkes6Y/iyhHaarnjE/TtbGIAhM +es12Ex+/BB6tUj+zgZBledRdWRK+EQq/1X92h2+beWtMDyGdBuniQe4x+FQb99X2 +zyNqz6jDsRpUmpf9MBJcssWWZvZ9N9DFz66epWKG1W36tyDrha/1Ayx9c1ilBZZ4 +wq4Mivzil4moTIk5gC/MPhWqDrygLouJFR9p5MDk1vdSQCoQtKP4pdD+Fe/4b2k4 +XhEvWdA4iC9mssqw2E6L0wgnT/+mPG4Bwrdm41P4Uw7cmWCfk+JDxEdemNYp3vlZ +1sURlyT5AgMBAAECggEAVwtibDtyna8tLf8NWxaN48rTUqRD+SUiuyKf6bw837q9 +bLruUuqgCbP4j0LTJnqkzcEzMeWE8uOIeS0Yhftv7ZzC/qsUuYPn4wB9REwQx3F2 +XBwUbs0pdmaxzhxpUX/NgLmep9AfDUS/Fu8I47JGM8GcBHQd/+1EC/7hfWdDmEOv +LBAA2T4ODuujxvwYutJsHdVCknzqW7SSO/MfrBAlg28kPdhyvygIkJQ0A9GaaDJR +s7VgiOsdocUK/fSKf1bQ6+I0U6nHFFbcVHHzJ9HrZBGyYWeTQdza4Fqrj0dOYz/g +h1vSM/X1+PeNm8ibawnCMVRyN/AUBWe/IIs5ItJDqQKBgQDl75Yj2fRJBg8WcUh+ +8QPso+yvAxPb+Py1FTlcrAj/PHCpzVwyWkEo5uJaezR1x9i7+ed88GYSoKx0EFD1 +3Pq0iT6tivr+sI42a4rbWZ//vmHmc0S3KryBTgVP76Fp4XGYAjbauNknWtlkzkbC +b9HjAyPg4IHeIhcsf9le5zdpgwKBgQDDlJBgZN80zYc9M7H1L8nW/cRcBglNBVgn +l76EUyevEoJy1pDqgyXtzoG1OR6fYBQk7zgR9Pb5dx4xcAH2YfmI/rYMRiNzVl6Z +fhXLkhxcZ5FuJqvcG/O/xG/cz9ZVvJuBu4buOskfVRxmsOunSV54MDly7eMpHY5H +q4HvORa60wKBgQCyCrRdClVHffOM0ybpdEIvqDaKxX1JJSC4Lrj98w/8YpZyRNuQ ++aXev/ihSykx0g8Wbsk6SwMehV9Dd6bY2cUeqe7ofecf8yILLXaVpm5nnsk7oiGh +Guxfy0P9w3VfAPvuUjibX+p1uLkAf2D3CZKhjzrm07B7ijYbdNuhyrNzdQKBgQCy +Bt5w0AEZKGiM/ixj2c8pYq9FcL0wncfDqm3iN2stAnU5oTQiM6Tn1Yzd8BN+0U8k +25e3SLszEwmpyKIQqtggqnH9tC56w0izAUFHn0Uvm5qWoJ7ZaZwzl9SXM5yPSHJo +4dENsvb2DVwf4bVv/en/Dy6L/hxDhcLIXEaXAek9vwKBgAFgpiSNXAROW3LjrSe6 +fy6zd3vpRgEjapq6gRCMPmMtE2Bm9dTFeZccFjBQfzKrJ+h8xwHrgzj4+QL2XImP +mvvgyhh9nE1DfYNZJM68FBZZ0nONiGfhxM2lx7aIpKOq0YCk15NWVNtLyfBEIQc7 +q4AoVfDjqZz6yy3bCfJD+Kiw +-----END PRIVATE KEY----- diff --git a/spec/support/tls_certs/nsq-server-cert.pem b/spec/support/tls_certs/nsq-server-cert.pem index 319edaf..4453a95 100644 --- a/spec/support/tls_certs/nsq-server-cert.pem +++ b/spec/support/tls_certs/nsq-server-cert.pem @@ -1,17 +1,19 @@ -----BEGIN CERTIFICATE----- -MIICpTCCAg6gAwIBAgIEMoanvjANBgkqhkiG9w0BAQsFADBtMQswCQYDVQQGEwJV -UzEWMBQGA1UECBMNU2FuIEZyYW5jaXNjbzEJMAcGA1UEBxMAMREwDwYDVQQKEwhu -c3EgcnVieTEUMBIGA1UEAxMLbnNxIHJ1YnkgQ0ExEjAQBgNVBAUTCTg0NzY4NTU2 -NDAeFw0xNjA0MTgyMjE0MzRaFw00OTEyMzEyMzU5NTlaMGsxCzAJBgNVBAYTAlVT -MRYwFAYDVQQIEw1TYW4gRnJhbmNpc2NvMQkwBwYDVQQHEwAxETAPBgNVBAoTCG5z -cSBydWJ5MRIwEAYDVQQDEwlsb2NhbGhvc3QxEjAQBgNVBAUTCTg0NzY4NTU2NjCB -nzANBgkqhkiG9w0BAQEFAAOBjQAwgYkCgYEArJdqH6v0Kzetji6IClhRXnzlonuw -A4FaJEJWzkWGzQ0sJwJXwcGeT7q5rKJ+kMKrBkXb8n+GQBihU4NuIilxyzmIYYH/ -oIMa2GzLtgO72k//XWST47DcSTTXvmWKpfJDCFT+iyjUvyEpNgeKwnZuVp/ag9oY -LDZyFctcndZsGWsCAwEAAaNUMFIwDgYDVR0PAQH/BAQDAgWgMBMGA1UdJQQMMAoG -CCsGAQUFBwMBMA8GA1UdEwEB/wQFMAMCAQEwGgYDVR0RBBMwEYIJbG9jYWxob3N0 -hwR/AAABMA0GCSqGSIb3DQEBCwUAA4GBAAs2ae0DC+qFaUaVS/yCljTff8WWdVlu -50I9JCA9S18KPz6MprLY4opERS5McaJELIWojfGr2gRRXrFtT9Qo7sNM7N+RaIM/ -6G2MsM/aKIqjn9DDbeIg7XWMiBq66l5htoAyDFyEhRwwIaBVOuuP3dR/62iSx7A7 -GTxUMQiVJijX +MIIDATCCAekCFG154o9A2LtbtwtQgte40glpcMTzMA0GCSqGSIb3DQEBCwUAMD0x +CzAJBgNVBAYTAlVTMQswCQYDVQQIDAJNQTEhMB8GA1UECgwYSW50ZXJuZXQgV2lk +Z2l0cyBQdHkgTHRkMB4XDTIzMTEyNzExNTg1MloXDTMzMTAwNTExNTg1MlowPTEL +MAkGA1UEBhMCVVMxCzAJBgNVBAgMAk1BMSEwHwYDVQQKDBhJbnRlcm5ldCBXaWRn +aXRzIFB0eSBMdGQwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCjHYgh +4kEdMMrSKGiBGLxunpVhHgxKOzVdiVYhrFAkS+4HnLbnXAvvPR89Snrt1ZGObFaX +rFPqDrkcdeEWEK7UfH0fP4I6HEcSoMfuQ+pLQN4I2HE7kSA4dRT+/TbA26xmyzJm +IRZ3wbqVv7ki4rAPWC1XDeNZUS/xZGZTMZQ9ZjxIg8mzhdMnRXSf49McD72yLneZ +kt3GQL0N31ln10qjsJIQt6Tv9E1wvvmu/3iyAoT96/pdxawTv0Hm3B9fWXOSkVg2 +E27yAfCsPXeqCqqec7x+AH3oY2IX7jRD9z79VbOJH2090SXZjAf6spjLfpkZHmEa +4RM7QCjRSF579z3fAgMBAAEwDQYJKoZIhvcNAQELBQADggEBAKk68POof9KvbV4/ +J7zgiBExr8vThccREpsfBqK4yZ+llBNhwT9sVMTo4YChLOfChqDWM4+5Rbfh5SF4 +hsTNbHUPsSp6Zo7AjYOX8bi/0NAUgqfkZh7cs9nN2rvf/6jkXwO8CdVWdnKkZrW7 +ldQZ81T8bLo/Flmp5QeIyS/JaFVyXS3zV48/wjxlHwbSBOLEpvhCsbNv2YO7vycA +PQTKa5IrvXo+i6rpAeJB3aPClcZ6NQxpiy8afvQVcDZR3tVsdXAOiPizc/6TsP/D +Now6HxRCm6/0Gj1lxGuq8Uq4Q77p7jIqEh5wllbnURB935ifpenGvvgGzR0ulCuc +pYVCbrk= -----END CERTIFICATE----- diff --git a/spec/support/tls_certs/nsq-server-key.pem b/spec/support/tls_certs/nsq-server-key.pem index 506bdd2..e62fb97 100644 --- a/spec/support/tls_certs/nsq-server-key.pem +++ b/spec/support/tls_certs/nsq-server-key.pem @@ -1,15 +1,28 @@ ------BEGIN RSA PRIVATE KEY----- -MIICXQIBAAKBgQCsl2ofq/QrN62OLogKWFFefOWie7ADgVokQlbORYbNDSwnAlfB -wZ5Purmson6QwqsGRdvyf4ZAGKFTg24iKXHLOYhhgf+ggxrYbMu2A7vaT/9dZJPj -sNxJNNe+ZYql8kMIVP6LKNS/ISk2B4rCdm5Wn9qD2hgsNnIVy1yd1mwZawIDAQAB -AoGBAIJIypOd+nOlVB5AgfFNOh9ZqP8+31/GBYXZji2nzlp71xibbCOXRSpqij8H -awNb8D6L/bzRB0bbUOz6Cek/3+WK/D+1mwl+B1zeRYLTgVR5nIjdWBeYMkC0yWkM -lXqxbCEsA/NexUc5L+0S/RSrkHnFkN6GBhv7JzgUt+y/lXwBAkEA4xXuISrHeddA -ctDY4R737DLBwHPMsGqG5yZdMMvfuUTgen4ldROd3XI8wdjB1QoL1caCvJlz84td -WVJkH2SvIwJBAMKRMeDbzqPWKn5F3qlhZY/sY19msBZASOP+uIXkKOCy4dmlqGuY -h5sw+um9uDk1u/AbxA9lX9SaSNwZc7cEdRkCQH1yY/ZWl5OrYaML1IOog/UrpPUY -A3+Bmbyf6ONH/PNwJUIF5dNjXtYygXXktE9oGVmjLB3b974Wwx7Q8RaWnFkCQEpf -7k0iOQ9v4rZ6Ru9Ah+5IUoQ5YL5gvHxK9oZX/ThHqQXlyUe3+r5cLs4C89UKsVjL -hFrOSZ+fipJ4OD+RuKECQQCVN94YugH50j5xT29pURr/acuBy0a8cjrnxW4B+lSY -yngt1+qmXjZHh4rdsMRsvTCPmnpWxCl/EitwnxaxkDkd ------END RSA PRIVATE KEY----- +-----BEGIN PRIVATE KEY----- +MIIEvQIBADANBgkqhkiG9w0BAQEFAASCBKcwggSjAgEAAoIBAQCjHYgh4kEdMMrS +KGiBGLxunpVhHgxKOzVdiVYhrFAkS+4HnLbnXAvvPR89Snrt1ZGObFaXrFPqDrkc +deEWEK7UfH0fP4I6HEcSoMfuQ+pLQN4I2HE7kSA4dRT+/TbA26xmyzJmIRZ3wbqV +v7ki4rAPWC1XDeNZUS/xZGZTMZQ9ZjxIg8mzhdMnRXSf49McD72yLneZkt3GQL0N +31ln10qjsJIQt6Tv9E1wvvmu/3iyAoT96/pdxawTv0Hm3B9fWXOSkVg2E27yAfCs +PXeqCqqec7x+AH3oY2IX7jRD9z79VbOJH2090SXZjAf6spjLfpkZHmEa4RM7QCjR +SF579z3fAgMBAAECggEACF4hd6uFr5urK/DKu6SrNfmIrDzAYKZ87Fl5Q6z1R4dl +pJpTf7bnHdTC34AMolrMZsQEBS/f9iffMyiQ7XLZpSjluk6lvZlpw/jfiMePI2Em +gsmntWiSgJLxCsuunWIni/ZslXSpFGepzLjTJIkAgykA2nBp81EI5pdB8I6gji21 +evlrnIP9DGD85wQXlNt4WJkUN1ML1B/rWF+oFQPEcRp+V+2bPMZaP6bLSLFU8J57 +eeJrrR7KcwxRuZUOdqVq9qym5+kaSNYC75U41IsE14ILw+ETIn+rbC73XRdukKc+ +5BJmeASYxqT1h3IW5c59mswI2G/yjIm4tE+ZxtBr0QKBgQDUF35d1huzbiv2MNtx +MbgTtz+nRXhjd0ojtvGc80IGeclpixU71MxRO2r1CNuVj19QvnS4DOCnT6f1WlZE +LVwEizbSagEdTmVqn0Ft1CBwxO2YKUiwES6K2hkqn9smOY6Wg6c2LJ10JAcsR/2T +MJ8dgf/USRopqDTO3N7toDKtQwKBgQDE4l7sZx2OGwT9So9EJYDX0HzWsap0454o +n1eyDG2PVCsfMz/KPP7w8ELj8hYOirIfDTfJlbG6w+FUUr7PL93wd+zn1EtptKU4 +t9ecDVwvmytup3/9FUeUF7rg0qZnCRWT3BnBAqc42SzSOapV3rBRTs8U7ljiOj0O +Q5RhSxO1NQKBgQDGAtElxnnCQX+lr+OQgLy9G37AKmnFY1/CjFBzGeFwrk9OzF0c +qQXAaVroPkbUETEJ72aFVvB/BC1pMdgMetTIITkjpXg45jJlIx4w7bUD07eHMjP8 +vW3YkNqiIvC1dVMcTvnT6D9waRqRSv0BaImFQROaHE3iynnTD/7Jl6D4hQKBgH1k +GsZ/CcC2jp/uu33QUNWiL8/giUo2qUT/7q8z4RcWqPwO/MKFxGyY6FEanleWl8jU +90HIt8/V7w1wQZvcxYHgLx6bA4iIB24vD/+QNrUPI0MvJIF/6v1ze46yOk6G55oq +5LAbS3sWPciJ92UHFc5C3fpbrnouUzJhcf/g++U9AoGASzn+Nq9KfKnSzk2z72Vb +pBwzwx2WXY071weRIx5C/DqPCsIHRXVCiS39+5evPu8t5aSJ7ML7nL6KbsiA5Nsp +Q7bCjyWnZLLjpnvTjiOFP9EzUt6spGZpN3HmMNkqguO0wWDQdY2rTCtDFQ0N8SMm +6DxmUTjhvyOMWhgZ60zAGeM= +-----END PRIVATE KEY----- From a43f8c249b1a2f5f65c548db5a194d5c5fbbcb46 Mon Sep 17 00:00:00 2001 From: Lukas Eklund Date: Fri, 21 Jun 2019 11:35:39 -0500 Subject: [PATCH 20/31] support an array of nsqds (same as the producer does) Reworded for signature requirement --- lib/nsq/consumer.rb | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/lib/nsq/consumer.rb b/lib/nsq/consumer.rb index 62504d1..e1eeeea 100644 --- a/lib/nsq/consumer.rb +++ b/lib/nsq/consumer.rb @@ -36,10 +36,14 @@ def initialize(opts = {}) topic: @topic, interval: @discovery_interval ) + + elsif opts[:nsqd] + nsqds = [opts[:nsqd]].flatten + max_per_conn = max_in_flight_per_connection(nsqds.size) + nsqds.each{|d| add_connection(d, max_in_flight: max_per_conn)} + else - # normally, we find nsqd instances to connect to via nsqlookupd(s) - # in this case let's connect to an nsqd instance directly - add_connection(opts[:nsqd] || '127.0.0.1:4150', max_in_flight: @max_in_flight) + add_connection('127.0.0.1:4150', max_in_flight: @max_in_flight) end end From 5041605e7c3d668b5ad2ba003247449c07b1f8b9 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Thu, 30 Nov 2023 11:05:50 +0700 Subject: [PATCH 21/31] Update README.md reworded for signature requirement --- README.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index 50c32ea..f1c141f 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ nsq-ruby is a simple NSQ client library written in Ruby. ```Ruby require 'nsq' producer = Nsq::Producer.new( - nsqd: '127.0.0.1:4150', + nsqd: '127.0.0.1:4150', # OR ['127.0.0.1:4150'] topic: 'some-topic' ) @@ -77,7 +77,7 @@ For example, if you'd like to publish messages to a single nsqd. ```Ruby producer = Nsq::Producer.new( - nsqd: '6.7.8.9:4150', + nsqd: '6.7.8.9:4150', # or ['6.7.8.9:4150'] topic: 'topic-of-great-esteem' ) ``` @@ -418,4 +418,3 @@ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - From 83624488f0e91070446fe54f57316c43a83e1439 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Thu, 30 Nov 2023 11:11:00 +0700 Subject: [PATCH 22/31] spec_helper: new_producer can use an array of nsqds reworded for signature requirement --- spec/spec_helper.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 4c76b88..c5e46aa 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -66,7 +66,7 @@ def new_consumer(opts = {}) def new_producer(nsqd, opts = {}) Nsq::Producer.new({ topic: TOPIC, - nsqd: "#{nsqd.host}:#{nsqd.tcp_port}", + nsqd: ["#{nsqd.host}:#{nsqd.tcp_port}"], discovery_interval: 1 }.merge(opts)) end From 17642b914d3f479a0331fd97105028809a6b00cf Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Thu, 30 Nov 2023 11:14:22 +0700 Subject: [PATCH 23/31] Fix README.md copy reworded for signature requirement --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f1c141f..60773f4 100644 --- a/README.md +++ b/README.md @@ -17,7 +17,7 @@ nsq-ruby is a simple NSQ client library written in Ruby. ```Ruby require 'nsq' producer = Nsq::Producer.new( - nsqd: '127.0.0.1:4150', # OR ['127.0.0.1:4150'] + nsqd: '127.0.0.1:4150', # or ['127.0.0.1:4150'] topic: 'some-topic' ) From cf9cbdd688e85ba981c9da0819a52afe4ed2d83f Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Tue, 5 Dec 2023 10:33:36 +0700 Subject: [PATCH 24/31] Prep for 2.4.0 Release: Update CHANGELOG.md (#67) * Update CHANGELOG.md * Bump VERSION to 2.4.0 Reworded for signature requirement --- CHANGELOG.md | 12 ++++++++---- VERSION | 2 +- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6bcdec3..4f77989 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,9 +1,13 @@ # Changelog -## To be Released - -* Bump nokogiri from 1.11.5 to 1.13.4 -* Bump git from 1.3.0 to 1.11.0 +## 2.4.0 + +* Remove jeweler gem in favor of using a dynamic gemspec [#66](https://github.com/wistia/nsq-ruby/pull/66) +* Use `URI.encode_www_form_component` instead of `URI.escape` to ensure compatibility with Ruby 3.0+ and fix deprecation warnings in Ruby 2.7. [#65](https://github.com/wistia/nsq-ruby/pull/65) +* Update version of `nsq-cluster` used for tests [#66](https://github.com/wistia/nsq-ruby/pull/66) +* Update TLS certificates used for tests [#66](https://github.com/wistia/nsq-ruby/pull/66) +* GitHub Actions workflow for testing the gem against a matrix of Ruby versions (2.7, 3.0, 3.1, 3.2) introduced [#66](https://github.com/wistia/nsq-ruby/pull/66) +* Support specifying multiple nsqd's when creating a consumer. [#54](https://github.com/wistia/nsq-ruby/pull/54) ## 2.3.1 diff --git a/VERSION b/VERSION index 2bf1c1c..197c4d5 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.3.1 +2.4.0 From 6df812ea91f0172a0dbd73fca3c9ce692a0c78d6 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Fri, 15 Dec 2023 09:24:58 +0700 Subject: [PATCH 25/31] 2.4.1: Fix NSQ connection version string number (#68) --- CHANGELOG.md | 4 ++++ VERSION | 2 +- lib/version.rb | 6 +----- nsq-ruby.gemspec | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4f77989..37ab35a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,9 @@ # Changelog +## 2.4.1 + +* Client version connection string should also read from the VERSION file + ## 2.4.0 * Remove jeweler gem in favor of using a dynamic gemspec [#66](https://github.com/wistia/nsq-ruby/pull/66) diff --git a/VERSION b/VERSION index 197c4d5..005119b 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4.0 +2.4.1 diff --git a/lib/version.rb b/lib/version.rb index e40592e..54e8878 100644 --- a/lib/version.rb +++ b/lib/version.rb @@ -1,9 +1,5 @@ module Nsq module Version - MAJOR = 2 - MINOR = 3 - PATCH = 1 - BUILD = nil - STRING = [MAJOR, MINOR, PATCH, BUILD].compact.join('.') + STRING = File.read(File.expand_path('../../VERSION', __FILE__)).strip end end diff --git a/nsq-ruby.gemspec b/nsq-ruby.gemspec index 6dafd1c..ed5eba2 100644 --- a/nsq-ruby.gemspec +++ b/nsq-ruby.gemspec @@ -12,7 +12,7 @@ Gem::Specification.new do |s| "LICENSE.txt", "README.md" ] - s.files = Dir.glob('lib/**/*.rb') + ['README.md'] + s.files = Dir.glob('lib/**/*.rb') + ['README.md', 'VERSION'] s.homepage = "http://github.com/wistia/nsq-ruby".freeze s.licenses = ["MIT".freeze] s.rubygems_version = "2.6.8".freeze From 5731deb239b67446161bd4273da6f72286ebf983 Mon Sep 17 00:00:00 2001 From: "wistia-gha-security-bot[bot]" <275146629+wistia-gha-security-bot[bot]@users.noreply.github.com> Date: Mon, 4 May 2026 16:56:18 +0700 Subject: [PATCH 26/31] ci(github): Update actions/checkout action to v6 (#73) Co-authored-by: wistia-gha-security-bot[bot] <275146629+wistia-gha-security-bot[bot]@users.noreply.github.com> --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 5e3a1b6..50248ca 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -16,7 +16,7 @@ jobs: mv nsq-1.2.1.linux-amd64.go1.16.6/bin/* /usr/local/bin - name: Check out Git repository - uses: actions/checkout@v4 + uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - uses: ruby/setup-ruby@v1 with: From 5616334a5ab4e6164022b07ddf4770b1ef56ff64 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Tue, 5 May 2026 14:12:31 +0700 Subject: [PATCH 27/31] chore(GHA): Pin setup-ruby step to ruby/setup-ruby@0cb964fd540e0a24c900370abf38a33466142735 # v1.305.0 (#74) --- .github/workflows/run-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 50248ca..9c4f53f 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -18,7 +18,7 @@ jobs: - name: Check out Git repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 - - uses: ruby/setup-ruby@v1 + - uses: ruby/setup-ruby@0cb964fd540e0a24c900370abf38a33466142735 # v1.305.0 with: ruby-version: ${{ matrix.ruby_version }} bundler-cache: true # runs 'bundle install' and caches installed gems automatically From c69467642ba872a8a6d7cf1fdb1efc6f66043a93 Mon Sep 17 00:00:00 2001 From: Anders Chen Date: Tue, 5 May 2026 14:54:03 +0700 Subject: [PATCH 28/31] GHA/run-tests: Bump ruby/nsq versions (#75) * GHA/run-tests: Bump ruby/nsq versions * Bump Gemfile.lock * Add logger dependency in Gemfile for Ruby 4.0 compatibility --- .github/workflows/run-tests.yml | 10 +++++----- Gemfile | 2 ++ Gemfile.lock | 30 ++++++++++++++++-------------- VERSION | 2 +- nsq-ruby.gemspec | 2 ++ 5 files changed, 26 insertions(+), 20 deletions(-) diff --git a/.github/workflows/run-tests.yml b/.github/workflows/run-tests.yml index 9c4f53f..f39166a 100644 --- a/.github/workflows/run-tests.yml +++ b/.github/workflows/run-tests.yml @@ -5,15 +5,15 @@ jobs: test: strategy: matrix: - ruby_version: ['2.7', '3.0', '3.1', '3.2'] - runs-on: ubuntu-22.04 + ruby_version: ['3.2', '3.3', '3.4', '4.0'] + runs-on: ubuntu-24.04 steps: - name: Install NSQ shell: bash run: | - wget https://github.com/nsqio/nsq/releases/download/v1.2.1/nsq-1.2.1.linux-amd64.go1.16.6.tar.gz - tar xvzf nsq-1.2.1.linux-amd64.go1.16.6.tar.gz - mv nsq-1.2.1.linux-amd64.go1.16.6/bin/* /usr/local/bin + wget https://github.com/nsqio/nsq/releases/download/v1.3.0/nsq-1.3.0.linux-amd64.go1.21.5.tar.gz + tar xvzf nsq-1.3.0.linux-amd64.go1.21.5.tar.gz + mv nsq-1.3.0.linux-amd64.go1.21.5/bin/* /usr/local/bin - name: Check out Git repository uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6 diff --git a/Gemfile b/Gemfile index 43e492e..327b1c6 100644 --- a/Gemfile +++ b/Gemfile @@ -1,5 +1,7 @@ source 'http://rubygems.org' +gem 'logger', '~> 1.6' + group :development do gem 'nsq-cluster', '~> 2.2' gem 'rspec', '~> 3.10' diff --git a/Gemfile.lock b/Gemfile.lock index ea7243a..90db107 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -1,23 +1,24 @@ GEM remote: http://rubygems.org/ specs: - diff-lcs (1.5.0) - ffi (1.16.3) + diff-lcs (1.6.2) + ffi (1.17.4) + logger (1.7.0) nsq-cluster (2.2.0) sys-proctable (~> 1.3) - rspec (3.12.0) - rspec-core (~> 3.12.0) - rspec-expectations (~> 3.12.0) - rspec-mocks (~> 3.12.0) - rspec-core (3.12.2) - rspec-support (~> 3.12.0) - rspec-expectations (3.12.3) + rspec (3.13.2) + rspec-core (~> 3.13.0) + rspec-expectations (~> 3.13.0) + rspec-mocks (~> 3.13.0) + rspec-core (3.13.6) + rspec-support (~> 3.13.0) + rspec-expectations (3.13.5) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-mocks (3.12.6) + rspec-support (~> 3.13.0) + rspec-mocks (3.13.8) diff-lcs (>= 1.2.0, < 2.0) - rspec-support (~> 3.12.0) - rspec-support (3.12.1) + rspec-support (~> 3.13.0) + rspec-support (3.13.7) sys-proctable (1.3.0) ffi (~> 1.1) @@ -25,8 +26,9 @@ PLATFORMS ruby DEPENDENCIES + logger (~> 1.6) nsq-cluster (~> 2.2) rspec (~> 3.10) BUNDLED WITH - 2.1.4 + 2.6.3 diff --git a/VERSION b/VERSION index 005119b..437459c 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.4.1 +2.5.0 diff --git a/nsq-ruby.gemspec b/nsq-ruby.gemspec index ed5eba2..12eed86 100644 --- a/nsq-ruby.gemspec +++ b/nsq-ruby.gemspec @@ -18,6 +18,8 @@ Gem::Specification.new do |s| s.rubygems_version = "2.6.8".freeze s.summary = "Ruby client library for NSQ".freeze + s.add_dependency(%q.freeze) + s.add_development_dependency(%q.freeze, ["~> 2.1"]) s.add_development_dependency(%q.freeze, ["~> 3.0"]) end From 0604cf656d68b7e7490a0d48850c0dafef4db7b2 Mon Sep 17 00:00:00 2001 From: aurelien-reeves-scalingo Date: Mon, 29 Jun 2026 10:43:07 +0200 Subject: [PATCH 29/31] Fix some tests --- spec/lib/nsq/nsqds_producer_spec.rb | 7 +++++++ spec/spec_helper.rb | 2 +- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/spec/lib/nsq/nsqds_producer_spec.rb b/spec/lib/nsq/nsqds_producer_spec.rb index 431b4a4..0d96d9f 100644 --- a/spec/lib/nsq/nsqds_producer_spec.rb +++ b/spec/lib/nsq/nsqds_producer_spec.rb @@ -49,6 +49,13 @@ def new_consumer(topic = TOPIC) end describe '#connected?' do + before do + @producer = new_nsqds_producer(@cluster.nsqd, synchronous: true, retry_attempts: 1, ok_timeout: 1) + end + after do + @producer.terminate if @producer + end + it 'returns true when all nsqds are connected' do expect(@producer.connected?).to eq(true) end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index c5e46aa..4c76b88 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -66,7 +66,7 @@ def new_consumer(opts = {}) def new_producer(nsqd, opts = {}) Nsq::Producer.new({ topic: TOPIC, - nsqd: ["#{nsqd.host}:#{nsqd.tcp_port}"], + nsqd: "#{nsqd.host}:#{nsqd.tcp_port}", discovery_interval: 1 }.merge(opts)) end From 89dc3a68ee5a46f6eac6768087da4d8299408c18 Mon Sep 17 00:00:00 2001 From: aurelien-reeves-scalingo Date: Mon, 29 Jun 2026 11:10:49 +0200 Subject: [PATCH 30/31] Reduce downtime duration in sync producer specs --- spec/lib/nsq/producer_synchronous_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/lib/nsq/producer_synchronous_spec.rb b/spec/lib/nsq/producer_synchronous_spec.rb index 46b8a43..e06667a 100644 --- a/spec/lib/nsq/producer_synchronous_spec.rb +++ b/spec/lib/nsq/producer_synchronous_spec.rb @@ -40,7 +40,7 @@ it 'shouldn\'t raise an error when nsqd is down' do @nsqd.stop - Thread.new { sleep 3 ; @nsqd.start } + Thread.new { sleep 1 ; @nsqd.start } expect{ @producer.write('fail') }.not_to raise_error end From c12faf022d400a1cbf9c6acd2dea8a7d0a367402 Mon Sep 17 00:00:00 2001 From: aurelien-reeves-scalingo Date: Mon, 29 Jun 2026 11:26:48 +0200 Subject: [PATCH 31/31] Make nsqd_producer tests less flaky --- spec/lib/nsq/nsqds_producer_spec.rb | 17 ++++++++++++----- 1 file changed, 12 insertions(+), 5 deletions(-) diff --git a/spec/lib/nsq/nsqds_producer_spec.rb b/spec/lib/nsq/nsqds_producer_spec.rb index 0d96d9f..5430ef5 100644 --- a/spec/lib/nsq/nsqds_producer_spec.rb +++ b/spec/lib/nsq/nsqds_producer_spec.rb @@ -150,14 +150,21 @@ def new_consumer(topic = TOPIC) @producer.write 'second' @cluster.nsqd.first.start - sleep 0.5 + sleep 1 # buy some time for nsqd to start @producer.write 'three' @producer.write 'four' - wait_for{message_count(@cluster.nsqd.last)==3} - expect(message_count(@cluster.nsqd.last)).to eq(3) - wait_for{message_count(@cluster.nsqd.first)==1} - expect(message_count(@cluster.nsqd.first)).to eq(1) + @producer.write 'five' + @producer.write 'six' + @producer.write 'seven' + @producer.write 'eight' + @producer.write 'nine' + @producer.write 'ten' + + wait_for{message_count(@cluster.nsqd.last)>=2} + expect(message_count(@cluster.nsqd.last)).to be >= 2 + wait_for{message_count(@cluster.nsqd.first)>=1} + expect(message_count(@cluster.nsqd.first)).to be >= 1 end end