A bit more in regard to my question #4 below regarding packaging JS libraries into CPAN.
I do see "JS::" ( http://search.cpan.org/~ingy/JS-0.29/ ) and JS::jQuery ( http://search.cpan.org/~ingy/JS-jQuery-1.2.6.001/ )
They seem to be unmaintained. ( latest version of jQuery is 1.11 )
If I implement this I will setup scripts to allow me to regularly pull in newer version to keep it up to date.
It's pointless replicating libraries into CPAN if they are not consistently updated.

I see a pile of different modules that pull in jQuery dynamically, spread randomly across CPAN in different namespaces...

One of the ones that is similar to what I wish to do is 'Resource::Pack'. ( http://search.cpan.org/~doy/Resource-Pack-0.03 )
It uses Moose...
Example resource pack including jQuery ( http://search.cpan.org/~doy/Resource-Pack-jQuery-0.01 )
Notably it -does- include a copy of jQuery, but once again, it has not been updated since the creation of the module.

Notably there is no "JS::Dojo", nor "Resource::Pack::Dojo", which seems to indicate that the people who added these modules did it in a one off fashion and weren't serious about including a fair handful of the top competing libraries.

My question here once again is whether it is acceptable and reasonable to create a single consistent place to put all of the various JS libraries I am going to import. I'd rather not home them inside the Ginger namespace if there is some better place to put them. It seems that there ought to be a proper way to include "resources" for Perl modules to use, rather than have them pretend to be Perl modules, but not really function in a meaningful way as a standalone Perl module...
-------- Original Message --------
Subject: RE: Top Level Namespace "Ginger"
From: "David Helkowski" <e...@codechild.com>
Date: Sun, November 29, 2015 10:52 am
To: "Neil Bowers" <neil.bow...@cogendo.com>, modules@perl.org

Neil,

Thank you for clarifying this. I will create a core Ginger.pm for this purpose and include it. Really it should be there anyway in order to describe the purpose and arrangement of the 'Ginger' namespace.

I assume that I can still release other deeper modules in the same package, ( Ginger::Reference::... ), and they will properly be accepted? I already do see them CPAN, but I do not see updated permissions in Pause.

Some additional questions that I don't see answered elsewhere, for you or anyone else on the list who can answer these:

1. I want Ginger::Reference to be reserved for official ginger modules. In order to make that be true, do I need to also release a 'Ginger/Reference.pm' module in the release to ensure people don't add random things under that namespace?

2. Is it acceptable to create a 'Ginger::WebApp' namespace, and suggest people place Apps created using Ginger inside of that? Obviously they could simply place them in the normal 'App' namespace, but I feel like it may be more meaningful to home them in Ginger since they will have strong dependencies upon many modules under Ginger. I say 'Ginger::WebApp' and not 'Ginger::App', since 'Ginger::ShellApp' should be applications that can run under a command line.

3. I created 'Ginger::Reference' to contain all the modules that are the 'Reference' implementations for core functionality of the framework. I say 'Reference' because I want people to be able to write different implementations that still function with the same API. I was thinking of having those go under 'Ginger::Custom'. The advice being that the custom modules names would mirror the reference modules names. So, someone would create 'Ginger::Custom::Log::Log4J' and it would act similar to 'Ginger::Reference::Log::Default'. I want to keep user implementations separate namespace wise so that it is clear what the "official" interactions are among the core modules.

4. One of the facets of the Framework is that it is meant to facilitate having whole web applications live in CPAN. Install a 'Ginger::WebApp::...' and it will function completely just by running a tiny script calling it. As a result, those applications will need to be serving out JS libraries. I was thinking of having something like "Ginger::Lib::Web::JS::JQuery", and actually placing a module containing the JQuery distribution itself. Is it acceptable for me to home entire JS libraries in CPAN for this purpose? I thought of having them download automatically from the internet, but there are people running CPAN behind firewalls where they cannot reach the internet. If I did that those people would not be able to use the WebApps as internal applications as easily.

Thanks again for all help with this.
- David

-------- Original Message --------
Subject: Re: Top Level Namespace "Ginger"
From: Neil Bowers <neil.bow...@cogendo.com>
Date: Sun, November 29, 2015 1:34 am
To: livx...@codechild.com
Cc: modules@perl.org

Hi David,

I have uploaded the changed module to my pause account, but it says I do not have permissions to the top level namespace. Could someone please give permissions to my account so that I can make this change?

"This distribution name can only be used by users with permission for the
package Ginger, which you do not have. No modules will be indexed.”

The problem is that you uploaded a distribution called Ginger, but it doesn’t contain a module called Ginger.

PAUSE now requires that all new distributions have a module of the equivalent name (so a distribution called Ginger-Snaps would have to include a module called Ginger::Snaps). This is a security measure, to prevent someone else messing with your namespace. You can read more about it in this blog post written by David Golden:


Once you add a Ginger module, your next release should be indexed by PAUSE.

Cheers,
Neil



Reply via email to