Conversation
|
We need to release a new version of the base Docker image (ruby-node-python-electionguard) which is currently under the Codegram organization at DockerHub: It is based on this Dockerfile: So this is what I want to discuss about @andreslucena, we need to release this under the Decidim organization and then update the Docker image references accordingly. |
Codecov Report
@@ Coverage Diff @@
## develop #251 +/- ##
===========================================
+ Coverage 69.05% 69.42% +0.36%
===========================================
Files 95 96 +1
Lines 1616 1622 +6
===========================================
+ Hits 1116 1126 +10
+ Misses 500 496 -4
Continue to review full report at Codecov.
|
This fixes the following deprecation message: ``` Redis.current=` is deprecated and will be removed in 5.0. ```
ahukkanen
left a comment
There was a problem hiding this comment.
These I needed to change because the pending_message.to_json was causing a "Stack level too deep" error after the gems update.
|
@andreslucena All tests are now passing, so I would appreciate if you could take a look as well. I left some review comments to help you out above. Most of the changes are in the configurations (i.e. Ruby 3.0.2 instead of Ruby 2.6.6) and some minor changes in the server application. For the ruby-client itself the only other change is upgrading |
ahukkanen
left a comment
There was a problem hiding this comment.
The Redis.current and Redis.current= methods are deprecated which is why these changes have been done:
https://github.com/redis/redis-rb/blob/5fb64bdecacac0bc5738f194ab82cd1001071879/lib/redis.rb#L40
https://github.com/redis/redis-rb/blob/5fb64bdecacac0bc5738f194ab82cd1001071879/lib/redis.rb#L45
|
Code wise I see it all OK. I didn't have the chance to try this out locally. As we've talked Wednesday, I'm in the process of trying this app integration with Decidim, but I'm actually blocked in one specific step of the process (already reported at #9120). What we can try meanwhile, so we don't block this merge, is the Sandbox feature, just to be sure that everything works as expected. It emulates all the different steps of an Election. I don't know if you've already checked that, but if not, I can try to do that Monday and let you know. |
@andreslucena Yes I've played with the sandbox and to me everything seems to work correctly. There is also the Cypress E2E integration tests in this repo which I believe should run through all the functionality the Sandbox app provides, right? These tests are also part of the CI and passing. |
|
Oh great, if sandbox is covered by specs, and you've checked that manually, then we're good to go for me! |
|
Yes, I've tested all the actions in the sandbox app and to me they all seem to work. I could not get the tally process to work automatically without "Restoring" the keys, if I understood correctly it should read it automatically from the browser's database without having to "restore" the key from the backup file. But this may be just a problem with my browser (or the client implementation) and I don't think anything in the app has changed with this part (as it's front-end functionality). Only thing I noticed is that sometimes when I click e.g. "Start tally", the state won't update in the view but after I refresh the page, it is updated. This is because some actions in the sandbox app won't wait for the action to finish at the bulletin board before sending the response to the client, e.g. in this case: But I believe this is a problem also in the current version of the sandbox app, nothing is changed with these actions with the Ruby 3 update and the E2E tests still work (it's just a matter how fast you are loading the view after the redirect). |
|
@andreslucena I did a small change still after testing this with the Decidim integration. We will also need to release a new version of the bulletin board docker image, so I changed that also to reference the Decidim organization at DockerHub. I will push the image there once this PR is merged. |
This PR started with updating the Graphlient gem but it turned out to a wider Ruby 3 upgrade where we upgrade also other gems as well as the base docker image. After this is completed, we can publish a new version of the gem which allows us to update Decidim to Ruby 3.
The current version of the Graphlient gem is not Ruby 3 compatible but 0.5.0 makes it run on Ruby 3.
This is an issue for upgrading Decidim to Ruby 3 as discussed at decidim/decidim#8452.
Fixes #262.