[rt-users] plugins link to module file, not package file

rick at hiranyaloka.com rick at hiranyaloka.com
Thu Dec 11 01:35:42 EST 2014


Jo, I honestly think that Alex simply misunderstood you. That's not
uncommon in these kind of lists. Better to not attribute to malice what
can be explained by miscommunication. Even in the very rare occasion that
it _is_ malice, you are better off assuming the best of people.

- Rick

> I’ve been using Perl for 20 years now. I grok perl.
>
> Good run with the insults and rudeness. Because yeah, that’s a great way
> to treat someone who’s pointing out a way to improve the usability of
> something. Treat them like dirt, and talk down to them like they’ve never
> used Perl before.
>
> I’ll stop offering advice on ways to improve the UI. Unintelligible and
> prone to confusion on the part of people isn’t my problem. I’m not going
> to be helpful if I get treated like shit when I’m trying to make someone’s
> profit-making production better and more likely to be used.
>
> I forgot why I dropped this list. Thanks for reminding me.
>
> On Dec 9, 2014, at 5:10 AM, Alex Peters <alex at peters.net> wrote:
>> I feel that there are actually several issues to discuss in this thread:
>> Perl modules vs. Perl module distributions
>> Perl module distribution sources
>> Perl module distribution installation
>> knowledge assumed by the CPAN site
>> knowledge assumed by RT's documentation
>> what documentation should actually change
>> Based on your description of the steps you performed in an attempt to
>> install a Perl module from CPAN, with all due respect, I believe you've
>> been improperly advised on Perl module installation and possibly haven't
>> been made aware of some crucial things about how Perl's modules work.
>> I'll go over some of those things, then with everything in mind, maybe
>> we can agree on what documentation changes are needed where.
>>
>>
>> Perl modules vs. Perl module distributions
>>
>> A Perl module is (for all intents and purposes of this thread) a single
>> .pm file.  A Perl module distribution consists of a number of Perl
>> modules (which can be just one), a Makefile (or more commonly, a
>> Makefile generator in Makefile.PL), and instructions for installation of
>> the distribution and hence its modules (usually in README or INSTALL).
>> Distributions exist because often, a single module isn't enough to
>> provide some meaningful form of functionality.
>>
>> Modules are never installed directly.  Modules are always made available
>> as a side effect installing module distributions.  The distribution (not
>> the module) is the smallest unit involved in the action of installation.
>>  Installation of a distribution might result in the installation of only
>> one module, but nonetheless, it's the distribution that's acted upon
>> directly for installation rather than the module.
>>
>> In summary, direct installation of single modules doesn't happen.
>>
>>
>> Perl module distribution sources
>>
>> Distributions are typically (but not always) available on the CPAN site
>> (typically capitalised as "CPAN"), and can be downloaded as an archive.
>> Other distribution sources include (but are not limited to) GitHub,
>> Bitbucket, CD-ROMs, FTP sites and personal web pages.
>>
>> In summary, distribution files can come from many different places.
>>
>>
>> Perl module distribution installation
>>
>> Every distribution includes installation instructions in README or
>> INSTALL, and the most typical experience for installing a Perl module
>> distribution (after obtaining an archive of it) goes like this:
>>
>> $ tar xzf My-Perl-Module-0.01.tar.gz
>> $ cd My-Perl-Module-0.01
>> $ perl Makefile.PL
>> $ make
>> $ make test
>> $ make install
>>
>> Distributions on CPAN can be installed without first downloading an
>> archive, using the CPAN installation tool (typically capitalised as
>> "cpan").  cpan is actually smart enough to take a module name (rather
>> than a distribution name) on the command line, determine the
>> distribution to which that module belongs, and install that
>> distribution.  Since one distribution generally depends on others
>> ("prerequisites") being installed in advance, cpan also manages the
>> installation of prerequisite distributions.  This makes the use of a
>> tool like cpan the generally preferred means of installing distributions
>> (and by extension, modules).
>>
>> Other similar tools exist which do the job in a more streamlined
>> fashion.  I personally prefer cpanm.
>>
>> In summary, distribution installation tools function on distributions,
>> not modules—although some tools have the ability to infer the right
>> distribution if given a module name.
>>
>>
>> Knowledge assumed by the CPAN site
>>
>> Given that a CPAN module page only offers a single Download link, and
>> that link points to an archive of the module's distribution, it's safe
>> to say that the CPAN site assumes that its users already know the
>> distinction between modules and distributions, and expects that the user
>> then refer to the documentation found within the downloaded archive.  I
>> suppose the reasoning is that anyone who knows about CPAN already knows
>> about Perl modules, and how to install module distributions.
>>
>> I don't feel that the installation of Perl modules/distributions is
>> within the domain of RT's documentation.  However, given RT's use of
>> Perl modules as extensions, and that CPAN would probably be the main
>> source for RT extensions, I feel that perhaps RT's documentation could
>> benefit from at least pointing RT users to the required prerequisite
>> knowledge for using CPAN (i.e. what modules are, what distributions are,
>> and what to do with a distribution archive).
>>
>> The CPAN site explicitly doesn't offer downloading of individual module
>> (.pm) files, because direct installation of single modules doesn't
>> happen.  (In my general experience I've found that if something is not
>> making a particular process easy for me, usually my process is invalid
>> and I'm doing something wrong.)
>>
>>
>> Knowledge assumed by RT's documentation
>>
>> RT's documentation clearly assumes that the user knows that RT
>> extensions are just Perl modules.  That's obvious to anyone who is
>> well-versed in reading/writing Perl code.  I don't think it's reasonable
>> to assume that of everyone administering RT.  Therefore, I suppose RT's
>> documentation could be enhanced to explicitly state this.
>>
>> RT's documentation doesn't explicitly state how to install Perl module
>> distributions.  My view on this is that RT's documentation should
>> document RT.  Installation of Perl module distributions is a Perl
>> concern.  At most, RT's documentation could link to some reputable Perl
>> source on the matter (as already mentioned above).
>>
>>
>> What documentation should actually change
>>
>> Jo, taking the above information into account, how would you personally
>> adjust RT's documentation such that others in future wouldn't experience
>> what you experienced?
>>
>> As far as I can see, the only real amendments that concern RT's
>> documentation would be to explicitly state that RT extensions are just
>> Perl modules, and to link to further reading on how Perl modules work
>> and how Perl module distributions are sourced and installed.  What are
>> your thoughts?
>>
>>
>> On 9 December 2014 at 05:07, Jo Rhett <jrhett at netconsonance.com> wrote:
>> So here’s my perspective. As someone with 25 years of sysadmin
>> experience, who has both used RT for many years (but not in the last
>> three years) and someone who uses CPAN fairly often, when sent to the pm
>> module directly, I did the operations directly in front of me and
>> downloaded the .pm and tried to figure out how to install it.
>>
>> There is nothing in the documentation as it stands today to inform a new
>> or dead-brained returning user that they need to download a package, not
>> the .pm file —which in CPAN is often the sum total of an extension. Yes,
>> there is a link to the package file on the page — off on the right, out
>> of the “actionable” area of the screen, if you spend any time with
>> usability experts. Given that the link is not in the user working area,
>> and there’s no reason given to the user to search for the link, I
>> suspect many others will make the same mistake.
>>
>> I outlined this confusion in detail in my original post, showing how I
>> had misunderstood. I believe that any change which makes it clear to the
>> user that they should download the entire package, not just the .pm
>> file, would significantly improve the user experience.
>>
>> On Dec 3, 2014, at 2:09 AM, Alex Peters <alex at peters.net> wrote:
>>> I think I might be missing something crucial in what you are
>>> saying/asking.
>>>
>>> Linking to the main module within a distribution is a very common
>>> practice, because that module is likely to have the most relevant
>>> documentation for that distribution.
>>>
>>> The distribution is clearly linked to on the page of every module
>>> belonging to a particular distribution.
>>>
>>> "Asking the user to edit the URL in their browser window to be able to
>>> find the extension to download doesn’t make a lot of sense" is
>>> essentially a fallacy, because:
>>> the download link for the extension is available on that very page; and
>>> the home page for the extension itself (which in my opinion is
>>> generally far less informational anyway) is available as a link on that
>>> very page.
>>> Can you please rephrase why you feel that the links in the directory
>>> should be changed?  Your assertion that these links are "broken" in
>>> their current form is confusing to me.
>>>
>>> On 3 December 2014 at 18:40, Jo Rhett <jrhett at netconsonance.com> wrote:
>>> As I said below, in the Extensions directory the links are broken. For
>>> example,
>>>
>>> Homepage link takes you to:
>>> 	http://search.cpan.org/dist/RT-Extension-MandatorySubject/lib/RT/Extension/MandatorySubject.pm
>>>
>>> If you’re a bit tired and under-caffeniated, or just plain new to RT,
>>> it may not be clear to you that you need to remove a bunch from the URL
>>> to find the extension package. In my opinion, it would be much better
>>> to link to the package instead of the module file, like so:
>>> 	http://search.cpan.org/dist/RT-Extension-MandatorySubject/
>>>
>>> As I just said, asking the user to edit the URL in their browser window
>>> to be able to find the extension to download doesn’t make a lot of
>>> sense. The links in the directory should be fixed.
>>>
>>> On Dec 2, 2014, at 11:34 PM, Alex Peters <alex at peters.net> wrote:
>>>> Could you please clarify what you're asking here?  How to install the
>>>> plugins?
>>>>
>>>> The plugins can be installed like any other CPAN module.  Given a link
>>>> to a specific .pm file:
>>>>
>>>> http://search.cpan.org/dist/RT-Extension-MandatorySubject/lib/RT/Extension/MandatorySubject.pm
>>>>
>>>> you can hit the Download link on the right side of the page to receive
>>>> a .tar.gz file of the distribution, which can either be fed directly
>>>> into the cpan or cpanm utilities, or unpacked and installed manually
>>>> using Makefile.PL and make.
>>>>
>>>> With RT extensions, you may find it useful to set environment variable
>>>> RTHOME to the root directory of your RT installation before installing
>>>> the plugin:
>>>>
>>>> $ RTHOME=/opt/rt-4.2.7 cpanm RT-Extension-MandatorySubject-0.05.tar.gz
>>>>
>>>> On 3 December 2014 at 16:19, Jo Rhett <jrhett at netconsonance.com>
>>>> wrote:
>>>> Hey, dunno if this got overlooked during the short vacation week. This
>>>> is a pretty serious issue
  asking users to manually hack up the URL
>>>> in their browser bar is not accessible.
>>>>
>>>> On Nov 26, 2014, at 2:22 PM, Jo Rhett <jrhett at netconsonance.com>
>>>> wrote:
>>>>> Hey guys and gals, been a long time.
>>>>>
>>>>> I’m doing an upgrade from 3.8.5 to 4.2. It seems to be going well.
>>>>> I’m liking the changes. Other than some confusion about what order to
>>>>> do things in (see my other message) the one thing I can’t seem to
>>>>> wrap my head around is the new plugin setup.
>>>>>
>>>>> First, yay! I like the idea of what you’ve done with plugins, keeping
>>>>> them local and the simplified syntax in RT_SiteConfig.pm.
>>>>>
>>>>> [in which I wander in the wrong direction
 read and giggle]
>>>>>
>>>>> However, I can’t find any plugins other than yours which are built in
>>>>> these new packages you document at
>>>>> https://www.bestpractical.com/docs/rt/4.2/writing_extensions.html
>>>>>
>>>>> What is the fallback method for installing the other style modules?
>>>>> How do I get from a .pm file to an installed module. Can I manually
>>>>> create the directory structures and copy these into place? I see some
>>>>> details there but it doesn’t inspire confidence that everything I
>>>>> need to know is there. A breakout of the directory structure would be
>>>>> really helpful.
>>>>>
>>>>> [forehead slap]
>>>>>
>>>>> I was almost done with this e-mail when I realized the problem.  If
>>>>> you go to http://bestpractical.com/rt/extensions.html and you find
>>>>> the extension you are looking for, the link to the Homepage for the
>>>>> extension actually links to the main module, and not to the extension
>>>>> package. Example for one
>>>>>
>>>>> Homepage link takes you to:
>>>>> 	http://search.cpan.org/dist/RT-Extension-MandatorySubject/lib/RT/Extension/MandatorySubject.pm
>>>>>
>>>>> If you’re a bit tired and under-caffeniated, or just plain new to RT,
>>>>> it may not be clear to you that you need to remove a bunch from the
>>>>> URL to find the extension package. In my opinion, it would be much
>>>>> better to link to the package instead of the module file, like so:
>>>>> 	http://search.cpan.org/dist/RT-Extension-MandatorySubject/
>>>>>
>>>>> I did some random spot checking, and this appears to be true for
>>>>> every module shown there.
>>>>>
>>>>> --
>>>>> Jo Rhett
>>>>> +1 (415) 999-1798
>>>>> Skype: jorhett
>>>>> Net Consonance : net philanthropy to improve open source and internet
>>>>> projects.
>>>>>
>>>>
>>>> --
>>>> Jo Rhett
>>>> +1 (415) 999-1798
>>>> Skype: jorhett
>>>> Net Consonance : net philanthropy to improve open source and internet
>>>> projects.
>>>>
>>>>
>>>
>>> --
>>> Jo Rhett
>>> +1 (415) 999-1798
>>> Skype: jorhett
>>> Net Consonance : net philanthropy to improve open source and internet
>>> projects.
>>>
>>>
>>
>> --
>> Jo Rhett
>> +1 (415) 999-1798
>> Skype: jorhett
>> Net Consonance : net philanthropy to improve open source and internet
>> projects.
>>
>>
>
> --
> Jo Rhett
> +1 (415) 999-1798
> Skype: jorhett
> Net Consonance : net philanthropy to improve open source and internet
> projects.
>
>




More information about the rt-users mailing list