{"id":3498,"date":"2013-07-23T13:40:35","date_gmt":"2013-07-23T16:40:35","guid":{"rendered":"http:\/\/blog.plataformatec.com.br\/?p=3498"},"modified":"2013-07-23T13:40:35","modified_gmt":"2013-07-23T16:40:35","slug":"using-boxen-for-automating-our-development-setup","status":"publish","type":"post","link":"https:\/\/blog.plataformatec.com.br\/2013\/07\/using-boxen-for-automating-our-development-setup\/","title":{"rendered":"Using Boxen for automating our development setup"},"content":{"rendered":"
Setting up a machine for development is always a manual, annoying task. Here at Plataformatec we have a lot of projects that have different software dependencies, so every time one of our members has to start working on a new project, he needs to setup his machine to meet the project’s requirements, just like every team member of that project already did.<\/p>\n
As such, we always end up with some questions: Is this project using MySQL, PostgreSQL or MongoDB? Do I need to install a JavaScript runtime? What about QT? Which Ruby version do I need?<\/p>\n
Every team member joining an existing project gets stuck on those same questions, while all they want is to do what they do best, write software.<\/p>\n
The problem is even worse when the person is a newcomer, as he may not have any previous knowledge about which software we use.<\/p>\n
So, to help our team mates, the newcomers and to make easier and faster to get things done, we started to automate this setup, initially working in our own tool until the day GitHub released Boxen<\/a>.<\/p>\n Boxen is a tool for automating your machine setup. It works on top of the Puppet project and has some utilities and default modules to make easier to provide and set up services and projects.<\/p>\n Also, Boxen gives you a way to define a personal manifest where you can put personal configurations like you favorite text editor, setting up your dotfiles, or other utility softwares.<\/p>\n As a consultancy company we have more than one project running at the same time. Besides that, one of our practices is team rotation, which means that every now and then people move to different teams. Boxen helped us to make those exchanges smoother.<\/p>\n Given that one person has already set up his project to use Boxen, the next person who joins the team will only have to run one command to get his machine ready to work.<\/p>\n The same occurs with problems that someone may have when setting up his machine. Once someone fixes the issue, everyone on the team will take advantage of that fix.<\/p>\n Right now we have some projects set up to use Boxen, and some of them are open source projects like Rails, Simple Form and Elixir.<\/p>\nAbout Boxen<\/h3>\n
How we use Boxen<\/h3>\n