Beefy Boxes and Bandwidth Generously Provided by pair Networks
more useful options
 
PerlMonks  

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 ( [id://1121122]=note: print w/replies, xml ) Need Help??


in reply to Re^8: 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

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

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

Replies are listed 'Best First'.
Re^10: Namespace/advice for new CPAN modules for Thai & Lao ( Regexp::CharClasses::Thai / Lingua::Thai::RegexpCharClasses )
by Polyglot (Chaplain) on Mar 24, 2015 at 13:22 UTC
    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://1121122]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others taking refuge in the Monastery: (4)
As of 2024-04-24 13:07 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found