└── README.md /README.md: -------------------------------------------------------------------------------- 1 | # Nuxt 3 RFCs 2 | 3 | 👉 https://github.com/nuxt/nuxt/discussions/categories/rfcs 4 | 5 | # Nuxt.js RFCs 6 | 7 | Many changes, including bug fixes and documentation improvements can be 8 | implemented and reviewed via the normal GitHub pull request workflow. 9 | 10 | Some changes though are "substantial", and we ask that these be put 11 | through a bit of a design process and produce a consensus among the Nuxt.js 12 | core team. 13 | 14 | The "RFC" (request for comments) process is intended to provide a 15 | consistent and controlled path for new features to enter the project. 16 | 17 | ## When to follow this process 18 | 19 | You should consider using this process if you intend to make "substantial" 20 | changes to Nuxt.js or its documentation. Some examples that would benefit 21 | from an RFC are: 22 | 23 | - A new feature that creates new API surface area, and would 24 | require a feature flag if introduced. 25 | - The removal of features that already shipped as part of the release 26 | channel. 27 | - The introduction of new idiomatic usage or conventions, even if they 28 | do not include code changes to Nuxt.js itself. 29 | - Introducing new core packages 30 | 31 | The RFC process is a great opportunity to get more eyeballs on your proposal 32 | before it becomes a part of a released version of Nuxt.js. Quite often, even 33 | proposals that seem "obvious" can be significantly improved once a wider 34 | group of interested people have a chance to weigh in. 35 | 36 | The RFC process can also be helpful to encourage discussions about a proposed 37 | feature as it is being designed, and incorporate important constraints into 38 | the design while it's easier to change, before the design has been fully 39 | implemented. 40 | 41 | Some changes do not require an RFC: 42 | 43 | - Rephrasing, reorganizing or refactoring 44 | - Addition or removal of warnings 45 | - Additions that strictly improve objective, numerical quality 46 | criteria (speedup, better browser support) 47 | - Additions only likely to be _noticed by_ other implementors-of-Nuxt.js, 48 | invisible to users-of-Nuxt.js. 49 | 50 | ## What the process is 51 | 52 | In short, to get a major feature added to Nuxt.js, one usually creates an issue that will be labled with 'active' when approved by core team. At that point the RFC 53 | is 'active' and may be implemented with the goal of eventual inclusion into Nuxt.js. 54 | 55 | ## The RFC life-cycle 56 | 57 | Once an RFC becomes active, then authors may implement it and submit the 58 | feature as a pull request to the Nuxt.js repo. Becoming 'active' is not a rubber 59 | stamp, and in particular still does not mean the feature will ultimately 60 | be merged; it does mean that the core team has agreed to it in principle 61 | and are amenable to merging it. 62 | 63 | Furthermore, the fact that a given RFC has been accepted and is 64 | 'active' implies nothing about what priority is assigned to its 65 | implementation, nor whether anybody is currently working on it. 66 | 67 | ## Implementing an RFC 68 | 69 | The author of an RFC is not obligated to implement it. Of course, the 70 | RFC author (like any other developer) is welcome to post an 71 | implementation for review after the RFC has been accepted. 72 | 73 | If you are interested in working on the implementation for an 'active' 74 | RFC, but cannot determine if someone else is already working on it, 75 | feel free to ask (e.g. by leaving a comment on the associated issue). 76 | 77 | ## Reviewing RFCs 78 | 79 | Each week the team will attempt to review some set of open RFC 80 | pull requests. 81 | 82 | We try to make sure that any RFC that we accept is accepted at the 83 | weekly team meeting. Every accepted feature should have a core team champion, 84 | who will represent the feature and its progress. 85 | 86 | **Nuxt.js's RFC process owes its inspiration to the [React RFC process], [Yarn RFC process], [Rust RFC process], and [Ember RFC process]** 87 | 88 | [React RFC process]: https://github.com/reactjs/rfcs 89 | [Yarn RFC process]: https://github.com/yarnpkg/rfcs 90 | [Rust RFC process]: https://github.com/rust-lang/rfcs 91 | [Ember RFC process]: https://github.com/emberjs/rfcs 92 | --------------------------------------------------------------------------------