home
Hero image for: 2014: A Year of Contributions

2014: A Year of Contributions

By Jesus Manuel Olivas ● Head of Products | January 20th, 2015

If you are following my blog post here, at http://www.blinkreaction.com/drupal-experts-blog, or if you are reading my twitter timeline https://twitter.com/jmolivas, then you might have some questions about my role and how it works inside a Drupal agency like Blink Reaction.

You might ask, “does this guy do any client work?", "why is he always talking about this Console project?”.

When I was looking back on my contributions to the Drupal community for 2014, I found that my work can directly, at least somewhat, answer those questions.

First here’s why I am so excited about the Console project…

Drupal 8 is more advanced compared to its predecessor and writing a module involves a lot of boilerplate code, there are also a lot of things you need to know and do just to get started with building a new module and these can be repetitive and tedious therefore creating opportunities for errors.

Fortunately, a lot of that code can be generated automatically using a tool called the Drupal Console.

Drupal Console is a project that takes the Symfony Console component and makes it available on Drupal to automatically generate most of the new Drupal 8 module requirements.

This tool not only generates the module code, it also helps you interact with your Drupal installation.

The Drupal Console is another cool addition to the Proudly Found Elsewhere school of thought as it leverages the Symfony Console component to handle the CLI part.

A little history

Let’s move back in time to September 2013 at DrupalCamp Costa Rica, where this project was conceived. While David Flores and I were talking with Larry Garfield about Drupal 8. The introduction of Symfony Components had recently happened and at some point, Larry mentioned someone should bring the Symfony Console to Drupal 8.

That was the aha! moment. David and I had been discussing the same topic before, but had been procrastinating until that day when we decided to actually start working on the project.

At that time in 2013 and almost until the end of the second quarter of 2014, I was working as a Web Developer for the Office of Education in El Centro CA.

I was not doing any Drupal development there, mostly building Symfony2 applications, but since I do have a love-hate-love relationship with Drupal and never left it completely, I keep attending and presenting at conferences and working during my spare time on this Drupal Console as a side project.

Starting in 2014 I decided to send session proposals about the Console project and I had a chance to present at several Drupal Camps:

* http://sandcamp.org
* http://fldrupal.camp/
* http://nyccamp.org/
* http://drupalcamp.mx/
* http://drupalcamp.cr/
* http://2014.tcdrupal.org/
* https://2014.drupalcampla.com/
* https://2014.badcamp.net/

NYC Camp the one that brought the most changes for me in 2014.

A few weeks before the camp I sent an email to cancel my participation because I did not have any extra days-off at my job and also because flights and hotel costs add up quickly.

Then I got a call from Forest Mars and Molly Byrnes and they helped me make travel arrangements and found me place to stay with another fellow Drupal developer John Robert Wilson.

I’m so glad that everything worked out because the camp was awesome, I did my talk on the Console project, received great feedback and as always learned from fellow Drupalists who were present at the camp.

At that camp I had a chance to meet “Jeffrey A. jam McGuire” who invited me to participate and do my session at the Jam’s Virtual DrupalCamp. You can see the podcast here https://www.acquia.com/resources/podcasts/acquia-podcast-156-j-m-olivas-introducing-drupal-8-console-scaffolding-module-generator

Also at that Camp I had the chance to talk with John DeSalvo and Ray Saltini about Blink Reaction, the Blink Institute and their plans with Symfony and Drupal 8. It turned out those plans fit perfectly with what I was looking for in order to continue my work in the Drupal community. They are giving me that chance by spending time working on Drupal 8 projects.

After almost a month of communication and the interview process I got hired.

What about contributions

Since my main role at Blink Reaction is to contribute back to the community after some talks we agree that I should spend time working on the Drupal Console my side project now became my main activity and also I will get paid for do what I was doing as a hobby.

So far the project is been pretty active as you can see https://www.drupal.org/project/console

While working on the console project I have found and fixed (so far) two Drupal 8 core bugs I did a blog entry related to this topic http://www.blinkreaction.com/blog/two-drupal-8-core-bugs-found-and-fixed

Also while attending TC Drupal, I had a chance to work with Cathy aka @YesCT and sent patches to another two issues and got the accepted, so far I do have 4 contributions to Drupal 8 Core as you can see on this site http://www.drupalcores.com/. I know just 4 not a big deal right but working on Drupal Core Issues and the contribute space in Drupal is kinda tricky.

What was accomplished for the Drupal Console during 2014.

During the first year of development the project it's been changing from a Drupal 8 module generator to a robust CLI tool for Drupal 8.

The project now have commands that interact with the service container. This allows us to do administration task not related to code generation as listing routes and services from the container and clear Drupal caches.

Keep the project in sync with Drupal 8 changes.

During the development of the console the project have been in synchronization with the development branch of Drupal 8.

This make sense at the beginning of the project when Drupal 8 was in Alpha state.

Since DrupalCon Amsterdam Drupal Beta 01 version has been released for testing and feedback and after some discussion with David Flores the other co-maintainer of the project we decide to keep the project in synchronization with Drupal Beta releases.

More information and full blog post http://jmolivas.com/the-drupal-8-console-will-sync-drupal-8-beta-releases

Provide an installer and executable phar file.

One of the most recurring questions since project started is why is the installation process modifying the composer.json & composer.lock file, or why is the installer adding new libraries to "core/vendor" directory, because you know that is considered hacking the core.

More information and full blog post http://jmolivas.com/try-the-new-drupal-console-installer-and-executable-phar-file

Install Drupal Console globally.

This change provide the feature of accessing the console.phar from anywhere on your system, using a global installation as composer or drush does.

I will list a few points why this new global executable is important for the life cycle and roadmap of the Drupal Console project:

* Add a new self-update command to make easy update to new releases
* Work on the documentation, since installation process will probably not change
* Add a new set of command like site:install
* Take advantage of site aliases
* Work on the issue related to Integrate console with drush
* Add console commands to wrap drush commands

More information and full blog post:
http://jmolivas.com/install-drupal-console-globally

DrupalCon Amsterdam 2014 Drupal Lightning Talk presentation

For the first time ever DrupalCon Amsterdam replaced the third day keynote with lightning talks in the main auditorium. I sent my proposal in and was lucky to be selected. I shared details about the project I have been more involved in lately The Drupal 8 Console. Take a look at my presentation slides here. If you have any other questions on this project, let me know!

Check out the reactions on Twitter related to this presentation here: Storify - Drupal 8 Console DrupalCon Amsterdam Lightning Talk

I've also put together a list of blog posts and other reactions about this project: https://gist.github.com/jmolivas/3c12bc53708fdadfa3f7

NOTE: This is a cross-blog-post that will be published at Blink Reaction web site.