Skip to content

Conversation

@adamruzicka
Copy link
Contributor

No description provided.

@adamruzicka
Copy link
Contributor Author

adamruzicka commented Nov 12, 2025

Why the heck is sidekiq-6.0.4 getting pulled in on ruby3.1, while all the other rubies (including 2.7) get 6.5.12.

Edit: gitlab-sidekiq-fetcher seems to be pulling that in

Copy link

@ofedoren ofedoren left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks, @adamruzicka, I'm afraid I don't have much input on this, just a note inline.

Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
end
::Sidekiq.strict_args!(false)
::Sidekiq.strict_args!(false) if ::Sidekiq.respond_to?(:strict_args!)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need that check?

Also, looking at what it does, shouldn't we put it something like Rails.dev? || Rails.test? ? :warn : false? Or we don't want to migrate to the strings only args?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why do we need that check?

Due to some combination of transitive dependencies, early version of sidekiq-6 was being pulled in in tests, but this early version didn't implement Siedkiq.strict_args yet. Since we try to support the entire sidekiq 6 line, this felt like the easiest way out

Or we don't want to migrate to the strings only args?

Doing this properly (not trying to send non-json-native things anywhere) would be a major undertaking as that would have to happen both in dynflow's internals as well as in the user code being managed by dynflow. A hacky way would be to extend our own serialization layer to serialize even the things which previously didn't need to be.

shouldn't we put it something like Rails.dev? || Rails.test? ? :warn : false

While we could do that, I'm not aware of anyone who would be running sidekiq in development?

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the explanation!

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A hacky way would be to extend our own serialization layer to serialize even the things which previously didn't need to be.

Something like https://github.com/Dynflow/dynflow/compare/master...adamruzicka:sidekiq-json?expand=1 maybe? But I can't say I like it

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

That's interesting, and at the first glance it should cover everything. It's just that strict_args without an argument will raise an error, so it's kinda dangerous to just rely on "it should". Maybe warn for the starters and if we won't see any, then just drop it in the future?

Sidekiq::ReliableFetch.setup_reliable_fetch!(config)
end
::Sidekiq.strict_args!(false)
::Sidekiq.strict_args!(false) if ::Sidekiq.respond_to?(:strict_args!)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for the explanation!

@adamruzicka adamruzicka merged commit b22081c into Dynflow:master Nov 18, 2025
10 checks passed
@adamruzicka adamruzicka deleted the rails7 branch November 18, 2025 14:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants