Skip to content

Conversation

johnnyshields
Copy link
Contributor

In Mongoid 9.0, an unannounced breaking change was introduced that causes field type: Hash to become BSON::Document.

This change is not desirable and should be reverted.

@johnnyshields johnnyshields requested a review from a team as a code owner May 10, 2025 18:20
@johnnyshields
Copy link
Contributor Author

@jamis may we get a comment on this? This is a blocker for Mongoid 9.0 upgrade for us.

@johnnyshields
Copy link
Contributor Author

@jamis any comment here?

@jamis
Copy link
Contributor

jamis commented Sep 3, 2025

@johnnyshields -- This is under consideration for a larger initiative that we're doing to address incompatibilities between Mongoid 7.5 and 9.0. We definitely understand that the road from 7.5 to 9.0 is rocky and fraught, and we're not happy with how that stands today.

This particular PR changes behavior, and the revert can't safely happen until Mongoid 10. As it happens, though, Mongoid 10 is also where we're hoping to target a lot of the issues that block people from upgrading to 9.0.

All that to say that we are aware of this PR, and we appreciate it, and we'll be looking more closely at this issue in the coming weeks (and months). It probably won't happen as soon as you would prefer, but I hope you'll bear with us as we work through this and many (many) other issues.

@jamis jamis added the mongoid10 label Sep 3, 2025
@johnnyshields
Copy link
Contributor Author

johnnyshields commented Sep 4, 2025

@jamis thank you, I really appreciate that giving users from 7.5 an upgrade path should be a top priority for the Mongoid team. We at TableCheck are still on 7.5.

On this topic, I would really like to see the will_change behavior feature flagged for upgrade. It is inexplicable to me that the Mongoid team adds feature flags for the most miniscule bug fixes (which 99.9% of real-world users would be fine to have as non-flagged tiny version patches), yet misses feature flags for obvious, critical app-breaking changes like will_change and behavior of Hash typed fields.

I have long offered to volunteer TableCheck's entire app code and its 30,000+ tests as a proving ground for Mongoid releases. MongoDB has never taken me up on it. If you would like to try upgrading to Mongoid 10.0 yourself on my current 7.5 app and see the breakage yourself, I am happy to share access.

@alexbevi
Copy link
Contributor

alexbevi commented Sep 5, 2025

I have long offered to volunteer TableCheck's entire app code and its 30,000+ tests as a proving ground for Mongoid releases. MongoDB has never taken me up on it. If you would like to try upgrading to Mongoid 10.0 yourself on my current 7.5 app and see the breakage yourself, I am happy to share access.

@johnnyshields I love this idea, and apologize if I haven't followed up on it previously. I want to setup some time with you to explore this, as our goals for Mongoid 10 are to Reduce upgrade friction, identify and address backwards incompatibility issues and prevent feature regressions - which your platforms' test suite(s) could likely help us validate we're achieving prior to release.

Given the challenges we've seen with Mongoid 8 and 9, partnering with TableCheck to showcase a successful migration from 7.5 to 10 would be a win-win.

I'm going to work on a plan for this and reach out directly once I've got more details to share.

@johnnyshields
Copy link
Contributor Author

Cool, we are game, drop me an email.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants