Hey music player enthusiasts.
I had a fun afternoon going through the Volumio UI Setup section of the guide today. I had a couple of experiences during setup I wanted to share that might be good fodder for discussion. I’m new and still learning my way around the architecture. Talking through problems is educational for me.
First, the guide. I followed the rules as closely as possible. I’m developing on a Mac (os 10.13) and wiped out my previous installation of Node.
Installation of Node, Bower and Gulp was painless enough. I followed the instructions to set my local-config.js and told gulp to start my server with gulp serve theme=“volumio”.
This is where I hit my first snag. Gulp exited with an error outlined in the following Github issue:
https://github.com/volumio/Volumio2-UI/issues/489
Digging deeper, the root of the problem is an outdated version of websocket.io bundled with our version of karma which is several versions out of date. I blew away my repo and tried modifying the included version of karma with a newer one, but of course that changes the dependencies for karma-jasmine and likely a number of other packages.
So, questions:
- I’m wondering if there are any open issues to update top-level modules to newer versions for easier compatibility?
- Are there technical reasons some packages are stuck on outdated versions? I know some of the socket.io stuff is harder to update, especially on more limited platforms like ARM because it requires some C++ compilation.
- Is there a large body of unittests written for Karma+Jasmine in the Volumio codebase? Are they preventing these libraries from being brought up-to-date?
One suggestion in the github issue is to run the x86 image inside a VM. Not a terrible idea, but I’d like to develop without the extra indirection. Has anyone tried bundling volumio ui inside a container?
Anyway, thanks for reading! Looking forward to your insights.