adonisjs / rfcs

💬 Sharing big changes with community to add them to the AdonisJs eco-system
52 stars 6 forks source link

Improve maintainers and contributors experience #3

Closed thetutlage closed 3 years ago

thetutlage commented 6 years ago

Brief

AdonisJs was created by a single person with the main focus on the users of the framework. However, the framework has grown a bit since early days and so many people want to contribute by

Both things are possible right now, but there is no or little guidance and tooling on how do it.

We should provide proper docs and tooling to make contributors experience better and easy.

What problem does it solve?

Proposal

It has to be done by doing work in multiple areas.

@adonisjs/devtools

The package primarily focused on utilities and helpers to make the development of packages easier.

@adonisjs/cli

Re-using the CLI to scaffold projects to be published as packages.

Documentation

Enough documentation to handhold the developer from creating and publishing packages on npm.

Dog food

The first step should be to work on this RFC and then use it inside all core packages. This way, we will find early bugs and polish the entire process for other contributors.

Are you willing to work on it?

Yes

assertchris commented 6 years ago

I personally think a lot of this is better addressed, not by adding new packages, but by documenting and training. We already have the make: scaffolding and functionality adonis install provides. A course on using those to create third-party libraries might do a lot more for the community than new dev tools.

willvincent commented 5 years ago

@assertchris I agree, documentation is what's needed here, and I think that's what was proposed.

I don't know that new packages are necessary or being proposed, there's already the basic addon boilerplate, adonis-cli exists of course, and I think adonis-sink would qualify as the aforementioned @adonisjs/devtools even if it's not named that presently :)

thetutlage commented 5 years ago

@willvincent You got it right for the most part. I want to add more to adonis-sink and basically rename it to devtools.

The idea is, if you are building an addon for Adonis and it needs access to request and response. You can simply ask the devtools module to give you a fake implementation of both.

const devtools = require('@adonisjs/devtools')

const request = devtools.fakeRequest({
  url: '/some-dummy-url'
})

const response = devtools.fakeResponse(request)

And ofcourse, as @assertchris said, docs will play an important role