sidekiq-status 3.0.3 → 4.0.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.
Files changed (40) hide show
  1. checksums.yaml +4 -4
  2. data/.devcontainer/Dockerfile +2 -0
  3. data/.devcontainer/README.md +57 -0
  4. data/.devcontainer/devcontainer.json +55 -0
  5. data/.devcontainer/docker-compose.yml +19 -0
  6. data/.github/workflows/ci.yaml +9 -6
  7. data/Appraisals +14 -6
  8. data/CHANGELOG.md +12 -0
  9. data/Dockerfile +5 -0
  10. data/README.md +756 -41
  11. data/Rakefile +153 -0
  12. data/docker-compose.yml +15 -0
  13. data/gemfiles/{sidekiq_6.1.gemfile → sidekiq_7.0.gemfile} +1 -1
  14. data/gemfiles/sidekiq_7.3.gemfile +7 -0
  15. data/gemfiles/sidekiq_8.0.gemfile +7 -0
  16. data/gemfiles/{sidekiq_6.x.gemfile → sidekiq_8.x.gemfile} +1 -1
  17. data/lib/sidekiq-status/client_middleware.rb +4 -3
  18. data/lib/sidekiq-status/helpers.rb +94 -0
  19. data/lib/sidekiq-status/server_middleware.rb +6 -21
  20. data/lib/sidekiq-status/storage.rb +12 -3
  21. data/lib/sidekiq-status/version.rb +1 -1
  22. data/lib/sidekiq-status/web.rb +67 -93
  23. data/lib/sidekiq-status/worker.rb +6 -10
  24. data/lib/sidekiq-status.rb +21 -5
  25. data/sidekiq-status.gemspec +7 -1
  26. data/spec/environment.rb +12 -1
  27. data/spec/lib/sidekiq-status/client_middleware_spec.rb +8 -0
  28. data/spec/lib/sidekiq-status/server_middleware_spec.rb +13 -0
  29. data/spec/lib/sidekiq-status/web_spec.rb +72 -3
  30. data/spec/lib/sidekiq-status/worker_spec.rb +3 -3
  31. data/spec/lib/sidekiq-status_spec.rb +20 -3
  32. data/spec/spec_helper.rb +3 -8
  33. data/spec/support/test_jobs.rb +11 -0
  34. data/spec/test_environment.rb +1 -0
  35. data/web/assets/statuses.css +124 -0
  36. data/web/assets/statuses.js +24 -0
  37. data/web/views/status.erb +131 -93
  38. data/web/views/status_not_found.erb +1 -1
  39. data/web/views/statuses.erb +23 -79
  40. metadata +93 -14
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7c4653623b20223d993b2c5f2ce82a1ee214083c1adb51530a76d82e4d2b3977
4
- data.tar.gz: 6cee1ff677b1b964465e79facf5dd1e747c6747f9e99c7fd54e0330082a4b201
3
+ metadata.gz: 80a884daef6a9b89a0b45af82344c7f973b8c0b53c4eed92637da194db36525a
4
+ data.tar.gz: '035394a0390e4df3012c38bdf277fd4e1d8e0822b9730d4df02af203d7bb450a'
5
5
  SHA512:
