MagicMirror Forum
    • Recent
    • Tags
    • Unsolved
    • Solved
    • MagicMirror² Repository
    • Documentation
    • 3rd-Party-Modules
    • Donate
    • Discord
    • Register
    • Login
    A New Chapter for MagicMirror: The Community Takes the Lead
    Read the statement by Michael Teeuw here.

    Automatic checking of all MagicMirror² modules

    Scheduled Pinned Locked Moved Development
    83 Posts 9 Posters 103.8k Views 10 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • BKeyportB Offline
      BKeyport Module Developer @sdetweil
      last edited by

      @sdetweil We already have some standards in place (node_helper.js, naming conventions, package.json, etc) - what’s one more (config-schema.json) for the programmer? Think along the lines of the schema.json file used in MMM-Config.

      Programmer creates the GUI settings page, using API into a specific file. It’s up to the core to insert result into the main config file. if GUI file isn’t there, then resort to a web based editor.

      https://github.com/homebridge/homebridge/wiki/Verified-Plugins describes the process in homebridge’s case. Provide a reward, and bam - We’ve got easier access to the project, making it more widespread, and it completely eclipses the automatic checking process here.

      Reward for the programmer is rather simple. A badge set thusly - everywhere - in the built in plugin manager’s search, on websites, etc. 725c9b2e-1442-4642-b75e-141f393a87f4-image.png

      Example - No GUI settings page file (the dead module): 497832aa-62f3-4bf5-aee0-9475eed1cee0-image.png

      Example - GUI settings page file (my reworked module with more functionality):
      5e94c71f-2419-4ac8-bdcc-1c48f867acef-image.png

      and the resulting config (I believe they use JSON rather than JS):
      63f41904-ff06-4146-9a49-d1988b1bb237-image.png

      The "E" in "Javascript" stands for "Easy"

      S 1 Reply Last reply Reply Quote 0
      • S Do not disturb
        sdetweil @BKeyport
        last edited by

        @BKeyport I believe we use js because you can have comments, json does not support comments

        Sam

        How to add modules

        learning how to use browser developers window for css changes

        BKeyportB 1 Reply Last reply Reply Quote 0
        • BKeyportB Offline
          BKeyport Module Developer @sdetweil
          last edited by

          @sdetweil It don’t matter how it’s done, honestly. JS, JSON - Same diff in my book… I’d just love to see it get simpler, and wrap up some of these projects into one.

          The "E" in "Javascript" stands for "Easy"

          S 1 Reply Last reply Reply Quote 0
          • S Do not disturb
            sdetweil @BKeyport
            last edited by

            @BKeyport what we really need is an AI page layout/designer tool. mushing all these disparate css together w the base design is getting beyond most people’s capabilities. I know it’s way beyond mine.

            Sam

            How to add modules

            learning how to use browser developers window for css changes

            KristjanESPERANTOK 1 Reply Last reply Reply Quote 0
            • S sdetweil referenced this topic on
            • S sdetweil pinned this topic on
            • KristjanESPERANTOK Offline
              KristjanESPERANTO Module Developer @sdetweil
              last edited by

              Meanwhile, there have been some changes to the module list. E.g.

              • If you click on a maintainer’s name, you will get a list of all modules by that maintainer :smiley:
              • Dark mode switch
              • Style changes
              • Many module maintainers added screenshots and keywords and fixed listed issues
              • GitHub stars are displayed
              • New sort option: number of stars
              • Module tags are now clickable
              • Screenshots are now clickable
              • Optimized mobile view

              And some more …

              JalibuJ 1 Reply Last reply Reply Quote 1
              • JalibuJ Offline
                Jalibu Module Developer @KristjanESPERANTO
                last edited by

                @KristjanESPERANTO are there plans to make this the official linked modules store on the project‘s page?
                In my opinion it is already by far better than the existing one. I‘d also vote for making this the source of truth without dependency to the old page as a datasource

                KristjanESPERANTOK 1 Reply Last reply Reply Quote 1
                • KristjanESPERANTOK Offline
                  KristjanESPERANTO Module Developer @Jalibu
                  last edited by KristjanESPERANTO

                  @Jalibu wrote:

                  are there plans to make this the official linked modules store on the project‘s page?

                  I’m definitely open to the idea of turning it into an official part of the project and moving it to MagicMirrorOrg, for example.

                  However, I have not yet sought dialogue with the core developers in this regard. It would be very interesting to hear if the core developers are open to that idea. @karsten13 , @rejas and @sdetweil, what do you think?

                  I‘d also vote for making this the source of truth without dependency to the old page as a datasource

                  The current solution (the list in the wiki) works and does not cause any additional work for the core developers.

                  However, as soon as we automate the process of creating the new module webpage, a vandal could provoke ugly effects. That’s why a different approach to maintaining the list, one that provides more protection against (intentional and unintentional) vandalism and includes a simple quality check, would make sense.

                  My concrete suggestion would be to create a pull request template for this purpose.


                  If we decide that “my” list should become an official part of the MM project, I would spontaneously suggest these rough milestones in the following order:

                  1. moving the repository to MagicMirrorOrg.
                  2. finding a better way to maintain the source of truth (currently the wiki page).
                  3. replacing/redirect references to the old module list.
                  4. automating the creation of the module list website.
                  karsten13K mumblebajM 2 Replies Last reply Reply Quote 0
                  • karsten13K Offline
                    karsten13 @KristjanESPERANTO
                    last edited by

                    @KristjanESPERANTO said in Automatic checking of all MagicMirror² modules:

                    @Jalibu wrote:

                    are there plans to make this the official linked modules store on the project‘s page?

                    I’m definitely open to the idea of turning it into an official part of the project and moving it to MagicMirrorOrg, for example.

                    However, I have not yet sought dialogue with the core developers in this regard. It it would be very interesting to hear if the core developers are open to that idea. @karsten13 , @rejas and @sdetweil, what do you think?

                    I‘d also vote for making this the source of truth without dependency to the old page as a datasource

                    The current solution (the list in the wiki) works and does not cause any additional work for the core developers.

                    However, as soon as we automate the process of creating the new module webpage, a vandal could provoke ugly effects. That’s why a different approach to maintaining the list, one that provides more protection against (intentional and unintentional) vandalism and includes a simple quality check, would make sense.

                    My concrete suggestion would be to create a pull request template for this purpose.


                    If we decide that “my” list should become an official part of the MM project, I would spontaneously suggest these rough milestones in the following order:

                    1. moving the repository to MagicMirrorOrg.
                    2. finding a better way to maintain the source of truth (currently the wiki page).
                    3. replacing/redirect references to the old module list.
                    4. automating the creation of the module list website.

                    I’m fine with this. The Wiki stuff should not stay the source of truth, this construction is horrible. Maybe we have to wait until we have full control over MagicMirrorOrg …

                    S 1 Reply Last reply Reply Quote 1
                    • S Do not disturb
                      sdetweil @karsten13
                      last edited by

                      @KristjanESPERANTO @karsten13

                      I’m also ok with this style list becoming the current. but I think the order of task needs to change

                      • show how to resolve the integrity problem, without constant intervention

                      • show the automation

                      • then move to org

                      • then redirect links, and seo
                        and

                      • show how we migrate the list as new requirements come along. is it you that becomes the maintainer?

                      Sam

                      How to add modules

                      learning how to use browser developers window for css changes

                      KristjanESPERANTOK 1 Reply Last reply Reply Quote 1
                      • mumblebajM Offline
                        mumblebaj Module Developer @KristjanESPERANTO
                        last edited by

                        @KristjanESPERANTO My 20pence/cents worth, I vote to make this the official page. We need to move with the times and the old page is outdated.

                        Check out my modules at: https://github.com/mumblebaj?tab=repositories
                        Check my blog-post: https://mumblebaj.xyz/
                        Check my MM Container: https://hub.docker.com/repository/docker/mumblebaj/magicmirror/general

                        BKeyportB 1 Reply Last reply Reply Quote 1
                        • KristjanESPERANTOK Offline
                          KristjanESPERANTO Module Developer @sdetweil
                          last edited by

                          @sdetweil said:

                          show how to resolve the integrity problem, without constant intervention

                          With “integrity problem” you are talking about how to add new modules to the list?

                          I’m also fine with your order of tasks :slightly_smiling_face:

                          is it you that becomes the maintainer?

                          A maintainer of this project, yes. But as I understand it, we can assign different teams with different roles for each project. So I don’t automatically have to become a maintainer of the core.

                          S 1 Reply Last reply Reply Quote 0
                          • S Do not disturb
                            sdetweil @KristjanESPERANTO
                            last edited by

                            @KristjanESPERANTO integrity.

                            you said user error or vandal mess up the data

                            currently we don’t have different roles.

                            but that wasn’t my point.

                            I have enough on my plate and wouldn’t be able to maintain this

                            Sam

                            How to add modules

                            learning how to use browser developers window for css changes

                            1 Reply Last reply Reply Quote 0
                            • BKeyportB Offline
                              BKeyport Module Developer @mumblebaj
                              last edited by

                              @mumblebaj Old page may be outdated, but at least it’s sorted much better, and compact. New and flashy does not make a successful page sometimes.

                              We need to keep the compactness of the old way, somehow, and not bury good modules under bad ones - this is the main problem I see with this site.

                              I can’t hit my browser’s text search and look for calendar for example. I get MMM-CX2 and MMM-CX before I even come close to the current MMM-CX3, and totally miss my mini calendar module.

                              The "E" in "Javascript" stands for "Easy"

                              mumblebajM 1 Reply Last reply Reply Quote 0
                              • mumblebajM Offline
                                mumblebaj Module Developer @BKeyport
                                last edited by

                                @BKeyport As an IT person I would say we need to move with the times. Being stuck in the old is never good. Have you tagged your modules as per the stats gathered on it?

                                Check out my modules at: https://github.com/mumblebaj?tab=repositories
                                Check my blog-post: https://mumblebaj.xyz/
                                Check my MM Container: https://hub.docker.com/repository/docker/mumblebaj/magicmirror/general

                                BKeyportB 1 Reply Last reply Reply Quote 1
                                • BKeyportB Offline
                                  BKeyport Module Developer @mumblebaj
                                  last edited by

                                  @mumblebaj 90% of the modules in the system are outdated and would never be tagged, so…

                                  The "E" in "Javascript" stands for "Easy"

                                  mumblebajM 1 Reply Last reply Reply Quote 0
                                  • mumblebajM Offline
                                    mumblebaj Module Developer @BKeyport
                                    last edited by

                                    @BKeyport Gives users an indication that they are outdated and may not be supported. My point is being stuck in the past is never a good idea unless you want your project to “die”

                                    Check out my modules at: https://github.com/mumblebaj?tab=repositories
                                    Check my blog-post: https://mumblebaj.xyz/
                                    Check my MM Container: https://hub.docker.com/repository/docker/mumblebaj/magicmirror/general

                                    S 1 Reply Last reply Reply Quote 1
                                    • S Do not disturb
                                      sdetweil @mumblebaj
                                      last edited by

                                      @mumblebaj lots of useful modules haven’t been updated. pages for example…

                                      so old is not bad necessarily

                                      Sam

                                      How to add modules

                                      learning how to use browser developers window for css changes

                                      1 Reply Last reply Reply Quote 0
                                      • M Offline
                                        MMRIZE
                                        last edited by MMRIZE

                                        I don’t care if it is not updated or not as long as it works.
                                        However, we can call some unmaintained-anymore modules legacy. Maybe a tag legacy to some old modules be a good way to distinguish. By contrast, the other side might be modern.

                                        If possible, I wish for more features/rules for common "modern" modules. These could help automate the management of modules.

                                        • Installer command/script/instruction
                                          Some modules may need additional manual pre-requisition or dependency jobs (e.g. getting auth), but most of the modules would be possible to prepare simple scripts for installation. (in package.json and specific installer folder). If so, we can provide an auto-install/update feature to MM.

                                        • Basic default configuration example file.
                                          If possible, a default config example would be a help for the newbie, and with that content, auto-configuration would be possible in the installation stage.
                                          Of course, there might be private-information or API-Key issues…

                                        • Using .env to store private/secure information. (Or private.json something…)
                                          To separate normal configuration from sophisticated private data (e.g., API Key, Account, password, etc.) , using .env may be the option. It could be composed through an installation script if needed.

                                        I wish we could have something like a plugins market or bundle store of other applications.

                                        BKeyportB 1 Reply Last reply Reply Quote 2
                                        • BKeyportB Offline
                                          BKeyport Module Developer @MMRIZE
                                          last edited by

                                          @MMRIZE I’d love to see a plugin store and/or marketplace of sorts. Some other projects uses NPM with a fancy front end web to do so, much like some modules use(d) a web interface to set up the initial config or adjust configs (Sam’s config module, MMM-RTSP, etc)

                                          This would be an ideal marketplace (Simple, to the point, shows everything a user needs) :
                                          2504511b-339e-4a29-91af-aefbed281f37-image.png

                                          Then when the user wants to config:
                                          d0937da4-c231-4935-acb3-6d616b2dfefd-image.png

                                          Homebridge is one of the better ways of doing things, IMO.

                                          The "E" in "Javascript" stands for "Easy"

                                          BKeyportB 1 Reply Last reply Reply Quote 2
                                          • BKeyportB Offline
                                            BKeyport Module Developer @BKeyport
                                            last edited by

                                            By the way, the verify system for them is to verify the module is stable, etc, once you get verified, you can advertise for donations within the system, this is why I have a red heart on mine. (all of my modules/plugins/etc I do I have a donation link for a charity I like)

                                            The "E" in "Javascript" stands for "Easy"

                                            BerkSmash1984B 1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 3
                                            • 4
                                            • 5
                                            • 4 / 5
                                            • First post
                                              Last post
                                            Enjoying MagicMirror? Please consider a donation!
                                            MagicMirror created by Michael Teeuw.
                                            Forum managed by Sam, technical setup by Karsten.
                                            This forum is using NodeBB as its core | Contributors
                                            Contact | Privacy Policy