Why we chose Vue.js over React

Posted by Pixeljets on December 10, 2016 at 9:13pm

Qwintry team recently started active migration to Vue.js as a frontend framework in all our legacy and new projects:

  • in legacy Drupal system (qwintry.com)
  • in Yii2 b2b system (logistics.qwintry.com)
  • in all our smaller internal and external projects (mostly with PHP and NodeJS backends)

read more

Using hook_views_query_alter to alter a query

Posted by Chapter Three on December 9, 2016 at 11:47pm
Using hook_views_query_alter to alter a queryMotivation

When you first hear of Drupal's hook_views_query_alter you think you get it. You understand Drupal's hook system (presumeably, otherwise start here), you've used other hooks before, maybe you even experience a twinge of guilty excitement that it's one of the hooks that hasn't been removed from Drupal 8. You think to yourself, okay, this function will be passed a query argument, and I'll alter it -- and you're right! But it turns out it's a little more complicated than it sounds.

Migration of CSV Data into Paragraphs

Posted by MTech, LLC on December 9, 2016 at 8:59pm
Migration of CSV Data into Paragraphs

With the daily work of the office it is natural that there are challenges and potential research topics. With the addition of our developer Lucas as a Drupal core Migrate system maintainer, we decided to to delve into the little documented area of migrating data into paragraphs.

Paragraphs is the new way of creating content. It allows site builders to make things cleaner so they can give more editing power to their end users.

Charlotte León Fri, 12/09/2016 - 14:59

Preventing Drupal 8 from applying image styles to GIFs to preserve animation

Posted by Brian Osborne on December 9, 2016 at 7:44pm

I'm working on a site where the editorial staff may occasionally produce animated GIFs and place them in an article. Image styles and animated GIFs in Drupal don't play nice out of the box. Drupal's standard image processing library, GD, does not preserve GIF animation when it processes them, so any image styles applied to the image will remove the animation.

Preventing Drupal 8 from applying image styles to GIFs to preserve animation

Posted by Brian Osborne on December 9, 2016 at 7:44pm

I'm working on a site where the editorial staff may occasionally produce animated GIFs and place them in an article. Image styles and animated GIFs in Drupal don't play nice out of the box. Drupal's standard image processing library, GD, does not preserve GIF animation when it processes them, so any image styles applied to the image will remove the animation.

Competitive Analysis on a Budget

Posted by Palantir on December 9, 2016 at 4:10pm
Competitive Analysis on a Budget brandt Fri, 12/09/2016 - 10:10 Michelle Jackson Dec 9, 2016Illustration of hand-marked edits on wireframe of website

User research is a key element in meeting the needs of your audience, but can it be done on a budget? We think so.

In this post we will cover...
  • Why competitive analysis is needed

  • A cost-effective approach to meeting the needs of your audience

  • How to conduct competitive analysis on a budget

  • How to build a competitive analysis matrix

We want to make your project a success.

Let's Chat.

Your budget is tight. Project time constraints won’t accommodate extensive user interviews or surveys.

These common project parameters can make it challenging to understand the needs of the audience your website serves. Competitive analysis is an affordable way to evaluate and understand the ways in which competitor sites are succeeding or failing to meet site visitor needs.

By the time you are finished reading this post, you will have the know-how to do a competitive analysis for your organization or company’s website and will be able to see how your website measures against the competition.

What is competitive analysis?

Competitive analysis is a user experience research technique that can help you see how your site compares with competitor websites in terms of design and functionality. It can also lead to better decision-making when selecting new design and technical features for your site (e.g. search filter terms or search listing display).

Competitive analysis evaluates competitor sites at a level that goes further than first impressions. It can help you understand if the competition’s efforts to meet user needs are working before you invest in and implement new designs and technical features.

Let’s imagine you have been tasked with redesigning the Detroit Pistons website and are reviewing and bookmarking some of your competition’s websites. Taking a look at direct competitors is the first step.

First, we’ll take a look at the Chicago Bulls and the Detroit Pistons - two direct competitors. The two teams are considered direct competitors because both are professional basketball teams that offer the same service and function in the same way. Ticket sales, merchandise, team branding, and game schedules are some of the main priorities of website visitors. Both websites are hosted by the NBA.

Each team uses a different approach when it comes to presenting information in the navigation. Let’s consider how the two teams differ in terms of menu labeling and hierarchy. Tickets come first and foremost for both teams. Since tickets generate revenue, prominent placement in the navigation underscores the high priority of this transaction. With the exception of “News,” the two teams place the same emphasis on “Team” and “Schedule.” At a glance the Chicago Bulls navigation is more effective in their use of menu terms that reflect distinct priorities and desired user actions on the site.

Chicago Bulls navigationFigure 1: Chicago Bulls navigation

The Detroit Pistons’ navigation offers a host of items that may distract the user from completing key priority actions (e.g. buy a ticket, review the schedule, check out the team or buy merchandise), which are clearly prioritized in the Chicago Bulls navigation.  Looking at the Detroit Pistons navigation, it is not clear what different actions the visitor should take on the site using the navigation. “Fan Zone,” “Game Night,” could be housed under “Community.”  Diving into the “Video” navigation item, “Fan Experience,” has a similar connotation to Fan Zone which creates a more fragmented experience for visitors navigating the site. “Instagram” is listed under “Video” which may be redundant since there is already a social media icon for Instagram in the main navigation.   

Detroit Pistons navigationFigure 2: Detroit Pistons navigationDetroit Pistons naviation / videoFigure 3: Detroit Pistons navigation | Video

Now that we’ve done a cursory comparison of how two direct competitor websites use their navigation, let’s talk about how competitive analysis can meet user needs without breaking the bank.

Competitive analysis on a dime

Competitive analysis is flexible. This type of research method can be customized to your budget and project needs. Evaluating the navigation for the Detroit Pistons and Chicago Bulls took about 15 - 20 minutes, but the impact (for the Detroit Pistons) of simplifying the navigation could be substantial in improving site visitor experience.

Competitive analysis can run anywhere from a few hours (if you have a tight budget) to several weeks. Research by experts in your industry and publicly available data on user trends, behavior and needs can supplement evaluation and assessment of your site against the competitions’ sites.

In addition to evaluating the usability of the features and designs of your site along competitor sites, you can also perform user tests on competitor websites to validate their assumptions about what does or doesn’t work for users. We typically implement competitive analysis after conducting a series of interviews with stakeholders. Like our process for developing personas, our competitive analysis methodology is also based on high-level stakeholder input, data produced by clients, and site analytics.

Competitive analysis in action

The competition

Selecting four-to-seven competitor sites to evaluate alongside your site is a critical first step. Depending on time and budget, competitive analysis can focus on direct competitors, or partial, parallel, or even analogous competitors.

Competitor types

  • Direct - offer the same service/functions in the same way
  • Indirect - offer the same service/functions in a different way
  • Partial - compete with some, but not all services/functions
  • Parallel - offer a similar service/function to a similar audience via a similar channel
  • Analogous - a non-competitor that might give ideas about how to provide functions in a better way

Let’s use the Detroit Pistons as our point of comparison and see how other sports and entertainment offerings in the Chicago area relate to the Detroit-based professional sports team.

The Northwestern Wildcats is an indirect competitor. The Chicago-based basketball team offers the same service as Detroit Pistons, but in a slightly different way. The fan base, or audience, is slightly different and the team competes against other college sports teams in the NCAA. Merchandise associated with the Wildcats primarily focuses on the institution and not the team itself. The team is also based in a different market.

Chicago Blackhawks, while a completely different sport, is a parallel competitor. Both hockey and basketball are spectator sports that offer similar services during the same season, and have a fan base with some overlap. Both the Detroit Pistons and Chicago Blackhawks require that spectators spend time and/or money watching a professional team compete to score against an opposing team. Both teams also sell merchandise.

Comedy theater, The Second City, is a partial competitor. The Second City not only sells tickets for live entertainment, but also has educational offerings for professionals seeking to hone their improvisation technique and relate better to customers. By including educational offerings, Second City’s services differ slightly from those offered by the Detroit Pistons.

An analogous competitor is Hamilton Broadway. The musical provides entertainment to spectators, sells merchandise and relies heavily on ticket sales. The show is also seasonal, although the show’s duration is shorter than professional and college sports.

Competitive analysis can help establish a baseline for web design in your industry. Choosing competitor sites that capture different segments of your market and have had recent redesigns is key. It can help us understand how user needs are met by competitor websites serving the same or similar audiences. It can also help us evaluate if a competitor’s newly minted design and technical features are meeting user needs in a new and improved way. This, in turn, can lead to better and more cost-effective decisions that consider site visitor needs when designing and building your site.


Identifying the criteria for evaluating competitor sites is a crucial second step. Navigation was just one dimension to consider when looking at the Detroit Pistons and the Chicago Bulls. We consult closely with clients when selecting dimensions. Dimensions may include:

  • Content (e.g. stories featuring specific audiences or influential people)
  • Design (e.g. organization leader profiles)
  • Technical features (e.g. use of filters for search functionality)
  • Specific pages (e.g. Home page)
  • User support (e.g. FAQ)

During the review and evaluation process, you may add additional dimensions and dimension subcategories if new trends are uncovered when looking at competitor websites.

  • Dimension - Descriptive content
  • Subcategory 1 - Homepage
  • Subcategory 2 - Use of video

So what next?

As a first step, you develop research questions to guide your evaluation of each site.

  • How does each website help users achieve key tasks?
  • How is content prioritized on pages where key tasks take place?
  • What types of descriptive content is featured on the Homepage of each site?

Then you build a competitive analysis matrix featuring competitors (x axis) and dimensions (y axis) in a spreadsheet.

For the Detroit Pistons and its competitor sites, you can list notes about certain features of the current sites. For the navigation, you might review and compare the number of items in the primary navigation, the prioritization of navigation items and/or the type of language (formal/informal) used for navigation terms.

For tickets sales, you might look at how information about tickets and ticket promotions are presented on the homepage. You can compare display of ticket information on the tickets landing page for each site. When looking at the game schedules, you might consider how and if visitors can access the schedule from multiple parts of the website.

Use this simple competitive analysis matrix to see how these sites measure up against each other!

Competitive analysis matrixFigure 4: Competitive analysis matrix

Next, we:

  • Speak with stakeholders who manage the site
  • Identify the types of competitors (e.g. direct, indirect, partial, parallel and/or analogous)
  • Select four-to-seven competitor sites
  • Create a preliminary list of dimensions
  • Evaluate competitor sites

Once you’ve done your research and completed the matrix

Now it’s time to tackle competitive analysis.

  • Identify patterns and similarities across competitors
  • Highlight competitor site strengths and trends
  • Handpick design elements, technical features and content that work well
  • Collaborate with design, technical, and stakeholder experts to validate your findings

Citing your work and providing documentation in the matrix provides a point of reference for clients and team members. It can also help validate conclusions. Presenting your findings, screenshots, and recommendations in a slide deck or report can help design, technical, and stakeholder experts understand and draw inferences about your research for consideration during the design and technical implementation of your site.

In sum

Competitive analysis is an affordable user experience technique. It can establish a baseline for how competitor sites are doing. You can learn from competitor site successes and failures to make cost-effective decisions during the design and build of a site. Lastly, competitive analysis can help us achieve user-centered design and development outcomes while avoiding the web design and technical blunders of the competition.

We feel strongly that competitive analysis and other such strategy work is essential to a project's success. Let's schedule a time to talk so we can share our approach to getting to a place of success for your organization and project.

Stay connected with the latest news on web strategy, design, and development.

Sign up for our newsletter.

Improving Drupal 8's API-first: JSON API and OAuth2?

Posted by Dries Buytaert on December 9, 2016 at 3:10pm

Among the most important initiatives for Drupal 8's future is the "API-first initiative", whose goal is to improve Drupal's web services capabilities for building decoupled applications. In my previous blog posts, I evaluated the current state of, outlined a vision for, and mapped a path forward for Drupal's web services solutions.

In the five months since my last update, web services in Drupal have moved forward substantially in functionality and ease of use. This blog post discusses the biggest improvements.

An overview of the key building blocks to create web services in Drupal. Out of the box, Drupal core can expose raw JSON structures reflecting its internal storage, or it can expose them in HAL. Note: Waterwheel has an optional dependency on JSON API if JSON API methods are invoked through Waterwheel.js.

Core REST improvements

With the release of Drupal 8.2, the core REST API now supports important requirements for decoupled applications. First, you can now retrieve configuration entities (such as blocks and menus) as REST resources. You can also conduct user registration through the REST API. The developer experience of core REST has improved as well, with simplified REST configuration and better response messages and status codes for requests causing errors.

Moreover, you can now access Drupal content from decoupled applications and sites hosted on other domains thanks to opt-in cross-origin resource sharing (CORS) support. This is particularly useful if you have a JavaScript application hosted directly on AWS, for instance, while your Drupal repository is hosted on a separate platform. Thanks to all this progress, you can now build more feature-rich decoupled applications with Drupal.

All of these improvements are thanks to the hard work of Wim Leers (Acquia), Ted Bowman (Acquia), Daniel Wehner (Chapter Three), Clemens Tolboom, José Manuel Rodríguez Vélez, Klaus Purer, James Gilliland (APQC), and Gabe Sullice (Aten Design Group).

JSON API as an emerging standard

JSON API is a specification for REST APIs in JSON which offers several compelling advantages over the current core REST API. First, JSON API provides a standard way to query not only single entities but also all relationships tied to that entity and to perform query operations through query string parameters (for example, listing all tags associated with an article). Second, JSON API allows you to fetch lists of content entities (including filtering, sorting and paging), whereas the only options for this currently available in core are to issue multiple requests, which is undesirable for performance, or to query Drupal views, which require additional work to create.

Moreover, JSON API is increasingly common in the JavaScript community due to its adoption by developers creating REST APIs in JSON and by members of both the Ruby on Rails and Ember communities. In short, the momentum outside of Drupal currently favors JSON API over HAL. It's my belief that JSON API should become an experimental core module, and it may one day potentially even supersede HAL, Views-based REST endpoints, and more. Though Views REST exports will always be valuable for special needs, JSON API is suitable for more common tasks due to query operations needing no additional configuration. All this being said, we should discuss and evaluate the implications of prioritizing JSON API.

Thanks to the efforts of Mateu Aguiló Bosch (Lullabot) and Gabe Sullice (Aten Design Group), the JSON API module in Drupal 8 is quickly approaching a level of stability that could put it under consideration as a core experimental module.

OAuth2 bearer token authentication

One of the issues facing many decoupled applications today is the lack of a robust authentication mechanism when working with Drupal's REST API. Currently, core REST only has two options available out of the box, namely cookie-based authentication, which is unhelpful for decoupled applications on domains other than the Drupal site, and basic authentication, which is less secure than other mechanisms.

Due to its wide acceptance, OAuth2 seems a logical next step for Drupal sites that need to authenticate requests. Because it is more secure than what is available in core REST's basic authentication, OAuth2 would help developers build more secure decoupled Drupal architectures and allow us to deprecate the other less secure approaches.

It would make sense to see an OAuth2 solution such as Simple OAuth, the work of Mateu Aguiló Bosch (Lullabot), as an experimental core module, so that we can make REST APIs in Drupal more secure.

Waterwheel, Drupal's SDK ecosystem

The API-first initiative's work goes beyond making improvements on the Drupal back end. Acquia released Waterwheel.js 1.0 as open-source, the first iteration of a helper SDK for JavaScript developers. The Waterwheel.js SDK helps JavaScript developers perform requests against Drupal without requiring extensive knowledge of how Drupal's REST API functions. For example, the Waterwheel module allows you to benefit from resource discovery, which makes your JavaScript application aware of Drupal's data model. Waterwheel.js also integrates easily with the JSON API contributed module.

Thanks to Kyle Browning (Acquia), the Waterwheel.swift SDK allows developers of applications for Apple devices such as iPads, iPhones, Apple Watches, and Apple TVs to more quickly build their Drupal-powered applications. To learn more about the Waterwheel ecosystem, check the blog posts by Preston So (Acquia).


Thanks to the hard work of the many contributors involved, the API-first initiative is progressing with great momentum. In this post, we ended with the following conclusions:

  • The JSON API and Simple OAuth modules could be candidates for inclusion in Drupal 8 core — this is something we should discuss and evaluate.
  • We should discuss where support for HAL and JSON API stops and starts, because it helps us focus our time and effort.

If you are building decoupled applications with Drupal 8, we would benefit significantly from your impressions of the core REST API and JSON API implementations now available. What features are missing? What queries are difficult or need work? How can we make the APIs more suited to your requirements? Use the comments section on this blog post to tell us more about the work you are doing so we can learn from your experiences.

Of course, if you can help accelerate the work of the API-first initiative by contributing code, reviewing and testing patches, or merely by participating in the discussions within the issues, you will not only be helping improve Drupal itself; you'll be helping improve the experience of all developers who wish to use Drupal as their ideal API-first back end.

Special thanks to Preston So for contributions to this blog post and to Wim Leers, Angie Byron, Ted Bowman and Chris Hamper for their feedback during the writing process.

Application updates for PHP containers

Posted by Platform.sh on December 9, 2016 at 2:00pm

PHP was Platform.sh’s first supported language, and so has had a few quirks as we’ve grown to support more programming languages. Those quirks have resulted in a few limitations to functionality that we didn’t like, and you probably didn’t like, either.

Fortunately, we’ve refactored our container support to reduce the uniqueness of PHP and added a bit of functionality along the way.

Bringing pages to life with web animation

Posted by Ixis.co.uk - Thoughts on December 9, 2016 at 11:25am

We’re using animation in a few places on ixis.co.uk, mostly subtle movements to try and inject a bit of life into the design. The key thing when we were adding these animations was to keep them subtle. If at any point they make the actual content on the site harder to read then we've failed.

On mobile, the menu button animates into a close button when it’s opened. This is fairly simple. When the menu is opened, we add an open class to the button, and use some CSS3 transforms to move things around. The relevant Sass is below, the main thing is we add a 0.3s transition on opacity and transforms, and then just move things when the open class is added.

