Planet Drupal

Syndicate content - aggregated feeds in category Planet Drupal
Updated: 8 hours 54 min ago

Chromatic: Chromatic at MidCamp 2018

Tue, 03/06/2018 - 17:27

We’ll be attending and presenting at this year’s MidCamp in Chicago. If you’re also going to be in there, be sure to check out our sessions on Twig and application monitoring.

Acquia Developer Center Blog: The Channel Explosion: Off Screens and Out the Window

Tue, 03/06/2018 - 16:58

Perhaps the most fascinating single fact of the Cambrian explosion is that life on Earth diversified from largely unicellular organisms that occasionally bunched into colonies to multicellular organisms that came to represent much of the present-day animal kingdom — all at a single discernible moment 541 million years ago in the fossil record. As we approach the end of this decade, we're experiencing a similar Cambrian explosion — not in life forms, but in form factors.

Tags: acquia drupal planet Drupal 8 gets a native booking framework

Tue, 03/06/2018 - 15:02
We are excited to announce the release of BEE, a booking solution for Drupal 8 aimed at site builders. Roomify specializes in booking solutions and our PHP library, BAT, and the accompanying Drupal module allow developers to integrate booking logic in any PHP application. However, isn't very helpful for site builders. BEE is the booking module for Drupal that site builders wish existed.

CTI Digital: How Drupal helps WarChild to save lives

Tue, 03/06/2018 - 10:07

During the CXO day at Drupalcamp London, Dave O’Carroll the Head of Digital at War Child delivered a compelling speech on how Drupal has aided their mission in supporting the future and well-being of children living in some of the world’s most dangerous war zones. Blog: AGILEDROP: Index of online excellence put in the context of Drupal CMS

Tue, 03/06/2018 - 09:42
Bowen Craggs & Co is a UK based research and consultancy group which is focused solely on online corporate communications - websites, social media and social channels. A very short introduction of what they do is to be found on their website. In short, they review, measure, and advise how to make the websites and social media channels better for businesses and customers.  To measure that they developed a Bowen Craggs Index of Online Excellence which was designed as a guide to the best in internet corporate communications. But it is not so much about communications as it is about… READ MORE

OSTraining: Give a Unique Look to Your Google Maps in Drupal

Tue, 03/06/2018 - 07:42

Google Maps don't look appealing or pretty by default when you embed them in your Drupal content. Nor do they always nicely coordinate with your site look and feel.

What if you found a way to give them a custom design? For example - your own color? In this tutorial, you will learn how to give your Drupal Google Maps a custom style with the Styled Google Map contrib module.

Palantir: Drupal Association Retrospective

Tue, 03/06/2018 - 01:10
Drupal Association Retrospective brandt Mon, 03/05/2018 - 18:10 Tiffany Farriss Mar 6, 2018

Tiffany Farriss’ reflection on her time on the Drupal Association Board of Directors.

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

Sign up for our newsletter.

With its public announcement of the incoming class of directors, the Drupal Association (DA) officially marked the end of my nine years of service to the Board. Considering that I’ve only just celebrated my 11th “Drupalversary”, it was certainly a bittersweet moment for me as that board has been a huge part of my Drupal life for so long.

When I look back at my tenure, I’m gobsmacked at how far we’ve come as an organization. When I joined the board in 2009, our board meetings were either at DrupalCon or in IRC (only), there was no budget, every expenditure required a board vote, and the board served as de-facto staff elected to fulfill a specific function.

Those were scrappy days, when we punched above our weight, buoyed by a communal sense of responsibility and connected by our passion for Drupal. It seemed like everyone you knew, everyone in “The Community” contributed what they could, as much as they could. The barriers to entry were low. It was easy to get involved and find your place and your voice. That bonhomie combined with the mission and reward of building something bigger than yourself, bigger even than your own company, was exhilarating.

As a project and as an organization, those early efforts paid off and we grew pretty fast, far beyond what any group of motivated volunteers could support and sustain long-term. It was clear that for Drupal to reach its potential, we needed to hire staff and forge a path forward that professionalized both the DA and its channels: DrupalCon and

While there is still much work ahead for the DA, it is leaps and bounds ahead of where it started. The DA has matured into a $5 million non-profit with audited financial reports and forecasts, a staff, and an articulated mission, vision and values. Far from its days as an organization founded to be a bank account so that the servers wouldn’t melt down, the Drupal Association now unites a community to build and promote the Drupal project.

The challenge and magnitude of this mission is inspiring, just as the promise of Drupal continues to inspire many of us who contribute to the project. However, it’s also important to recognize that as the project has grown and matured over the years, the members of our community and their corresponding motivations have also expanded.

“The Community”

Drupal is deeply rooted in “The Community.” Over the years, the DA board spent a fair amount of time seeking to understand who the community is and what the organization’s role is within it. While that answer is (and indeed should be) ever-evolving, one important realization I’ve made is that what we call “community” is actually an amalgam of lots of sub-communities.

At Drupal’s core, there is its contributor community: those who write and review code and documentation. As we’ve grown, this group has expanded in role to include leading, managing, and mentoring others who do so as well. Depending on how long someone has been working in Drupal, this community may be the universe they think of when it comes to Drupal, but there are many more:

  • Local communities and communities of interest, who do an invaluable job organizing and hosting meetups and camps, welcoming and onboarding new people into the project.
  • The Drupal business ecosystem, which is often recognized for contributing financial, code, and logistical support, but they are also on the forefront selling and marketing Drupal and expanding its reach into new sectors and organizations and creating an essential feedback loop with users.
  • Customers, who drive the demand for innovative features and talent, creating jobs, thorny technical challenges and momentum.
  • End users, who outnumber the rest of the communities combined and use Drupal day-to-day in their jobs. Their experience influences adoption and retention. Their needs and their ideas spur innovation.
  • Educators, who are training and inspiring the next generation of Drupal talent. A successful Drupal needs to represent the perspectives, contributions, and resources of all of its communities.
The Past, Present, and Future Role of the DA

This is where the Drupal Association comes in. As it has matured, the Drupal Association has begun to operate as a convener, a connector and a platform. The DA is a strategic partner for Drupal and its communities, identifying and matching various needs and opportunities together. It facilitates interactions, relationships and collaborations that help those of us within Drupal grow as a project, as companies, teams and organizations and as people.

Especially since its incorporation as a US-based nonprofit, the DA has worked to expand Drupal’s reach by building relationships with all the people who contribute to Drupal’s success. It has invested in forging new relationships with decision-makers such as CMOs, CIOs and CTOs and influencers while maintaining the support expected by established contributors and organizers. The Association has been listening to feedback and thinking strategically about the trends they are seeing within our own ecosystem and beyond.

There are gaps in governance and opportunities for growth beyond Europe and North America. Drupal has begun to scale project infrastructure and process. There is also some upcoming focus on leadership development and culture that is has been long in development and is very exciting. Drupal is growing and changing and the Drupal Association is growing and adapting to meet new challenges.

Change is not always easy, but here’s what I know: successful change management always comes down to people and that’s what gives me hope. Every single person at the DA, especially Megan Sanicki and her amazing team, operates with a deep care for the people in Drupal and a fierce commitment to the project. The DA is curious about new opportunities and trends, committed to learning and open to evolving however it can best and most uniquely serve Drupal.

Coming from the DA’s humble and very practical beginnings, there is so much to celebrate and yet still so much to learn and do as they tackle opportunities ahead. That work isn’t finished. It never is. The best part is that the DA doesn’t have to do any of this alone (nor could it). Drupal’s history has taught us to trust that we get help when we ask. The people of Drupal are generous with their time, talent and treasure and the DA is in very good hands.

It has been very hard to step away. Being a part of the Drupal Association leadership for so long has been one of the most rewarding experiences of my career and, to be honest, I would have gladly served again were it allowed. I already miss the work and my colleagues.

Thank you to everyone in the Drupal Association, past and present. Thank you especially to Dries for creating something so special and choosing to share it with the world. I will be forever grateful to have been able to contribute my talents in service to such a fantastic community with some truly amazing people. I wish all the best to Adam, Baddy, Ingo, Michel, Audra and George as they start their adventure. I look forward to seeing what amazing things the Drupal Association does next!


image credit: Dries Buytaert,

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

Sign up for our newsletter.

Palantir: See You at MidCamp!

Mon, 03/05/2018 - 23:32
See You at MidCamp! brandt Mon, 03/05/2018 - 16:32 Alex Brandt Mar 5, 2018

MidCamp 2018 is this week (March 8 - 11), and we have a few different presentations from Palantiri on the books.

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

Sign up for our newsletter.

MidCamp week is upon us! We love supporting this event because it always features well-curated Drupal-related content, and it’s a great way for us to connect with familiar faces in our local Drupal community. It’s also great for those currently involved in Drupal wanting to expand on their skillset, or for newbies just curious to learn more about Drupal.

Game Night Social

As is tradition, Palantir will be sponsoring Friday night’s Game Night Social. Grab a ticket to MidCamp, and join us for some friendly competition and tasty eats provided by Jarabe.

  • Time: Friday from 6pm – 9pm
  • Location: Onsite at DePaul, in the second floor common area
Palantiri Sessions

Trying to decide which sessions to attend? Why not check out one of ours!

You can follow along with MidCamp news on their Twitter (@midwestcamp) or using hashtag #MidCamp. We’ll see you later this week!

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

Sign up for our newsletter.

Dries Buytaert: How is moving government forms online

Mon, 03/05/2018 - 18:42

Josh Gee, former product manager for the City of Boston's Department of Innovation and Technology, recently shared how identified 425 PDFs used by citizens and moved 122 of them online. Not only did it improve the accessibility of's government services, it also saved residents roughly 10,000 hours filling out agency forms. While is a Drupal website, it opted to use SeamlessDocs for creating online forms, which could provide inspiration for Drupal's webform module. Josh's blog provides an interesting view into what it takes for a government to go paperless and build constituent-centric experiences.

Dries Buytaert: Drupal hooks vs Drupal events

Mon, 03/05/2018 - 18:28

Jonathan Daggerhart wrote a fantastic tutorial on Drupal 8's events system. I especially liked the comparison to Drupal's traditional hook system. When reading Jonathan's tutorial, I couldn't help but think how useful it would be to integrate it into Drupal's official documentation.

Colorfield: Drupal and Docker the easy way with Lando

Mon, 03/05/2018 - 18:22
Drupal and Docker the easy way with Lando christophe Mon, 05/03/2018 - 18:22 Ever thought about spinning up a Drupal 7 or 8 dev environment that is close to your production setup in minutes (Apache or Nginx, PHP 5.6 or 7.1, MySQL or Postgres, or ...)? Even better, you will be able to share the configuration with your team straight on your Git repository as a YAML file. Lando provides development environments (LAMP, LEMP, MEAN, ...) and other recipes for Drupal 6 to 8, Laravel, Backdrop, ... .

Deeson: Highlights from DrupalCamp London 2018

Mon, 03/05/2018 - 17:43

Over the weekend, several of us in the tech chapter at Deeson attended DrupalCamp London 2018. It’s always a great event, and one our own Tim Deeson helped co-found in 2013.

For me, returning to DrupalCamp was a chance to immerse myself in the community again, to catch up with some old friends, and put faces to people I’d only met on Twitter.

The Deeson developers attending the event had different levels of Drupal knowledge, so we didn’t stick together the entire time. Due to my relatively limited knowledge of Drupal 8 I attended two very informative, low level development talks about the internal workings of D8 and how the approach differs to that I already know well with D7.

The first was Drupal 8 Services and Dependency Injection, an introduction to creating custom services to use within your own modules. I also attended Let’s take the best route - Exploring Drupal 8 Routing System, which showed me that while the change to Symfony makes the code very different, it’s actually straightforward and consistent once you get into it.

A particular highlight was seeing our Lead Developer Mike Davis in action. He spoke about Warden – an open source solution Deeson built to allow in-house development teams and agencies to keep track of the status of multiple Drupal sites hosted on different platforms.

Here are a few of our other favourite sessions and highlights from the event…

“Hello User, I’m Drupal!”

This session from Gabriele Maira introduced Chatbot API – A Drupal module which enables site builders to serve their content via chat.

We’ve been speaking about conversational interfaces and chatbots for a while at Deeson, and it was really interesting to learn about the tools available for Drupal site builders. With Alexa and Dialogflow support out of the box, Chatbot API module is one to keep an eye on.

Katy Ereira, Senior Developer

Drupal in the era of Microservices.

I attended a talk by Wunder's CTO Florian Lorétan, where he discussed the ideas around using Drupal with Microservices. This is an interesting idea particularly where larger projects are concerned as it opens up the potential for large teams to collaborate more effectively. 

We currently use Docker as part of our own build process (which could be considered a microservice) and I wanted to see how this could be extended further and what other benefits could be yielded as a result.

It was very interesting to learn that automated tests, benchmarking, security testing and monitoring could all be done as mircroservices with Drupal and how the speed of deployment could be rapidly increased by using this approach.

Whilst this is relatively new, it's great to see people within the Drupal community exploring how microservices could be used with Drupal to speed up the development process, and I'm really looking forward to seeing what the future holds in this area. 

Rowan Blackwood, Developer

Building a contribution culture in a Drupal agency.

I've joined Deeson within the past year, and one of the key qualities that drew me to Deeson in the first place was its commitment to open source and support for contributing back to the community. So I was keen to hear a little more about how other companies foster their own contributions culture and have the opportunity to compare our own culture with another.

In his session @hussainweb reiterated the added value that you can create for yourself by making contributions to open source projects, and how his company has found ways to actively encourage individuals to make contributions.

What really stuck with me is the following three items:

  1. Open source contributions create Social Capital, and that's an investment you can recoup in other ways.
  2. Contributions are not just about actual code contributed - it's also about bug reporting, documentation, testing, speaking and writing, which are just as valuable efforts, and they should also be tracked, encouraged and rewarded.
  3. Don't be intimidated from extending open source projects. If you use it, treat it as your own upstream code and not a project that cannot be touched. Lose the fear of the project and contribute! 

James Ford, Senior Developer

Droptica: Droptica: How to add new button (plugin) to CKEditor pt. II

Mon, 03/05/2018 - 13:15
In one of our previous articles, we showed you how to configure CKEditor in Drupal 8. This time, we are going to demonstrate how you can expand the editor’s functionality on your own.   In the case of many websites, the basic functions of CKEditor are more than enough.  However, there are projects where clients demand expanding the functionality of the content editor. With CKEditor, you can do that using plug-ins – all of them are available on the official website.  Adding a new plug-in to the website based on Drupal 8 is very simple compared to the way it was done in the previous version of Drupal. All you need is to create a simple module.  

DrupalEasy: All the favicons on your Drupal 8 site

Sun, 03/04/2018 - 15:18

Every Drupal 8 site should have a custom favicon that helps to reinforce the site's brand - of this there is really no argument. But, over the past (more than a few) years, the role of the lowly favicon has grown from just the little icon on a browser tab. These days, favicons are also used on mobile devices as the gateway to your site. Keeping your brand strong in all contexts is more important than ever.

Luckily, the Responsive Favicons module, combined with Favicon Generator makes it pretty easy to keep your site's branding consistent across multiple platforms. 

Assuming you have a relatively square-ish version of the site's logo, making this all happen is pretty easy.

First - head to Favicon Generator, upload the site's logo, then review/tweak the settings for the various contexts. You'll be asked for the "App name" (usually the site's name), suitable background colors (I selected a nice pear-color for the DrupalEasy logo - you can see it in the iOS mockup above), as well as image overrides (optional) for each context. For the "Favicon Generator options", select the "I will place favicon files at the root of my web site" option (at the recommendation of the Responsive Favicons module maintainers). At the end of the process, you'll get a zipped file full of all the necessary icons and meta data. 

Next, download and install the Responsive Favicons module. Head to its configuration area (/admin/config/user-interface/responsive_favicons) and complete the form. For the "Path to responsive favicon files", I just used "favicons". The "Favicons tags" section is provided at the end of the Favicon Generator's process. Finally, point the zip file generated by the Favicon Generator to the final form field. Click to "Save configuration" and you should be all set!

Lessons like this (and much, much more) are taught during our 12-week, 3x/week Drupal Career Online course. Learn more and register for our free Taste of Drupal webinar to dive into the details of the course.

agoradesign: Using add to cart links instead of forms in Drupal Commerce 2

Sat, 03/03/2018 - 20:13
Today I'm introducing you to a new contrib module, I've created for allowing "add to cart" (or wishlist) buttons as links instead of forms. This helps to circumvent some unfortunate Drupal core limitations, when you want to build overview pages or blocks.

Ashday's Digital Ecosystem and Development Tips: Drupal Search: Solr vs Search Module

Fri, 03/02/2018 - 23:09

Drupal isn’t known as a particularly lightweight content management system and that is one of the reasons we love it, right? It is meant to handle large amounts of complex content. A problem occurs when you have a site that is just flush with content of different types, how do you get users to it? Navigation can only get you so far sometimes. We have personally seen this on everything from large-scale publishing sites to medical practice sites.

Jeff Potts: Quick look at Acquia Reservoir, a Headless Drupal Distribution

Fri, 03/02/2018 - 22:00

Drupal is a very popular open source Web Content Management system. One of its key characteristics is that it owns both the back-end repository where content is stored and the front-end where content is rendered. In CMS parlance this is typically called a “coupled” CMS because the front-end and the back-end are coupled together.

Historically, the coupled nature of Drupal was a benefit most of the time because it facilitated a fast time-to-market. In many cases, customers could just install Drupal, define their content types, install or develop a theme, and they had a web site up-and-running that made it easy for non-technical content editors to manage the content of that web site.

But as architectural styles have shifted to “API-first” and Single Page Applications (SPAs) written in client-side frameworks like Angular and React and with many clients finding themselves distributing content to multiple channels beyond web, having a CMS that wants to own the front-end becomes more of a burden than a benefit, hence the rise of the “headless” or “de-coupled” CMS. Multiple SaaS vendors have sprung up over the last few years, creating a Content-as-a-Service market which I’ve blogged about before.

Drupal has been able to expose its content and other operations via a RESTful API for quite a while. But in those early days it was not quite as simple as it could be. If you have a team, for example, that just wants to model some content types, give their editors a nice interface for managing instances of those types, and then write a front-end that fetches that content via JSON, you still had to know a fair amount about Drupal to get everything working.

Last summer, Acquia, a company that provides enterprise support for Drupal headed up by Drupal founder, Dries Buytaert, released a new distribution of Drupal called Reservoir that implements the “headless CMS” use case. Reservoir is Drupal, but most of the pieces that concern the front-end have been removed. Reservoir also ships with a JSON API module that exposes your content in a standard way.

I was curious to see how well this worked so I grabbed the Reservoir Docker image and fired it up.

The first thing I did was create a few content types. Article is a demo type provided out-of-the-box. I added Job Posting and Team Member, two types you’d find on just about any corporate web site.

My Team Member type is simple. It has a Body field, which is HTML text, and a Headshot field, which is an image. My Job Posting type has a plain text Body field, a Date field for when the job was posted, and a Status field which has a constrained list of values (Open and Closed).

With my types in place I started creating content…

Something that jumped out at me here was that there is no way to search, filter, or sort content. That’s not going to work very well as the number of content items grows. I can hear my Drupal friends saying, “There’s a module for that!”, but that seems like something that should be out-of-the-box.

Next, I jumped over to the API tab and saw that there are RESTful endpoints for each of my content types that allow me to fetch a list of nodes of a given type, specific nodes, and the relationships a node has to other nodes in the repository. POST, PATCH, and DELETE methods are also supported, so this is not just a read-only API.

Reservoir uses OAuth to secure the API, so to actually test it out, I grabbed the “Demo app” client UUID, then went into Postman and did a POST against the /oauth/token endpoint. That returned an access token and a refresh token. I grabbed the access token and stuck it in the authorization header for future requests.

Here’s an example response for a specific “team member” object.

My first observation is that the JSON is pretty verbose for such a simple object. If I were to use this today I’d probably write a Spring Boot app that simplifies the API responses further. As a front-end developer, I’d really prefer for the JSON that comes back to be much more succinct. The front-end may not need to know about the node’s revision history, for example.

Another reason I might want my front-end to call a simplified API layer rather than call Drupal directly is to aggregate multiple calls. For example, in the response above, you’ll notice that the team member’s headshot is returned as part of a relationship. You can’t get the URL to the headshot from the Team Member JSON.

If you follow the field_headshot “related” link, you’ll get the JSON object representing the headshot:


The related headshot JSON shown above has the actual URL to the headshot image. It’s not the end of the world to have to make two HTTP calls for every team member, but as a front-end developer, I’d prefer to get a team member object that has exactly what I need in a single response.

One of the things that might help improve this is support for GraphQL. Reservoir says it plans to support GraphQL, but in the version that ships on the Docker image, if you try to enable it, you get a message that it is still under development. There is a GraphQL Drupal module so I’m sure this is coming to Reservoir soon.

Many of my clients are predominantly Java shops–they are often reluctant to adopt technology that would require new additions to their toolchain, like PHP. And they don’t always have an interest in hiring or developing Drupal talent. Containers running highly-specialized Drupal distributions, like Reservoir, could eventually make both of these concerns less of an issue.

In addition to Acquia Reservoir, there is another de-coupled Drupal Distribution called Contenta, so if you like the idea of running headless Drupal, you might take a look at both and see which is a better fit.

Mediacurrent: Friday 5: 5 Ways to Secure Your Drupal Site

Fri, 03/02/2018 - 17:23

Happy Friday Everyone! On the eve of the Drupal Drive-in, happening tomorrow in Charolette North Carolina, we welcome Mark Shropshire to the show to talk about his favorite topic, Drupal Security!

orkjerns blogg: Updating to Drupal 8.5 with composer

Fri, 03/02/2018 - 13:03
Updating to Drupal 8.5 with composer admin Fri, 03/02/2018 - 12:03

If you are like me, you might have already started planning the upgrade to Drupal 8.5, now that the first release candidate is out. It's awesome by the way, among other things, thanks to the incredible work done with layout builder. And if you are more like me, you are managing your sites with composer. Then, depending on the rest of your project, you might (also like me), have encountered some initial problems upgrading to Drupal 8.5

Having hit my fair share of composer oddities with running the composer monitor and upgrade service, I wanted to compile a couple of error messages along with solutions, to the folks struggling with this out there.

Installation request for webflo/drupal-core-require-dev (locked at 8.4.5, required as ~8.4) -> satisfiable by webflo/drupal-core-require-dev[8.4.5].

If you have installed an out of the box version of, this might be an error message you encounter. Full error message, for reference:

./composer.json has been updated > DrupalProject\composer\ScriptHandler::checkComposerVersion Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - webflo/drupal-core-require-dev 8.4.5 requires drupal/core 8.4.5 -> satisfiable by drupal/core[8.4.5] but these conflict with your requirements or minimum-stability. - Installation request for webflo/drupal-core-require-dev (locked at 8.4.5, required as ~8.4) -> satisfiable by webflo/drupal-core-require-dev[8.4.5]. Installation failed, reverting ./composer.json to its original content.

The reason this fails is that the project you have created is depending on the dev packages for drupal core, which are tied to a specific version of core. So to update core, we also need to update the dev packages for core.

The solution to this is pretty simple:
Open your composer.json file and replace the lines for drupal/core and webflo/drupal-core-require-dev with the following:

"drupal/core": "~8.5" // ...and "webflo/drupal-core-require-dev": "~8.5"

Afterwards you can go ahead and run:

composer update drupal/core webflo/drupal-core-require-dev --with-dependencies Installation request for symfony/config (locked at v3.2.14) -> satisfiable by symfony/config[v3.2.14].

This probably comes from the fact that you also have some other packages depending on this specific Symfony package in your project. Like drush or drupal console. Here is a full error message, for reference:

Loading composer repositories with package information Updating dependencies (including require-dev) Your requirements could not be resolved to an installable set of packages. Problem 1 - Conclusion: don't install drupal/core 8.5.0-rc1 - Conclusion: don't install drupal/core 8.5.0-beta1 - Conclusion: don't install drupal/core 8.5.0-alpha1 - Conclusion: don't install drupal/core 8.6.x-dev - Conclusion: remove symfony/config v3.2.14 - Installation request for drupal/core ~8.5 -> satisfiable by drupal/core[8.5.0-alpha1, 8.5.0-beta1, 8.5.0-rc1, 8.5.x-dev, 8.6.x-dev]. - Conclusion: don't install symfony/config v3.2.14 - drupal/core 8.5.x-dev requires symfony/dependency-injection ~3.4.0 -> satisfiable by symfony/dependency-injection[3.4.x-dev, v3.4.0, v3.4.0-BETA1, v3.4.0-BETA2, v3.4.0-BETA3, v3.4.0-BETA4, v3.4.0-RC1, v3.4.0-RC2, v3.4.1, v3.4.2, v3.4.3, v3.4.4]. - symfony/dependency-injection 3.4.x-dev conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA3 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-BETA4 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-RC1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.0-RC2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.1 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.2 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.3 conflicts with symfony/config[v3.2.14]. - symfony/dependency-injection v3.4.4 conflicts with symfony/config[v3.2.14]. - Installation request for symfony/config (locked at v3.2.14) -> satisfiable by symfony/config[v3.2.14].

The solution here is to indicate you also want to update this package, even if it's not specifically required. So if the failing command was the following:

composer update drupal/core --with-dependencies

Go ahead and change it to this:

composer update drupal/core symfony/config --with-dependencies

If you have other error messages, I would be glad to help out with a solution, and post the result here.


Thanks to zaporylie for looking into this with me, and to Berdir for pointing out the fact that core is not the package that requires symfony/config.

Let's finish this post with an animated gif of a composer

Wim Leers: API-First Drupal: what's new in 8.5?

Fri, 03/02/2018 - 12:11

Now that Drupal 8’s REST API 1 has reached the next level of maturity, I think a concise blog post summarizing the most important API-First Initiative improvements for every minor release is going to help a lot of developers. Drupal 8.5.0 will be released next week and the RC was tagged last week. So, let’s get right to it!

The REST API made a big step forward with the 5th minor release of Drupal 8 — I hope you’ll like these improvements :)

Thanks to everyone who contributed!

  1. text fields’ computed processed property exposed #2626924

    No more need to re-implement this in consumers nor work-arounds.

    "body":{ "value":"<p>Hi!</p><script>alert('foo')</script>", "format":"basic_html" }

    "body":{ "value":"<p>Hi!</p><script>alert('foo')</script>", "format":"basic_html", "processed":"<p>Hi!</p>" }
  2. uri field on File gained a computed url property #2825487

    "uri":{"value":"public://cat.png"} ⬇ "uri":{"url":"/files/cat.png","value":"public://cat.png"}

  3. Term POSTing requires non-admin permission #1848686

    administer taxonomy permission ⬇ create terms in %vocabulary% permission

    Analogously for PATCH and DELETE: you need edit terms in %vocabulary% and delete terms in %vocabulary%, respectively.

  4. Vocabulary GETting requires non-admin permission #2808217

    administer taxonomy permission ⬇ access taxonomy overview permission

  5. GET → decode → modify field → encode → PATCH → 403 200 #2824851

    You can now GET a response, modifying the bits you want to change, and then sending exactly that, without needing to remove fields you’re not allowed to modify. Any fields that you’re not allowed to modify can still be sent without resulting in a 403 response, as long as you send exactly the same values. Drupal’s REST API now implements the robustness principle.

  6. 4xx GET responses cacheable: more scalable + faster #2765959

    Valuable for use cases where you have many (for example a million) anonymous consumers hitting the same URL. Because the response is not cacheable, it can also not be cached by a reverse proxy in front of it. Meaning that we’ll have hundreds of thousands of requests hitting origin, which can bring down the origin server.

  7. Comprehensive integration tests + test coverage test coverage

    This massively reduces the risk of REST API regressions/changes/BC breaks making it into a Drupal 8 release. It allows us to improve things faster, because we can be confident that most regressions will be detected. That even includes the support for XML serialization, for the handful of you who are using that! We take backwards compatibility serious.
    Even better: we have test coverage test coverage: tests that ensure we have integration tests for every entity type that Drupal core’s stable modules ship with!
    Details at API-First Drupal — really!. Getting to this point took more than a year and required fixing bugs in many other parts of Drupal!

Want more nuance and detail? See the REST: top priorities for Drupal 8.5.x issue on

Are you curious what we’re working on for Drupal 8.6? Want to follow along? Click the follow button at REST: top priorities for Drupal 8.6.x — whenever things on the list are completed (or when the list gets longer), a comment gets posted. It’s the best way to follow along closely!2

The other thing that we’re working on for 8.6 besides the REST API is getting the JSON API module polished to core-worthiness. All of the above improvements help JSON API either directly or indirectly! More about that in a future blog post.

Was this helpful? Let me know in the comments!

Thanks to Ted for reviewing a draft of this blog post! And sorry for not changing the title to API First Drupal in 8.5.0: Amazing progress because of tedbow’s work on setInternal properties!!!!!!!!! even though that would’ve been totally accurate :D

For reference, historical data:

  1. This consists of the REST and Serialization modules. ↩︎

  2. ~50 comments per six months — so very little noise. ↩︎

  • API
  • Acquia
  • Drupal