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

Zeitwerk compatibility check list #5638

Open
fxn opened this Issue Mar 1, 2019 · 4 comments

Comments

Projects
None yet
2 participants
@fxn
Copy link

fxn commented Mar 1, 2019

Hey!

As you may perhaps know, Zeitwerk does not support JRuby as of today.

Zeitwerk exploits some undocumented behavior of CRuby, and replicating that is really your call. In that sense, the purpose of this issue is just to share with you this Ruby compatibility test, so that you are aware of that specific list of properties the library depends on. Would be super that Zeitwerk is portable, but it touches a gray area perhaps, so really up to you guys.

References #5403.

@fxn

This comment has been minimized.

Copy link
Author

fxn commented Mar 1, 2019

Oh! If you wanted to play around, testing the library is really easy. Just clone, bundle install and bin/test. The compatibility test can be run with

$ bin/test test/lib/zeitwerk/test_ruby_compatibility.rb

and you can throw focus in a line before a test definition to have only that one executed.

@headius

This comment has been minimized.

Copy link
Member

headius commented Mar 8, 2019

Relates to and probably fixed when #2794 is done. The base feature change here is easy but the backend of require logic will not work properly just yet. It will happen in the next week or two.

@headius headius added this to the JRuby 9.2.7.0 milestone Mar 8, 2019

@headius

This comment has been minimized.

Copy link
Member

headius commented Apr 8, 2019

Updates for 9.2.7:

  • The "class" trace event is always emitted now, which removes 8 errors from the zeitwerk suite. We judged this to be of low impact due to the infrequency of entering class bodies in hot Ruby code. See a7d0c0c.
  • The load_service_redux branch has my in-progress work to finally fix all outstanding load/require/autoload bugs. It is not complete, but the work there appears to knock two failures off the zeitwerk suite.
  • We have been testing Rails 6 with zeitwerk enabled and have not run into any issues, so we are opting to push the load/require work to 9.2.8. Hopefully that release will completely support zeitwerk.

@headius headius modified the milestones: JRuby 9.2.7.0, JRuby 9.2.8.0 Apr 8, 2019

@headius

This comment has been minimized.

Copy link
Member

headius commented Apr 8, 2019

Total zeitwerk suite results without load_service_redux are 5 failures, 30 errors.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.