Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release for Rails 7.2 #282

Closed
kapso opened this issue Aug 23, 2024 · 22 comments
Closed

Release for Rails 7.2 #282

kapso opened this issue Aug 23, 2024 · 22 comments
Assignees

Comments

@kapso
Copy link

kapso commented Aug 23, 2024

Any plans for doing a release that has Rails 7.2 support?

@henkesn
Copy link

henkesn commented Aug 27, 2024

See #278, I'm looking forward to seeing a release, soon. I'm currently developing using master and it seems to work flawlessly with mysql.

Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@github-actions github-actions bot added the stale label Oct 28, 2024
@mnovelo mnovelo self-assigned this Oct 29, 2024
@github-actions github-actions bot removed the stale label Oct 30, 2024
@hoshy
Copy link

hoshy commented Oct 30, 2024

@henkesn This now already takes a long time. Any chance releasing a Rails 7.2 compatible version soon?

@henkesn
Copy link

henkesn commented Oct 30, 2024

Sorry @hoshy, I'm no maintainer but also one of the waiting guys ;)

@javierm
Copy link

javierm commented Oct 30, 2024

Thanks @mnovelo for maintaining this gem! 🎉 I've been in a similar situation so I know how challenging it is 😄.

@mnovelo
Copy link
Collaborator

mnovelo commented Oct 30, 2024

@hoshy I'd like the specs to pass for MySQL and sqlite3 consistently before releasing a new version. If you have any thoughts, I'd happily review a PR 😉

@jashkothari
Copy link

Hello @mnovelo - Anyplans to release a version soon to support Rails 7.2?

@henkesn
Copy link

henkesn commented Nov 11, 2024

Btw, last week I tried to reproduce the error from the last master actions for mysql and ruby 3.1. but the specs passed. I will investigate further when I have more time.

Copy link

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs.

@github-actions github-actions bot added the stale label Dec 12, 2024
@KoenSengers
Copy link

@mnovelo any progress on the release? Especially now rails 8 is already out

@mnovelo
Copy link
Collaborator

mnovelo commented Dec 12, 2024

Yes, I've slowly been making progress on a big refactor that will bring support for Rails 7.2 and 8. Now that I'm done with school, I hope to pick up the pace. I hope to release v4.0.0.alpha1 by EOY, which will address many open concurrency issues by leveraging the CurrentAttributes Rails API.

@henkesn
Copy link

henkesn commented Dec 12, 2024

@mnovelo, how can we help you out?

@github-actions github-actions bot removed the stale label Dec 13, 2024
@macfanatic
Copy link

Is there a chance for you to open a draft PR and receive feedback or help along the way @mnovelo?

We are very interested in rails 7.2 support as well (not so much 8.0 just yet, but that would indeed be on our wishlist by late Q1 2025 I imagine).

@mnovelo
Copy link
Collaborator

mnovelo commented Jan 3, 2025

@macfanatic the current version in development does support Rails 7.2. I'm still working out a draft PR for the refactor, but I'll let you know soon when it's up! @henkesn

@macfanatic
Copy link

Would it be an idea to make a smaller release with 7.2 support then, and another release for the refactor? Also to just make it easier if there are any issues or regressions with the refactor, it will be much easier to pinpoint.

I didn't find a list of what was required to support rails 7.2 either in an issue, or any recent activity on the development branch that made it apparent that 7.2 is already supported there.

@mnovelo
Copy link
Collaborator

mnovelo commented Jan 7, 2025

I'm wary to release a version that claims support for Rails 7.2 without truly having tested it myself. That being said, the current version in development does allow you to use Rails 7.2 and Rails 8.0, and a few people have said that it works for them. The key areas are in the gemspec

  s.add_dependency('activerecord', '>= 6.1.0', '< 8.1')
  s.add_dependency('activesupport', '>= 6.1.0', '< 8.1')

So if you'd like use the version in development you can do so by installing that version directly. I'd recommend you specify the revision so your version doesn't change unexpectedly if we merge any new changes to development https://bundler.io/guides/git.html#how-to-install-gems-from-git-repositories

I'd love your feedback and to know if there are any issues that come up from running the current version with Rails 7.2 or Rails 8.0.

