onivim / oni

Oni: Modern Modal Editing - powered by Neovim
https://www.onivim.io
MIT License
11.35k stars 299 forks source link

Helping the community help Oni #2444

Open TalAmuyal opened 6 years ago

TalAmuyal commented 6 years ago

I think people want to contribute to Oni but are having hard time to do so. We already have the will to lower the bar by splitting the app to plugins, but since we are a small group, it will probably take a long time.

In the mean time, can we make tickets with good first issue that might help us get there?

For now, I came up with only making the tests run faster and be more reliable - but I don't really know how can it be done.

So, can we open a few of such issues with the good first issue tag and the details we do know?

jordan-arenstein commented 6 years ago

I think I'm the target market for this: I'd love to be making more contributions, both in terms of plugins and fixing issues. I agree that a good first issue tag is great, but I think there is a further barrier -- Oni is hard to understand!

My major obstacle has been the API and documentation thereof. The documentation is sparse, and a lot of functionality just isn't mentioned: the entire oni.commands.executeCommand("section.command") process was difficult to uncover. I had to trawl through the source in completely different locations to try and uncover the functionality I wanted, or to scan through oni.commands._commandDictionary in the console. A lot of this could be brought to the surface.

Past this, perhaps a structured, sectioned guide to how Oni can be built upon? Window splits are foreign to me, and building a sidebar or status bar extension seem tricky, as well as running and creating tests.

I saw you are in the process of refactoring the project so that the docs reflect the structure of the program, and I'm excited for that!

akinsho commented 6 years ago

@TalAmuyal this seems like a great issue to raise, of the the over 300 issues we have I don't think many/maybe any are labelled as good first issues would definitely be good to put some time into figuring out which ones might be good first issues.

I personally tbh find it hard other than with the really low hanging fruit to know what to recommend to someone as a good first issue there are loads of issues that I think wouldn't take too long to resolve but almost all of the ones I'm aware of require some sort of awareness of the project's structure.

I think as well as the issues another good thing to add would be to make the docs re. the oni api which @bryphe created easier to find (tbh Im not actually sure where the docs im referring to are 🤣 ) but maybe we should expand on the development section of the wiki with an overview of how each section works and then maybe we could link to those somehow so people are able to get some background on that.

Also maybe it might be worth having a dedicated discord channel for new contributors (maybe that'll mean too many channels) but I think for me anyway it would be a slightly easier filter than just the questions channel which could be anything this could be focused on people trying to make prs who need help

bryphe commented 6 years ago

This is excellent - thanks for creating the issue @TalAmuyal ! Would ❤️ to have more contributors and make it easier to contribute.

Past this, perhaps a structured, sectioned guide to how Oni can be built upon? Window splits are foreign to me, and building a sidebar or status bar extension seem tricky, as well as running and creating tests.

Great feedback! Yes, I would love to have better documentation / tutorials here.

I think as well as the issues another good thing to add would be to make the docs re. the oni api which @bryphe created easier to find

Ah ya, they are hard to find... The generated docs are over here: https://onivim.github.io/oni-api/. Might be worth adding to the README and in our wiki. (And examples in a separate place: https://github.com/onivim/oni/wiki/API-Examples) - would be helpful to consolidate these so they are more discoverable.

For now, I came up with only making the tests run faster and be more reliable - but I don't really know how can it be done.

I would like this too... I've was experimenting with moving the test to a separate framework (https://github.com/onivim/oni-test) - this is important for letting plugins & extensions use the same model for tests.

My hope was then to create a fully tested sample plugin here: https://github.com/onivim/oni-plugin-starter-kit that people could use to get started - with a smooth process for running & testing the plugin (for example, press F5 to run the plugin in a new instance of Oni - maybe even hook up a debugger once we have that support!).

I unfortunately haven't had time to see this through, but if that seems like a reasonable direction and anyone is interested in helping out, feel free to hit me up on Discord 😄