apsislabs / phi_attrs

HIPAA compliant PHI access logging for Ruby on Rails.
MIT License
27 stars 3 forks source link

DRAFT: Upgrades for Ruby 3.0 #65

Closed HenryKeiter closed 1 year ago

HenryKeiter commented 1 year ago

Prospective updates for phi_attrs version 0.3.0, with compatibility for Ruby 3 and Rails 7. The vast majority of the changes within are cosmetic; the primary updates are just how we delegate keyword arguments, and then the development harness itself.

I am fairly convinced that this is all working as expected. However, I have a couple concerns that I'd like to address before merging and updating here, specifically with regards to our testing.

This is the first update that upgrades our supported Ruby version, and while I believe from manual testing that earlier rubies are still supported, the current spec framework is not sufficient to preserve this going forward.

As evident in the Appraisals file, I've chosen to drop "official" support for Rails 5 and earlier in the interest of getting eyes on this PR. These earlier versions were having compatibility problems with the updated docker image, among other things. If we want to continue to support earlier rubies/railsies, we will need to look at something like WWTD, or a similar tool for GH workflows if one exists.

I'm currently marking the PR as a draft (maybe unnecessarily, since the github workflow is unhappy on the older versions anyway) until a decision is reached between what I see as our best options for resolving this situation:

  1. Bump the version number all the way to 1.0.0 with this release (the PR currently only bumps to 0.3), to indicate a potential break of backwards compatibility. One might argue that this is implied while we're still in 0.x territory, but a major version bump is more likely to draw human eyes. This would obviously include opening an issue to upgrade the project's compatibility infrastructure.
  2. Hold this release until we can upgrade our compatibility infrastructure sufficiently to maintain support for older versions of ruby/rails.