6
- metadata.gz: 99971994088169aa3ba0c21417557ce9d9fc072917b06c05a9cb7815f0405e331882f057d56079b41256f028c8248a780d9f74592a660a850959109a579519cc
7
- data.tar.gz: aa7030ebbbb8161f5e9e81c3fac25357cac7bff62d810a3f785e9343c12c3a5839f94060d993aafc5381700b7803ca5e1de17dcb00762525eda6fa9a6bdb4725
6
+ metadata.gz: 181eead0c7518fde8f19a660177d2cdf76c16e8a264f13ea35e678f530118c9c963ebfdd11da2100ef73f4d8c68bc604129ac49a12000eae6276e1bdad9f0d23
7
+ data.tar.gz: ae46120dd4e6d41171ae3e86864e53d8d0d29a60006af1b2f544f0984baa04432a5e637562d5c1fd1073f0046e364db0561f1d26596f16d7d94d780d9ca448cb
@@ -0,0 +1,2 @@
1
+ FROM mcr.microsoft.com/devcontainers/ruby:3.4
2
+ WORKDIR /workspace
@@ -0,0 +1,57 @@
1
+ # Sidekiq Status Devcontainer
2
+
3
+ This devcontainer provides a complete development environment for the sidekiq-status gem.
4
+
5
+ ## What's Included
6
+
7
+ - **Ruby 3.4**: The same Ruby version used in the project's Dockerfile
8
+ - **Redis 7.4.0**: Required for Sidekiq job processing and testing
9
+ - **VS Code Extensions**:
10
+ - Ruby LSP for language support
11
+ - Endwise for Ruby code completion
12
+ - Docker support
13
+ - YAML and JSON support
14
+ - Code spell checker
15
+
16
+ ## Getting Started
17
+
18
+ 1. Make sure you have VS Code with the Dev Containers extension installed
19
+ 2. Open this project in VS Code
20
+ 3. When prompted, click "Reopen in Container" or use the command palette: `Dev Containers: Reopen in Container`
21
+ 4. The container will build and install all dependencies automatically
22
+
23
+ ## Development Workflow
24
+
25
+ Once the container is running:
26
+
27
+ ```bash
28
+ # Run tests
29
+ bundle exec rake
30
+
31
+ # Run specific tests
32
+ bundle exec rspec spec/lib/sidekiq-status_spec.rb
33
+
34
+ # Start an interactive Ruby session
35
+ bundle exec irb
36
+
37
+ # Run tests with different Sidekiq versions (using Appraisal)
38
+ bundle exec appraisal sidekiq-6.x rspec
39
+ bundle exec appraisal sidekiq-7.x rspec
40
+ ```
41
+
42
+ ## Services
43
+
44
+ - **Redis**: Available on port 6379 (forwarded to host)
45
+ - **Application**: Ruby environment with all gems installed
46
+
47
+ ## Environment Variables
48
+
49
+ - `REDIS_URL`: Automatically set to `redis://redis:6379` for testing
50
+
51
+ ## Debugging
52
+
53
+ The devcontainer includes debugging support. You can set breakpoints in VS Code and use the Ruby debugger.
54
+
55
+ ## Customization
56
+
57
+ You can modify the devcontainer configuration in `.devcontainer/` to add additional tools or change settings as needed.
@@ -0,0 +1,55 @@
1
+ {
2
+ "name": "Sidekiq Status Development",
3
+ "dockerComposeFile": "docker-compose.yml",
4
+ "service": "app",
5
+ "workspaceFolder": "/workspace",
6
+
7
+ "features": {
8
+ "ghcr.io/devcontainers/features/git:1": {},
9
+ "ghcr.io/devcontainers/features/github-cli:1": {}
10
+ },
11
+
12
+ "customizations": {
13
+ "vscode": {
14
+ "extensions": [
15
+ "Shopify.ruby-lsp",
16
+ "kaiwood.endwise",
17
+ "ms-vscode.vscode-json",
18
+ "redhat.vscode-yaml",
19
+ "ms-azuretools.vscode-docker",
20
+ "formulahendry.auto-rename-tag",
21
+ "streetsidesoftware.code-spell-checker"
22
+ ],
23
+ "settings": {
24
+ "ruby.useLanguageServer": true,
25
+ "ruby.lint": {
26
+ "rubocop": {
27
+ "useBundler": true
28
+ }
29
+ },
30
+ "ruby.format": "rubocop",
31
+ "files.associations": {
32
+ "*.rb": "ruby",
33
+ "Gemfile": "ruby",
34
+ "Rakefile": "ruby",
35
+ "*.gemspec": "ruby"
36
+ },
37
+ "emmet.includeLanguages": {
38
+ "erb": "html"
39
+ }
40
+ }
41
+ }
42
+ },
43
+
44
+ "forwardPorts": [6379],
45
+ "portsAttributes": {
46
+ "6379": {
47
+ "label": "Redis",
48
+ "onAutoForward": "ignore"
49
+ }
50
+ },
51
+
52
+ "postCreateCommand": "git config --global --add safe.directory /workspace && bundle install",
53
+
54
+ "remoteUser": "vscode"
55
+ }
@@ -0,0 +1,19 @@
1
+ services:
2
+ app:
3
+ build:
4
+ context: ..
5
+ dockerfile: .devcontainer/Dockerfile
6
+ volumes:
7
+ - ..:/workspace:cached
8
+ working_dir: /workspace
9
+ environment:
10
+ - REDIS_URL=redis://redis:6379
11
+ command: sleep infinity
12
+ depends_on:
13
+ - redis
14
+
15
+ redis:
16
+ image: redis:7.4.0
17
+ restart: unless-stopped
18
+ ports:
19
+ - "6379:6379"
@@ -28,20 +28,23 @@ jobs:
28
28
  fail-fast: false
