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 thepackage 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