Upgrade Your Drupal Skills

We trained 1,000+ Drupal Developers over the last decade.

See Advanced Courses NAH, I know Enough
May 27 2021
May 27

Targeted for release in June 2022, a little over a year from now, here’s an update on the current state of development, what Drupal 10 means for your business and how you can get involved.

As Dries highlighted in the Driesnote at DrupalCon North America 2021, the Drupal 10 initiative is important to ensure that Drupal uses the latest and greatest components that we depend on; ensuring stability and security for all. Dries stressed the importance of maintaining the activity and momentum to push Drupal to be ready in time for the targeted release next year.


What will change?


Some of the third-party dependencies and system requirements will be upgraded to, ideally, their latest stable releases. Code deprecated throughout the Drupal 9 lifecycle will also be removed in the first release of Drupal 10.

  • CKEditor 4 will be replaced with CKEditor 5
  • Symfony 4 will be upgraded to Symfony 5 or Symfony 6
  • jQuery UI will be removed
  • PHP 8.0 will be required (up from PHP 7.3)
  • PostgreSQL 12 with pg_trgm will be required (up from PostgreSQL 10)

The Drupal stock themes “Seven” and “Bartik” will be replaced with “Claro” and “Olivero” respectively. A much needed and welcomed change is that Drupal core is dropping support for Internet Explorer 11 in Drupal 10. A high-level overview of all changes coming to Drupal 10 is listed on the drupal.org website.

We already know many of the deprecated APIs, some dating back to Drupal 8, which means module maintainers can start to update their code to rely on the newer APIs.


Current Tooling


To ease the process of upgrading from Drupal 9 to Drupal 10, there are a few tools in place. These tools were already developed to help aid in the upgrade of Drupal 8 to Drupal 9, so might be familiar to many.

  • The Drupal 10 Deprecation Status page shows Drupal 10 compatibility based on all currently confirmed deprecated API uses in Drupal 9 extensions.
  • The Upgrade Rector and the underlying drupal-rector project will be used to automate updates of deprecated code.
  • The Upgrade Status UI or CLI will check your Drupal 10 readiness on your Drupal 9 site (as much as already defined).

The best place to help with the upgrade path right now is updating drupal-rector. The rector 0.10 version update currently underway enables the tool to run on a modern setup. After that, adding support for Drupal 9 is key. Once that is in place, work on covering the top deprecated APIs can start.

The Drupal Project Update Bot also relies on Upgrade Status and drupal-rector to automatically post compatibility fixes to community projects. Automating as much as possible will streamline the upgrade process not only for Drupal core but for all contributed modules.


Get Involved


If you’re interested in helping to get Drupal ready for version 10, feel free to join the Drupal 10 Readiness initiative meetings, held every other Monday. The meetings are always open to all and held on the #d10readiness channel on Drupal Slack. The meetings are text-only, and transcripts of past meetings are available in the meeting archive.

While June 2022 might seem a way off and many website owners are still preparing for the shift to Drupal 9, version 10 will be here before you know it, so plan ahead and let our web development team help you make the move - get in touch with us today.

May 17 2021
May 17

Furthermore, there were community summits held for higher education, healthcare, nonprofit, and government. These were individual events focused entirely on their subject with panels, workshops, and discussions within breakout rooms.

The Forgotten Site-builder


During the Driesnote, Dries Buytaert mentioned five big initiatives to focus on for Drupal 10, all of which have made progress throughout the lifecycle of Drupal 9:

  1. Decoupled Menus
  2. Easy Out of the Box
  3. Automated updates
  4. Drupal 10 readiness
  5. New front end theme

Dries made us aware that with the evolution and growth of Drupal, we have left behind the “site-builder” role. Dries believes that we need to get back to our identity, to reinvigorate and re-focus on our roots by empowering site-builders to build ambitious websites with low code.

“Let’s make Drupal the go-to technology for site-builders experience.”

Finally, Dries mentioned a sixth big initiative, a project browser, to improve the site-building experience. One of the first things site-builders do when they start with Drupal is to install a module, a project browser will therefore simplify the process of finding and installing modules.

DrupalCon North America 2021 - Driesnote by Dries Buytaert

Back to the sessions I attended, rather than recap them in timeline order, I decided to group them into different category themes.

The main themes for me during this DrupalCon were:

  • Contribution
  • Editor Experience
  • Decoupled Drupal
  • Accessibility
  • Diversity, Equity, and Inclusion

Contribution


The conference schedule was split into two parts, daily sessions during the day followed by a daily afternoon-evening spotlight on contribution. In the Driesnote, we saw a comparison of how approachable it is to contribute to the Symfony foundation compared to the almost pain-staking way of contributing to Drupal. It is clear that we need to improve Drupal’s contributor experience, which is why the Drupal Association is looking to give new Drupalists an easier path to start contributing by improving the integration with GitLab and enabling newer features in the near future.

Contribution was organised on OpenSocial, an online collaboration platform, which saw a healthy group of members attend each day to work on improving Drupal. There were five main focus groups: Decoupled Menus initiative, Easy out of the Box initiative, Automated Updates, Bug Smash, and Drupal 10 readiness. There was also the general contribution area and as always, the first timer’s contribution lounge.

Editor Experience


Throughout the conference, a recurring theme was a focus on improving the editor experience. I attended the following sessions related to this topic:

  • Easy out of the Box initiative Keynote
  • Editor Experience: Compare Drupal, WordPress, & Contentful
  • A Better Experience for Content Editors
  • Editor UX Matters: Gutenberg Can Help
  • Expand Building With Components Truly Achieve No-code Drupal
  • Reimagining the WYSIWYG: CKEditor 5 in Drupal Core

The Easy Out of the Box Initiative makes the editorial experience clear and empowering from the moment Drupal is installed by enabling Media, Layout Builder, and Claro in the default Drupal installation profile. This initiative is important because media, layouts, and modern administration design are fundamental to creating a delightful user experience for everyone building with Drupal.

Sascha Eggenberger, a Senior UX Designer at Unic and a core member of the Easy out of the Box initiative, shared his work on a better experience for content editors along with various modules that he recommends such as "admin toolbar", "media library", and "inline entity form". Sascha also gave an overview of quick wins and explained how a good user experience along with site-building is crucial in helping towards wider adoption of Drupal.

DrupalCon North America 2021. A Better Experience for Content Editors, by Sascha Eggenberger

At Amazee Labs, we actively seek to improve the editor experience for our clients’ needs. We build solutions involving the Gutenberg editor coupled with bespoke admin views, along with the implementation of an improved admin UI utilising the Gin admin module.

Decoupled


Following on from improving the editor experience, we explored the state of decoupled Drupal, with a heavy focus on Gatsby and Next.js. I attended the following sessions:

  • Decoupled Menus Initiative Keynote
  • An Iterative Approach: Decoupling Drupal Sites With Gatsby
  • JS Web Components (Demo)
  • Decoupled Translations with Drupal and Gatsby
  • Using Drupal's Layout Builder with Gatsby
  • Relaunch Blog of Unity.com with Headless Drupal 8, Next.js

The decoupled menus initiative is set up to provide the best way for JavaScript front ends to consume configurable menus managed in Drupal. Menus were chosen because the majority of digital experiences have a menu. They also touch on some of the most difficult problems facing decoupled sites today.

DrupalCon North America 2021 - An Iterative Approach to Decoupling Drupal Sites in Gatsby, by Brian Perry and Matthew RamirRecently, the Drupal Association made it possible to distribute JavaScript packages within the Drupal ecosystem, helping to push this initiative forward. In the evening, a hackathon was held where participants were invited to build their own custom menu component with their favourite JavaScript frameworks. This is an important initiative to help realise Drupal’s goal of being the best decoupled CMS.

Amazee Labs developer, Nick O’Sullivan, gave a talk about “Decoupled Translations with Drupal and Gatsby”. Gatsby is a popular static site generator that uses React, and it’s a perfect match for a decoupled Drupal architecture to create lightning-fast websites. Nick took us through how to create a multilingual Gatsby site with content sourced from Drupal, then gave an overview of the key considerations to take into account when developing a translation management workflow.

AmazeDrupalCon North America 2021 - “Decoupled Translations with Drupal and Gatsby” by Nick O’Sullivan

Accessibility 


There were many great sessions on accessibility, I was only able to attend the following:

  • Accessibility is a Moving Target
  • An Accessible Digital World
  • Accessibility for Deaf Beyond Video Captions & Sign Language
  • Bake Accessibility into Every Project
  • Inclusive and Accessible Co-Creation

AmyJune Hineline, an Open Source Community Ambassador and winner of this years’ Aaron Winborn award, gave a presentation on how “Accessibility is a moving target”. AmyJune walked us through embracing accessibility, understanding the high-level principles, and shared tips on designing for accessibility.

  • Perceivable: A user can identify content and interface elements by means of the senses.
  • Operable: A user can successfully use necessary interactive elements.
  • Understandable: Users should be able to comprehend the content, and learn how to use the interface.
  • Robust: Users should be able to choose the technology they use to interact with digital assets.

DrupalCon North America 2021 - Accessibility is a Moving Target, by AmyJune Hineline

In “Accessibility for Deaf Beyond Video Captions & Sign Language”, Svetlana Kouznetsova, an experienced deaf professional providing consulting services to businesses, presented a unique session to demonstrate that not all deaf and hard of hearing people are the same. As the vast majority of deaf and hard of hearing people don't know sign language, they can’t benefit from interpreters, and not everyone can lip read or benefit from hearing devices.

Sadiyah Ali spoke about “An Accessible Digital World” by baking it in from the beginning of the development phase. By ensuring headings, links, images, and focus states are all accessible, you will cover a lot of the requirements laid out by the law. “If you forget to put butter in the batter of a cake, you can’t put it in at the end, similarly digital accessibility is simplest when it’s planned as part of the process.”
 

Diversity, Equity, and Inclusion


Heather mentioned at the beginning of the Driesnote that the Drupal Association has an increased focus on Drupal’s strategic initiatives. One strong Drupal value is to cultivate talent with an emphasis on Diversity, Equity, and Inclusion. Heather shared Drupal's Diversity, Equity, and Inclusion resources found on drupal.org.

There were many wonderful talks throughout the conference, however, the topic that focuses on diversity and inclusion is always more thought-provoking, inspiring and important to me.

  • Allyship - Key to Unlocking the Power of Diversity
  • Building Successful Mentorships for People of Color in Tech
  • Creating Systemic Change: Digital Rights For All
  • School Needs Open Source, Now More Than Ever

Sheree Atcheson, a global diversity, equity and inclusion leader, gave the keynote entitled “Allyship - the key to unlocking the power of diversity”. Sheree spoke about intersectionality, being an ally and allyship, along with the tools to aid you and your organisation to improve your DE&I processes. Sheree explained that an ally is any person that actively promotes and aspires to advance the culture of inclusion through intentional, positive and conscious efforts that benefit people as a whole. Allyship is a lifelong process of building relationships based on trust, consistency, and accountability with marginalized individuals and/or groups of people. It is a continuous and consistent process in which you need to educate yourself by following and learning from people different to you.

“Most importantly - listen, support, self-reflect, and change.”

DrupalCon North America 2021 -Allyship - Key to Unlocking the Power of Diversity, Sheree Atcheson

Byron Woodfork, a senior software engineer, spoke about “Building Successful Mentorships for People of Color in tech”. Byron explained that we must change the way we mentor as traditional teaching methods will not work for minorities. Help build a mentor network to give a diverse and supportive community for your mentee to learn and grow from. Build trust with your mentee by providing quality feedback, coach and counsel your mentee by listening to them. Mentoring is really hard work, and you will get things wrong, but the important thing is to learn from your mistakes and improve upon them for the future.

Stu Keroff and his students of The Penguin Corps, Aspen Academy's Linux Club, gave the final session entitled “School needs Open Source, now more than ever”. Maya began the keynote by announcing the Penguin Corps pledge: What are we trying to do? Change the world! How do you change the world? Be crazy enough to think you can!

Stu then gave a brief history of how he set up the first two Linux clubs in Minnesota, and how the penguin corps has grown year after year, from 15 members to over 50. The equation is simple: open-source software + user computers + enthusiastic kids = more students learn! The talk was my favourite and I look forward to learning more about the growth of the Penguin Corps.

DrupalCon North America 2021 - School Needs Open Source, Now More Than Ever, by Stu Keroff

A Final Word


Overall, the conference has proven that splitting the schedule to accommodate a shorter day of interesting sessions coupled with a half-day of contribution has been a healthy balance to avoid “Zoom fatigue” and to keep all attendees engaged and motivated.

As always there was a great deal to learn and share, and of particular value were the sessions on Accessibility. At Amazee Labs, we offer Accessibility audits so reach out to us if you want to create a better User Experience and ensure your site is compliant.

If this resonates with you and you’re as passionate about Drupal and the open-source community as we are, get in touch today!

Mar 09 2021
Mar 09

Gatsby Conference took place from March 2nd to 3rd, 2021 and was a free virtual event. Designed as a way for the Gatsby community members from all over the world to connect and listen to various talks, participate in free workshops, as well as hear the four big announcements from the Gatsby team.


Keynote

Kyle Matthews, CEO and founder of Gatsby, opened the conference with the keynote. Kyle told us that people come to Gatsby for the websites, but stay for the ecosystem, much like Drupals’ “come for the code, stay for the community.” Kyle mentioned that great developer experience (DX) enables a great user experience (UX), which is why they are focused on improving their developer tools. Kyle then explained that the Jamstack provides a very good developer experience, however, content management systems (CMSs) provide marketers with a far better experience than the Jamstack. Gatsby aims to cater to both: developers and marketers.

GatsbyConf. Great DX enables great UX. Powerful, developer tools and workflows; Fast sites powered by static assets and CDNs; Unified data access to your content via plugins.
 

Gatsby enables marketers and developers to achieve the same fast, effective workflows. Whether that’s branching and editing some part of the website, or collaborating with colleagues on new content pages, previewing the updates, and then publishing those changes to the web.

Kyle then went on to make the four big announcements:

  • Gatsby Cloud Hosting powered by Fastly, a world-class content delivery network (CDN)
  • Gatsby v3.0, bringing faster builds
  • Gatsby Source Plugin improvements: WordPress with GraphQL, Shopify, and Contentful
  • Gatsby Image, next-gen image component bringing better Lighthouse scores and improved DX
     

GatsbyConf. Gatsby Image; Gatsby Cloud Hosting; Gatsby v3.0; Contentful Source Plugin; WordPress Source Plugin; Shopify Source Plugin

Learn


Dustin Schau then gave an update entitled the “State of Gatsby: What’s New and What’s Coming” - whereby he mentioned that the web of old was static with fault-tolerant HTML, styling and images. There were a lot of benefits of the static web, but then came the CMS revolution which transformed what the web can do. The rise of the CMS enabled building a website without being an expert and allowing content creators to own the complete experience of their website.

Then came the rise of the decoupled CMS which ushered in a new era for the web, user expectations have changed, making rich web experiences the norm and not the outlier. Gatsby enables you to build up rich user experiences with your content from any decoupled CMS as “there’s a plugin for that.”

Gatsby gives you performance and speed by default. It enables you to deliver a great user experience that’s fast and performant which ultimately leads to a website that generates more revenue. Gatsby also has a very high level of accessibility, as well as being optimised for search engines (SEO).
 

Lighthouse data from HTTPArchive (Performance) - Gatsby; Drupal; WordPress; Nuxt.js; Next.js
 

Dustin then demonstrated some of the new features coming to Gatsby such as “serverless functions.” Serverless functions allow developers to move away from monolithic hosting and take advantage of microservices, encapsulating single-purpose code into a function that is then hosted on managed infrastructure. Dustin showcased the usage of a serverless function that would send SMS messages using the Twilio service for his wedding website powered by Gatsby Cloud.


Dive Deeper and Learn More


We then had the pleasure of hearing presentations from Gatsby experts who gave an in-depth explanation of each of the new changes:

  • Laurie Barth - NextGen Images
  • Joel Smith - Gatsby Cloud
  • Lennart Jorgens and Patrick Sullivan - Gatsby v3.0
  • Jack Sellwood and Shane Thomas - Shopify

GatsbyConf. Dive Deeper and Learn More. Next Gen Images: Laurie Barth. Gatbsy Cloud: Joel Smith. Gatsby v3.0: Lennart Jörgens and Patrick Sullivan. Shopify: Jack Sellwood and Shane Thomas.

Laurie took us through a guided tour of the new Image component, demonstrating how powerful it is and how it improves the Lighthouse performance score for existing websites, which will not only improve the site load time but will also help the overall ranking of the website on search engines such as Google. The new Image component is performant by default, outputting the HTML5 picture element tag with a range of source sets for different browser widths (mobile, tablet, and desktop) as well as outputting WEBP and the option to also output AVIF image formats for browsers which support it. The API for the Image component also includes support for aspect ratios, lazy loading, placeholder images, and transformation options without CSS filters.

Joel introduced the new Gatsby Cloud hosting, allowing for instantaneous global deployments using the Fastly CDN network. A modern website is a content-rich client experience built on a component-driven design that is continuously delivered through serverless tooling. Joel showed a short demo of how quickly you can deploy a change to Gatsby Cloud hosting. He then went on to explain the pricing changes to Gatsby Cloud hosting to better accommodate for traffic and build speed requirements that you need for your website.

Shane Thomas and Jack Sellwood talked about the future of e-commerce and how brands love Gatsby, with the improved changes to the Gatsby Shopify plugin. This will enable more businesses to showcase and sell their products online with the speed of Gatsby. Brands grow with Gatsby, millisecond page loads leads to lower bounce rates and SEO-friendly markup leads to more discoverability. With Gatsby’ incremental builds and CMS preview capabilities, brands can rely on building out their new seasonal product-line and internally test it amongst stakeholders long before the go-live date.

Gatsby Connf. Brands grow with Gatsby. Millisecond page loads mean lower bounce rates.

Level Up


Patrick Sullivan and Lennart Jörgens introduced Gatsby v3.0. Patrick explained how Gatsby had over 2000 pull-requests (PRs) merged from over 1000 contributors ranging from over 60 different countries in 2020 – that’s the power of open-source. Lennart broke down the new changes to Gatsby v3.0 with a very informative demo. Support for dynamic URL path pages using curly brackets to pass information down into the Gatsby page functions. Server-side rendering in development (Dev SSR), an experimental feature that will aid developers in testing new features for more dynamic websites that fetch information from the server on load time which is not statically built out, for example, pages that require an authenticated user which then show the logged-in username somewhere on the page. Patrick informed everyone that the migration guide to version 3.0 can be found at https://gatsby.dev/2-3 along with the Image migration guide.

Once the big announcements were made, the conference then split into two tracks of talks from the Gatsby community. Stew West gave a lightning talk entitled “Building Super Fast Search with Gatsby, Google Sheets and GraphQL” which showcases the BlueValue project from Harte Research Institute for Gulf of Mexico Studies. Stew explained how easy it was to utilise the Gatsby plugin system to build out the prototype, then iterate with real data. Using the gatsby-source-google-sheets plugin, Stew and the team were able to provide a simplified CMS using Google Sheets to power the statically built Gatsby website.

What is super great about most Gatsby plugins? They come with amazing docs and they just work! Docs and examples for the win!!

Gamer vs Gatsby

Kyle Gill, Senior Developer for Gatsby took on David 'Kosmic' Livingston, the seven-time World Record holder for fastest completion of the original Super Mario Bros. Kyle planned to bootstrap a Gatsby site from scratch, add styles, some React components, GraphQL queries and pull data from a Gatsby plugin then deploy a production level CDN on Gatsby Cloud while competing against Kosmic who would speed run through Super Mario Bros. It was an epic display of skill and grit, Kosmic jumped right in, using warp zones to skip levels and a trick to slide down a pipe and reach a hidden warp zone. While Kyle had a few shortcuts of his own with VSCode snippets and terminal functions, Kosmic made a small mistake in the final boss fight leaving him to restart the level, giving Kyle the much-needed few seconds to help him win the race.

Kyle Gill, Senior Developer for Gatsby vs David 'Kosmic' Livingston.

Lead

On the second day of the conference, after the big Mario Gatsby race, we then had several different workshops ranging from beginner-friendly “Getting Started with Gatsby” by Megan Sullivan and Obinna Ekwuno, to the more advanced workshops like “The Gatsby WordPress Integration Workshop” by Shane Thomas and Jason Bahl.

I followed along with the workshop titled “Creating an E-commerce Site Using Gatsby” by Tamas Piros, Developer-Experience Engineer at Cloudinary. Tamas walked us through creating a headless e-commerce website using Gatsby with services like Cloudinary and Snipcart.

Short Q&A session with Kyle and Dustin

At the end of the scheduled workshops, we had a short Q&A session with Kyle and Dustin, in which they answered all the questions from the community in regards to the new features and the roadmap to Gatsby's future. They also announced winners of several prizes including a PlayStation 5, unfortunately, I did not win but congratulations to those who did win a prize.

You can find all presentations on Gatsbys’ YouTube account at:

If you want to know more about how we can help you with your Gatsby project, and help take your web presence to the next level - get in touch with us today.

Feb 24 2021
Feb 24

With the end-of-life (EOL) for Drupal 8 closing in fast, we wanted to share our experience on how we have been handling the process of upgrading our client projects to Drupal 9.

The Drupal 8 EOL date is November 2nd 2021. This is because Drupal 8 has a dependency on Symfony 3 which has an end-of-life in November. That means there will be no further security fixes implemented, so to keep your project safe and secure against potential threats, it is strongly advised to upgrade to the latest version of Drupal.

No “migration” needed?!


Correct! With the upgrade from Drupal 8 to Drupal 9 – there is no need for migration; the new features for Drupal 9 were gradually released inside Drupal 8. The main change that Drupal 9 brings is the removal of deprecated code, much like getting a hair-cut.

However, this was not the case with the change from Drupal 7 to Drupal 8. From Drupal 7, there was a multitude of different changes that resulted in requiring a comprehensive and often complex migration. This led to many clients opting for a complete rebuild from the ground up to take full advantage of new features such as “workspaces” that arrived in Drupal 8.6.0.

With the upgrade from Drupal 8 to Drupal 9 – there is no need for migration.

What about contrib modules?


The “Drupal 9 deprecation” dashboard overview shows the overall compatibility status of all contributed modules to the Drupal ecosystem. Over 88% of the top 1000 contrib modules are explicitly compatible with Drupal 9, meaning they have a Drupal 9 release.

Additionally, more than 50% of all Drupal modules are compatible with Drupal 9, and a further 20% require only the info.yml file and/or the composer.json file to be upgraded to make them compatible with Drupal 9.

How do we upgrade our projects?


At Amazee Labs, we deal with a diverse range of clients – all of which have their own distinctive requirements – so we  construct elegant solutions tailored to their unique business needs.

With such a diversity of projects, we developed a solid plan to upgrade each project to Drupal 9. Our maintenance team’s strategy involves the following three stages:

  1. Analyse
  2. Tackle
  3. Deploy

Two construction workers standing on scaffolding.

Analyse


The Analysis stage involves scanning the project server and codebase to identify the complexity of the upgrade process. Some of the information we gain from this analysis answers the following questions:

  1. What version of PHP is the server using?
  2. What version of Drupal Core is installed?
  3. Is the Drupal Core Media module enabled?
  4. How many contrib modules are installed?
    - How many of those contrib modules are outdated?
  5. How many custom modules have been created?
     

We have a few pre-conditions that the project must pass before we can continue:

  1. The server is running on PHP version 7.4
  2. Drupal Core 8.8.x is installed or ideally the latest release from the Drupal Core 8.9.x branch
  3. Drupal Core’s Media module is enabled

If we have detected that the PHP running on the server is lower then version 7.4, then we need to update this first. If the project is hosted on Lagoon, by amazee.io, then this is generally a breeze to update, as it is highly developer-friendly.

If we detect an older version of Drupal Core released before version 8.8.x, then we create a task to upgrade Core to the latest 8.9.x version. Within the web maintenance team, we have taken over some very outdated projects and meticulously updated each one, always involving the client within our Agile workflow, to build trust throughout the entire development process.

To ensure Media in Core is enabled, the process to migrate from the contrib Media Entity modules to Drupal Core Media is outlined over on the FAQ page on drupal.org.

During this initial investigation, we install the Upgrade Status and Upgrade Rector modules, then generate a report containing information on what modules require updating. Furthermore, we generate fixes for deprecated code in the custom modules.

Analysis report.

Tackle


With our web maintenance service offering, we ensure the longevity and reliability of our clients’ projects by keeping their websites up to date and secure.

With the results from the analysis stage, we then create individual tasks to tackle the challenges that lie ahead. The drupal.org documentation has some information on how to upgrade from Drupal 8 to Drupal 9 or higher.

The Upgrade Rector module helps us to perform automated fixes on the codebase. For contrib modules that lack a Drupal 9 release, we contribute back to the community by submitting fixes and collaborating with maintainers to aid them in releasing a new version of their module.

Many Open Source communities have found that to support their growth and ensure long-term sustainability they’ve opted to utilise platforms that pay contributors or embrace corporate sponsors. Underrepresented groups, in particular, do not always have the privilege of free time to contribute to Open Source outside of work hours. At Amazee Labs, we can take advantage of providing contributions to the Drupal community during work hours. Gábor Hojtsy has an extensive overview of articles aimed at helping to push contributed modules to a successful Drupal 9 release.

Two teams in a rugby scrum.

Deploy


So we have gone through and analysed the code, updated the modules and exported the configuration, now how do we deploy our changes to the production environment?

Our workflow for the majority of our projects tends to be as follows:

  • All projects have at least two environments:
  • A production git branch, often named “prod” for short
  • A development git branch, often named “dev” for short

Here is our 13-step guide:

  1. A developer first checks out the project codebase locally.
  2. The developer then fires up a local instance either with Docker or with native PHP.
    - For Docker, they would either use Pygmy or Lando’s Lagoon beta. For native PHP, they would simply run “drush serve” with an SQLite database.
  3. The developer then creates a feature branch on git from the latest changes on the prod branch.
  4. Using the composer tool, the developer upgrades the necessary modules as well as upgrades Drupal Core.
  5. Then they run the update database command in Drush and export the configuration changes.
  6. After this, they commit all changes: configuration changes, composer JSON and lock file changes, as well as any other changes to the custom modules or custom theme.
  7. They push their local git branch to the remote origin and create pull-request into the prod branch.
  8. If PR environments are available, then this would automatically spin up a new environment with all the changes, ready to be tested by another developer.
  9. If the project does not have PR environments available (i.e. if it is not hosted on Lagoon), then the developer will merge their changes into the development environment so that another developer can test.
  10. If the second developer does not find any specific issues during their testing process, then the project manager is informed that they can test the changes with the client.
  11. If the project manager and the client find no specific issues with the changes, then the pull-request is approved for deployment to production.
  12. The original developer is empowered to deploy on their own (but the team is always there for one another). The developer will trigger the deployment by simply merging the pull request they made into prod.
  13. Once the deployment is completed, the developer informs the project manager and client that their website is now running on the latest version of Drupal.

