RobotsAndPencils / marvin

Slack bot written in Go
24 stars 2 forks source link

Migrate Marvin to BeepBoop #32

Open csykes opened 8 years ago

csykes commented 8 years ago

We've had some discussions and think it would be most efficient to migrate Marvin to BeepBoop by porting the existing Golang functions inside a BeepBoop container (and not rebuild all that code in Python). Given that, as part of the migration we'd like to do the following:

  1. Setup a BeepBoop instance to house NewMarvin (just like the old Marvin but with a shiny new robotic wrapper)
  2. Migrate the slack commands back into the bot interface so we have a single place to manage the commands (and stop having to keep the Slack command interface in sync with the engine). People can easily learn the new command structure so the impact will be low.
  3. Migrate from Neal's personal credentials to some general RnP build-machine-like credentials
  4. Find a way to get a paid BeepBoop instance so we don't have to restart it every night (using some Guild budget or have BeepBoop support internal bots free of charge... which ever is simplest)
paulthorsteinson commented 8 years ago

@csykes connecting you to @quinnthomson because they have a bot money penny that this might just fit nicely in. @crayment may have done something along this line too

csykes commented 8 years ago

We also need to include @nealsanche in the conversation but I think given the Golang code that is already written it would be more efficient to port straight across into a new BeepBoop container than starting from scratch in another language.

crayment commented 8 years ago

The only insight I can really offer is that if you want to use natural language processing from wit.ai then it's easiest in node.js - because of the botkit and witbot libraries. My strategy on Chet was that I just used node for the bot part where it determines how to respond and when I understood a command I called out to my ruby code which I packaged into a ruby gem and installed in my Dockerfile.

quinnthomson commented 8 years ago

There's also wit.ai libraries for python and ruby. Beepboop also supports python for botkit right now I believe. If we're aiming for fewer github bots, then the python Moneypenny bot may be the way to go. We've added github support and yesterday Rob was playing around with adding Jenkins integration.