If the current version in development works for you with Rails 7.2 in your test environment and you're able to run it in production too, I'll release a version 3.2.0. Sound fair?

As for what might not be working for Rails 7.2 and Rails 8.0, most of the open issues relate to concurrency and using multiple databases which is what I'm trying to address in the refactor. If you're not doing anything with async queries, multi-threading, or trying to manage more databases than just a single db or a primary db and read-replica, you should be good 🤞🏽

@macfanatic
Copy link

Thank you for the clarification, indeed we could use an unreleased version, but we are in no hurry to do so. And we do make use of some pretty complex logic on top of this gem across our software suite, so we are wary to roll out updates.

I see that #278 was merged to provide some rails 7.2 support already in the past 💪

It is still not clear what issues are open and are a bug after upgrading to rails 7.2 itself. This rails version was released on August 9th 2024 and there isn't a long list of open issues for this repo (amazing work!). Most of the issues are older than this date.

You mention concurrency, threading and async, so I found the issues below.

Newer than August 9th, 2024

Older than August 9th, 2024

However, it would appear that for each of these issues, the version of rails reported in the issue description mentions a version of rails of 7.0.x or even as far back as rails 5. So I don't see how these would be directly related to rails 7.2 support.

The two issues that do seem potentially related to me would be:

I understand all of these are indeed issues, but for example if the issues listed all exist with older versions of rails, then from our perspective we are already at risk and wouldn't be taking on additional risk by upgrading rails itself, as the bugs exist in the current version of the library no matter what. Simply confirming that would be helpful to understand 🙏

@mnovelo
Copy link
Collaborator

mnovelo commented Jan 8, 2025

You make excellent points about the existing issues affecting all versions. You're right that if these issues exist in the current released version, upgrading Rails itself wouldn't necessarily introduce additional risk.

The specs are currently passing for Rails 7.2 with MySQL and Postgres (though not yet with SQLite). While I haven't extensively tested the gem against Rails 7.2/8.0 in production environments myself, several users have reported success with the development version.

As a new maintainer, I've been cautious about officially supporting Rails 7.2/8.0 without comprehensive testing. Having users install from the development branch serves as an explicit opt-in to potential risks. At the same time, I recognize this may be overly conservative.

Here's what I propose:

  1. I can release version 3.2.0 with Rails 7.2/8.0 compatibility in the gemspec
  2. I'll clearly document in the changelog that while the gem appears compatible with Rails 7.2/8.0, users should be aware of the existing issues around concurrency, multi-threading, and multiple databases
  3. I'll continue focusing on the refactor to address these fundamental issues. I hope to have a PR up soon to get feedback.

Would this approach better serve the community while being transparent about the current state of the gem?

@macfanatic
Copy link

I hadn't followed along, congrats and thanks for taking over as a maintainer :)

This is very clear, I've asked some colleagues to discuss internally as well, but to me, this indeed to me would be a very nice improvement. As a consumer of OSS libs, clarity is always assuring!

@macfanatic
Copy link

Speaking only as a single entity here, but our preference indeed would be to have official 7.2 support without bug fixes on other issues that aren't directly related to 7.2, and have been existing for awhile, and to keep the release changelog clear and intentional.

@salimepoint
Copy link

Speaking only as a single entity here, but our preference indeed would be to have official 7.2 support without bug fixes on other issues that aren't directly related to 7.2, and have been existing for awhile, and to keep the release changelog clear and intentional.

I'll second @macfanatic's statement - happy to accept existing (pre-7.2 support) bugs in a 7.2 release.

Other than trialing the development branch is there anything else we can do to assist @mnovelo?

@mnovelo
Copy link
Collaborator

mnovelo commented Jan 9, 2025

OK! (v3.2.0)[https://github.com/rails-on-services/apartment/releases/tag/v3.2.0] with support for Rails 7.2, Rails 8.0, and Ruby 3.4 has been released and is available in RubyGems [https://rubygems.org/gems/ros-apartment]

Really appreciate all the great feedback on this thread. Besides trialing and reporting bugs with v3.2.0, I'd love your input for v4.0.0 #312 @henkesn @macfanatic @salimepoint

For now, I'll close this issue!

@mnovelo mnovelo closed this as completed Jan 9, 2025
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

No branches or pull requests

9 participants