Code Monkey home page Code Monkey logo

Comments (4)

stympy avatar stympy commented on August 17, 2024 2

I am fine with renaming the methods in the plugin DSL to be clearer in theory, but I think it should be a separate consideration, and we'd want to consider if any 3rd parties are depending on the current method names.

I agree that it should be a separate change, if we do it, but I don't see much value in renaming the methods.

As for the load/unload strategy, is every plugin capable of being cleanly unloaded? For instance, the ones that do monkey patching and/or prepend modules?

This would be good to know... If the answer is no, then it seems the rest of this is moot.

Btw, not sure if it's helpful, but we also have a plain ruby mode which is another way to get around this issue (but you have to manually call Honeybadger.load_plugins!).

I didn't know this existed. :) It feels like this accomplishes the goal without having to make any code changes. :)

from honeybadger-ruby.

joshuap avatar joshuap commented on August 17, 2024

I am fine with renaming the methods in the plugin DSL to be clearer in theory, but I think it should be a separate consideration, and we'd want to consider if any 3rd parties are depending on the current method names.

As for the load/unload strategy, is every plugin capable of being cleanly unloaded? For instance, the ones that do monkey patching and/or prepend modules?

Btw, not sure if it's helpful, but we also have a plain ruby mode which is another way to get around this issue (but you have to manually call Honeybadger.load_plugins!).

cc @stympy

from honeybadger-ruby.

shalvah avatar shalvah commented on August 17, 2024

As for the load/unload strategy, is every plugin capable of being cleanly unloaded? For instance, the ones that do monkey patching and/or prepend modules?

I think, if we care about it, then yes. You can't remove a prepended module, but you can at least make its behaviour dynamic.

we also have a plain ruby mode which is another way to get around this issue

Yeah, but I think that moves a lot of the work to the user.


We could ignore all this for now, but the main blocker is the proposed logging feature outside of Rails apps. Since it's disabled by default, the user must enable it before plugins are loaded. But we can also go with one of these workarounds:

  • support an env variable for this (eg HONEYBADGER_SEMANTIC_LOGGER_APPENDER).
  • always load the plugin, and check the config setting dynamically on every usage.

from honeybadger-ruby.

stympy avatar stympy commented on August 17, 2024

Closing this since we don't need it for the logging bit right now and there's a workaround available.

from honeybadger-ruby.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.