-
Notifications
You must be signed in to change notification settings - Fork 30
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
Module::Starter::Simple::create_t in 1.70 breaks plugins #47
Comments
Oh my... we'll have to fix it right away. Thank you for reporting the issue! |
@chrestomanci Do you happen to have time (and care) to take a look at it? You probably know that change better than anyone. :) |
I will take a look. That was my change, and I did not realise that any downstream modules where relying on that API. |
NB: I cannot reproduce the bug report, so I don't know for sure if it fixes the bug.
I can't reproduce the reported problem, as I don't have enough information to reproduce the reporter's setup. I have pushed a fix which I think should fix things, but I can't be sure. @djerius are you able to test my branch? |
Sorry for not initially providing an example. Since GitHub has no means of uploading files to issues, I stuck a shar file ( haven't used shar since usenet days!) of an example setup in a gist: https://gist.github.com/djerius/95dd8fe5098d93a33029 It's a bash script which when run recreates the files. The configuration requires Module::Starter::Plugin::DirStore and Module::Starter::Plugin::TT2. Here's the command line: % MODULE_TEMPLATE_DIR=module-starter/MST MODULE_STARTER_DIR=module-starter module-starter --module Foo --mi I'll try your branch |
I've tried your branch and it works. Thanks, |
Yup. Already on my task list for tomorrow. :) |
Attempt to fix issue #47 with boilerplate creation
Released with fix! |
Thanks! |
Looks like this fix is incomplete - plugin Module::Starter::CSJEWELL is still broken (I'm trying to use it in default configuration):
|
ugh |
ugh indeed. At this point, I don't realy understand why these downstream modules are now broken. It looks like they are relying on undocumented behavor in Module::Starter::Simple, but I am not certain. The overall change relative to the 1.62 release is to add an xt_guts() method to Module::Starter::Simple, and move the code that generates boilerplate.t from t_guts() to it, so it looks like a downsteam module was relying on t_guts() to return boilerplate.t. At this point, the simplest fix to get the downsteam modules working is to just revert the offending change to how boilerplate.t is generated. This will re-open bug #28. I can create a pull request that does that if you like. Alternativlely, if I am correct that these downsteam modules are relying on undocumented behavor, then we could just use this as an illustration as why it is a good idea to only use documented behavor. I would want to be 100% sure of my case before taking this approach. In any case, you @xsawyerx are the maintaner, and I am just a guest here from the CPAN challenge, so what approach would you prefer? |
I have crated a PR to revert my boilerplate.t changes that cause all this trouble. It should fix this bug, but will of course re-open the bugs it was intended to fix. |
Prior to 1.70, Module::Starter::Simple::create_t expected the t_guts method to return a hash (as a list).
Now it expects that t_guts return two hashrefs. This breaks all plugins with a t_guts method (including Module::Starter's own Module::Starter::Plugin::Template).
For example, here's my plugins configuration:
I'm now seeing the following error:
The text was updated successfully, but these errors were encountered: