Skip to content

Commit 07c423e

Browse files
committed
Initial version of the name change PR
Please note, this is only the initial version of the PR, intended for internal discussion / augmentation before being turned into a real ("draft") PR, for wider discussion / voting.
1 parent c7e568b commit 07c423e

File tree

1 file changed

+147
-0
lines changed

1 file changed

+147
-0
lines changed

PATH-TO-RAKU.md

Lines changed: 147 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,147 @@
1+
# The Path to Raku
2+
3+
This document describes the steps to be taken to effectuate a rename of
4+
`Perl 6` to `Raku`, as described in issue #81. It does not pretend to be
5+
complete in scope or in time. To change a name of a project that has been
6+
running for 19+ years will take time, a lot of effort and a lot of
7+
cooperation. It will affect people in foreseen and unforeseen ways.
8+
9+
The "Velvet Divorce" could serve as a model on how to treat this.
10+
11+
## Language changes
12+
13+
The `.perl` method should be deprecated in 6.e, and removed in 6.f/g. It
14+
should be replaced by a `.code` method. This could be implemented by a
15+
global search/replace of `.perl` to `.code` (both in method names and in
16+
calls) in `src/core`, `src/Perl6` and `lib`. A new `Mu.perl` method should
17+
issue a DEPRECATED message, and then call `Mu.code`.
18+
19+
## Documentation changes
20+
21+
Wherever `Perl 6` is mentioned in the documentation, this should be changed
22+
to `Raku`. A mention of `Perl 6` in the glossary should remain, and maybe
23+
in the documentation of the `.perl` (to be renamed to `.code`) method.
24+
25+
## Website changes
26+
27+
Websites that have `perl6` in their name, should redirect to their
28+
equivalent with a 301 (Moved Permanently). Some way should be devised that
29+
if someone is redirected, that a small explanation of the name change is
30+
offered and that the visitor is indeed at the place they were planning to
31+
be.
32+
33+
## External references
34+
35+
Many places on the Internet refer to `Perl 6`, e.g. Wikipedia. These
36+
references will need to be changed to `Raku`, with a small explanation of
37+
the name change.
38+
39+
Many sites, such as Reddit and StackOverflow, use implicit / explicit `perl6`
40+
tags. These will need to be changed or have a `raku` tag added, possibly
41+
with cooperation of the administrators.
42+
43+
Sites such as PerlMonks appear to be really `Perl 5` focused, and could
44+
possible make that clear in their description, or change their description
45+
to specifically include `Raku`. It would look like the `/r/perl` Reddit
46+
description can be changed to indicate that only `Perl 5` questions are
47+
on topic there.
48+
49+
## Technical changes
50+
51+
All technical changes should make sure that all existing scripts continue
52+
to work without change in the foreseeable future (with optional DEPRECATED
53+
messages where appropriate).
54+
55+
### Executables
56+
57+
As some packagers have already done, the executable should be called `raku`.
58+
With symlinks / hard links added as appropriate to keep the old executable
59+
names working. If at all technically possible, running a script using the
60+
`perl6` as the executor, should provide a DEPRECATED warning at some point.
61+
62+
### Extensions
63+
64+
The extension `.rk` for scripts, and `.rkm` for modules, will become the
65+
defacto standards for files containing `Raku` code. The old `.pm` and
66+
`.pm6` extensions will continue to be supported for 6.e. In 6.f, the
67+
`.pm` and `.pm6` extensions should be marked as DEPRECATED, causing a message
68+
to be generated when the module is loaded.
69+
70+
On Windows some more trickery may be involved to mark a script with the
71+
`.rk` extension as executable.
72+
73+
### Testing
74+
75+
Roast continues to be the specification of the language. Only the name
76+
of the language it specifies, changes. Internal references to `Perl 6`
77+
will need to be changed.
78+
79+
## Mascot
80+
81+
Camelia will remain the mascot. So the only thing that should change there
82+
is that it is the mascot of `Raku` rather than `Perl 6`.
83+
84+
## Marketing changes
85+
86+
Renaming `Perl 6` to `Raku` is an event that should be used to get maximum
87+
marketing result. This will need a new marketing repo, with `Raku` marketing
88+
materials. Announcement should be coordinated, e.g. by a blog post on
89+
`opensource.com` or similar outlets, followed up by links on the various
90+
social media outlets, such as Twitter, Facebook, Hacker News, Reddit, etc.
91+
92+
## Ecosystem changes
93+
94+
From the standpoint of users, there should not be any change: `zef` should
95+
continue to do what it does. The information about what is in the ecosystem,
96+
is not related to the "perl 6" name at the moment, so does not need any
97+
change either.
98+
99+
On PAUSE, Perl 6 distributions are automatically uploaded to a "Perl6"
100+
subdirectory, but this is completely transparent to both the author as well
101+
as anything else that needs to look at that. So for the foreseeable future,
102+
no changes will be needed there.
103+
104+
Should PAUSE decide to no longer support `Raku` modules in its system, then
105+
alternatives will need to be found and/or implemented.
106+
107+
## Effects on modules in ecosystem
108+
109+
Many modules either mention "perl6-" in their repo name, or mention "Perl 6"
110+
in their documentation. These will have to be scanned and Pull Requests
111+
will need to be made for them.
112+
113+
## Effects on running sub-projects
114+
115+
Projects, such as Comma and Cro do not need any notifications, but other
116+
sub-projects may need to get advance notice.
117+
118+
## Effects on the Perl community
119+
120+
There is a (small) part of the Perl community that welcomes Perl 6 leaving
121+
that community. But in general, it appears that Perl community members would
122+
like to have channels open between members that only do `Perl 5`, and members
123+
that only do `Raku`.
124+
125+
## Effects on user groups
126+
127+
Each Perl user group (Perl Monger group) will have to decide for themselves
128+
what they want to do with this new situation. More active groups in the
129+
past years, have started using the services of online meeting organizers
130+
such as MeetUp. To indicate the changed situation, it may be a good idea
131+
to change the names of such groups, e.g. from "Foo Perl Mongers Meeting" to
132+
"Foo Perl Family Meetup" or "Foo Perl Community Meetup". Should a user
133+
group decide to only focus on `Perl 5` or `Raku` only, then they are of
134+
course open to not change their name, or to change it to something like
135+
"Foo Raku Meetup". This could coincide with the official announcement,
136+
and maybe special events to celebrate the name change.
137+
138+
## Relationship with The Perl Foundation
139+
140+
No changes should be necessary with regards to the relationship with The
141+
Perl Foundation. But this is mostly up to The Perl Foundation. A suggestion
142+
would be to make the website of The Perl Foundation more general: a Perl
143+
Family. With equal attention for Perl, Raku, RPerl and CPerl, and emphasis
144+
on continued development on all projects.
145+
146+
Should The Perl Foundation decide to not want to have anything to do with
147+
`Raku`, only then should an alternate organisational support be discussed.

0 commit comments

Comments
 (0)