Beefy Boxes and Bandwidth Generously Provided by pair Networks
Don't ask to ask, just ask
 
PerlMonks  

Re^8: Namespace/advice for new CPAN modules for Thai & Lao ( Regexp::CharClasses::Thai / Lingua::Thai::RegexpCharClasses )

by Polyglot (Chaplain)
on Mar 24, 2015 at 09:32 UTC ( [id://1121107]=note: print w/replies, xml ) Need Help??


in reply to Re^7: Namespace/advice for new CPAN modules for Thai & Lao ( Regexp::CharClasses::Thai / Lingua::Thai::RegexpCharClasses )
in thread Namespace/advice for new CPAN modules for Thai & Lao

SYNOPSIS only shows whats possible, it can be repetitive and incorrect as long as the syntax is valid. And when the exports are few, might as well show them all instead of "..."

Thank you for the clarification. I guess I misunderstood the intent of that. As is obvious, I've never submitted a module before, so I appreciate your patience with me.

My suggestion was that you call yours Regexp::CharProps::Thai not Regexp::CharProps.

Ok, I fixed that.

Also to distribute a helper parent module Regexp::CharProps with it, so that others can add Regexp::CharProps::AnonyRands or whatever ... a new well named place for these definitions to live

I have no idea how to do this.

So are you're going to have more Thai Regexp's that aren't CharSlasses?
I think you got that backwards, it should be Regexp::CharClasses::Thai :)

Looking at that module now, perhaps it could all just go into Regexp::CharClasses, but I'm not the developer for that, and when I looked at its code, it's done in a somewhat different style which is confusing to me. I don't see any logical difference between Regexp::CharClasses::Thai and Regexp::Thai::CharClasses, except that, to my understanding, the former would be inhibited by the fact another developer has already used the Regexp::CharClasses namespace. Am I missing something here?

Blessings,

~Polyglot~

  • Comment on Re^8: Namespace/advice for new CPAN modules for Thai & Lao ( Regexp::CharClasses::Thai / Lingua::Thai::RegexpCharClasses )

Replies are listed 'Best First'.
Re^9: Namespace/advice for new CPAN modules for Thai & Lao ( Regexp::CharClasses::Thai / Lingua::Thai::RegexpCharClasses )
by Anonymous Monk on Mar 24, 2015 at 10:31 UTC

    Looking at that module now, perhaps it could all just go into Regexp::CharClasses, but I'm not the developer for that, and when I looked at its code, it's done in a somewhat different style which is confusing to me. I don't see any logical difference between Regexp::CharClasses::Thai and Regexp::Thai::CharClasses, except that, to my understanding, the former would be inhibited by the fact another developer has already used the Regexp::CharClasses namespace. Am I missing something here?

    There is no real inhibition, only cooperation ... only flow :) go with it

    When I was doing my research I ignored Regexp::CharClasses because its kind of a one-off ... unlike (from same author) Regexp::Common which is designed to be an extensible module and expandable namespace ... and has been extended

    So that Regexp::CharClasses already exists, and its kind of experimental, I recommended Regexp::CharProps::Thai

    If you're going with three names, two out of three shouldn't be ends, and if using Regexp::Thai::CharClasses both Thai:: and CharClasses seem like ends

    I can imagine many many Regexp::CharClasses:: modules existing, I cannot imagine many Regexp::Thai:: modules existing

    Hey, you could even call it Regexp::ThaiCharClasses if you don't plan any kind of growth for the namespace :) sure it could be extended like Regexp::ThaiCharClasses::TheBestOnes but its not exactly likely/obvious/good :)

    You can find more discussions on naming modules in Re: RFC: Automatic logger module

    I have no idea how to do this.

    No idea how to do what? Since I posted the code, you have no idea how to release it? What filename to put it in? Something else?

    Here are some useful/related links

      It's the "Also to distribute a helper parent module Regexp::CharProps with it..." that I have no idea how to do. I'll put a little more thought into the name later, as I have another window of time.

      I do have some work still with preparing the other files for the submission. There are parts of the instruction provided on PAUSE that confuse me, such as the issue with the README files. Can they really not be included in the package? If not, how does one upload them later?

      You have been very kind and patient in answering my questions. Thank you so much.

      Blessings,

      ~Polyglot~

        ...

        Regexp::CharProps just another .pm file you include :)

        lib `-- lib/Regexp |-- lib/Regexp/CharProps | `-- lib/Regexp/CharProps/Thai.pm `-- lib/Regexp/CharProps.pm 2 directories, 2 files

        You only upload one file to pause/cpan, a tarball/distribution, and it contains the README, you don't upload a seperate README file ... PAUSE/CPAN unpacks/extracts the README file from the tarball/distribution

        Here is how you might start from scratch (using module-starter) and upload it (using cpan-upload )

        $ module-starter --eumm --email email --author author --verbose --module=GonerMod
        Created GonerMod
        Created GonerMod\lib
        Created GonerMod\lib\GonerMod.pm
        Created GonerMod\t
        Created GonerMod\t\pod-coverage.t
        Created GonerMod\t\pod.t
        Created GonerMod\t\manifest.t
        Created GonerMod\t\boilerplate.t
        Created GonerMod\t\00-load.t
        Created GonerMod\ignore.txt
        Created GonerMod\Makefile.PL
        Created GonerMod\Changes
        Created GonerMod\README
        Added to MANIFEST: Changes
        Added to MANIFEST: ignore.txt
        Added to MANIFEST: lib/GonerMod.pm
        Added to MANIFEST: Makefile.PL
        Added to MANIFEST: MANIFEST
        Added to MANIFEST: README
        Added to MANIFEST: t/00-load.t
        Added to MANIFEST: t/boilerplate.t
        Added to MANIFEST: t/manifest.t
        Added to MANIFEST: t/pod-coverage.t
        Added to MANIFEST: t/pod.t
        Created GonerMod\MANIFEST
        Created starter directories and files
        
        $ cd GonerMod
        
        $ perl Makefile.PL
        Checking if your kit is complete...
        Looks good
        Generating a dmake-style Makefile
        Writing Makefile for GonerMod
        Writing MYMETA.yml and MYMETA.json
        
        $ dmake disttest
        C:\citrusperl\bin\perl.exe -MExtUtils::Command -e rm_rf -- GonerMod-0.01
        C:\citrusperl\bin\perl.exe "-MExtUtils::Manifest=manicopy,maniread" \
                        -e "manicopy(maniread(),'GonerMod-0.01', 'best');"
        mkdir GonerMod-0.01
        mkdir GonerMod-0.01/t
        mkdir GonerMod-0.01/lib
        Generating META.yml
        Generating META.json
        cd GonerMod-0.01 && C:\citrusperl\bin\perl.exe Makefile.PL
        Checking if your kit is complete...
        Looks good
        Generating a dmake-style Makefile
        Writing Makefile for GonerMod
        Writing MYMETA.yml and MYMETA.json
        cd GonerMod-0.01 && dmake
        cp lib/GonerMod.pm blib\lib\GonerMod.pm
        cd GonerMod-0.01 && dmake test
        C:\citrusperl\bin\perl.exe "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_h
        arness(0, 'blib\lib', 'blib\arch')" t/*.t
        t/00-load.t ....... 1/? # Testing GonerMod 0.01, Perl 5.016001, C:\citrusperl\bin\perl.exe
        t/00-load.t ....... ok
        t/manifest.t ...... skipped: Author tests not required for installation
        t/pod-coverage.t .. ok
        t/pod.t ........... ok
        All tests successful.
        Files=4, Tests=3,  3 wallclock secs ( 0.09 usr +  0.03 sys =  0.12 CPU)
        Result: PASS
        
        $ dmake dist
        C:\citrusperl\bin\perl.exe -MExtUtils::Command -e rm_rf -- GonerMod-0.01
        C:\citrusperl\bin\perl.exe "-MExtUtils::Manifest=manicopy,maniread" \
                        -e "manicopy(maniread(),'GonerMod-0.01', 'best');"
        mkdir GonerMod-0.01
        mkdir GonerMod-0.01/t
        mkdir GonerMod-0.01/lib
        Generating META.yml
        Generating META.json
        tar cvf GonerMod-0.01.tar GonerMod-0.01
        GonerMod-0.01/
        GonerMod-0.01/Changes
        GonerMod-0.01/lib/
        GonerMod-0.01/lib/GonerMod.pm
        GonerMod-0.01/Makefile.PL
        GonerMod-0.01/MANIFEST
        GonerMod-0.01/META.json
        GonerMod-0.01/META.yml
        GonerMod-0.01/README
        GonerMod-0.01/t/
        GonerMod-0.01/t/00-load.t
        GonerMod-0.01/t/manifest.t
        GonerMod-0.01/t/pod-coverage.t
        GonerMod-0.01/t/pod.t
        C:\citrusperl\bin\perl.exe -MExtUtils::Command -e rm_rf -- GonerMod-0.01
        gzip -9f GonerMod-0.01.tar
        'Created GonerMod-0.01.tar.gz'
        
        $ cpan-upload -u username -p password GonerMod-0.01.tar.gz
        ...
        

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1121107]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others having a coffee break in the Monastery: (5)
As of 2024-04-19 22:50 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found