Please disclose contrib node acceptance criteria

I created my first contrib node today and had trouble getting it to appear in the palette manager. My last 3 commits were basically wild guesses trying to meet the (seemingly secret) acceptance criteria. My node is finally listed, but I still do not know if any of the last changes were required or if just waiting some more would have helped equally.

This guide https://nodered.org/docs/creating-nodes/ lists one criterium in section packaging: package.json needs to contain the "keyword": "node-red". It is unclear e.g. if the naming convention "node-red-contrib-"myname is required or not.

This historic npm issue https://github.com/npm/registry-issue-archive/issues/366 reveals more criteria:

There are a number of other checks made, such as it having a readme file and no JavaScript errors in its html file.

Although the criteria remain vague (e.g. "readme.txt" vs "README.md").

My last change was changing the license entry in package.json from "CC-PDDC" to "ISC" and adding an empty dependency entry (see https://github.com/ianmacs/node-red-contrib-projectdir/commit/779823ae847b3b11a52d91c6580bf4d6df0eaa94) and I would like to know if that made a difference and e.g. suggest that you also accept public domain nodes if you do not do it as of yet, but I cannot really make that suggestion unless I know that the license field was the blocker.

Could you add the full list of criteria to the guide https://nodered.org/docs/creating-nodes/, or if this is too much work, point to the code that performs the acceptance check?

Hi @ianmacs

The two basic criteria are the ones you mention:

  • its package.json file must have the node-red keyword
  • its readme - as reported by npm - exists and has content

The docs only talk about README.md. We don't mention readme.txt anywhere at all

As for your node, looking at the logs, the first time the npm search results included your node when we searched for the node-red keyword was at 17:14pm BST (5 hours ago) for version 2.0.5 - the version currently listed in the flow library.

None of your previous versions showed up in the npm search results, so the flow library didn't know it existed. I cannot tell you why npm's search index didn't update - that is out of our hands.

It can simply take a little while for the npm search index to update after you publish a module.

1 Like

It isn't mandatory but it is helpful.

I don't think that Node-RED has ever specified a license. However, it is sensible to include one otherwise people will not know whether they can use it or not, especially if someone wants to use it commercially or in an education setting.

I believe that some open source licenses are not terribly compatible with commercial use and I think that all of the core of Node-RED is licensed under Apache 2.0 which should be compatible with commercial use.

Personally, I either use Apache 2.0 or MIT for my open source projects but I am far from being an expert on the matter.