I'm revising how I name files that are included in my modules. With the
name change to Raku, the file extensions also changed for script and
module files.
In addition Jonathan has defined some format extensions for Cro files,
and I am sure there would be other developers who would like to claim
unique extension names for files.
This is not a post intended to start a war about file extensions, that
is whether they should exist in a modern file system. For whatever
reason they came into being, a significant number of users, such as
myself, find them useful, if only as a mnemonic for their files'
probable contents.
It seems to me a short page in the docs.raku.org would be useful with
the various file extensions, and so if a developer wanted for a custom
file extension to be primarily applied to some new module, the way to do
would be to create a PR on the documentation file.
If this post gets some positive responses, then I'll write the POD6 file
for inclusion in docs.raku.org and create a PR for inclusion.
[Another naming question would be the name of the markup language - as
distinct from the file extension - for documentation. For Perl it is
POD, for Perl6 it was natural to use POD6. POD stands for Plain Old
Documentation, but I think that POD6 is neither Plain, nor Old. How
about RDM for Raku documentation markup? ]
There is a wrinkle in that Raku best practice has evolved in line with
the evolution of perl6 into Raku. So it seems reasonable to have
previous file formats listed as well.
The following are what I think are the current best practices. Since I
have been out of circulation for a while, the list is likely not
exhaustive and may be wrong. I am certain there are other file types I
have not included.
For each file type, extensions on the left are earlier, and the
extension of the far right (after the TAB) is considered best practice
Perl6 / Raku script: .pl, .pl6, <TAB> .raku
Perl6 / Raku Module: .pm, .pm6, <TAB> .rakumod
Perl6 / Raku Standalone Documentation (POD6 can be included in a script
or module file): .pm, .pm6, .pod, .pod6, <TAB> .rakudoc
NQP file: <TAB> .nqp
Cro template: <TAB> .crotmp