29
29
  matrix:
30
30
  ruby-version:
31
- - '2.7'
32
- - '3.0'
33
- - '3.1'
34
31
  - '3.2'
32
+ - '3.3'
33
+ - '3.4'
34
+ - 'head'
35
35
  gemfile:
36
- - 'gemfiles/sidekiq_6.1.gemfile'
37
- - 'gemfiles/sidekiq_6.x.gemfile'
36
+ - 'gemfiles/sidekiq_7.0.gemfile'
37
+ - 'gemfiles/sidekiq_7.3.gemfile'
38
38
  - 'gemfiles/sidekiq_7.x.gemfile'
39
+ - 'gemfiles/sidekiq_8.0.gemfile'
40
+ - 'gemfiles/sidekiq_8.x.gemfile'
41
+ continue-on-error: ${{ endsWith(matrix.ruby, 'head') }}
39
42
 
40
43
  env:
41
44
  BUNDLE_GEMFILE: ${{ github.workspace }}/${{ matrix.gemfile }}
42
45
 
43
46
  steps:
44
- - uses: actions/checkout@v3
47
+ - uses: actions/checkout@v5
45
48
  - name: Set up Ruby ${{ matrix.ruby-version }}
46
49
  uses: ruby/setup-ruby@v1
47
50
  with:
data/Appraisals CHANGED
@@ -1,11 +1,19 @@
1
- appraise "sidekiq-5.x" do
2
- gem "sidekiq", "~> 5"
1
+ appraise "sidekiq-7.0" do
2
+ gem "sidekiq", "~> 7.0.0"
3
3
  end
4
4
 
5
- appraise "sidekiq-6.1" do
6
- gem "sidekiq", "~> 6.1"
5
+ appraise "sidekiq-7.3" do
6
+ gem "sidekiq", "~> 7.3.0"
7
7
  end
8
8
 
9
- appraise "sidekiq-6.x" do
10
- gem "sidekiq", "~> 6"
9
+ appraise "sidekiq-7.x" do
10
+ gem "sidekiq", "~> 7"
11
+ end
12
+
13
+ appraise "sidekiq-8.0" do
14
+ gem "sidekiq", "~> 8.0.0"
15
+ end
16
+
17
+ appraise "sidekiq-8.x" do
18
+ gem "sidekiq", "~> 8"
11
19
  end
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ **Version 4.0.0**
2
+ - Adds support for Ruby 3.3 and 3.4
3
+ - Adds support for Sidekiq 8.x
4
+ - Drops support for Sidekiq 6.x
5
+ - Drops support for Ruby versions that are now end-of-life (Ruby 2.7.x - Ruby 3.1.x)
6
+ - **BREAKING CHANGE**: Introduces breaking changes in job timestamp storage in Redis
7
+ - **BREAKING CHANGE**: Renames `#working_at` to `#updated_at`
8
+ - Major UI improvements with enhanced progress bars and better web interface styling
9
+ - Adds fallback routes for retry and delete buttons
10
+ - Adds a devcontainer to simplify development
11
+ - Improved elapsed time and ETA calculations
12
+
1
13
  **Version 3.0.3**
2
14
  - Fixes a Sidekiq warning about the deprecated `hmset` redis command (https://github.com/kenaniah/sidekiq-status/pull/37)
3
15
 
data/Dockerfile ADDED
@@ -0,0 +1,5 @@
1
+ # A very simple Dockerfile to allow us to run the test suite from docker compose
2
+ FROM ruby:3.3.5
3
+ WORKDIR /app
4
+ COPY . .
5
+ RUN bundle install