|
1 |
| -# template-for-proposals |
| 1 | +<!--#region:intro--> |
| 2 | +# ECMAScript Regular Expression Language Features |
2 | 3 |
|
3 |
| -A repository template for ECMAScript proposals. |
| 4 | +<!--#endregion:intro--> |
4 | 5 |
|
5 |
| -## Before creating a proposal |
| 6 | +<!--#region:status--> |
| 7 | +## Status |
6 | 8 |
|
7 |
| -Please ensure the following: |
8 |
| - 1. You have read the [process document](https://tc39.github.io/process-document/) |
9 |
| - 1. You have reviewed the [existing proposals](https://github.com/tc39/proposals/) |
10 |
| - 1. You are aware that your proposal requires being a member of TC39, or locating a TC39 delegate to "champion" your proposal |
| 9 | +**Stage:** 0 \ |
| 10 | +**Champion:** Ron Buckton (@rbuckton) \ |
11 | 11 |
|
12 |
| -## Create your proposal repo |
| 12 | +_For detailed status of this proposal see [TODO](#todo), below._ |
| 13 | +<!--#endregion:status--> |
| 14 | + |
| 15 | +<!--#region:authors--> |
| 16 | +## Authors |
| 17 | + |
| 18 | +* Ron Buckton ([@rbuckton](https://github.com/rbuckton)) |
| 19 | +<!--#endregion:authors--> |
| 20 | + |
| 21 | +<!--#region:motivations--> |
| 22 | +# Motivations |
| 23 | + |
| 24 | +<!--#endregion:motivations--> |
| 25 | + |
| 26 | +<!--#region:prior-art--> |
| 27 | +# Prior Art |
13 | 28 |
|
14 |
| -Follow these steps: |
15 |
| - 1. Click the green ["use this template"](https://github.com/tc39/template-for-proposals/generate) button in the repo header. (Note: Do not fork this repo in GitHub's web interface, as that will later prevent transfer into the TC39 organization) |
16 |
| - 1. Go to your repo settings “Options” page, under “GitHub Pages”, and set the source to the **main branch** under the root (and click Save, if it does not autosave this setting) |
17 |
| - 1. check "Enforce HTTPS" |
18 |
| - 1. On "Options", under "Features", Ensure "Issues" is checked, and disable "Wiki", and "Projects" (unless you intend to use Projects) |
19 |
| - 1. Under "Merge button", check "automatically delete head branches" |
20 | 29 | <!--
|
21 |
| - 1. Avoid merge conflicts with build process output files by running: |
22 |
| - ```sh |
23 |
| - git config --local --add merge.output.driver true |
24 |
| - git config --local --add merge.output.driver true |
25 |
| - ``` |
26 |
| - 1. Add a post-rewrite git hook to auto-rebuild the output on every commit: |
27 |
| - ```sh |
28 |
| - cp hooks/post-rewrite .git/hooks/post-rewrite |
29 |
| - chmod +x .git/hooks/post-rewrite |
30 |
| - ``` |
| 30 | +- Language: [Feature](#todo) |
31 | 31 | -->
|
32 |
| - 3. ["How to write a good explainer"][explainer] explains how to make a good first impression. |
33 | 32 |
|
34 |
| - > Each TC39 proposal should have a `README.md` file which explains the purpose |
35 |
| - > of the proposal and its shape at a high level. |
36 |
| - > |
37 |
| - > ... |
38 |
| - > |
39 |
| - > The rest of this page can be used as a template ... |
| 33 | +<!--#endregion:prior-art--> |
| 34 | + |
| 35 | +<!--#region:syntax--> |
| 36 | +# Syntax |
| 37 | + |
| 38 | +```js |
| 39 | +``` |
| 40 | +<!--#endregion:syntax--> |
| 41 | + |
| 42 | +<!--#region:semantics--> |
| 43 | +# Semantics |
| 44 | + |
| 45 | +<!--#endregion:semantics--> |
| 46 | + |
| 47 | +<!--#region:examples--> |
| 48 | +# Examples |
| 49 | + |
| 50 | +<!--#endregion:examples--> |
| 51 | + |
| 52 | +<!--#region:api--> |
| 53 | +<!-- |
| 54 | +# API |
| 55 | +
|
| 56 | +> TODO: Provide description of High-level API. |
| 57 | +--> |
| 58 | +<!--#endregion:api--> |
| 59 | + |
| 60 | +<!--#region:grammar--> |
| 61 | +<!-- |
| 62 | +# Grammar |
| 63 | +
|
| 64 | +> TODO: Provide the grammar for the proposal. Please use [grammarkdown][Grammarkdown] syntax in |
| 65 | +> fenced code blocks as grammarkdown is the grammar format used by ecmarkup. |
| 66 | +
|
| 67 | +```grammarkdown |
| 68 | +``` |
| 69 | +--> |
| 70 | +<!--#endregion:grammar--> |
| 71 | + |
| 72 | +<!--#region:references--> |
| 73 | +# References |
| 74 | + |
| 75 | +<!--#endregion:references--> |
| 76 | + |
| 77 | +<!--#region:prior-discussion--> |
| 78 | +<!-- |
| 79 | +# Prior Discussion |
| 80 | +
|
| 81 | +> TODO: Provide links to prior discussion topics on https://esdiscuss.org. |
| 82 | +
|
| 83 | +* [Subject](https://esdiscuss.org) |
| 84 | +--> |
| 85 | +<!--#endregion:prior-discussion--> |
| 86 | + |
| 87 | +<!--#region:todo--> |
| 88 | +# TODO |
| 89 | + |
| 90 | +The following is a high-level list of tasks to progress through each stage of the [TC39 proposal process](https://tc39.github.io/process-document/): |
| 91 | + |
| 92 | +### Stage 1 Entrance Criteria |
| 93 | + |
| 94 | +* [ ] Identified a "[champion][Champion]" who will advance the addition. \ |
| 95 | +* [ ] [Prose][Prose] outlining the problem or need and the general shape of a solution. \ |
| 96 | +* [ ] Illustrative [examples][Examples] of usage. \ |
| 97 | +* [ ] High-level [API][API]. \ |
40 | 98 |
|
41 |
| - Your explainer can point readers to the `index.html` generated from `spec.emu` |
42 |
| - via markdown like |
| 99 | +### Stage 2 Entrance Criteria |
43 | 100 |
|
44 |
| - ```markdown |
45 |
| - You can browse the [ecmarkup output](https://ACCOUNT.github.io/PROJECT/) |
46 |
| - or browse the [source](https://github.com/ACCOUNT/PROJECT/blob/HEAD/spec.emu). |
47 |
| - ``` |
| 101 | +* [ ] [Initial specification text][Specification]. \ |
| 102 | +* [ ] [Transpiler support][Transpiler] (_Optional_). \ |
48 | 103 |
|
49 |
| - where *ACCOUNT* and *PROJECT* are the first two path elements in your project's Github URL. |
50 |
| - For example, for github.com/**tc39**/**template-for-proposals**, *ACCOUNT* is "tc39" |
51 |
| - and *PROJECT* is "template-for-proposals". |
| 104 | +### Stage 3 Entrance Criteria |
52 | 105 |
|
| 106 | +* [ ] [Complete specification text][Specification]. \ |
| 107 | +* [ ] Designated reviewers have [signed off][Stage3ReviewerSignOff] on the current spec text. \ |
| 108 | +* [ ] The ECMAScript editor has [signed off][Stage3EditorSignOff] on the current spec text. \ |
53 | 109 |
|
54 |
| -## Maintain your proposal repo |
| 110 | +### Stage 4 Entrance Criteria |
55 | 111 |
|
56 |
| - 1. Make your changes to `spec.emu` (ecmarkup uses HTML syntax, but is not HTML, so I strongly suggest not naming it ".html") |
57 |
| - 1. Any commit that makes meaningful changes to the spec, should run `npm run build` and commit the resulting output. |
58 |
| - 1. Whenever you update `ecmarkup`, run `npm run build` and commit any changes that come from that dependency. |
| 112 | +* [ ] [Test262](https://github.com/tc39/test262) acceptance tests have been written for mainline usage scenarios and [merged][Test262PullRequest]. \ |
| 113 | +* [ ] Two compatible implementations which pass the acceptance tests: \ |
| 114 | + * [ ] [_Pending_][Implementation1] \ |
| 115 | + * [ ] [_Pending_][Implementation2] \ |
| 116 | +* [ ] A [pull request][Ecma262PullRequest] has been sent to tc39/ecma262 with the integrated spec text. \ |
| 117 | +* [ ] The ECMAScript editor has signed off on the [pull request][Ecma262PullRequest]. \ |
| 118 | +<!--#endregion:todo--> |
59 | 119 |
|
60 |
| - [explainer]: https://github.com/tc39/how-we-work/blob/HEAD/explainer.md |
| 120 | +[Process]: https://tc39.github.io/process-document/ |
| 121 | +[Proposals]: https://github.com/tc39/proposals/ |
| 122 | +[Grammarkdown]: http://github.com/rbuckton/grammarkdown#readme |
| 123 | +[Champion]: #status |
| 124 | +[Prose]: #motivations |
| 125 | +[Examples]: #examples |
| 126 | +[API]: #api |
| 127 | +[Specification]: #todo |
| 128 | +[Transpiler]: #todo |
| 129 | +[Stage3ReviewerSignOff]: #todo |
| 130 | +[Stage3EditorSignOff]: #todo |
| 131 | +[Test262PullRequest]: #todo |
| 132 | +[Implementation1]: #todo |
| 133 | +[Implementation2]: #todo |
| 134 | +[Ecma262PullRequest]: #todo |
0 commit comments