Rocket launching at the Kennedy Space Center, United States.

Accomplishments


Once we have gone through and updated the modules, upgraded Drupal to the latest stable release, and deployed everything to the production environment, then...we celebrate our accomplishment internally with the rest of the team – a job well done!

In retrospect, the upgrade from Drupal 8 to Drupal 9 is a piece of cake compared to the upgrade from Drupal 7. It feels like we are modernising the website in small bites instead of trying to gobble down a brand new refreshed website all at once.


Ready to talk about your upgrade needs? Whether you’re operating on Drupal 7 or 8, We’re ready to help. Get in touch with us and upgrade to Drupal 9 today!

Dec 16 2020
Dec 16

A Hallway of Fun


It felt energising to reconnect with old friends in the Hallway track. We did miss being able to see each other in person and give each other a hug (high-five, or just a handshake). However, there were many opportunities to jump into a Hallway track session which would automatically pair you with up to 9 others who share similar interests to you. When registering for your ticket, you had a few questions which you could optionally fill-in, these were used as the basis to pair people in interest rooms.

DrupalCon Europe Hallway Track 1


Day one, it begins!
 

As we at Amazee focus on building decoupled websites using Gatsby, I had a keen interest in the talk by Oier Bravo entitled “Drupal and Gatsby, static without limits. Compiling more than 100,000 pages in less than what it takes to make a coffee.” Oier gave us an in-depth look into two Drupal modules that they are contributing to and utilising for their client projects: Static Suite and GraphQL Node Preview module.

Gatsby - Instant Navigation: Fast builds, Prefetch, and Made with React

From the addition of named functions to constructor properties, Ayesh Karunaratne gave an excellent overview of what’s new and changing in PHP 8. amazee.io has updated the Lagoon Docker images to include the latest stable release of PHP 8.0.

Nick O’Sullivan presented a thoroughly informative talk on “Decoupled translations with Drupal.” Nick explained how to create a multilingual Gatsby site with content sourced from Drupal, and described some of the key considerations to take into account when building your translation system.

Content Translations vs Interface Translations

Jumping from the more technical talks, I found myself captivated by Marissa Epstein’s session entitled “From squiggles to straight lines: Sketching user experiences to make decisions and get on with it.” Marissa’s enthusiasm for sketching is clearly expressed through this knowledgeable talk that included an overview of the various tools to aid you in drawing sketches for your projects.

Marissa Epstein - From Squiggles to straight lines

Michael Anello’s talk “Taking Maximum Advantage of Drupal Core's Composer Template” gave us an overview of the benefits that Composer 2 brings. You can leverage composer plugins like scaffolding to remove unwanted files or add lines to the robots.txt file.

In the Drupal Initiative’s Leads Keynote, we saw Putra Bonaccorsi, Ted Bowman, Neil Drumm, Ryan Aslett, Baddy Sonja Breidert, Gábor Hojtsy, and Len Swaneveld.

Putra presented the new frontend theme for Drupal – Olivero – which has just landed in Drupal 9.1.0 as an experimental theme.

Ted gave us an update on the Automatic Updates Initiative and the difficult technical challenges they face.

Neil showed us how to get started with merge requests on Gitlab; this should make the barrier to contribution a lot less complicated for newcomers.

Unfortunately, Ryan was unable to present. However, Tim Lehnen stepped in to take over. Tim talked about the composer 2 updates with improved cacheability, lower memory usage, and faster execution time.

Baddy talked about the decoupled menus initiative which aims to bring modern Javascript frontend components to Drupal, starting with a React.js version of the menu system.

Gábor showed us the roadmap plan to Drupal 10 in which we will upgrade CKEditor 4 to CKEditor 5, amongst many other dependency updates.

Len presented the bug smash initiative and how they’ve smashed a whopping 664 bugs between May 30th and December 8th.

We ended the day with some cardio by learning to dance Flamenco in a workshop provided by Marta G. Blanco. A fun-filled event which had several participants on their feet rhythmically dancing to the flamenco music.

Flamenco workshop with Marta G. Blanco at DrupalCon Europe 2020

Day 2, the Driesnote
 

With the first day ending with us shaking our hips, we were ready to hear the latest from Dries Buytaert in the Driesnote.

Phil Wolstenholme gave an insightful and well thought out presentation about Tailwind CSS titled “Write better CSS by stopping writing any more CSS! How and why to use utility-first CSS on large-scale Drupal websites with Tailwind CSS.” Phil explained how to configure and extend Tailwind CSS to aid you into building an improved component-based theme using design tokens.

Tailwind configuration holds your design tokens


Driesnote

Dries highlighted the latest changes to Drupal and how we’ve stayed relevant for the last 20 years by working on things that mattered, by embracing new technologies, and by making it easy for end users to adopt.

Optimising for impact means caring for people you don't know.

I joined Josef Kruckenberg and Joanita Bonnier for a retrospective on “How did the COVID-19 crisis affect client relationships and what can we take out of it?” It was an intimate experience in which we explored the negative and positive impacts of the pandemic and our learnings that we plan to take into 2021.

COVID-19 Client Relationships Retrospective at DrupalCon Europe 2020


Day 3, Keynotes


We started the 3rd day with an amazing talk by Eriol Fox in their Keynote: "Centering humans and their rights in Open Source Design.” Eriol guided us through a journey mapping activity to shape our minds into striving to be more inclusive and inspire us to put Human Rights Centered Design first.

If we are not intentionally working against injustice, we are unintentionally complicit in it.

Eriol Fox presentation slide - Our Structure

Philipp Melab, along with Laura Gaetano, Shyamala Rajaram, and Josef Kruckenberg conversed in their panel about “Sustainable practices for building and maintaining the Open Web.” They touched on topics such as payments to open-source projects and the feeling of creating something new is not always reciprocated when maintaining a project for several years.

Panel talk on the Sustainable practices for building and maintaining the Open Web featuring Philip Melab, Laura Gaetano, Shyamala Rajaram, and Josef Kruckenberg

Fran Garcia-Linares gave a fantastic lightspeed live demo on “adding end-to-end tests to your Drupal site in 20 minutes with Cypress.” Fran spun up 3 different sites; a simple non-Drupal HTML website, a Drupal 7 website, and a Drupal 9 website, and added Cypress tests to each of them. The live demos worked flawlessly and returned all green status checks indicating the tests had passed.

Fran Garcia-Linares' presentation slide showing the Way forwards as part of his talk - Adding end-to-end tests to your Drupal site in 20 minutes with Cypress

My session about “Building a platform to bring people together to Celebrate Drupal” went well. I described the process of how I built up CelebrateDrupal.org and what learnings I gained from this experience.

Dan Lemon's presentation slide - Chapter 1: Design. Stealing

Siri Chilazi presented a wonderful keynote on “Building Diverse, Inclusive and Equitable Communities.” Siri expanded on important training topics that all of us should attend such as diversity training, leadership training, and unconscious bias training. We all have unconscious bias and in order to reach good behavioural design we must design for diverse, equitable, and inclusive systems.

Siri Chilazi's presentation slide on

With a thrilling end to the sessions, we jumped into the Drupal Trivia Night. We created teams of 5 in order to compete for the title of Drupal trivia champions. My team, “WAVATE - We Are Volunteers At The Event” came 3rd, and Edouard Cunibil won the individual ranking by correctly answering the final question worth 1000 points before anyone else.

DrupalCon Europe 2020 Trivia Night Leaderboard


Day 4, Contrib Corner


As always with every DrupalCon, we had a day dedicated to contribution. It was held over Zoom using the Breakout feature, with a room for each table. I jumped into the contrib corner and worked on adding the official DrupalCon Europe photo to the Celebrate Drupal platform so that everyone could zoom-in easily and see each selfie taken via the photo booth during the conference. Others worked on upgrading their modules to be Drupal 9 compatible as well as aligning on issues for the decoupled menu initiative.

Day 4 Contribution Topics


The Open Web


With 4 days packed with talks, networking, social events, and contribution, we believe the conference was a great success. The shift from an in-person event to virtual was a difficult decision to make, but the community was thrilled to reconnect with each other and discuss Drupal and the open web.

If you're as passionate about Drupal web development and the open-source community as we are, get in touch today!

About Drupal Sun

Drupal Sun is an Evolving Web project. It allows you to:

  • Do full-text search on all the articles in Drupal Planet (thanks to Apache Solr)
  • Facet based on tags, author, or feed
  • Flip through articles quickly (with j/k or arrow keys) to find what you're interested in
  • View the entire article text inline, or in the context of the site where it was created

See the blog post at Evolving Web

Evolving Web