Ideal development platform?

I am currently running Ubuntu on a laptop built around an Intel processor, just because I’m most comfortable working with it (been using GNU/Linux on Intel since 1997) and also the fact that it’s quite affordable.
Is such a setup good enough for development with the intent of contributing to Mycroft?
Or does the Mycroft core team recommend some other platform?

A laptop running Linux works great for development. If you have the horsepower I might suggest that you develop in a virtual machine, because the “dev_setup.sh” script of Mycroft and the various skills that Mycroft comes with cause packages to be installed to your system that might not be ideal for other purposes (e.g. if you use the machine for music production, it might screw up your JACK installation).

2 Likes

thanks for the awesome information.

Also worth noting is that, if you choose an editor with rich language and project support, the editor will help you switch Python environments on the fly. That doesn’t (usually) help you test in your running instances - apart from skills you develop inside the live skill folder - but it does help you develop against different or newer dependencies.

I use VSCode/ium, as do several other community devs, and a bunch more community devs use PyCharm. Both will provide in this particular respect.

Personally, I have large VSCode workspaces for different contexts. One’s for working on first-party Mycroft repos, one’s for working with my particular third-party team, and so forth. I usually open those same workspaces remotely, when I’m working on a different device. I use git extensively. I don’t work in a VM, but that’s a choice. For me, when Mycroft’s deps conflict with Something Else, Mycroft usually wins, but I’m a pretty serious Mycroft hacker.

I don’t do any music production, in fact, the only time I use audio is while watching videos via streaming services, and I don’t have a machine which is all that powerful neither can I afford one. So, I guess I should be okay with Mycroft installing it’s dependency packages (hope they aren’t too many).

Im not part of Mycroft core, but I would like to share my experience. For skill development, give a try to Andlo’s Remote Debug Skill https://github.com/andlo/remote-debug-skill.git.
It allow You to connect directly to skill and make code changes on the fly. You can place brake points, read variables, do edits and when file is saved, Mycroft reload your skill and You can test it without need for Mycroft restarting. I personally use it with VSCore and Mycroft cli on second screen.

1 Like