> Should it be part of the FAQ?
I'm not sure - I feel like it should probably be part of the developers docs.
Dave - should I add this under docs?
> I think you need to expand the Fictional section to talk about the
> suggested naming scheme.
I added some pieces of the original thread.
> > =item * DateTime::Calender
>
> Typo.
Fixed.
Thanks,
-J
--
=pod
=head1 DateTime::* Namespace Guidelines
This document attempts to define the the various 2nd tier C<DateTime> namespaces and
the appropriate functionality of modules residing there.
=head2 Namespace Allocation
C<DateTime::*> namespace is allocated by the C<[EMAIL PROTECTED]> mailing list. Do
not create a new 2nd tier namespace without first seeking approval from the list.
Unless specifically noted as C<open> most 2nd tier namespaces are not available to 3rd
party developers.
=head2 Authors
All DateTime authors are encourage to
1) consult the C<[EMAIL PROTECTED]> mailing list before uploading any module.
2) register their module's namespace with PAUSE.
=head2 The Namespaces
Currently there are 14 2nd tier namespaces in the DateTime Suite.
=over 4
=item * DateTime
Obviously this is the root namespace. C<DateTime.pm> is the generic DateTime object
implementing the Gregorian calendar.
=item * DateTime::Calendar
Modules implementing calendars that can be converted to/from other C<DateTime> and
other C<DateTime::Calendar::*> objects. Please see C<datetime-calendar.pod> for
developer documentation.
This is an C<open namespace>.
=item * DateTime::Duration
This is a simple class for representing duration objects.
These objects are used whenever you do date math with DateTime.pm.
=item * DateTime::Event
Modules implementing the occurrence of an event.
This is an C<open namespace>.
=item * DateTime::Fiction
Conceding that all calendars are merely imperfect human works is a requirement before
placing your module here.
"Weighing in late, but I just don't buy the idea that a "fictional"
calendar is any more fictional than, say, the Discordian or Napoleonic
calendar. All calendars are the creation of some human - they are all
artificial in some respect. Squirreling these away in some other name
space seems even more artificial." --Rich Bowen
This is somewhat of an unusual namespace. It is intended for modules implementing
calendars from fictional works. This namespace is exempted from the requirement to be
interpretable with C<DateTime> and C<DateTime::*>. It is suggested that the namespace
include the author's name at the 3rd/4th tier.
For Example:
DateTime::Fiction::Brust::Steven::Dragaera
DateTime::Fiction::Sony::Utopia
DateTime::Fiction::Tolkien::JRR::MiddleEarth
DateTime::Fiction::Bear::Greg::Mars
This is an C<open namespace>.
=item * DateTime::Format
Modules capable of parsing specific Date/Time formats and/or being able to format
strings.
This is an C<open namespace>.
=item * DateTime::Infinite
Infinite past and future DateTime objects.
=item * DateTime::Language
The current implementation of DateTime language localization. C<DateTime::Language> is
the base class and also provides a module loading facility. All modules under
C<DateTime::Language::*> need to inherit from C<DateTime::Language>.
=item * DateTime::LeapSecond
Leap seconds table and utilities.
=item * DateTime::Locale
The new implementation of localization support for DateTime.
This is as of yet unreleased.
=item * DateTime::Set
DateTime sets and set math.
=item * DateTime::Span
DateTime time-ranges.
=item * DateTime::SpanSet
Sets of DateTime spans.
=item * DateTime::TimeZone
Time zone objects and base class.
=back
=cut