<div dir="ltr"><div class="gmail_extra"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">The concern here is that the installation process is not clear, and is *nowhere* made clear, that the extension is more than the single file. Many, many projects have extensions which are single files. Modern sysadmins install JS modules, Java plugins, browser plugins, Python modules, Ruby modules, Puppet modules, Chef cookbooks, Perl modules, etc. Even some of these configuration management packages are single files. The ones which aren’t contain clear instructions on how to install them.<br></blockquote><div><br></div><div>It's not about whether an extension has a single file or not.  To install any extension (be it for RT, or just Perl), you need a Makefile or a Makefile generator whether the installed result is a single file or many.  The Makefile/Makefile generator is included in distributions.  You don't get those things by downloading a single file.  This isn't an RT-specific thing—this is a Perl thing.  The only reason it has anything to do with RT is because of RT's design decision to use standard Perl modules for RT extensions.  That's why I've suggested that RT's documentation should at least mention that fact.</div><div><br></div><div>No Perl module is ever installed by downloading the .pm file and placing it somewhere.  You need at least a .pm file and a Makefile, then you use the Makefile to install the Perl module.  Or if there isn't a Makefile, you follow the specific instructions included in the README/INSTALL file of the distribution.  That's why I said you only install distributions, not modules.  Again, none of this is specific to RT—it's Perl.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Even if one is an established Perl hacker, a large majority of CPAN modules are a single .pm file. The fact that one must download the entire package, not just the singular file, is not stated anywhere. This deserves clarity.<br></blockquote><div><br></div><div>The fact that one must download the entire package is really emphasised by the fact that the only, single Download link on any CPAN page is the entire package, not just any singular file.  You won't encounter any Download links for individual files for that very reason.</div><div><br></div><div>I can't argue that that's not explicitly documented somewhere, but neither is it documented that you must download single files individually and manually because there's no Download link for individual files.  No one should be doing that, so CPAN's site doesn't support that action.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Every system for which a plugin is multiple files focuses on, and makes obvious, how to install the plugin.</blockquote><div><br></div><div>Perl's system is no exception.  This information exists for almost every, if not every, RT extension/Perl module distribution in the form of included README and/or INSTALL files, as I mentioned in a previous post.</div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">Obviously, if a confused person comes here Alex Peters’ will abuse them and talk down to them about how they’re stupid for not using CPAN to download an install the module, even though there’s no documentation for doing that either.</blockquote><div><br></div><div>There's no documentation on RT's side because this is a Perl issue.  It's standard convention for all Perl modules.  I don't think that RT's documentation should be a manual on how to use Perl.</div><div><br></div><div>That said, I do believe (as I've already stated elsewhere in this thread) that perhaps RT's documentation should be upfront about "knowledge of installing Perl modules" being a prerequisite for administering RT extensions, and link to Perl's documentation on how to install modules in case that knowledge isn't already there.</div><div> <br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">You would at least need to pass -I /opt/rt4/lib to your CPAN invocation for this to work.</blockquote><div><br></div><div>Actually, that's not correct.  RT extensions have custom Module::Install functionality to either detect the correct RT library directory, ask for it, or retrieve it from the RTHOME environment variable (which I raised in one of my earliest posts in this thread).  The custom functionality also puts the plugin's files under RT's library directory instead of in the standard Perl location for Perl modules.</div><div><br></div><div>In any case, as Alex Vandiver pointed out somewhere in this thread, following the specific README/INSTALL instructions per RT extension is necessary in case installation involves things that can't be fully automated, such as database schema adjustments.  Because every RT extension might have its own special installation instructions, RT's documentation really can't say anything more than "read the installation instructions included with the extension" or else important details might be missed.<br></div></div></div></div>