IDEs and Workflow?


#1

Good afternoon Mycroft Community,

I’m interested in hearing about everyone’s preferred IDE and workstation setup. When you’re hard at work building and testing your own skills, what does your workflow look like?

To branch from that, suppose you knew a friend who wanted to start designing skills for Mycroft, but they were essentially starting from “square one” (no Python, Linux, GitHub, etc. experience). Would you recommend your own setup to them, or encourage them to use other, more accessible tools?

Looking forward to learning from you all!
-Andrew


#2

Pycharm

to new linux users:

  • you can do everything inside Pycharm
  • you can open a cli inside Pycharm

to new github users:

  • you have menus for everything!
  • files are color coded according to git status

to new python developers:

  • pycharm reformats code / fixes pep8
  • full featured python IDE, auto complete, code refactoring and suggestions etc

to new mycroft developers:

  • you can do the dev install from Pycharm
  • you can use virtual envs automatically
  • you can install requirements (sh and pip) from Pycharm
  • you can run msm and msk from Pycharm
  • you can selectively run the mycroft services you are developing with from Pycharm
  • you can run the unittests easily with pycharm

#3

@andrew-mycroft Nice topic!

@Jarbas_Ai Thanks for pointing out Pycharm!

Have been a coder in the past (however, many, many moons ago). Mainly VB,VBA,VB.net,BASH, PHP however never ever coded in Python. Mycroft will be my introduction to coding in Python and I believe with Pycharm included in that process from the beginning it might boost my possible output by a multifold.

Will have a look at it the next coiming weeks. @Jarbas_Ai Will most likely ping you in the near future for some guidance on how to include all you pointers into my workflow if you do not mind.


#4

ping whenever you get a question, i think i will write a blog post about this :slight_smile:


#5

I’m probably an outlier here because I do a lot of work in languages that are not Python as well as Python - PHP, CSS, some raw HTML, Javascript and a whole lotta MarkDown. I find I’m most comfortable in Atom with a huge bunch of plugins and customisations.

GitHub

Lots of plugins for GitHub, including colour-coding for which files are staged, committed and so on.

Python

Plugins for syntax highlighting and colour-coding, PEP8 code linter. God I hate PEP8. I like linting in general, I’m a fan of linting. But PEP8, I like thee not.

Sure, I also need to have a shell open at the same time, but if you’re installing and testing Skills on a remote device, well you’re going to have an ssh session open.

MarkDown

Plugins for preview, PDF export and so on. I love MarkDown more than Ron Swanson loves fishing and bacon.

Values alignment

cue left winger ideology and big academic-sounding words
and this is Kathy-individual speaking, not Kathy-Mycroft

Even though Atom is now owned by Microsoft, which I’m not feeling entirely comfortable about, it’s free and open source. It means that anyone, anywhere can use it, forever, for free. That’s one of the reasons that I work in open source - it’s about contributing to a wider commons of human knowledge and endeavour.

That’s the market space that Mycroft occupies. We’re the voice assistant for the person who cares about privacy, about open source and about not being beholden to a corporate behemoth.

And the editor I choose to work on Mycroft is a choice too.

rant endeth, normal programming may continue :wink:


#6

pycharm handles pep8 :slight_smile:

pycharm also color codes files according to git status

(*updates original post to reflect this)


#7

@Jarbas_Ai Considering the newly added bullit points. Get on with it, that blog post :wink:


#8

Hey @Jarbas_Ai if you feel ambitious and want to do a blog about how to properly use github that too would be welcome. I have a macro view of the process but struggle with implementation. I know from previous posts you have worked through this learning curve already. :wink: