Evolving Web: 9 Frequently Asked Questions About Drupal 7 End of Life

Planet Drupal - Mon, 2022/01/17 - 9:01pm

If your organization is still using Drupal 7, it's time to get serious about migrating to Drupal 9. Drupal 7's end of life is quickly approaching, and there is a lot for you to think about. So we've assembled some commonly asked questions to help guide your next steps.

💻 Webinar: Learn more about Drupal 9 migrations at scale for Higher Education websites

What Does "End of Life" Mean?

On November 28, 2022, the Drupal community will officially stop supporting Drupal 7. That means no more community-based updates like bug fixes, new features, or security updates.

How is Drupal 9 Different from Drupal 7?

Familiar functionality like content types, views, taxonomy, roles and permissions, and the separation of content and presentation is still in place. However, there are huge leaps forward in terms of technology, architecture and features. Let's see some of Drupal 9's key benefits when compared to Drupal 7:

  • Major improvements to the editor experience - Drupal 9's editor experience is more accessible and user-friendly than ever, with intuitive, thoughtfully designed tools. Editors are empowered with drag-and-drop page layouts, edit-in-place capabilities, integrated workflow management, and a recently-introduced content-staging feature called Workspaces.
  • API-first architecture - With an emphasis on web services with REST and JSON, Drupal is built for flexibility and interconnectedness. The option to go headless/decoupled allows Drupal to function as a data service for applications, or simply free developers to create themes and interfaces with their preferred frameworks. Drupal 9 can also readily share data and integrate with other technologies and services.
  • Improved performance - With Drupal 9, your website will benefit from performance improvements, including more sophisticated caching schemes, the BigPipe core module that supports lazy loading of selected elements, and more efficient coding conventions.
  • Technology and architecture - The building blocks of the platform have been reworked to become more powerful and future-ready:
    • Object-Oriented Programming
    • Symfony & Composer
    • APIs and RESTful Web Services
    • YAML
    • More data source options
    • Twig
    • Headless/Decoupled capability
Why Are We Upgrading to 9 Instead of 8?

Drupal 8 reached end of life on November 2, 2021. While the Drupal 7 date was pushed out an extra year due to the challenges of the Covid-19 pandemic, Drupal 8's end of life was driven by the end of support for Symfony 3 and could not be changed.

All that said, it's not necessary to migrate to D8 before D9. While Drupal 9 includes a number of improvements over Drupal 8, it maintains backward compatibility and is largely the same under the hood.

Migrations from Drupal 7 to Drupal 9 were also anticipated: Drupal 9's core Migrate Drupal module provides tools to help you get started with migrating from Drupal 7.

How Much Work Is It to Upgrade from Drupal 7 to 9?

There's really no getting around it: this is a major upgrade. Starting with version 8, Drupal's underlying technologies and architecture were thoroughly renovated to create a more powerful and future-ready platform.

This creates exciting possibilities for both organizations and their end-users, but it does require significant resources and planning to make that leap. There are new technologies and practices to learn, modules and themes to rebuild, content to be audited, and goals to be reimagined.

The good news is that this is a one-time deal. Along with its architecture, Drupal's approach to version releases was revamped. In the future, upgrading to a new major release will be more like keeping up with minor releases, and won't require a major overhaul.

What If I Stay on Drupal 7?

Obviously, moving from Drupal 7 to Drupal 9 is a big job. But what happens if you don't?

First, rest assured that your site will continue to function. However, without active community support, there will be no more bug fixes or feature updates to modules and Drupal core. Some limited security fixes will continue through November 2025, via the Drupal 7 Extended Vendor Support program.

However, as more time passes, you will fall further behind innovations, and it will become increasingly challenging to meet your users' needs.

Security will become more of a concern as the community-based Drupal Security Team stops monitoring Drupal 7 and releasing security advisories and updates. Finally, any third-party plugins or other integrations may eventually stop working, as their providers deprecate them for more modern technologies incompatible with Drupal 7.

Maintaining full functionality will require large amounts of maintenance time or paid agency support. This cost will only exist to maintain the status quo, not result in financial growth or operational improvements.

Staying the course with Drupal 7 may feel like the simplest choice, but, in time, it will drain more resources and put your organization's mission at risk.

Should I Switch to a Different CMS?

Moving from Drupal 7 to 9 might be a significant undertaking. However, it will probably be more expensive and disruptive to change platforms entirely. If you move away from Drupal, you'll need to reassess the architecture, capabilities, and features of your website and its integrations from scratch. There's also a cost to onboarding on new technologies and product ecosystems.

But more importantly, you'll be losing the benefits that only a content-rich open source platform can provide: its flexibility and security, the improvements to accessibility and content editor experience, and efficient data portability. All that said, don't underestimate how much your team will appreciate the improvements that Drupal 9 has to offer. If your team is looking to upgrade their Drupal skills to get ready for Drupal 9, our Drupal training programs are designed to help you.

What If a Contributed Module Is Not Available Yet for Drupal 9?

Running the Upgrade Status module will help you identify which modules have Drupal 9 versions available or recommended replacements. If a module you're using is not available in Drupal 9, you can check if the functionality you're looking for is now available in Drupal core, or see if another module is available that provides the same feature. Remember that moving to Drupal 9 tends to reduce the number of contributed modules a website needs.

If there's no module available, this guide to upgrading modules to Drupal 9 will help you get started.

Where Do I start?

Initiating the migration from Drupal 7 to Drupal 9 is much like launching any major project. Before digging into how to approach specifics, take some time to evaluate the technical aspects and what this project and the new platform mean for your organization.

  • Evaluate your UX - Moving to Drupal 9 can be an opportunity to make big improvements to your user experience and functionality. Identifying whether this is a major goal should be the first step since it defines so many aspects of your project.
  • Identify your stakeholders - How have your audiences and stakeholders evolved since your last big rebuild? Who are they today, and what do they need from this?
  • Define your goals - What is your organization's mission? How do you measure success? How can your new platform contribute to that success and better serve your stakeholders?
  • Assemble your team - Who do you have that can contribute to this project? Who are you missing, and can you get them?
  • Audits and self-assessment - This is a big one. Content and technical audits are your opportunity to evaluate what you've been working with critically. What needs to be migrated, reworked, or discarded? What expertise is missing from my team, and what would it take to acquire it? What is the scope of our project, and do we have the resources to handle it ourselves?
  • Seek outside help where needed - After getting as far as you can with these questions, explore your options for teaming with an agency to provide the support you need for a successful migration.

📖 D9 migration: agency or in-house? Download our free eBook and see your best options!

Will I Have to Do This Again for Drupal 10?

Don't worry. Moving from Drupal 9 to 10 won't be another big project.

Drupal 10's release is scheduled for June 2022, with a final fallback date of December 2022. When that happens, the upgrade process from Drupal 9 to 10 should be relatively simple, as it has been going from Drupal 8 to 9.

This should be your last big Drupal migration, and if you need us, we're here to help.

Need help migrating to Drupal 9? Get in touch!


//--> + more awesome articles by Evolving Web

Talking Drupal: Talking Drupal #330 - Remote Development on a LAN

Planet Drupal - Mon, 2022/01/17 - 8:00pm

Today we are talking about Remote Development on a LAN.


  • John - Don’t Look Up
  • Stephen - Docker Desktop no longer free
  • Nic - Snowman – Computer
  • Remote development on a LAN
  • What remote development is
  • History behind approach
    • Mixed env
    • Solution for overheating on Mac and performance
    • BLT
    • 30 seconds on Linux 20 minutes on Mac
  • Key concepts
    • Best tool
    • Desktop of choice
    • Linux box
      • LAMP
      • Code
      • Git
    • Desktop
      • Browser
      • IDE
      • Terminal
  • Benefits
  • Challenges
  • Key takeaways
  • Getting started
Resources Hosts

Nic Laflin - www.nLighteneddevelopment.com @nicxvan John Picozzi - www.epam.com @johnpicozzi Stephen Cross - @stephencross

  • External Links
  • External Links is a small module used to differentiate between internal and external links. Using jQuery, it will find all external links on a page and add an external icon indicating it will take you offsite or a mail icon for mailto: links.

Web Omelette: Permissions updates in Drupal 9.3

Planet Drupal - Mon, 2022/01/17 - 10:43am

In this article I want to give you an update on a couple of changes to the permissions system included in Drupal 9.3.0, first released on 8 December 2021.


clemens-tolboom pushed to fs-test-non-file-or-dir-or-link in clemens-tolboom/deno_std

On github - Sun, 2022/01/16 - 9:56am
clemens-tolboom pushed to fs-test-non-file-or-dir-or-link in clemens-tolboom/deno_std Jan 16, 2022 2 commits to fs-test-non-file-or-dir-or-link

OpenSense Labs: Celebrating Drupal’s 21st Birthday

Planet Drupal - Sat, 2022/01/15 - 2:44am
Celebrating Drupal’s 21st Birthday Maitreayee Bora Sat, 01/15/2022 - 11:29

It’s that time of the year for which all the Drupalists around the world eagerly wait for. Guess what? It’s Drupal’s 21st birthday! Cheers to every astonishing Drupal contributor for their spectacular contributions to the Drupal community. Without their honest efforts, we wouldn’t have got the opportunity to celebrate the journey of this phenomenal CMS. So, what are you waiting for? Let’s start the party! 

Today on the occasion of Drupal’s 21st birthday, let’s cherish the incredible contributions that Drupal has made to the community. I mean, who wondered that a young 22-year-old boy would make such a huge impact on the world with his extraordinary vision. From the Drupal 1.0 release in 2001 to the Drupal 9 release in 2020, the Drupal community led by Dries Buytaert, founder and project lead of Drupal, has left no stones unturned to evolve and transform with each passing year. 

A big year for Drupal and its splendid contributions

Just a year ago, we were celebrating two decades of Drupal! 2021 has been a remarkable year for the entire Drupal community. There are many things to talk about. Well let me start with Drupal 8 end-of-life. 2nd November 2021 was marked as the Drupal 8 end-of-life with the door open for easy upgrade to Drupal 9. Drupal’s responsible community spent hours creating automation and tools in order to make the migrating process to Drupal 9 as smooth as possible. All your burning questions on Drupal 9 upgrade answered here. Also, by adopting GitLab, Drupal modernized its collaboration tools giving the users a whole new experience. In the midst of all such efforts given to transform Drupal, let me here give you an honest insight into Drupal's contribution dynamics. Just take a look at the image below. 

Source: Drupal.org

What do you understand from these above metrics? There has been a downfall in the contributors in comparison to the previous years. Isn’t it ? This made the community panic for a while. But then that’s not all. To get a proper understanding of this situation, a closer look was taken at the attrition rate of Drupal's contributors. And then the data was compared to the industry averages for software and services companies. Now, take a look below at what was found.  

Source: Drupal.org

A 15 percent attrition rate is regarded as good for software and services companies, while Drupal's attrition rate for its Top 1,000 contributors is just 7.7 percent. Also, the attrition rate for Drupal agencies among the Top 250 organizations is just only 1.2 percent. So, do you think there is any need to feel worried? Not really. In fact, we can be satisfied with having a very loyal, strong, and resilient community of Drupal contributors. 

We can even celebrate the success of our user’s massive migration to Drupal 9. Surprisingly, we could set a record of 0 to 60,000 websites in a span of just one month. Also, after 10 months of the release of Drupal 9, 90 percent of the top 50 modules were ready for Drupal 9. Isn’t that amazing? 

Despite the challenges of the pandemic, 2021 was the year that gave many opportunities to the Drupal community for sharing knowledge and connecting with each other. DrupalCon Europe and DrupalCon North America were successfully conducted where Dries shared his prospect on Drupal’s future and the roadmap for Drupal 10 that inspired the Drupalists around the world to make meaningful contributions to the community. Why not take a look at the events below?


What’s coming up in the future?

Aren’t we curious to know about Drupal’s future? I suppose we are. There will be a lot of things to look upon. Like, one of the important events for Drupal in 2022 will be Drupal 7's end of life in November. It’s well known that most of the organizations will be planning to migrate from Drupal 7 to Drupal 9. Also, with Drupal 7 behind us, future versions of Drupal will become less complicated, and we will witness a much greater significance on continuous enhancement through feature releases. 

Thereafter, comes the launch of Drupal 10 which is presently planned for June 2022. Dries Buytaert confirmed that the upgrade from Drupal 9 to 10 is expected to be the same smooth upgrade approach that was encountered during the upgrade from Drupal 8 to 9. We can even look forward to crucial developments in new features in Drupal core that includes Decoupled menus, Easy out of the box, Automatic updates, Drupal 10 readiness, and New front-end theme initiative in the coming times. 

2021 proved to be a magnificent year for Drupal with the unparalleled contributions and remarkable efforts of the Drupalists around the globe. I am pretty sure that the whole world awaits the release of Drupal 10 and most importantly let us all keep working towards further advancements of  Drupal with the best of our abilities and make 2022 an even bigger year for the Drupal project. Once again, a very happy 21st birthday to Drupal! Still many decades to follow.

Articles Off

MidCamp - Midwest Drupal Camp: MidCamp 2022 Canceled

Planet Drupal - Fri, 2022/01/14 - 9:48pm
MidCamp 2022 Canceled

As discussed in October/November we’ve been waiting things out to make further plans for MidCamp 2022. We’re still not confident enough in the state of the world in March to continue making plans for MidCamp and as such the leadership team has decided to cancel the event for this year.

I’d like to thank all of you for your persistence and dedication to MidCamp throughout the pandemic. We’ve pushed the entire Drupal community forward in thinking about virtual events—we made them more inclusive, more fun, and more engaging and we all have a lot to be proud of.

Going forward, the Chicago Drupal community could really use some new leadership. If you're interested in answering the call, join the conversation on the MidCamp Slack.

What’s next is up to you. I appreciate you all. Be safe.



LakeDrops Drupal Consulting, Development and Hosting: State of ECA: What's new in Drupal's new rules engine with beta-2

Planet Drupal - Fri, 2022/01/14 - 9:36am
State of ECA: What's new in Drupal's new rules engine with beta-2 jurgenhaas Fri, 01/14/2022 - 09:36

in has been intense over the last 4 months, since we first presented this new

What's known as plugin or addon in other platforms, is what we call a module in the Drupal universe. Drupal core itself is a a collection of modules as well and the community has added and maintains tens of thousands of individual modules on top of that.

to the

The enterprise OpenSource content management system which is available for free at https://www.drupal.org where you can find all the details and also references.

Drupal has a very active community with tens of thousands of developers all around the world and they also have a huge focus on standard compliance and on security.

community. Let's catch up with all the features and ideas, that already made it into it.

Who is working on it

In addition to the code maintainers Daniel, JĂĽrgen, Max and Richard we also have supporting team members like Nico who contributed a nice logo, Ralf who helps us to get the word out and provides feedback - and a few others who already started using ECA and report back in the issue queue with issues and feature requests. This helped us a lot to stay focused and move towards a first stable release in such a short period of time.

How we moved forward

Although still in early stage, we optimized the core components by changing how ECA stores its config entities, as well as the caching mechanism to further reduce the performance impact when using ECA in production environments. The overhead ECA brings to your live site is negligible, it only consumes resources if something needs to be done as a result of configured events that your ECA models want to react upon.

The code structure got an overhaul too. There is now ECA Core which provides the config entity handling, the ECA processor, all required plugin managers and numerous interfaces, traits and base classes used by the now 10 submodules that comes with ECA:

  • ECA Base: provides access to context, cron, custom events, state system and tokens
  • ECA Config: integrates with Drupal's CMI
  • ECA Content: supports content entities, fields API and more tokens
  • ECA Form: integrates with Drupal's form API
  • ECA Migrate: integrates with events of the migrate module
  • ECA Misc: make available events from Symfony's kernel, Drupal core and the routing system
  • ECA Queue: allows to enqueue tasks for asynchronous or scheduled processing
  • ECA User: integrates with user account related events and actions like login, logout, cancel, account switching and roles
  • ECA Views: allows processing of views with further processing or exporting of the result set
  • ECA

    Working in teams, but also for individuals, it is helpful if not required to define the key processes, especially those that will be repeated, in a structured way. Such a definition is then called a workflow and it serves multiple purposes. First of all it can be used as a checklist such that the people in charge of a task can walk through the workflow and followed the previously specified sequence. In addition, a workflow definition improves quality of output as it almost guarantees the final result of such a process to meet the standards previously defined. And last but not least, such a workflow specification is excellent input for somebody who is in charge of developing the automation of very regular tasks.

    : integrates into Drupal's content moderation framework

Note that all of ECA depends solely on Drupal core and the new remarkable Context Stack module from Max, which we extracted from the ECA code base simply because its functionality is useful for other tools too. This is intentional so that you can easily onboard ECA without the requirement to have any other components being installed or enabled.

General features built into ECA core

With all the submodules enumerated above, you already get comprehensive lists of events, conditions and actions from either ECA or from Drupal core. Additionally, ECA has baked-in support for crucial APIs and functionality, that needs highlighting:

  • Context Stacks: each process triggered by any event as well as any action of such processes get executed within their own (stackable) context, so that ECA can restore the context after execution to the state it was right before processing. This not only makes each process predictable, but also allows to forward the current context into the queue, should a model want to process actions asynchronously.
  • Caching: all ECA models get cached in a special way such that ECA can determine, with almost no overhead, whether any of the triggered events in your Drupal site needed to be processed by ECA.
  • Loops: by default, actions in an ECA model operate on some data object, which often is something like a content entity, a route, an HTTP request or any other arbitrary value. If you provide a list of objects instead of a single instance, then ECA automatically loops over each of them with the subsequent actions in the process model.
  • Logging: everything in ECA is built to provide detailed log information, which is written to Drupal's logger service. It depends on your own setup, if that logging information is being written to watchdog, syslog or elsewhere. To avoid overwhelming logs just from ECA, you can configure the level of log information coming from ECA with a single setting, defaulting to error messages and exceptions only.
  • States: reading and writing from and to Drupal's state system helps to persist some data for later use, even if this is required over a longer timeframe.
  • Tokens: Drupal core's token environment is already pretty powerful. ECA builds on top of it and enhances it by introducing DTOs (Data Transfer Objects). This mechanism allows any event, condition or action in an ECA model to store any data into the token environment so that subsequent components of that model can access that data for further processing if needed.
  • TypedData: one of the most significant features and presumably the most used conditions and actions are around entity fields. Those fields can be more complex than just storing individual values, they can even store values with any cardinality. To allow ECA models generic access to any component of such fields, the TypedData API is the ideal tool provided by Drupal core, which has been utilized by ECA.
  • Recursion prevention: it may happen unintentionally, but ECA models, like any other rule definition, can quickly end up in a recursion. The simplest use case might be an entity update, which results in a process that makes additional modifications to that entity - being another entity update that already starts a recursion. As this would always lead towards an infinite loop, something you prefer not to experience on your production site, ECA inevitably prevents that from happening. Even at the cost of preventing you from building certain models. However, there should always be a way around that - and the issue queue on drupal.org or this Slack channel are great places to seek help in such situations.
Working on test coverage

We've already started building tests, from simple unit test to kernel and functional tests, but also a powerful framework to test any ECA model regardless how complex they are. This helps us to keep moving with ECA development while ensuring that existing functionality remains intact. Having said that, there's a lot that needs to be done to bring the test coverage to the necessary level. This is what we're focussing on in the weeks to come.

Integrating with other modules

Now that ECA core with all its integrated submodules stabilizes its own APIs, the time is right to start working with other maintainers of popular and useful modules, to make their functionality available to ECA and its models. The list of modules, we would like to integrate with, is being tracked in this issue and if anyone wanted to add more modules to the list, this is the right place to get the ball rolling.

Talking about the UI provided by modellers

As powerful and feature rich the ECA framework already is, it still requires the UI component which allows users to create and maintain their models. This is a separate task and completely decoupled from ECA as the backend processor. The component we're talking about here is called a modeller. And there can be more than just one. BPMN as one of the popular standards to describe business processes is supported by a variety of applications that allow to work with such models, two of which have already been integrated with ECA: Camunda and BPMN.iO. But others, even such that are not based on BPMN, can be integrated as well, and we hope to see initiatives who want to get started on such modeller development.

However, what matters to all the existing and future modeller UIs, is a great user experience (UX). This is what we haven't worked on yet for the existing integrations, and that's one of the areas where we have to spend more resources - but we also need help for that. The existing ECA team is busy with all the processing and background tasks. To move more quickly with the UI too, we're seeking for help.


A lot has been achieved! And I mean, A LOT. The team is really proud of it and feedback we receive is very positive too. We even consider ECA very close to being feature-complete for its 1.0 release soon. Yes, we admit, there is a way to go before it will be usable by "mainstream" users. The UI components mentioned above as well as comprehensive documentation are just the 2 main tasks that come to mind.

Having said that, it turns out that ECA not only accomplished its original objective to provide a "Rules" replacement for Drupal 9 and beyond, it also delivers benefits above and beyond that mission with 2 additional wins:

  1. Reduce the likelihood of writing a custom module for a client, only because you required a hook or a form alter function, that can now also been done with ECA.
  2. Eliminate the requirement for a number of helper modules that provide simple functionality like redirects after login or validating, stripping, trimming or otherwise manipulating certain fields.

In other words, the feature set provided by ECA is huge, yet it can reduce the complexity of any Drupal installation out there. And while doing it this way, ECA also improves transparency and maintainability by storing all the rules in one place, where it can be visualized, reviewed and even moderated so that all stakeholders get a better understanding of what's being implemented and configured at any given time. It also increases accessibility for users who understand the business logic implemented into a Drupal site but wouldn't ever be able or willing to dive deep into Drupal logic or even code base.

Let's move on with ECA, it's got that far that we're all very excited and motivated to move it over the finish line. Watch this space to stay up to date - or reach out on drupal.org or in Slack, if you either have ideas, feature requests or resources to help us get all this done.

Tags Tools Drupal Projects ECA: Event - Condition - Action Add new comment

Community Working Group posts: Nominations are now open for the 2022 Aaron Winborn Award

Planet Drupal - Fri, 2022/01/14 - 12:01am

The Drupal Community Working Group is pleased to announce that nominations for the 2022 Aaron Winborn Award are now open. 

This annual award recognizes an individual who demonstrates personal integrity, kindness, and above-and-beyond commitment to the Drupal community. It includes a scholarship and travel stipend for the winner to attend DrupalCon North America and recognition in a plenary session at the event.

Nominations are open to all Drupal community members*, including but not limited to people who have made a big impact in their local or regional community. If you know of someone who has made a big difference to any number of people in our community, we want to hear about it. 

This award was created in honor of long-time Drupal contributor Aaron Winborn, whose battle with Amyotrophic lateral sclerosis, or  ALS (also referred to as Lou Gehrig's Disease)  came to an end on March 24, 2015. Based on a suggestion by Hans Riemenschneider, the Community Working Group, with the support of the Drupal Association, launched the Aaron Winborn Award.

Nominations are open until Friday, March 25, 2022. A committee consisting of the Community Working Group members (Conflict Resolution Team) as well as past award winners will select a winner from the nominations. 
* Current members of the CWG Conflict Resolution Team and previous winners are not eligible for winning the award.

Previous winners of the award are:

2015: Cathy Theys 
2016: Gábor Hojtsy 
2017: Nikki Stevens  
2018: Kevin Thull 
2019: Leslie Glynn  
2020: BaddĂ˝ Breidert
2021: AmyJune Hineline 

Now is your chance to show, support and recognise an amazing community member!

If you know someone amazing who should benefit from this award please submit a nomination.


Bounteous.com: Planning Your Drupal 7 to Drupal 9 Migration

Planet Drupal - Wed, 2022/01/12 - 5:38pm
With Drupal 7 support ending in late 2022, it's time to plan your next steps! Here are key considerations as you prepare to upgrade to Drupal 9.

BADCamp News: Sun, Fun & Drupal: Florida DrupalCamp Returns In Person and a few words about SFDUG

Planet Drupal - Wed, 2022/01/12 - 5:23pm
Sun, Fun & Drupal: Florida DrupalCamp Returns In Person and a few words about SFDUG Wed, 01/12/2022 - 12:00 volkswagenchick Wed, 01/12/2022 - 08:23 We have missed our Drupal friends immensely and really are excited that the Drupal Community is opening up again and having in-person events. Our friends at Florida DrupalCamp were the last to hold an in-person camp-event in North America in Feb 2020, and they are the first to reconvene in person. They will be meeting in person Feb 18-20 in sunny Orlando Florida. Several of our organizers, past attendees, and volunteers will be attending so we want to share some details from their organizers. Drupal Planet

DevCollaborative - Planet Drupal: Enhance Your Drupal Website’s Authoring Experience Part 1 - Modernize the Admin Theme with Gin

Planet Drupal - Wed, 2022/01/12 - 5:01pm
Something as simple as switching the administrative theme can have a big impact on the usability of your website for sighted users, thanks to the law of the aesthetic-usability effect.

Evolving Web: The Future of Web Content Publishing in the Canadian Government with Drupal WxT

Planet Drupal - Wed, 2022/01/12 - 4:16pm

Co-created with Nathan Vexler, Trainer at Evolving Web with 9 years of Government of Canada/Higher Education developer experience.

The Canada.ca domain is home to the subdomains and websites of hundreds of Canadian government departments and agencies. While each has its own function, they're all joined in their mission to inform and serve the people of Canada.

Despite this unity, these websites face major challenges in sharing information with the public:

  • Different information architecture and content types on each website results in a confusing user experience.
  • Siloed workflows slow down content publication and promotion.
  • Use of different content management systems hampers integration between websites and departments.
  • Lack of structured metadata makes content meaningless to other systems, resulting in missed opportunities to reach the public.
  • Ensuring that content is fully accessible and translated in both official languages.

Implementing a standardized content model and the methodical selection and configuration of a CMS can help overcome these issues. In a recent webinar, my fellow Drupalist Nathan Vexler and I looked at how Drupal—and the Drupal WxT distribution of Drupal in particular—is an ideal tool for Government of Canada websites. In this article, we'll present some takeaways from the webinar. If you prefer to watch the full video, you can access it here.

Leveraging Key Modern CMS Capabilities

Content creation and management practices vary across Government of Canada (GoC) departments and agencies. While some have implemented modern conventions like structured content, rich metadata, and efficient workflows, others are lagging.

Even where fully-featured CMSs are implemented, day-to-day publishing often relies on barebones practices, with copy-and-paste HTML blobs and manually-created teasers and snippets. This reality turns publishers into mere CMS gatekeepers and creates bottlenecks in the publishing process.

This doesn't work for end-users, either. Stretched content resources result in content publishing lags, uncorrected errors, and frustrating searches through inconsistent and often obsolete content. And department-by-department content models and presentation standards create a disjointed and disorienting experience for general audiences.

Alleviate Key Challenges with Modern Content Practices

Fortunately, modern content practices can alleviate some critical challenges in managing vast amounts of timely content across large organizations serving large and diverse audiences. Content management best practices include:

  • Efficient and effective workflows with smart permissions and automation reduce demands on stretched resources.
  • Structured content, automated listings, contextual presentation, and faceted searches allow end-users to find what they need.
  • Standardized content models allow end-users to have a cohesive and predictable experience and allow the implementation of modern service, search, and distribution tools.

Now comes the good part: many GoC sites are already on CMS platforms, such as Drupal, that have the tools to apply these practices.

Enter Drupal WxT: a Toolbox for GoC Websites

Drupal WxT is a distribution of Drupal, meaning that it's a version of Drupal which comes already configured with a few content types and views, mobile navigation, languages, a language switcher, and out-of-the-box responsiveness and accessibility. It relies on the Web Experience Toolkit/Boîte à outils de l'expérience Web (WET-BOEW), which conforms to WCAG guidelines and supports the implementation of the GCWeb theme standard.

Drupal offers full multilingual support, which is critical for GoC websites that need to be presented in English and French. The Drupal WxT distribution is already configured to manage content in both languages, and includes a theme that offers accessibility and responsive support. The distribution comes with a suite of optional extensions, and additional enhancements are available via Drupal's ecosystem of contributed modules. Drupal WxT is open source and free to any organization that wishes to use it. That said, some departments decide to selectively choose particular components (e.g. the theme) of the distribution to use.

While Drupal WxT provides some content structure, the number of content types it provides out-of-the-box is quite limited, meaning that individual sites then have to define their own content types.

📖 Download Now Our Free Drupal Accessibility Ebook!

Structured Content Unlocks the Benefits of the Modern CMS

One of Drupal's greatest strengths is its structured content. Custom content types with predefined fields allow publishers to create rich content and metadata. Rather than simply storing content as blobs of HTML, we can store individual fields that give us more control over the accessibility, formatting, and consistency of the content output. If we want to move past the limitations of unstructured content, we should change how we think about our content.

For example, if you're following a structured content methodology, Video content in Drupal isn't stored as a page with a video on it. Instead, we create a Video content type that defines its properties via specific fields. A Video content type definition might include:

  • Title
  • Release date
  • Video (remote link or local file)
  • Keyframe/thumbnail
  • Transcript
  • Description

A well-defined Video content type contains all the information needed for the individual Video display pages, the landing page teasers, promotional blocks, and other uses. When information on the Video node is updated, all the places where videos are displayed also automatically display the up-to-date information. Drupal uses the correct display settings according to the context. If we decide to change a setting in the display of the video player, we can do that across the website with one change to Drupal.

The power of content types is amplified by the core Views module. Views provides a user interface to define how lists of content should be presented and the criteria for what content they display. That may sound basic, but you can configure these lists at a very granular level based on fields, content relationships, and a broad selection of conditions to define when and how content should display.

Using tools like Content Types and Views to structure the storage and presentation of content transforms the whole content publishing process. Let's compare the two approaches:

Content stored in an HTML field

  • Only web publishers can enter content into CMS
  • Content entry requires knowing how to write HTML
  • Presentation is prone to inconsistency
  • Content is vaguely defined and difficult to search
  • Bottleneck: web publishers

Structured content using Content Types and Views

  • Anyone in the organization can enter content into the CMS
  • Forms make it easy for subject matter experts to enter content
  • Presentation standards are automatically enforced
  • Content is clearly defined, faceted, and searchable
  • Web publishers focus on auditing and managing content
Why Migrating to a Structured Content Model Is Worth the Effort

Given all the benefits, you might wonder why not all websites adopt a more structured content model. The answer often comes down to the amount of legacy content that so many GoC websites have to support. The fact is that migrating from free-form HTML blobs to more structured fields and metadata requires either time-consuming manual work or automation that requires technical expertise and careful planning and testing--or a combination of both. It also does more to disrupt the content editor experience, since it fundamentally transforms how content is managed.

However, migrating unstructured content to structured content also provides an opportunity for improvements. It's a chance to automate improvements to content accessibility and adherence to WxT, as well as the benefits of structured content listed above. These improvements go hand-in-hand with the content validation and control that structured content types offer.

Standardized Content Models Create Powerful Experiences

It's intuitive to focus on standardizing components across a network of sites. Platforms like the Drupal WxT distribution have the power to do just that. There's definitely an opportunity for the GoC and its participating communities to standardize more content types to allow for greater portability and consistency between GoC websites.

While government departments often need autonomy over particular types of content, sharing the content model for common content types has huge benefits across the board. A standardized content model means that we can build a confederated search experience with a search engine like Apache Solr. And modern service technologies like chatbots and voice search are made possible by standardizing key content types like videos, job postings, and news items.

Need Drupal WxT Training for your team? Contact us for a custom training proposal! //--> + more awesome articles by Evolving Web

Matt Glaman: hook_update_N or hook_post_update_NAME

Planet Drupal - Wed, 2022/01/12 - 5:10am

Today I realized that I had no idea when it was appropriate to use hook_update_N or hook_post_update_NAME. I have ideas, but I was not sure about the concrete reasons. My gut instinct is that hook_update_N is for schema and other database-related changes. And, then, hook_post_update_NAME is for configuration changes and clearing caches once the schema changes have been finished.

But is that true? Does Drupal core follow this pattern? Finding examples in Drupal core was also tricky; I had to switch back to the 8.9.x branch to get a good collection of references.


Specbee: How to Prepare for a Drupal 9 Migration - A Checklist

Planet Drupal - Wed, 2022/01/12 - 4:09am
How to Prepare for a Drupal 9 Migration - A Checklist Shefali Shetty 12 Jan, 2022

As if you weren’t busy enough disinfecting your groceries when Drupal 9 was released in June 2020, you likely had a bit of a conundrum. Should I migrate to Drupal 9 now or just stick with Drupal 7 since I have until 2022?!. Should I move to Drupal 8 first and then make way to Drupal 9? Why should I even migrate to Drupal 9?!  

And why shouldn’t you ask those questions? Website migrations aren’t exactly what anyone looks forward to, but at some point it has to happen. Our best advice is just to dig your heels in and ask the question, “How do I prepare for Drupal 9 migration?”. 

If you’re asking that question right now, you’re well on your way to having a great migration experience! This checklist will give you an idea of the kind of information you must have ready before you begin the “Let’s Migrate!” discussion with your prospective Drupal development partner. And in case you’re still asking “Why” you should migrate to Drupal 9 - we have written extensively about that here, here and here. So let’s get down to business and dive straight into the things you should have ready before a Drupal 9 migration.


What’s New

Migrating to a new, more powerful and feature-packed CMS should be as exciting as moving to a new home. And new beginnings like these give you a chance to re-examine your current information architecture. Making these types of changes during migration is amazingly efficient use of developer time. Make a note if you believe there is a change in:

  • Purpose: Make a list of even the smallest changes in your business goals that could require you to add new features (or remove/edit existing ones).
  • Audience: Over time, if your target audience has changed or grown wider in scope, it’s probably time to accommodate them by changing your information architecture.
  • User Experience: Now, this can change depending on your audience, purpose, content, features and business goals. Revisit and analyze if you need a new design and user experience.
  • Content: Is your content being consumed by the right audience in the right way? Is it still relevant? Time to analyze your content and messaging.
  • Editorial Workflow: Had a recent change in your team structure or editorial workflow? Do you really need additional features or can it be handled by Drupal core features?
  • SEO Strategy: Been wanting to implement new SEO strategies but could not get them to work with your current architecture? This is a good time to make a note of all your new and improved SEO ideas.
Features and Functionalities

Change is Always Changing. As your business grows, the audience varies and goals broaden, you will need to make way for new features or edit existing ones. To be well prepared for your Drupal 9 migration, make sure you have a list and description of:

  • New features and functionality that you want to see in your new site
  • The changes you need to make to the existing functionalities
  • Critical features with description that need to remain unchanged
Audit Your Website

When we get approached for a Drupal migration project, our clients usually fall under two categories. Website managers who understand their system and information architecture well and those who are more content focused. For the latter, it is recommended to identify a reliable Drupal development partner to thoroughly assess your current architecture and suggest the best approach to migrate your website to Drupal 9.

If you know your Drupal website and its architecture well, you should:

  • Make sure you backup your current Drupal site. You don’t want to mess with the current data while you’re busy analyzing the website.
  • Create a content structure checklist. Analyze and list out the existing content types, taxonomy, views and blocks and other Drupal assets. 
  • List out all the Contributed and Custom modules that are currently being used/unused. You can go to admin/module/uninstall to find a list of all your enabled modules. With this information, your prospective Drupal development partner can then analyze if the modules have a straight upgrade path to Drupal 9 or they need to be rebuilt.
  • A description of the custom modules and the functionality that is achieved with these modules.
  • Make a checklist of user roles and examine the permissions given to them. List out any views associated with them.
  • If using a custom theme, you might need to share details on the theme structure with your development partner.

Now, if you don’t know that much about your Drupal website’s architecture and how it works, your potential Drupal development partner will (and should) conduct a migration audit. For the audit, you’ll need to share these details with the development team:

  • Admin access to the development or staging server. It’s best not to share the live server access details at very early stages. This will enable the team to obtain the list of modules, content types, taxonomies, blocks, views and more. With this list they can identify the best approach to upgrade your Drupal 7 site to Drupal 9.
  • A description or walkthrough of all the existing custom functionalities of the website.
  • A description of new features and functionalities you would like to add as part of the upgrade project.
  • If you need a revamped design and theme, have the description ready.
  Member Login

If you have a member’s area where non-admin website users login, it is recommended to create a user login (not admin) for the development partner. This login will help the Drupal team get a better understanding of the functionality of your site from a user’s perspective. Having said that, if your website allows free member logins, your development partner can create a login themselves without needing your assistance.

Planning for a migration is and will always remain the first and most crucial step before any of the points we discussed here in this article. The success of your migration significantly depends on how well (or badly) the Drupal migration has been planned. A Drupal 7 to 9 migration does not have to be complicated, especially when you choose the right Drupal development company with a perfect blend of Drupal expertise and project management. Looking for a development partner to audit your website for FREE? Fill out this quick form and our experts will get in touch with you soon.

Drupal Migration Drupal 9 Drupal 8 Drupal 7 Drupal Planet Drupal Development Subscribe to our Newsletter Now Subscribe Leave this field blank

Leave us a Comment

  Recent Blogs Image How to Prepare for a Drupal 9 Migration - A Checklist Image Performance Testing your website with Jmeter Image Exposing Your API in Drupal 9 - A Brief Tutorial Need help Migrating to Drupal 9? Schedule a call Featured Success Stories

A Drupal powered multi-site, multi-lingual platform to enable a unified user experience at SEMI.


Discover how our technology enabled UX Magazine to cater to their massive audience and launch outreach programs.


Discover how a Drupal powered internal portal encouraged the sellers at Flipkart to obtain the latest insights with respect to a particular domain.



clemens-tolboom commented on issue denoland/vscode_deno#606

On github - Tue, 2022/01/11 - 7:16pm
clemens-tolboom commented on denoland/vscode_deno#606 Jan 11, 2022 clemens-tolboom commented Jan 11, 2022

@KyleJune thanks for the pointer to describe/it example. I know see your 'wrapped' issue. Have you checked with test_walk too. Do you know a pointe…

clemens-tolboom commented on issue denoland/vscode_deno#606

On github - Tue, 2022/01/11 - 2:56pm
clemens-tolboom commented on denoland/vscode_deno#606 Jan 11, 2022 clemens-tolboom commented Jan 11, 2022

writing tests in describe/it blocks What does that mean :-) I just learned deno test --filter "value" matches the Deno.test({ name: "value" How …

clemens-tolboom opened an issue in denoland/vscode_deno

On github - Tue, 2022/01/11 - 2:39pm
clemens-tolboom opened an issue in denoland/vscode_deno Jan 11, 2022 How to configure test to run on non Deno.test()? #606

Is your feature request related to a problem? Please describe. I'd like to run tests like done in ie https://github.com/denoland/deno_std/blob/main…

clemens-tolboom commented on issue denoland/vscode_deno#605

On github - Tue, 2022/01/11 - 2:32pm
clemens-tolboom commented on denoland/vscode_deno#605 Jan 11, 2022 clemens-tolboom commented Jan 11, 2022

I can set a breakpoint in my test then run the test (click play once on first code line it seems) next breakpoint paused. Even tested on deno_std g…

clemens-tolboom commented on issue denoland/vscode_deno#554

On github - Tue, 2022/01/11 - 2:21pm
clemens-tolboom commented on denoland/vscode_deno#554 Jan 11, 2022 clemens-tolboom commented Jan 11, 2022

I cannot reproduce as I get one test running test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 2 filtered out (10s) The UI shows deno …

Agiledrop.com Blog: Marketing accessibility – 10 known and less known tips and tricks

Planet Drupal - Tue, 2022/01/11 - 11:21am

In this article, we break down 10 known and less known accessibility tips and tricks focused on marketers.