-
Notifications
You must be signed in to change notification settings - Fork 3.1k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Contributing to NodeMCU #1055
Comments
I've seen other projects put modules which are not widely used yet into a |
Having different categories of modules is a good idea. I don't know how many modules could find multiple people to test them while waiting to be merged -- especially those that require specific hardware. Having some tooling around knowing the build configuration from a built image would be useful. This could be as simple as have |
As @ABonner Adam suggests if we had a I've already got that build script -- OK, it's in Lua -- and I have already suggested we should include something like it in the distribution, but there was no consensus support for the idea, so it's only something I use locally. |
@TerryE In other projects, I've seen the |
There is a problem with categorizing modules on the basis of number of people using them: I'd rather see a well structured high quality module with only one user. Than bad quality code run by lots of users. Guess witch code will require the most support.... ;) But maybe the core of the problem is: Yes we want to include code, but as a project we don't want to take ownership or any of the responsibility that comes with it. In that case the worst you can do is opt for a "community" branch. Because if you load all the "stuff" in there with some "relaxed quality" checking. You might be forced to support code anyway once it will get more widespread usage.... Be careful what you wish for :) |
But this is a quality / value judgement which can't validly be made by the OP unless that OP has a good level of karma on this repository. If not, then such contributions have to be moderated by one or more people with with karma. The committers trust each other and there are maybe half a dozen other regular contributors that we also respect and trust. We are trying to build confidence in the community in our firmware. I just think that "stack it high and sell it cheap" isn't the way to do this. |
I am not a native British speaker, had to look 'stack it high sell cheap' up in the dictionary. But even then I have trouble figuring out what you mean. Does it translate to: don't include "cheap" code in order to make everyone happy? You make it sound like we have opposing views but I think on this point we mean exactly the same :) |
BTW I like the device, and I have big admiration for the nodemcu firmware, and the amount of effort that you guys put into this! |
+1 from me for all the hard work everyone is putting in. Great firmware and has made working with the ESP8266 a real joy. I'll support whatever approach you think has the best benefits to the project. |
@hvegh, Henk forgive the English idiom -- and my lack of courtesy to non-native English speakers. This is a form of selling where the target is high-volume, but low-margin (and low-quality) sales as opposed to higher quality, higher margin but therefore lower volume sales. I will let other contributors and committers have their say. 😄 |
Thanks for the clarification... The only point I was trying to make: |
If the nodemcu firmware builder automatically offered all these modules, then it would become easy to see when something gets significant usage. I'd be happy with two levels: "core" and "community" (though it might be better to find two words that didn't start with "co"). |
How about three levels: Maybe one last one: Anyways, just an idea. |
My vote would be to keep the core modules in
|
This new Github feature may be of interest to this discussion. https://github.com/blog/2111-issue-and-pull-request-templates |
Terry, your separation into these 4 categories adds an interesting dimension with respect to quality:
This relates to my thoughts on your initial post.
Maintaining the functional quality of hardware modules will sometimes fully rely on the support of the originator. I doubt that the current contributors & collaborators are able to cover the plethora of potential hardware extensions. There is an inherent limit for what the few of us can support in the light of such a strict rule - and I think we've already crossed that border. |
There isn't much that does useful stuff on a naked board. For example, i2c, gpio, pwm, adc, etc. These can all be made useful with minimal hardware, whereas testing the control of a long string of ws2812 leds is much more tricky. To me, the important thing is the level of support. I expect that there is a clear set of modules which are actively supported. This means that if I find a bug, it is likely that someone will take an interest and it will get fixed. The other modules are of the community maintained variety -- if I find a bug, I had better be prepared to try and fix it myself. I'm also wondering if the local/community directory should be multiple level -- so that I can clone one or more other repos into it. This would provide a nice way to support publishing modules -- you just put them in a repo at the top level. Then a user just does a git submodule add to include them in their repo. app/local/pjsg/rotary-switch.c etc |
@pjsg for your idea of using submodules to work the |
This is a general discussion about the current CONTRIBUTING.md with the aim of exploring the contributor consensus before suggesting any amendments. I feel that this needs some further enhancements, as there are a number of classes of contribution, and rules for contribution vary for these classes:
Non-trivial bugfixes should first be raised as an issue, together with an explanation of the bug and at least one reproducible test case which demonstrates the bug. If the originator is proposing to implement bugfix, then this should be made clear in the post, and possibly including a quick sketch of the proposed solution. This will allow more experienced contributors to comment before the poster carries out potentially wasted effort.
2. New library modules to support extra hardware, etc. We need a new construction guideline covering these (which I discuss below), but in general any developed library which conforms to this guideline will be accepted by the project, so long as:
I would like to explore some of the issues relating to specific categories in later comments, but I just want to test the consensus to this analysis so far, first.
The text was updated successfully, but these errors were encountered: