Open e28eta opened 2 years ago
@e28eta Plugins have always been somehow experimental and a work in progress although they're gradually getting better. Regarding 1, 2 and 3, I'm not fully sure, perhaps you can check https://github.com/rubygems/bundler-graph which is meant to be a "reference plugin". If it seems good, we can maybe start pointing there instead of bundle-audit
, since bundle-audit does not really use the plugin API as far as I understand.
Regarding 4, I think as long as they are things expected to work on all versions, we should update all versions. If it's documentation of some feature that landed at a specific version, we should only change that version and the ones after.
Regarding 5, I think we fixed some stuff related to that recently. Did you use the latest bundler? If yes, feel free to report an issue.
I found documentation for How to write a Bundler plugin and started following it. Step 1 is to go create a gem, and that guide specifically creates a CLI executable using Thor.
Then, back to the
bundler_plugins.html.haml
page, under "3. Making Bundler commands" link, it gives instructions for registering the command through bundler, but doesn't show any integration with Thor:https://github.com/rubygems/bundler-site/blob/17f370fe8ce3493cd1b43387f5969cc6728a092f/source/v2.3/guides/bundler_plugins.html.haml#L116-L149
The page recommends looking at rubysec/bundler-audit, which afaict does not register a
Bundler::Plugin::API.command
at all (just relies on the Thor executable being on the path)As a first time gem author, and first time bundler plugin author, I felt very lost. Questions:
Bundler::Plugin::API.command('my_command', self)
) be used from within the class with the Thor task? I churned on this for a while, before just creating a new class specific to Bundler. It was complaining about a privateexec
method (maybe the Kernel version? maybe something internal to Thor?). Might have been my error on something else, but seems like a footgun that is worth warning about.bundle plugin list
, but idk about anything else.bundler_plugins.html.haml
? Or do changes like this only get made to the most recent versions?--git
or--local-git
failed because the dependencies couldn't be resolved (or so I believe based on the error message). I had okay luck installing my in-progress gem withbundle exec rake install
and then I thinkbundler plugin install <name>
was using the local version instead of what I'd already published onrubygems.org
.I'm interested in improving the documentation, but I don't want to introduce errors, or spend time on something unwanted.