You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+4-4Lines changed: 4 additions & 4 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,4 @@
1
-
This repository is for *Requests For Comments* - proposals to change the Perl language.
1
+
This repository is for *Proposed Perl Changes* - proposals to change the Perl language.
2
2
3
3
Right now, we're [trialling the process](docs/process.md). If you would like to submit a feature request, please [email an *elevator pitch*](mailto:[email protected]) - a short message with 4 paragraphs:
4
4
@@ -12,7 +12,7 @@ and if a "paragraph" is 1 sentence, great.
12
12
That will be enough to make it obvious whether the idea is
13
13
14
14
0) actually a **bug** - a change we'd also consider back porting to maintenance releases (so should be a opened as [*Report a Perl 5 bug*](https://github.com/Perl/perl5/issues/new/choose))
15
-
0) worth drafting an RFC for
15
+
0) worth drafting an PPC for
16
16
0) better on CPAN first
17
17
0) "nothing stops you putting it on CPAN, but it doesn't seem viable"
18
18
@@ -24,12 +24,12 @@ These files describe the process we are trialling
24
24
25
25
*[motivation.md](docs/motivation.md) - why do we want to do something
26
26
*[process.md](docs/process.md) - the initial version of the process
27
-
*[template.md](docs/template.md) - the RFC template
27
+
*[template.md](docs/template.md) - the PPC template
28
28
*[future.md](docs/future.md) - how we see the process evolving
29
29
*[others.md](docs/others.md) - what others do (or did), and what we can learn from them
Copy file name to clipboardExpand all lines: docs/future.md
+12-12Lines changed: 12 additions & 12 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,27 +12,27 @@ so there's a deliberately a lot of hand holding and centralisation, so that we c
12
12
13
13
## If the process works, I'd like to progress to
14
14
15
-
* people submit draft RFCs, not just ideas
15
+
* people submit draft PPCs, not just ideas
16
16
* they've actually consulted other people *before* submitting
17
-
* the person submitting the RFC knows that it they don't help, it dies
17
+
* the person submitting the PPC knows that it they don't help, it dies
18
18
* there's a clearer set of requirements needed to progress
19
19
20
-
## What does the Author do/Where do RFCs live?
20
+
## What does the Author do/Where do PPCs live?
21
21
22
-
The Author is the champion for the RFC. Their motivation and enthusiasm to have the feature successfully implemented and shipped drives the process. Their task is to eliminate each "lowest hanging excuse" in turn to get to shipping code. They are responsible for
22
+
The Author is the champion for the PPC. Their motivation and enthusiasm to have the feature successfully implemented and shipped drives the process. Their task is to eliminate each "lowest hanging excuse" in turn to get to shipping code. They are responsible for
23
23
24
24
* seeking input
25
25
* shepherding discussion to some sort of consensus (or appealing to the PSC to resolve an impasse)
26
-
* ensuring all sections in the RFC are complete (working with implementers and others as necessary)
26
+
* ensuring all sections in the PPC are complete (working with implementers and others as necessary)
27
27
28
-
RFCs live in version control. Anyone can create an "Draft" RFC, self-assign it an ID, and start to flesh it out. "Exploratory" status gets you an official RFC ID, and from that point onward the RFC and history is mirrored/merged into the official repository.
28
+
PPCs live in version control. Anyone can create an "Draft" PPC, self-assign it an ID, and start to flesh it out. "Exploratory" status gets you an official PPC ID, and from that point onward the PPC and history is mirrored/merged into the official repository.
29
29
30
-
To make this workable, the RFC should be in a source code repository that the *Author* can edit directly (GitHub, GitLab, Bitbucket, self-hosted git, etc). The minimal workable requirements are that
30
+
To make this workable, the PPC should be in a source code repository that the *Author* can edit directly (GitHub, GitLab, Bitbucket, self-hosted git, etc). The minimal workable requirements are that
31
31
32
32
1. it gives a well-known stable URL for the rendered current version
33
33
2. it can tag (or identify) specific previous revisions
34
34
3. history can be mirrored into the official repo, and merged on status change
35
-
4. discussion can be archived once RFC is "Accepted" and "Implemented"
35
+
4. discussion can be archived once PPC is "Accepted" and "Implemented"
36
36
37
37
Hence GitHub PRs might not be the best forum for discussion, unless they can be archived. Basically we want to avoid the situation were we have a feature live, and some third party can delete the historical discussion related to it.
38
38
@@ -41,15 +41,15 @@ As we get better at this, I think that the status transitions should aim for the
41
41
42
42
## Draft
43
43
44
-
**Author* self-assigns RFC ID
44
+
**Author* self-assigns PPC ID
45
45
**Author* seeks input/feedback
46
46
47
47
## Exploratory
48
48
49
49
* MUST have *Sponsor* (on the core team, or PSC can delegate externally)
50
50
* MUST have (at least minimal) Motivation, Rational and Examples
51
51
* SHOULD have (at least a minimal) Specification
52
-
* Gets an official RFC ID
52
+
* Gets an official PPC ID
53
53
54
54
Means "we think this idea is worth exploring"
55
55
@@ -85,9 +85,9 @@ Means "it's good to merge - we think we can support it in the future"
85
85
86
86
where (at least) "Provisional" and "Shipped" can be skipped.
87
87
88
-
## RFC IDs, and how to self-assign
88
+
## PPC IDs, and how to self-assign
89
89
90
-
* Official RFC IDs are 4 digits
90
+
* Official PPC IDs are 4 digits
91
91
* Self-assigned IDs should be `CPANID-#### or``githubid-####`
92
92
93
93
These are the obvious likely popular two, and done case sensitively will not clash. These two should be sufficient for a workable globally unique system.
Copy file name to clipboardExpand all lines: docs/process.md
+11-9Lines changed: 11 additions & 9 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,4 +1,6 @@
1
-
# Bootstrapping an RFC process
1
+
# Bootstrapping a PPC process
2
+
3
+
PPC is the acronym for "Perl Proposed Change".
2
4
3
5
80% of our feature requests are for changes to the language.
4
6
@@ -19,7 +21,7 @@ Hence we need a process that
19
21
We'd like to record proposals to improve the language and their status as "Request For Comment" documents in their own repository under the Perl organisation on GitHub.
20
22
21
23
22
-
We have a [template](template.md) for what an completed implemented RFC should end up as, but if all you have is an idea - don't worry, we'll help you get there. We're still figuring this process out, so for now we're doing it as mail messages sent to p5p, not as "pull requests" to the RFC repository (or "issues" on the source repository). This way we can see if the process works as hoped, and fix the parts that don't.
24
+
We have a [template](template.md) for what an completed implemented PPC should end up as, but if all you have is an idea - don't worry, we'll help you get there. We're still figuring this process out, so for now we're doing it as mail messages sent to p5p, not as "pull requests" to the PPC repository (or "issues" on the source repository). This way we can see if the process works as hoped, and fix the parts that don't.
23
25
24
26
25
27
## What makes a good idea?
@@ -40,22 +42,22 @@ Costs are
40
42
* linearly more implementation to maintain
41
43
* exponentially more combinations of features to define and debug
42
44
43
-
Not every good idea belongs in the Perl core. Some are better implemented on CPAN. For some ideas, the RFC process is overkill. And the other way - for some issues or PRs, the reviewer is going to realise that it's more complex than it seemed, and needs to become an RFC.
45
+
Not every good idea belongs in the Perl core. Some are better implemented on CPAN. For some ideas, the PPC process is overkill. And the other way - for some issues or PRs, the reviewer is going to realise that it's more complex than it seemed, and needs to become a PPC.
44
46
45
47
## The Process
46
48
47
49

