Read the statement by Michael Teeuw here.
Automatic checking of all MagicMirror² modules
-
@KristjanESPERANTO I personally think that it’s pretty useless - for example, it’s being picky about MagicMirror(squared) vs Magic Mirror. We use many different names for the project in shorthand, and it’s generally understood that it all refers to MagicMirror(squared).
As you can tell, I’m using a PC and haven’t bothered to learn how to type a superscript 2, and don’t plan to…
Like Sam said, a lot of the checks are useless - It’s much better to test actual functionality - does it still work? Is it missing declared dependencies, etc.
-
I think that such checks can be valuable. perhaps not the ones which are implemented yet, but this can still be a good starting point for other checks.
but it will be challenging to automate some of the proposed checks. -
It is a good try, Although most checklists are meaningless rather than useless. There are also wrong checks. (For example,
MMM-ModuleMonkeyPatch
doesn’t havenode_modules
directory. It doesn’t havenode_helper.js
at all.)
However, I would like to praise it because it is a good-looking list. It’s a good attempt.
In any case, dependency checking is information ordinary users cannot deal with even if they know it. Unless he is a developer, there is nothing he can do with that information.
Rather than performing a dependency check, it would be better to reveal the last update date or the number of unresolved issues to guess the module’s activation level or popularity.
Or, if you are going to parse package.json anyway, I think it could be used to organise installation methods, etc.
-
Guys, like I said, the project is in early status! The tests so far should therefore be understood as a proof of concept. Maybe I could have made that a little clearer in my initial post.
In any case, thanks for the feedback! 😃
Categorizing the messages would certainly also make sense. Like:
critical
,warning
andinformation
.@sdetweil said in Automatic checking of all MagicMirror² modules:
things that depend of features no longer available in the os like vcgencmd
Is
vcgencmd
really no longer available? I don’t have the current OS version yet, but I can’t find any information about removing it in the documentation:
https://www.raspberrypi.com/documentation/computers/os.htmlIf so, what would be the alternative?
and omxplayer
Thanks. This is a solid suggestion, just like I was looking for! 😃 I have added this to the check list. There are a handful of modules which contain
omxplayer
.I don’t have a concrete approach for your other suggestions.
@MMRIZE said in Automatic checking of all MagicMirror² modules:
There are also wrong checks. (For example, MMM-ModuleMonkeyPatch …
Ah, I used the module to provoke errors manually. I forgot to remove the folder 🤦. The checks themselves are not wrong.
dependency checking is information ordinary users …
Ordinary users are not the target group for this project. The project collects information about modules, the developers can do whatever they want with the information (even ignore it).
For the core developers it is certainly sometimes interesting (e.g. before breaking changes) which modules still depend on a core functionality.
it would be better to reveal the last update date or the number of unresolved issues to guess the module’s activation level or popularity
Those are good points, thank you! I put them on the to-do list.
Or, if you are going to parse package.json anyway, I think it could be used to organise installation methods, etc.
Yes, I had already thought about parsing the package.json. What do you mean by “organise installation methods”?
-
from the results:
.gitlab-ci.yml: Change file extention from .yml to .yaml: https://yaml.org/faq.html.
In this case the
.gitlab-ci.yml
is the default name of the gitlab pipeline definition file (users can change this but 99% will not) so if you really want to checkyml
vs.yaml
you need a whitelist … -
there was a discussion long ago here about 3rd party modules because the current format is very ugly.
So maybe this could be also a starting point to have the module list as e.g.
yaml
output with all current stuff and your analysis results. With such an input it would be possible to generate a website (as mentioned in the above issue, examples how this could look were https://tiny-helpers.dev/ or https://www.electronjs.org/apps) … -
@karsten13 said in Automatic checking of all MagicMirror² modules:
if you really want to check yml vs. yaml
Yeah, I’ll drop this test for now.
maybe this could be also a starting point to have the module list as e.g. yaml output with all current stuff and your analysis results.
Interesting direction. I’ll take a look at it 🙂
-
it would be better to reveal the last update date or the number of unresolved issues
as most modules are hosted on github: You can get such info’s over their api.
As example you can look at https://api.github.com/repos/MichMich/MagicMirror
-
@karsten13 said in Automatic checking of all MagicMirror² modules:
as most modules are hosted on github: You can get such info’s over their api.
Wow. That’s really nice! There are certainly some things that can be put to good use.
After you showed me the examples, I tinkered a bit with a simple frontend (without dependencies): check it out. I just have to fill it with real data.
-
@KristjanESPERANTO said in Automatic checking of all MagicMirror² modules:
After you showed me the examples, I tinkered a bit with a simple frontend (without dependencies): check it out. I just have to fill it with real data.
cool, exactly what I thougth of …
looking at your example json
{ "name": "MMM-PublicTransportHafas", "image": "https://raw.githubusercontent.com/KristjanESPERANTO/MMM-PublicTransportHafas/main/img/Goerdelerring_all.png", "maintainer": "KristjanESPERANTO", "link": "https://github.com/KristjanESPERANTO/MMM-PublicTransportHafas", "category": "Traffic", "tags": ["Schedule", "Public Transport", "Traffic", "HAFAS"], "text": "This module displays real-time departure times for public transportation.", "description": "Stay informed about the upcoming departures from your local public transit stations." },
there are only a few things which are not available via github api (
image
,category
).category
andtags
are similar, do we still need acategory
?tags
are similar to apitopics
(may without magicmirror key words)