nodemcu / nodemcu-firmware

Lua based interactive firmware for ESP8266, ESP8285 and ESP32
https://nodemcu.readthedocs.io
MIT License
7.67k stars 3.13k forks source link

Using the Project Wiki as a knowledgebase #3121

Open TerryE opened 4 years ago

TerryE commented 4 years ago

Missing feature – Community FAQs and cheatsheets.

This was raised in #3118, but really merits an issue of its own rather than hijacking an issue about the compatibility of some Lua modules.

Justification

There is a class of content hidden gems or cheat-sheets that where I feel that the user community would benefit from having them accessible through some central project resource but make not so formal as that used to create the docs tree and published to the ReadTheDocs website. My view is aligned with @marcelstoer in the the project Wiki is a good vehicle for this. This being said:

Control of Content

Each project can elect to make write access to it's wiki either limited to project committers or to all GitHub members. We currently are set to the later, but IMO we should use the former. IMO (but again I would accept other members' views here) we should still use the issues vehicle to discuss changes or additions to the wiki content (e.g. as the individuals to propose content in MD format as a Gist, but use committers to fold this into the wiki.

Take @jmd13391's cheatsheet mentioned in #3118, the content looks good, but the initial format needed a bit work to make it readable. I am note sure that we should be doing this editorial pass to be done make it readible, which I've just done (format not content), but this does highlight an issue. We as a project can elect to make the Wiki updatable either by project members only or by any logged on GitHub member; we have it set to the former. My suggestion would be that only the project committers have write access and that we use the issues list as the vehicle for content submission.

marcelstoer commented 4 years ago

We currently are set to the later, but IMO we should use the former.

I do not share your opinion on this. I feel we shouldn't control more than absolutely necessary. If we have to discuss changes to the wiki through the issues list and restrict write-access to committers then it's pretty much the same as for our docs. I see value in having a "true" open-for-all wiki that the community can contribute to in a more agile way than pages in the official documentation. No bad things will happen if we give that much power to our users.

TerryE commented 4 years ago

I can see the +/- over this committer vs open debate, so I don't have a strong view on this, but whatever the write access rules, the current state of the wiki is crap. It desperately needs a bit of tender loving care, and active moderation.

An example: we have some ~SDK 0.95 vintage partial translates of the documentation, so incomplete and dated to be worse than useless. Google Translate (web page mode) on the live readthedocs site (for example this is the French translation of the node module) is far more usable. Surely the best thing that we can do is to delete these extremely obsolete Russian , Spanish and Chinese pages and have a explanation of how to use Google translate to view the project documentation in your own language.

It would also be good to agree some overall structure and publication guidelines, so we have some minimum level of coherence and ease of navigation / usability. Maybe we can get a volunteer from the non-committer contributors to help here? I am sure that both you and I and possibly some of the other contributors would be willing to support this effort, but at the moment there is just too much for me to do in areas where I am really the sole expert for me to take this on as well.

There are quite a few techniques that can help for example the wiki itself is a straight git repo that be maintained using standard remote functionality, for example this HOWTO explains how to do bulk update using a local copy and the GitHub wiki help tree gives loads of detailed documentation.

TerryE commented 4 years ago

Another point is that unlike MediaWiki (Wikipedia) the GitHub wiki has no concept of talk pages for contributors to discuss content pages; the only analogue is using an issue, so it makes sense to maintain an open "Wiki" issue for each actively maintained Wiki page.

pnkowl commented 4 years ago

Since the actual wiki link has not been provided in this post yet, here it is

https://github.com/nodemcu/nodemcu-firmware/wiki

Please consider the following as brainstorming (no bad thoughts). And not what I recommend we should do (irrespective of how it reads). Only when we get all the thoughts out will the best path hopefully emerge.

Goals

An open-as-possbile wiki

Keeping the old

If organized, I would suggest keeping the existing wiki content, but provide a single link from the new main page to the old content. With the caveats, that "we" considered doing this: "getting rid of the obsolete crap from this wiki tree" but in deference to those that came before, you can find it "here" (link). Later on, it will show how far we have come.

What Content (Categories)?

We need to define some structure. Okay, But before that, what kinds of content do we want to host? For me, it would be a place that collects everything that is not covered elsewhere that is important to someone

Structure

Once we have a skeleton list of types of content (desireable but not hosted anywhere else), then comes structure. But this I believe comes from why folks would be visiting the wiki at all and how they find their way there.

Hosting Application Capabilities

FAQ

Lastly, I would prefer not to have an FAQ, or if we do, then require every entry to have answered the question "why not somewhere else"? FAQ is a lazy structure. That being said, I think it is perfectly fine if contributors have no idea where to put their content. This is where curation comes in (the "control" part). Moving stuff where is best fits. Making the connections (hyperlinks), between related but not obvious ideas.

Next Steps

I am interested in this work, but there is much I do not know.

TerryE commented 4 years ago

This reads like

You will find my email address in the git logs for this project. Ping me an email.

TerryE commented 4 years ago

Looking at the git log for the wiki @Pavlines did the Russian translation but he hasn't been active on GitHub for over a year. @66740416 did the Chinese translation, and @yeffrimic did the Spanish page.

I disagree with you, @pnkowl, when it comes to leaving truly obsolete stuff visible on the wiki. You yourself have emphasised the confusion about the small changes between the master and dev. SDK v0.95 stuff is 4 years out of date. Better removing it, IMO. Given that everything is in git then nothing is truly deleted, but it is more just hidden. Why not just document how to read the current documentation using Google translate?

marcelstoer commented 4 years ago

the current state of the wiki is crap

👍 I'm ok deleting everything that's outdated.

It desperately needs a bit of tender loving care, and active moderation.

👍 I'm not sure about "active", though. We have so much other stuff on our plate that looking after the wiki should be the least of our priorities. I don't have the energy to discuss this at great length but if I had to sum my position it would be something like "we look after code & docs and the community is invited to add additional content to the wiki". I could even live with closing it altogether (apart for "Lua module registry"-like pages) to avoid developers having to check two sources (docs & wiki) for information.

TerryE commented 4 years ago

My thinking is that if one or two of the active developers who are not core committers want to take this on then this will be of overall benefit to our user community. I would happy to support them with a little monitoring and troubleshooting advice.

pnkowl commented 4 years ago

avoid developers having to check two sources (docs & wiki) for information.

One of the most important goals of the wiki may be alignment with docs (and vice versa). To the greatest extent possible, the goal should be no duplication of information. Each should simply complement the other.

Providing a method to allow users to seemlessly pass back and forth between docs and the wiki should also be a goal -- hyperlinks seem most natural.

It appears that the wiki is not associated with a branch (e.g. the URL does not contain dev, master) so handling the comingling of multiple "releases" may be one an obstacle discussed early on.

TerryE commented 4 years ago

I have added the project label Wiki, and I suggest that we label any wiki-related issues with this label. This makes it easier to select (or ignore) such issues. Given that we will only have a small number of (actively edited) pages, I don't see the disadvantage in using this issues list as the discussion vehicle.

Wiki Feature Set and Omissions

Current Wiki Pages

Page Main Editor Notes
Home.md @marcelstoer Main wiki landing page
_*.md TDB Sidebar and Footer
Lua-modules-directory.md @marcelstoer Empty placeholder
Notes-about-writing-docs.md @marcelstoer An almost empty template for writing readthedocs externsions to MD docs
ESP8266---ESP32-Compatibility.md @spiritdude Last updated over 2 years ago.
[DRAFT]-How-to-write-a-C-module.md @TerryE Replacing this is on my TODO list.
Windows * cheatsheet @jmd13391 Cheet sheet getting started on Windows development
nodemcuapi*.m N/A Obsolete Langage pages to be deleted

Next steps

It would be really useful so get some consensus on an overall structure and page naming guidelines. Given the lack of automated links this should be as simple and flat as practical.

I will yield the floor to other commenters.

PS: Here are a couple of Lua FAQs (general and not NodeMCU specific: Lua Unofficial FAQ (uFAQ) and Lua Users FAQ wiki

TerryE commented 3 years ago

Given that nothing has been done to this wiki by the committers or the other posters on this issue, I think that we can tried this a pretty dead. I've just deleted the CH, CN, and RU NodeMCU API pages since these are very fragmentary and over 6 years out of date. We don't even off the version 0.9 firmware that they describe anyway. Any non-English reader would be far better off using Google translate on the current online documentation.

I am minded to close this issue, but leave the wiki moribund. @marcelstoer, what do you think?

marcelstoer commented 3 years ago

Thanks Terry, I don't oppose you closing it. However,