Talking Drupal
Talking Drupal is a weekly chat about web design and development by a group a guys with one thing in common, we love Drupal. With hosts Stephen Cross, John Picozzi and Nic Laflin.

Today we are talking about Drupal 11 Readiness, What you need to think about, and PHPStan with guest Matt Glaman. We’ll also cover MRN as our module of the week.

For show notes visit:
[www.talkingDrupal.com/448https://www.talkingDrupal.com/448)

Topics

  • What do we mean by Drupal 11 Readiness
  • How will this be different than 9 and 10
  • Top 5 tips
  • D11 Meeting and slack channel
  • Will this be easier
  • Major issues
  • What is PHPStan
  • How does it play a role
  • How is PHPStan Drupal different than PHPStan
  • Does using PHPStan with drupal reduce the need for tests
  • How do you see it evolving over the next few years
  • Drupal 12 wishlist

Resources

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan
John Picozzi - epam.com johnpicozzi
Matt Glaman - mglaman.dev mglaman

MOTW

Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted an easy way to generate detailed release notes for your contrib projects? There’s a web app for that
  • Module name/project name:
  • Brief history
    • How old: created in Aug 2022 by today’s guest Matt Glaman
  • Maintainership
  • Usage stats:
    • Currently no usage reporting, but a tool I’ve been using a ton lately as I get modules ready for Drupal 11
  • Module features and usage
    • It’s very simple to use, you just enter the machine name of your project, and then the numbers of the releases you want it to compare
    • It will generate the structure for your release note, include a spot for you to write a summary at the top, a list of contributors that links to their profiles, and a list of issues
    • Previously part of Matt’s drupalorg CLI project, MRN is now a lambda function on AWS, so there’s nothing to download or install
    • I like that you can choose which tags you want to compare, so if the release is part of a branch that doesn’t yet have a stable release, I’ll put a comparison to the previous release in the branch at the top, and then a comparison to the current stable release below it, so people can see the full list of everything new they’ll get by moving from the stable release
    • It’s worth noting that because this works from the git history, you need to make sure you credit everyone properly before clicking to merge an MR in the Drupal.org UI. You can give credit to other people after the fact using the checkbox and they’ll get contribution credits, but won’t be included in the release notes generated by MRN
Direct download: td-448-libsyn.mp3
Category:general -- posted at: 2:00pm EDT

Welcome back to “Skills Upgrade” a Talking Drupal mini-series following the journey of a D7 developer learning D10. This is episode 8.

Topics

Resources

Chad's Drupal 10 Learning Curriclum & Journal
Chad's Drupal 10 Learning Notes

The Linux Foundation is offering a discount of 30% off e-learning courses, certifications and bundles with the code, all uppercase DRUPAL24 and that is good until June 5th
https://training.linuxfoundation.org/certification-catalog/

Hosts

AmyJune Hineline - @volkswagenchick

Guests

Chad Hester - chadkhester.com @chadkhest
Mike Anello - DrupalEasy.com @ultimike

Direct download: Skills_Upgrade_8.mp3
Category:general -- posted at: 4:00am EDT

Today we are talking about Drupal Single Sign On, The Benefits it brings to the Drupal Community, and A new book called Fog & Fireflies with guest Tim Lehnen. We’ll also cover Drupal.org Username Field as our module of the week.

For show notes visit:
www.talkingDrupal.com/447

Topics

  • What is Single Sign On (SSO)
  • Does Drupal already support SSO
  • Why is SSO on drupal.org important
  • Camps using SSO
  • Other possibilities
  • Gitlab login
  • Cloud IAM
  • Why did the Drupal Association choose Cloud IAM
  • How do you see the collaboration growing
  • Where are we now
  • What are the next steps
  • How far are we from this becoming a reality
  • What does onboarding look like
  • Will third party sites be able to use D.O SSO
  • Can the community help
  • Fog & Fireflies
    • First book
    • Can you buy it now

Resources

Guests

Tim Lehnen - aspenthornpress.com hestenet

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan
John Picozzi - epam.com johnpicozzi
Matt Glaman - mglaman.dev mglaman

MOTW

Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted to have a field on user profiles specifically designed for drupal.org usernames? There’s a module for that
  • Module name/project name:
  • Brief history
    • How old: created in August 2019 by hussainweb AKA Hussain Abbas of Axelerant
    • Versions available: 2.0.0-beta4
  • Maintainership
    • Actively maintained, that release was made less than 6 months ago
    • Test coverage
    • Number of open issues: 8 open issues, none of which are bugs
  • Usage stats:
    • 1 site
  • Module features and usage
    • The module provides a new field type, along with its own widget and formatter
    • With a simple checkbox, you can get the module to validate that the provided username is registered on drupal.org
    • What’s really powerful about this module is that it can also pull other information from the drupal.org profile, such as first and last name, country, bio, and more
    • It does this by leveraging a Guzzle-based API client for drupal.org that Hussain created as part of a DrupalCon Asia developer contest
    • I believe the intended use of the modules is to use a provided drush command to copy the values from the drupal.org username field into other fields, where they would be displayed to site visitors
    • Although this module isn’t something that a lot of sites will need, I could see it being really useful for Drupal camp websites, to automatically collect a lot of the information that many such sites ask users to populate manually
    • I think it’s also an interesting use of the Drupal.org API, and could be a useful reference for anyone needing to implement a custom integration
Direct download: td-447-libsyn.mp3
Category:general -- posted at: 2:00pm EDT

Welcome back to “Skills Upgrade” a Talking Drupal mini-series following the journey of a D7 developer learning D10. This is episode 7.

Topics

  • Review Chad's goals for the previous week

    • Test Example
    • Set up phpunit.xml
    • Start with FrontPageLinkTest.php
  • Review Chad's questions

    • In the testing_example module, the file "src/Controller/TestingExampleController.php" has a function for simpletestDescription(). Is this an outdated artifact that should have been removed at some point? The module itself doesn't appear to use Simpletest elsewhere and appears to only rely on PHPUnit.
    • What do you recommend for the minimal code structure to include for any given test type? Is the Testing Example module an ideal model or are there other resources I should review? The testing reference from Selwyn was helpful.
    • In the "FrontPageLinkDependenciesTest.php" setUp() function, the createContentType() function is called without specifying the type. Is that set somewhere else? I may have overlooked it. Nevermind—it's set using randomMachineName() in the createContentType() function.
      Is there anything extra or standard to write in tests for drupal.org?
  • Tasks for the upcoming week

    • Smart Date - Martin (maintainer) to review promptly, I've already chatted with him about it. Create a new functional test: "submit a range with an end time before the start and validate that an error is returned"
      • Create an issue in the Smart Date queue and assign to yourself.
      • Create an issue fork.
      • Check out the issue fork locally.
      • Write (and test) the test locally.
      • Commit and push to the issue fork.
      • Mark issue as "Needs review".
      • Ask someone to review - if all looks good, the reviewer will mark as RBTC.

Resources

Chad's Drupal 10 Learning Curriclum & Journal
Chad's Drupal 10 Learning Notes

The Linux Foundation is offering a discount of 30% off e-learning courses, certifications and bundles with the code, all uppercase DRUPAL24 and that is good until June 5th
https://training.linuxfoundation.org/certification-catalog/

Hosts

AmyJune Hineline - @volkswagenchick

Guests

Chad Hester - chadkhester.com @chadkhest
Mike Anello - DrupalEasy.com @ultimike

Direct download: Skills_Upgrade_7.mp3
Category:general -- posted at: 4:00am EDT

Today we are talking about Test Driven Development, Why it’s important, and How it improves development with guest Alexey Korepov. We’ll also cover Test Helpers as our module of the week.

For show notes visit:
www.talkingDrupal.com/446

Topics

  • What does the term Test Driven Development (TDD) mean
  • Does Drupal make use of TDD
  • What makes TDD different from other methods of Development
  • Do you have to change your way of thinking
  • What are some good resources to learn TDD
  • Do you have any pointers for teams looking to get started
  • Are certain kinds of projects better suited to TDD
  • How have dev teams adapted to TDD
  • Any advice on environment setup
  • Any special tools

Resources

Guests

Alexey Korepov - korepov.pro Murz

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan
Martin Anderson-Clutz - mandclu
Matt Glaman - mglaman.dev mglaman

MOTW

Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted an API that could dramatically simplify the process of writing Drupal unit tests? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Sep 2022 by today’s guest, Alexey Korepov
    • Versions available: 1.3.0 compatible with versions of Drupal 9.4 or newer, right up to Drupal 11
  • Maintainership
    • Actively maintained, latest release less than 3 months ago
    • Security coverage
    • Test coverage, would be ironic if it didn’t
    • API Documentation is available, linked from the project page
    • Number of open issues: 2 open issues, which are actually feature requests
  • Usage stats:
    • 5 sites officially, but modules or sites can leverage Test Helpers without enabling it, and this usage is recommended, so the number is actually higher
  • Module features and usage
    • Provides a new container that automated tests can leverage to perform common tasks with much less code.
    • For example, you can create a user or a node with a single line of code
    • You can also mock more complex operations like an entityQuery or loadMultiple call, again with a single line of code
    • Traditionally, writing unit tests is more complicated because by design they run without fully bootstrapping Drupal
    • That means that your test needs to mock functions or services in the code you’re testing which can result in units tests being much longer than the code they’re testing
    • Test Helpers also allows your tests to leverage existing mocks and stubs for popular services
    • The project page also links to the recording and slides for a talk Alexey gave about Test Helpers at DrupalCon Pittsburgh last year, if you want to do a deeper dive
Direct download: td-446-libsyn.mp3
Category:general -- posted at: 2:00pm EDT

Welcome back to “Skills Upgrade” a Talking Drupal mini-series following the journey of a D7 developer learning D10. This is episode 6.

Topics

  • Review Chad's goals for the previous week

  • Review Chad's questions

    • Array structures
    • accordion.html.twig
    • D7 to D10 migrations
  • Tasks for the upcoming week

    • [testing_example](https://git.drupalcode.org/project/examples/-/tree/4.0.x/modules/testing_example?
    • Be sure to install drupal/core-dev dependencies using composer require dev drupal/core-devref_type=heads) from Examples module.
    • Set up phpunit.xml file in project root - using this file to start
    • Run existing tests using command line from the project root. Something like: phpunit web/modules/contrib/examples/modules/testing_example/tests
    • Review test code in module.
    • Start with FrontPageLinkTest.php, then FrontPageLinkDependenciesTest.php, then TestingExampleMenuTest.php

Resources

Understand Drupal - Migrations
Chad's Drupal 10 Learning Curriclum & Journal
Chad's Drupal 10 Learning Notes

The Linux Foundation is offering a discount of 30% off e-learning courses, certifications and bundles with the code, all uppercase DRUPAL24 and that is good until June 5th
https://training.linuxfoundation.org/certification-catalog/

Hosts

AmyJune Hineline - @volkswagenchick

Guests

Chad Hester - chadkhester.com @chadkhest
Mike Anello - DrupalEasy.com @ultimike

Direct download: Skills_Upgrade_6.mp3
Category:general -- posted at: 4:00am EDT

Today we are talking about The Drupal Bounty Program, How it supports innovation, and how you can get involved with guest Alex Moreno. We’ll also cover WebProfiler as our module of the week.

For show notes visit:
www.talkingDrupal.com/445

Topics

  • What is the Drupal Bounty program
  • How and when did it start
  • What issues and tasks are included
  • Has the bounty program been successful
  • Why was this program extended
  • Do you see any drawbacks
  • Can anyone participate
  • How are issues for the second round being selected
  • What do you see the future of the bounty program looking like
  • Could this become like other bounty programs with cash
  • Do you think the bounty program will help maintainers get sponsorship

Resources

Guests

Alejandro Moreno - alexmoreno.net alexmoreno

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan
John Picozzi - epam.com johnpicozzi
Matt Glaman - mglaman.dev mglaman

MOTW

Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted to get detailed performance data for the pages on your Drupal sites? There’s a module for that.
  • Module name/project name:
  • Brief history
    • How old: created in Jan 2014 by Luca Lusso of Italy who was a guest on the show in episode #425
    • Versions available: 10.1.5 which works with Drupal >=10.1.2
  • Maintainership
    • Actively maintained, latest release on Feb 1
    • Security coverage
    • Test coverage
    • Not much in the way of documentation, but the module is largely a wrapper for the Symfony WebProfiler bundle, which has its own section in the Symfony documentation
    • Number of open issues: 36 open issues, 13 of which are bugs
  • Usage stats:
    • 477 sites
  • Module features and usage
    • Once installed the module adds a toolbar to the bottom of your site, within which it will show a variety of data for every page:
    • Route and Controller
    • Memory usage
    • Time to load (with some additional setup)
    • Number of AJAX requests
    • Number of queries run and the total query time
    • Number of blocks visible
    • How many forms are on the profile
    • Lots of other detailed information available through links
    • Reports are saved into the database, so you can dig through additional details such as:
    • Request information like access metadata, cookies, session info, and server parameters, in addition to the request and response headers
    • All of the queries that ran, how long each took, and even a quick way to create an EXPLAIN statement to get deeper insight from your database engine
    • You can also view all the services available, and with a single click open the class file in the IDE of your choice
    • A handy alternative to other performance monitoring tools like XHProf (either as Drupal module, or installed directly into your development environment), or commercial tools like Blackfire or New Relic
    • Discussion
    • Luca’s book Modernizing Drupal 10 Theme Development actually provides a great deep dive into this module
Direct download: td-445-libsyn.mp3
Category:general -- posted at: 2:00pm EDT

Welcome back to “Skills Upgrade” a Talking Drupal mini-series following the journey of a D7 developer learning D10. This is episode 5.

Topics

  • Review Chad's goals for the previous week

    • .gitignore
    • Field Example module
    • Plugin API
    • Drupaal 10 Masterclass book
  • Review Chad's questions

    • Field Example follow up
  • Tasks for the upcoming week

    • Examples module: js_example module
      • js_example.libraries.yml
      • hook_theme() implementation in js_example.module
      • JsExampleController
      • template files

Resources

.gitignore
Drupal 10 Masterclass
Modernizing Drupal 10 Theme Development
Chad's Drupal 10 Learning Curriclum & Journal
Chad's Drupal 10 Learning Notes

The Linux Foundation is offering a discount of 30% off e-learning courses, certifications and bundles with the code, all uppercase DRUPAL24 and that is good until June 5th
https://training.linuxfoundation.org/certification-catalog/

Hosts

AmyJune Hineline - @volkswagenchick

Guests

Chad Hester - chadkhester.com @chadkhest
Mike Anello - DrupalEasy.com @ultimike

Direct download: Skills_Upgrade_5.mp3
Category:general -- posted at: 4:00am EDT

Today we are talking about design to development hand off, common complications, and ways to optimize your process with guest Crispin Bailey. We’ll also cover Office Hours as our module of the week.

For show notes visit:
www.talkingDrupal.com/444

Topics

  • Primary activities of the team
  • Where does handoff start
  • Handoff artifact
  • Tools for collaboration
  • Figma
  • Evaluating new tools
  • Challenges of developers and designers working together
  • How can we optimize handoff
  • What steps can the dev team take to facilitate smooth handoff
  • Framework recommendation
  • Final quality
  • AI

Guests

Crispin Bailey - kalamuna.com crispinbailey

Hosts

Nic Laflin - nLighteneddevelopment.com nicxvan
John Picozzi - epam.com johnpicozzi
Anna Mykhailova - kalamuna.com amykhailova

MOTW

Correspondent

Martin Anderson-Clutz - mandclu

  • Brief description:
    • Have you ever wanted to manage and display the hours of operation for a business on your Drupal site? There’s a module for that
  • Module name/project name:
  • Brief history
    • How old: created in Jan 2008 by Ozeuss, though recent releases are by John Voskuilen of the Netherlands
    • Versions available: 7.x-1.11 and 8.x-1.17
  • Maintainership
    • Actively maintained, latest release was 3 weeks ago
    • Security coverage
    • Test coverage
    • Documentation: no user guide, but a pretty extensive README
    • Number of open issues: 15 open issues, only 1 of which are bugs against the current branch, though it’s postponed for more info
  • Usage stats:
    • Almost 20,000 sites
  • Module features and usage
    • Previously covered in episode 113, more than 8 years ago, in the “Drupal 6 end of life” episode
    • The module provides a specialized widget to set the hours for each weekday, with the option to have more than one time slot per day
    • You can define exceptions, for example on stat holidays
    • You can also define seasons, with a start and end date, during which the hours are different
    • The module also offers a variety of options for formatting the output:
    • You can show days as ranges, for example Monday to Friday, 9am to 5pm, 12-hour or 24-hour clocks, and so on
    • Obviously it will show any exceptions or upcoming seasonal hours too
    • It can also show an “open now” or “closed now” indicator
    • It can create schema.org-compliant markup for openingHours, and has integration with the Schema.org Metatag module
    • Office Hours does all this with a new field type, so you could add it to Stores in a Drupal Commerce site, a Locations content type in a site for a bricks-and-mortar chain, or if you just need a single set of hours for the site, you should be able to use it with something like the Config Pages module
    • The README file also includes some suggestions on how to use Office Hours with Views, which can give you a lot of flexibility on where and how to show the information
Direct download: td-444-libsyn.mp3
Category:general -- posted at: 2:00pm EDT