48
50
49
51
50
-
### Pre-RFC
52
+
### Pre-PPC
51
53
52
-
The RFC process starts with a formal proposal to add or change a language feature in Perl. But you, the prospective author of an RFC, shouldn't start by writing that formal proposal. Start by posting to p5p that you have an idea. Explain what problem you're solving, how you think you can solve it, and what prior art you looked at. Be clear and concise. Make it easy for the rest of the list to see what you're suggesting without reading an enormous wall of text, but don't lose so much detail as to be meaningless.
54
+
The PPC process starts with a formal proposal to add or change a language feature in Perl. But you, the prospective author of a PPC, shouldn't start by writing that formal proposal. Start by posting to p5p that you have an idea. Explain what problem you're solving, how you think you can solve it, and what prior art you looked at. Be clear and concise. Make it easy for the rest of the list to see what you're suggesting without reading an enormous wall of text, but don't lose so much detail as to be meaningless.
53
55
54
56
You are taking the temperature of the list. If there is a great outcry that this is a bad idea, or has been tried before, or was explicitly rejected before, you should probably stop. No hard feelings!
55
57
56
58
Otherwise, you're ready to move on to the next step. You should post a follow-up, requesting that the PSC approve producing a draft. If they do, move on to "Draft Proposal" below. If not, they'll provide more feedback like "this is definitely impossible" or "you need to provide more information" or so on.
57
59
58
-
During this "Pre-RFC" phase, your proposal isn't in the RFC tracker. It's not an RFC yet!
60
+
During this "Pre-PPC" phase, your proposal isn't in the PPC tracker. It's not a PPC yet!
59
61
60
62
During this phase, you (the proposer) are responsible for moving things forward. If you contact the PSC for approval to file a draft, and the PSC does not respond, it's you who should be keeping track of that.
61
63
@@ -102,13 +104,13 @@ If no progress is reported for three months, the document moves to **Expired**.
102
104
103
105
During the Testing phase, the PSC and the proposer (or implementor) will be working together and communicating regularly to keep track of what work remains to complete the testing phase.
104
106
105
-
## What needs an RFC? What can just be a PR?
107
+
## What needs a PPC? What can just be a PR?
106
108
107
-
There's no obvious answer, because there's no clear cut off, and there never will be, even when the process is "out of beta". For now we think we should use RFCs for
109
+
There's no obvious answer, because there's no clear cut off, and there never will be, even when the process is "out of beta". For now we think we should use PPCs for
108
110
109
111
1. Language changes (feature changes to the parser, tokeniser)
110
112
2. Command line options
111
113
3. Adding/removing warnings (entries in `perldiag.pod`)
112
114
4. Significant changes to when an existing warning triggers
113
115
114
-
A case that came up recently was moving the reporting of an error from runtime to compile time (GH #18785). We think that this wouldn't warrant an RFC (just regular code review) because no correct code should be relying on when an error is reported. However, there is still a judgement call here, as it would **not** be correct for constant folding to report errors (such as divide by zero) as this might only happen on some platforms as a side effect of the values of constants, and those expressions were unreachable on those platforms.
116
+
A case that came up recently was moving the reporting of an error from runtime to compile time (GH #18785). We think that this wouldn't warrant a PPC (just regular code review) because no correct code should be relying on when an error is reported. However, there is still a judgement call here, as it would **not** be correct for constant folding to report errors (such as divide by zero) as this might only happen on some platforms as a side effect of the values of constants, and those expressions were unreachable on those platforms.
Copy file name to clipboardExpand all lines: docs/template.md
+3-3Lines changed: 3 additions & 3 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -12,7 +12,7 @@ Author, Sponsor and similar should be valid e-mail addresses, or CPAN IDs.
12
12
13
13
## Abstract
14
14
15
-
* 100 to 200 words summarising the entire RFC.
15
+
* 100 to 200 words summarising the entire PPC.
16
16
* The most important section is **Motivation**.
17
17
18
18
## Motivation
@@ -57,7 +57,7 @@ CVEs are not fun. Try to foresee problems.
57
57
58
58
PEPs have this as "How to Teach This". That's a valid goal, but there are different audiences (from newcomers, to experienced Perl programmers unfamiliar with your plan).
59
59
60
-
Most of us are not experienced teachers, but many folks reading your RFC are experienced programmers. So probably the best way to demonstrate the benefits of your proposal is to take some existing code in the core or on CPAN (and not your own code) and show how using your new feature can improve it (easier to read, less buggy, etc)
60
+
Most of us are not experienced teachers, but many folks reading your PPC are experienced programmers. So probably the best way to demonstrate the benefits of your proposal is to take some existing code in the core or on CPAN (and not your own code) and show how using your new feature can improve it (easier to read, less buggy, etc)
61
61
62
62
## Prototype Implementation
63
63
@@ -83,7 +83,7 @@ eg *Why not have different behaviour in void context?*
83
83
84
84
Likely the answer is in the previous discussion **somewhere**, but most people won't stop to read all the comments. It needs to be easy to find, and updated as it becomes clear which questions are common.
85
85
86
-
Hence it **needs** to be in the RFC itself. Without this, the RFC process as a whole won't scale.
86
+
Hence it **needs** to be in the PPC itself. Without this, the PPC process as a whole won't scale.
0 commit comments