Adonis RFCs
Give your ideas some life :)
Many small changes to the API and bug fixes can be done without creating any RFC. However, we may ask you to create a formal RFC for changes of the following nature.
- Adding an entirely new API or module to the eco-system.
- Changing the behavior of an existing feature.
- Features that are not clear and requires more discussion and community involvement.
How to know if RFC is required?
Feel free to join the discord server and ask it on general channel. If you think, you need more guidance, then feel free to ping
@virk
on Discord.
RFC is required, when the feature cannot be implemented separately and should be added to the core or the eco-system of first party plugins.
If you think, a feature can be added and maintained as a 3rd party add-on, then there is no need of RFC. Just work on the feature, let us know, and we will be happy to spread the word.
Getting started
Adding a new feature, or changing behavior of an existing feature is a big responsibility. Make sure to spec out the feature clearly and explain clear use cases.
A general template for creating an RFC can be.
- Define the problem you are trying to solve.
- A bigger picture of the feature and how it will work as a concept.
- Technical details
Another important aspect is to make sure that the feature is within the scope of AdonisJs philosophy.
Creating your first RFC
Let's get started together and create your first RFC.
- Click here to open a new issue.
- Add the title of the issue. For example Adding GraphQL as the first-class citizen to AdonisJs.
- Fill out the issue template. If you think any section is irrelevant, write
NA.
- Double check the issue and submit it.
- Normally someone from the core team will give appropriate labels to the issue and get in touch with you in a couple of days.
- If you think your RFC is waiting for the response for a more than 7days, please feel free to reach
@virk
on Discord server, or emailvirk[at]adonisjs[dot]com.
Lifecycle
Following is the lifecycle in which features are picked, developed and shipped to production.
Filtering issues
Before starting your own RFC, it is important to look for the existing one's and contribute to them.
You can filter the features by their category using the scope:
label.
For example: The RFC for changes in the HTTP layer will have the label of scope:HTTP
, for Database scope:Database
and so on.
Coding style
Make sure to read the contributing guidelines, before getting started.