.navbar-toggle {
  .icon-bar {
    transition: opacity 0.3s, transform 0.3s;

  &.open {
    .icon-bar-1 {
      transform: translate(0, 8px) rotate(45deg);

    .icon-bar-2 {
      opacity: 0;

    .icon-bar-3 {
      transform: translate(0, -8px) rotate(-45deg);

The transforms occur in order from left to right, even though they animate all at once, which is why we move first, and then rotate. Otherwise the movement would be relative to the new rotation.

Our fancy animated icons

Our new service icons are SVGs, which means we can target individual elements within the icon to animate, as long as the SVG is inline and not embedded with an img tag or background-image style. To make life easier we added theme implementations for them on the Drupal side, so they can easily be added and reused. Then we have an icon-development.html.twig file that contains the SVG.

* Implements hook_theme().
function example_theme($existing, $type, $theme, $path) {
  return array(
    'icon_development' => array(
      'variables' => array(),
    // ...

We’re using CSS3 keyframes for the animations themselves, which means we can easily trigger them when we scroll them into view. In our Sass a lot of the values are shared with placeholders, but I’ve tried to simplify them here, and it’s only showing the animation for one part of one of the icons.

#service-development {
  .bracket-left {
    animation-duration: 1s;
    animation-timing-function: ease;
    animation-iteration-count: 1;
    animation-fill-mode: forwards;
    animation-play-state: paused;
    animation-name: developmentBracketLeft;

  &.scrolled-to .bracket-left {
    animation-play-state: running;

@keyframes developmentBracketLeft {
  0% {
    transform: translate(-4px, 0);
  100% {
    transform: translate(0, 0);

Since all of our animations are fairly short, we had to make sure they’d only trigger once they’re visible, otherwise it’s just a waste of time. So we’re using waypoints to add a ’scrolled-to’ class when animations should trigger. Javascript is only used for these triggers, the animations themselves are pure CSS, so they benefit from hardware acceleration. We're using this approach for virtually all of our animations, from the service icons down to subtle fade in effects on things like heading banners, testimonials and client work pages.

(function ($) {
  Drupal.behaviors.magicksServiceAnimation = {
    attach: function (context, settings) {
        offset: 'bottom-in-view',
        handler: function() {

The fade in effect is a combination of 2 transitions. It moves from 0 opacity up to 1, and it moves 100px up and into it's correct position. This particular effect is all wrapped in a Sass mixin, so it can be easily reused on new elements, and only ever needs to be changed in one place.

On the blogs page we have infinite scrolling, with a rotating Ixis logo to show that new content is loading in. Not much to this one: it’s the standard Drupal Ajax progress throbber, we’ve just styled it with CSS and animated with keyframes.

Improve Website Performance & User Experience with PHP 7: An Exclusive Look at How Cheeky Monkey Media Did It

Posted by Cheeky Monkey Media on December 8, 2016 at 10:17pm
Improve Website Performance & User Experience with PHP 7: An Exclusive Look at How Cheeky Monkey Media Did It shabana Thu, 12/08/2016 - 22:17 PHP 7 Upgrade Gives Cheeky Monkey an Extra Little Something

When we decided to convert the Cheeky Monkey Media corporate site to PHP 7, we expected some improvements in web performance

  • We expected the site to run faster and smoother.
  • We expected the page loads to be quicker.
  • We expected these results to leave the end-user (the individual viewing the site) to have a more satisfactory user experience.

In reality, we got all these things, plus a new-and-improved corporate site with some mega pizzazz. The switch to PHP 7 gave our site renewed energy and speed, giving the end-user, blazing fast page loads and an overall quality experience.

You can make the shift too. Contact us today.

Talking Laravel with Matt Stauffer

Posted by Lullabot on December 8, 2016 at 9:00pm
Matt & Mike talk with "Laravel Up and Running" author Matt Stauffer about the Laravel PHP framework and how it differs from PHP and Drupal as a whole. They are joined by Lullabot developers Andrew Berry and Matt Robison.

Roomify releases community edition of Roomify for Accommodations

Posted by roomify.us on December 8, 2016 at 8:27pm
We are thrilled to announce that as of today, roomify for accommodations is freely available and, as always, completely open source! Today we're going to share some of our motivations for making rfa widely available, and talk about some of the projects we hope to see in the community.

Drupal Modules: The One Percent — Form Placeholder (video tutorial)

Posted by Drupal Modules: The One Percent on December 8, 2016 at 7:52pm
Drupal Modules: The One Percent — Form Placeholder (video tutorial) Project page screenshot NonProfit Thu, 12/08/2016 - 13:52 Episode 11

Here is where we bring awareness to Drupal modules running on less than 1% of reporting sites. Today we'll look at Form Placeholder, a module which will replace your form's textfield labels with placeholder text.

Dropcast: Episode 26: Let Us Give Thanks

Posted by Mediacurrent on December 8, 2016 at 6:55pm

Recorded Nov 30, 2016

This episode, the whole crew is together again, and since we recorded it sort of close to the Thanksgiving holiday, we talk about the things we are most grateful for in the Drupal community. As always we have Drupal News, featured blog posts and the ever popular, Final Bell.

What’s new on Drupal.org? - November 2016

Posted by Drupal.org blog on December 8, 2016 at 5:27pm

Read our Roadmap to understand how this work falls into priorities set by the Drupal Association with direction and collaboration from the Board and community.

The engineering team at the Drupal Association had much to be thankful for in November. With the support of the wonderful volunteers in our community and the contributions of our Supporting Partners we were able to deliver some great tools for the project. Let's dive and see what's new.

Drupal.org updates

Promoting Drupal by Industry

In November we finished the technical scaffolding for the upcoming industry pages, and began working with the wider Association team on content development for these pages. Because we were ahead of our internal targets for this page and we felt it would add significant value, we've also added the ability to geotarget content on these industry pages.

This is the first instance of geo-targeting on Drupal.org, and we'll be using it to help connect Drupal evaluators with regionally appropriate content and partners on these pages. Work on the industry pages is ongoing, but we're excited to bring them to you soon.

Developer Tools Evaluation

During November the engineering team also had a two day retreat here in Portland, OR with webchick - one of the members of the Technical Advisory Committee. We used this retreat to do a deep dive into the current state of developer tools on Drupal.org, and to evaluate our options to continue evolving the tools we offer to the community.

We gave a summary of our exploration along with some next steps to the Drupal Association Board on November 22nd. You can find the minutes and a recording here.

Core release packaged with --no-dev composer dependencies

Starting with the Drupal 8.2.3 release, we are now packaging full releases of Drupal core with --no-dev composer dependencies. This means that packages downloaded will not include extraneous developer extras that should not be used in production sites, and that the release packages will be smaller. We will continue to package dev releases with the dev dependencies.

Feature branch testing support

Drupal.org allows maintainers to create feature branches for issues by using the name format [issue#]-[short-description]. Any commits made to a branch in this format will appear in the sidebar of the associated issue. To improve the utility of these feature branches, DrupalCI patch file tests now also run on push to these branches.

Feature branch testing UI on issues

To add tests, users can simply click on the 'add test' link beneath the git branch in the issue sidebar, or click on the existing test result bubble to re-test or add a new test. Since this feature was introduced we've run over 200 issue branch tests.

Project maintainers can add Documentation Guides

UI for relating guides to projects

Display of related projects on Guides
We're continuing to support the migration of documentation to the new documentation system, and we've now enabled Project Maintainers to add related documentation guides to their projects. Once added, the related projects will appear on the documentation guides, in the sidebar.

Documentation Maintainers can find their Guides

Many community volunteers have stepped up to become maintainers of the new documentation guides. We want to make sure we're giving them the tools they need to do the work of maintaining those guides and the pages within them.

Your Guides tab on user profile

We've added a 'Your Guides' section to the user profile which will list all of the guides that a user maintains, as well as the pages within those guides. This should allow maintainers to see when pages have been recently changed or added, and to easily keep their guide content curated and up to date.


Virtualization and Improved Config Management

In November, we completed the majority of two major infrastructure projects. Firstly, we've virtualized the majority of the infrastructure and standardized on Debian 8 images. Secondly we've updated our configuration and user management from Puppet 3 + LDAP to Puppet 4 + Hiera. This is a significant milestone for our infrastructure, and gives us a more portable and maintainable infrastructure to manage moving forwards.

Community Initiatives

Community initiatives are a collaboration; with dedicated community volunteers building improvements to Drupal.org with the architectural guidance and oversight of the Drupal Association engineering team.

Drupal 8 User Guide Launched!

We're very happy to say that the Drupal 8 User Guide is now live on Drupal.org! This documentation guide is carefully curated to provide all the information a new user needs to become skilled at managing a Drupal 8 site. We want to give a special thanks to jhodgdon for all her work on the User Guide project.

Initiatives need your help

Are you a Drupal.org power user who relies on Dreditor? Markcarver, who is currently leading the charge to port Dreditor features to Drupal.org, has invited anyone interested in contributing to join him in #dreditor on freenode IRC or the Dreditor GitHub.

Is the written word your domain? Consider putting your skills to use by becoming a maintainer of Drupal documentation. If you are a developer interested in contributing code to the new documentation system, please contact tvn.


As always, we’d like to say thanks to all the volunteers who work with us, and to the Drupal Association Supporters, who made it possible for us to work on these projects.

If you would like to support our work as an individual or an organization, consider becoming a member of the Drupal Association.

Follow us on Twitter for regular updates: @drupal_org, @drupal_infra

Switching from file system configuration management to features on existing drupal site

Posted by valechatech on December 8, 2016 at 5:15pm
Switching from file system configuration management to features on existing drupal site

In my last blog post, I outlined the best practices to manage the configuration management for the site. If you have read the previous post and wanted to follow the same on your site, this post will show you how to do Switching from file system configuration management to features on existing drupal site easily.

There's not any hard and fast way to change the configuration management for an existing Drupal site. Here are the steps in brief involved in to do the following:

  • Delete all of the old configuration except user roles and permissions
  • Export all configuration using features
  • Add update hooks to start using features

Delete all of the old configuration: Delete all the configuration which is present in your $config['sync'] directory except the user roles configuration.

Export all configuration using features: Export your configuration with features and make sure to leave the user roles and permissions and manage your user roles and permissions configuration via the Filesystem.

Add update hooks to start using features: Add update hooks to enable the new features.See the same hook_update_n below.

 * Install features based config.
function xyz_core_update_8017() {
  $features = [

  \Drupal::service('module_installer')->install(['features', 'config_update']);


naveenvalecha Thu, 12/08/2016 - 22:45

Packagist switch

Posted by Acquia Lightning Blog on December 8, 2016 at 3:47pm
Packagist switch Adam Balsam Thu, 12/08/2016 - 10:47 Summary

On Wednesday, December 14th, Lightning will release 1.14 and 2.0.0. 2.0.0 will be functionally identical to 1.14 but will point to the new official D.O packagist. 1.14 will include a script to update your project to 2.0.0. After updating to 1.14 as normal, simply run the following commands to update to 2.0.0:

$ cd docroot/path/to/lightning/profile #usually docroot/profiles/contrib/lightning
$ composer run upgrade-build 
More information

In addition to the main PHP Packagist, Drupal uses its own packagist for Drupal-specific packages (e.g. modules and themes). Historically, Lightning has used the packagist at https://packagist.drupal-composer.org for this purpose.

Around DrupalCon New Orleans, the Drupal Association announced that it was creating an official Drupal.org packagist. It has been up for several months now, so Lightning will switch to the official Drupal.org packagist on December 14, 2016.

This transition poses a few challenges. Specifically:

We get around the first challenge by submitting Lightning to the main PHP Packagist -- which properly processes its dependencies -- and instructing our scaffold project to look for it there.

For the second challenge, Lightning 1.14 will include a script that can automatically change your project's Composer dependencies' version constraints to the new formatnote1. It will also update your composer.json file so that Composer will fetch Lightning from the main PHP Packagist, and all other Drupal dependencies from the official Drupal.org packagist.

For more information on the challenges and our solutions, see Lightning Packagist slides.

Update instructionsnote2:

  1. From the root of your project, run composer require drupal/lightning:8.1.14 --no-update. The root of your project is usually one level up from the docroot directory.
  2. Run composer update.
  3. Change into the Lightning Profile directory (from project root, this is usually docroot/profiles/contrib/lightning).
  4. Run composer run upgrade-build.
  5. Switch back to the root of your project and run composer update.

The upgrade-build script - from Step 4 above - automates the following:

  • Changes your Drupal dependencies' version constraints to the new format.
  • Adds a reference to the official Drupal.org packagist and removes the legacy one.
  • Changes Lightning's namespace to acquia so that it will be pulled from the main packagist and have its dependencies processed properly.
  • Updates Lightning's version constraint to ~2.0.0.

If you don't want to use the update script, or if your root composer.json file uses ranges in its version constraintsnote1, you can go through the above steps manually. See the Converting your project from Drupal Packagist to the official packages.drupal.org service section on Drupal.org for more information.

The update script does not support ranges in version constraints (click here for examples). If you have any ranges in your composer.json, you will need to alter those manually before updating your dependencies.

Lightning 1.14 and 2.0.0 will not be tagged until 14 December. Do not attempt to run these update instructions until then.

The Future of Drupal 8 Development: Acquia Lightning

Posted by Acquia Developer Center Blog on December 8, 2016 at 2:32pm
lightning image

With Acquia Lightning, site-builders or developers can build an authoring experience from the ground up in only a few hours.

Think of Acquia Lightning as “Drupal Core with afterburners.”

Development tasks that used to take days or weeks are condensed to a matter of minutes.

Tags: acquia drupal planet

Workflow Initiative Needs Review

Posted by Tim Millwood on December 8, 2016 at 10:49am
Workflow Initiative Needs Review timmillwood Thu, 12/08/2016 - 10:49

Workflow Initiative Needs Review

Posted by Tim Millwood on December 8, 2016 at 10:49am
We have been extremely hard at work this year with the Workflow Initiative bringing some quite big...


Subscribe with RSS Subscribe to Drupal.org aggregator - Planet Drupal