Navigating the Waters of Drupal Development with Tugboat

Podcast episode player
0:00 0:00

We embark on a journey, guided by a Tugboat, through the evolving landscape of Drupal development. This episode of the Lullabot Podcast dives deep into the world of Tugboat's seamless integration on Drupal.org. It's a pivotal tool that's redefining the paradigms of building, testing, and deploying Drupal projects.

Our voyage is enriched by the insights of a distinguished Drupal Core Committer, who unveils the myriad development challenges Tugboat adeptly navigates and resolves. Joining the conversation is the Captain of Tugboat himself, offering a rare glimpse into the mechanics behind Tugboat's ability to streamline the development workflow and foster unprecedented levels of collaboration among developers.

And there's more on the horizon—this episode is also the launch pad for our new podcast host!

Episode Guests

James Sansbury

A photo of James Sansbury smiling, sporting a pink bowtie and nerdy glasses.

In his role as Director of Product for Tugboat, James leverages his years of experience as a technical architect for Lullabot to support the biggest brands on the web with their digital platforms.

More about James

Cristina Chumillas

Cristina Chumillas headshot

Cristina Chumillas is a former front-end developer at Lullabot.

More about Cristina

Chris Albrecht

Chris Albrecht wearing a dark button down shirt in front of a gray background.

Back-end Drupal Developer turned Project Manager, Chris has worked on high-profile projects for IBM, Syfy, and more.

More about Chris
Transcript

Transcript

Matt Kleve: For February 15th, 2024. It's the Lullabot podcast.

Matt Kleve: Hey everybody, it's the Lullabot podcast. Episode 268. I'm senior developer Matt Kleve, host of the Lullabot podcast. And with me today we have front end developer Morgan Eck. Hi, Morgan.

Morgan Eck: Hey, Matt. How's it going?

Matt Kleve: I'm great. And at the retreat a couple of weeks ago, I twisted your arm, didn't I?

Morgan Eck: You did, you did. I agreed to something that I'm still not sure was a good idea to agree to. But here we are.

Matt Kleve: Oh, it's going to be great! You're going to help out with the podcast you'll be joining us for.

Morgan Eck: Excellent.

Matt Kleve: We'll at least make a deal, at least a while. How about that.

Morgan Eck: Deal. It'll it'll be a great time.

Matt Kleve: It's not the life sentence that you committed to at the retreat, but it's going to be good. And today we're talking about Tugboat. Tugboat is a product that kind of spun off of Lullabot. We'll hear all about it and how it's being used in Drupal core and contrib. And to start that off, I think we probably should bring in the director of product Tugboat from Atlanta, Georgia. He's known as q0rban on Drupal.org, where he's been for 16 years. He's worked on large data migrations, leveraging his years of experience as a technical architect for Lullabot to support the biggest brands on the web and their digital platforms. He's been at Lullabot for like 14 years now or something like that? Welcome in, James Sansbury. Hi, James.

James Sansbury: Hey, everybody. Good to be here.

Matt Kleve: Glad you're back.

Morgan Eck: And we also have with us Cristina Chumillas today, and she is a senior front end developer here at Lullabot who also does a million things. So correct me if I'm wrong on any of these, Cristina, but she is a Drupal core committer as provisional front end framework manager and UX Maintainer, a Drupal core usability maintainer, and a Drupal core Claro maintainer. She is currently working on redesigning Drupal's Administration interface and has co-organized several strategic initiatives like the admin UI and JavaScript Modernization initiative. She is from Barcelona, Spain, which is also going to be the home of DrupalCon Europe this September. Hey, Cristina.

Cristina Chumillas: Hi there.

Matt Kleve: That's a mouthful. That's a lot of things. Cristina.

Morgan Eck: Busy.

Matt Kleve: Do you get a hat for every one?

Cristina Chumillas: [Laughter] exactly.

Matt Kleve: Yeah. Also joining us today we have Lullabot senior technical project manager. He's been a part of a variety of work at Lullabot with Bravo TV, Syfy, IBM. Started off as a developer, now a project manager, grew up in South Park, Colorado. But they didn't make the TV show specifically about him. Probably?

Chris Albrecht: Not yet.

Matt Kleve: Now from the Denver area, Chris Albrecht. Hi, Chris.

Chris Albrecht: Howdy-ho, Matt!

Matt Kleve: [Laughter] You used to have a podcast of your own here on on Lullabot.com too.

Chris Albrecht: I did it was all about interviewing people on the spot at conferences and events. And then something happened a few years ago where we stopped doing that, and I got lazy and never picked it back up.

Matt Kleve: Yeah. Well, you also, as a PM, have been doing a bunch of work on Tugboat too, right? So.

Chris Albrecht: I have, I've been helping out a lot with the project management side and a little bit on the marketing side. So I'm excited to talk about it today.

Matt Kleve: So, James, if you don't mind jumping in and just kind of giving us a baseline set like what is Tugboat?

James Sansbury: Yeah. So we built Tugboat, it's been over ten years ago now. We built it just we were on a project where our stakeholder needed to see the work that they were doing, that we were doing, and they were super busy, and we didn't have a good way of sharing that work with them. So we built this tool that anytime a developer pushed up their code to be reviewed, it would automatically deploy that code to a preview. And then we could share that with our stakeholder. Fast forward you know, 12 years, we've we've iterated a bunch on that tool and it's it's called Tugboat. It detects when a pull request or a merge request is created and it will automatically spin up previews, take screenshots, do visual regression testing, do automated Google Lighthouse reports, all sorts of fun bells and whistles.

Morgan Eck: Impressive.

Matt Kleve: Still, it holds true to the letting people see your work quickly, right? I mean, that was where it started. That's that's where we are today. Still.

James Sansbury: Yeah. Letting spinning up quick previews and, you know, just having just the change that is in that pull request applied in a preview versus, you know what? A lot of times we were doing before we had this tool was we'd have that like end of the sprint demo where you've got like five developers all their code coming together for the first time, and it's being trying to be demoed to the stakeholders at that time as well. And like, inevitably one person's code breaks another person's code because we're all seeing it for the first time on this demo. It's like the the dumpster fire demo day is what we affectionately call it. But yeah, being able to, like, see individual changes isolated on a fully working website, being able to pull it up on your, your mobile devices, your tablets, whatnot.

Matt Kleve: Where I've seen it. So we use Tugboat at Lullabot. Of course, you know, we're going to use our own tools because they were built for the way we work. Right. And I know that it's super handy for QA. It's super handy to to send to a manager who's in charge of, you know, who made the request of, i want something that works a certain way, here, take a look at it. Is this really what you want? Kind of things. And just getting that that fast feedback that's super handy.

James Sansbury: Yeah, absolutely.

Chris Albrecht: I remember coming into my first project at Lullabot and Tugboat wasn't even a product yet. We were just using it ourselves and thinking we had so many developers on the Syfy project all trying to push code, as James was saying, and the the company I worked for before this, we had a much smaller group of developers, but it was still you had to check the code out to your local environment, wipe everything out, start over, rebuild everything just to check out somebody's small bug that they had fixed, or a new text change that they had made. And then coming into this project with Tugboat on it, where we could throw all of this crazy stuff onto our phones and check out five, six, seven different pull requests all at the same time and keeping our locals running. It's been. I haven't worked on a project yet at Lullabot where we haven't used it. It's just that valuable now. I couldn't believe it when we got in there. To what? What we had put together. It really was a game changer.

Matt Kleve: You said the word phone. That's something that I, I think is super handy with Tugboat too, is you get a URL for that pull request that's available on the internet, and if you want to pull it up on your phone, you can pull it up on your phone or your tablet or your other other other computer or your refrigerator, or however you want to do it, and make sure that the work you did does exactly what it should be doing. But this is not a total advertisement for Tugboat, which you can find at Tugboatqa.com. We wanted to talk about how Tugboat now integrates on Drupal.org and work that's being done for Drupal Core as well as I hear Drupal modules and contrib work?

Chris Albrecht: It does.

James Sansbury: Yeah, it's, it's been on there for a couple of years now.

Matt Kleve: Oh, well, I'm behind, I guess.

James Sansbury: Yeah. Well, it's also like kind of a hidden little link that sometimes it's hard to hard to find and hard to see. So.

Chris Albrecht: Well, it all started with simplytest.me, didn't it? We Adam approached us because simplytest.me was the way you were testing Drupal modules to see if they would work for your site. You would go in there, poke around a thing, say, I think this module does what I need it to do, and it would actually build you a working Drupal site, just vanilla Drupal but with that module enabled. So you could check out the interface, see the controls, and then if it was good for you, then you could install it on your own site. But that sort of evolved to being used for, I think, more than just that. And the maintainer at the time, Adam, had heard about Tugboat and decided that this could be a really good partnership. So I think that's how we got introduced into being more of a, a feature in the Drupal community was simplytest.me, brought us in, we worked with them, and now that Tugboat is the underlying structure for that. If you wanted to test out any pieces of Drupal through that platform, and then that led us into working directly with the Drupal Association to have Tugboat become part of the infrastructure for Drupal, testing for different issues in the issue queue along with the projects. Right? I think that's how it came along. I hope I didn't just make all that up.

James Sansbury: I wasn't a part of the original conversations, but yeah simplytest.me uses Tugboat and like, like Chris said, it's a great way to test out a module or a theme or an install profile. If you want to just try something out, try before you buy sort of a thing. And then, yeah, those conversations started with the Drupal Association to like. What if we actually had Tugboat as a part of the the community development process for Drupal core itself, for the modules themselves, for the themes themselves. So not just for the end users that want to download a theme or download a module and see if it works for them. But the people that are actually building the software itself. Like, what if we could have Tugboat automatically spin up previews of in-progress work for Drupal Core, or for a module or a theme or an install profile, all of those things.

Matt Kleve: So as far as that in-progress work, I think that's where we bring Cristina in. Cristina, you have a lot of that work on Drupal.org as far as all of the front end greatness that you've been working on. How has how has Tugboat been important to you in that work?

Cristina Chumillas: Well, I got to say that the moment that they said that that was going to be integrated on Drupal.org was like, oh my God. Finally, obviously the sad thing is that the, the, the, the environment kind of stay there like over time because it makes a lot of sense that it wouldn't stay. And, you know, Drupal.org has issues that are like nine years old, so makes all the all the sense of the world. But still when you're actively working on something, being able to actually test what you're working on, it just it just speaks by itself. It's just super easy to, to test things and it speeds up everything. So it's a huge game changer.

Matt Kleve: Sure. Many years ago, I mean, Drupal integrated tests, I guess, into that workflow workflow process as far as adding code to to core. And this seems like a really important step for the visual things you're doing that don't necessarily have browser testing, but you can spin something up really fast and see how it affects the whole.

Cristina Chumillas: Yeah. So basically on Drupal.org, it, it everything happens automatically. So the moment that you open a merge request Tugboat instances are created and then you can see that on the issue that you've created, but it goes away after a few days. So that's one of the things that I have on my wish list of things, but I will save that for later.

Morgan Eck: This has got to be pretty helpful for people who are a little bit less technical to be involved in the contrib process as well.

Cristina Chumillas: Absolutely. Yeah. Especially on Drupal events have been like something that has helped a lot, especially for people like testing things or I can set up a local environment or actually for for example, for the last Drupal Con, we wanted to test the new navigation on responsive well, on mobile in general. And we wanted people to test that on their own phones. So we basically had a link and we tested everything in there, and it was working, and it was super easy to get people helping us by testing this, not just testers, testers, but people from the usability team having a link and start testing things out. So it was super helpful.

James Sansbury: Cristina, have you noticed any change in terms of how you actually do the work you're doing as far as, like working with the community? Like, so you, you you're kind of a hybrid. Like, you can do design and front end development, but if you're working, like, say, with a separate designer. Does it change the way you work on a day to day basis with those folks? Having something like that.

Cristina Chumillas: You mean with with the community? People from the community?

James Sansbury: Yeah.

Cristina Chumillas: Yeah. It actually helps especially with designers and UX experts because it's the, the main problem that, as I was saying, we usually have is that they don't have local environments and they don't have any way to actually reproduce or to know which interface are you talking about? They don't have any way to see that. So that's actually a key for for them to actually be able to put in in front of them at any time a UI and say, this is the thing that we want to change this specific thing. And here you have the link and you will be able to test it later.

Matt Kleve: So I hear that we can use Tugboat now on contrib modules too? On drupal.org? Is that the case?

James Sansbury: Yeah!

Cristina Chumillas: Yeah, that's.

Matt Kleve: So back in the day when I used to do that kind of thing and cared about contrib modules that I maintained on drupal.org, I mean, that would have been a huge help when somebody said, hey, this is a change I want to make. Instead of having to download the patch. Apply the patch, refresh my local environment. Realize that I'm three versions out of date. Update that reapply the patch. The patch breaks. Figure out why. Oh that's I screwed that up. Apply the patch now to make now actually test the change. Like being able to use Tugboat in that environment seems like it could be, you know, could help everything speed everything up.

Cristina Chumillas: I would say the combination of Tugboat and GitLab has been key, for example, for the new navigation. It's like changed the velocity that we've developed everything. It's been super easy to test things. Actually, we've used Tugboat to run all the user tests. So it completely changed the way and the velocity. So yeah.

Matt Kleve: And you said also the addition of GitLab, it's there's now a pull request workflow, right.

Cristina Chumillas: Yeah, exactly.

Morgan Eck: That was a huge change.

Cristina Chumillas: From patches to like merge requests and diffs and yeah, it's it's a great great change. And I think when people when all the contributors get used to stop using patches because as core committers, we actually try to not enforce that, but try to suggest people to stop using patches. This is going to be like it's already been a big deal.

Chris Albrecht: All of these things that we've been talking about have been helpful for people in the community to use Tugboat to test some of their changes. Test the the patches. Test the issues. I think that what you were saying is as a module maintainer, you can actually add a a file to your module that will integrate it directly into Tugboat, so that Tugboat can spin that up and test your changes as you're modifying your module. Right?

Matt Kleve: Yeah, I guess that would be how I'd have to do it. Right? So I know that on my Lullabot projects that I work on, there's a a Tugboat YAML file or some, some kind of config file, right. That interfaces with Tugboat and explains. So I'm guessing in my contrib module I need something similar.

James Sansbury: Yeah. That's right. So the way that Tugboat understands what your project is, is based on a file that lives alongside the repository or lives in the repository. So then if you need to make changes, for example, like let's say you need to switch, you want to start supporting a new version of PHP you can create a new branch and start working on that config, that config change and be able to test PHP version changes all sorts of stuff that integrates with the code itself. So yes, if you have a module that you maintain or a theme or an install profile that you maintain on Drupal.org you can add a config file to your repository and the integration is already there for drupal.org. So you don't have to do anything other than add this configuration file. And then Tugboat will automatically start building previews for your module theme install profile. And there's there's some really good documentation out there that we'll link in the show notes on how to do that.

Cristina Chumillas: There's something I have no idea how this magic happens because I've never set that up. But actually, for that dashboard project. The dashboard initiative recently Tugboat was we moved to the contrib project on Drupal.org, and Christian and Pablo set that up, and they are actually integrating some core patches on, on on the project. I have no idea how they did that, but it's really useful because we actually want to make some changes to Drupal core while working with that and if we are relying on an issue that is not getting into Drupal core, that actually that's actually super helpful.

Matt Kleve: Tell me about the dashboard initiative, Cristina. That's something that I'm less familiar with. I want to hear about your awesome...

Cristina Chumillas: It doesn't have a lot of magic.

Matt Kleve: There's no magic? What is it?

Cristina Chumillas: It's not a lot of - it's a dashboard. It's basically a dashboard. Something something that we should have had like around 10 years ago.

Matt Kleve: We have it. We have a dashboard. It's called the status page. Right?

Cristina Chumillas: We do not have a dashboard on Drupal core. We did have and it was it is not there anymore. I don't know the whole the full story behind that. I have some data from people that I interviewed a while ago. Anyway, the goal right now is to actually ship Drupal with the default dashboard. That is going to be different for site builders on one side well, for content related users on one side and admins in another one, it's in theory is going to be some kind of an entity where you can have access. So you could, for example, have a dashboard for all your content and at the same time have another dashboard that will be like for all the CEO and Google Analytics or whoever it is said nowadays in a different dashboard. So it will it will be something that we will ship by default with some dashboards. And you will be able to create your own dashboards as config entities, the same way that you create content types. And we ship with a basic page and the article by default. So that's the idea behind it.

Matt Kleve: Very cool.

Cristina Chumillas: And I gotta say, Christian Espínola is one of the people I'm Pablo Lopez are the ones actually working on that.

Matt Kleve: Two Lullabots Christian and Pablo. Right?

Cristina Chumillas: Yes.

Matt Kleve: Yeah.

Chris Albrecht: So if I wanted to let's say I'm a module maintainer and I wanted to do some of this stuff we're talking about, and I'm actually legitimately asking this question because I haven't written code in about six years. So, Matt, I'm on your boat. I'm on your Tugboat. We're figuring this out together. Going back to our developer days, we got this contributed module that we're writing. We want to give it back to the community, but we want to test it in Tugboat. What does this look like? How do we actually do this? So I guess we first need to create an account at Tugboatqa.com, right? James, I'm kind of looking at you for answers. No?

James Sansbury: No.

Chris Albrecht: I don't even need that.

James Sansbury: No, you don't even need an account. All you need is your drupal.org login if you've got a module there and there's instructions. Actually, Mark Dorison from chromatic has written up some great instructions on how to add the configuration to your contrib module or whatever. And, and we'll link to those, like we said in the show notes. And he's also helped on the documentation that's on drupal.org as well on how to do that. So it's as far as the high level, you there's a boilerplate config file you download, you plop that into a directory in your repository, you commit that, create a new merge request, and then Tugboat will automatically start building previews of that module of a Drupal website with a standard profile installation and your module or your theme enabled automatically at that point. So.

Matt Kleve: So being used to how it works on Lullabot projects, I'm used to seeing comments then in the GitHub pull request where a Tugboat bot says, here's a link to your new preview. Is that what happens then on Drupal.org? Or how does that work?

James Sansbury: I know that there's a link in the actual issue. There's like a little button. And then Cristina on the merge request itself, is there a is there a comment like that? No. Okay.

Cristina Chumillas: No, it's only on the on the issue itself at the right before all the comments.

James Sansbury: Yeah. So there's a little button it might be hard to find, but if you if you use your browser find you can just search for Tugboat and it should pop up there.

Cristina Chumillas: Yeah, it just lasts, I think it's a week or something like that. And the way to get it back, because it is possible, but it's like just black magic kind of. You have to close the merge request and open the merge request again. And the link is back.

James Sansbury: Yeah. So if you're not seeing it on a merge request it may just be that you need to close it and reopen it, and then the the magic will occur again.

Matt Kleve: Sounds like turn it off and turn it back on again.

James Sansbury: Yeah. [Laughter] It kind of goes back to what Cristina was saying is like, you know, there's there's some drupal.org issues that have been open for forever, so we can't keep the we can't keep the environments around forever. So if you're not seeing it, it might just need to be closed and reopened.

Matt Kleve: We're talking Tugboat how it's being used on drupal.org for core work. Contrib work driving the Tugboat on the Lullabot podcast. Coming up next, we'll learn all about I don't know what's coming up in the future. What Cristina would like to see out of Tugboat as a user on Drupal.org. Coming up right after this.

Morgan Eck: All right. Welcome back to the Lullabot podcast. We are talking Tugboat and James, at Lullabot here we do a lot of open source work, we do a lot in the Drupal community. Tell me, is Tugboat open source?

James Sansbury: That's a that's a great question. I wish I could say yes. So we we built Tugboat at first, and the first iterations of Tugboat were open source. But we also affectionately call those versions the the duct tape and bailing wire edition of Tugboat. It was really just like a bunch of shell scripts and like, here's how to, you know, like READMEs on how to set it up. And once it kind of grew up from that phase where we, we wrote a full fledged Node.js application and started integrating with containerization software. We we just didn't have the bandwidth really to open source. And that might sound funny to folks that, like, are familiar with open source, because you might think like, open source means you get like a bunch of people helping, but open source also means you get a bunch of people with feature requests and complaints and bug reports and stuff like that. And and so we, we kind of just stayed focused on, on building the tool for ourselves and then opening it up as a product to to the community. And we try to give back as much as possible to other open source projects that are using Tugboat or that want to use Tugboat. So including the Drupal Association, OpenSocial, there's a there's several different platforms that use Tugboat under the hood, simplytest.me. And we do have a long term goal to actually open source Tugboat itself. I wouldn't say that that we don't have any sort of timeline for that. It's just more of like it aligns with our values as a company and as people. We want it to be open source, and we don't have a plan for getting there yet. But it is something that we continually talk about and are working towards.

Morgan Eck: Seems fair. Yeah.

Matt Kleve: So back to Cristina. When we're doing this work on Drupal.org and it involves Tugboat, I know that you did a lot of usability testing when it came down to your navigation work and your front end initiative is I'm sure Tugboat played a played a big role in, in testing, right? As far as getting new things in front of users and getting feedback fast.

Cristina Chumillas: Yeah. Basically at the beginning it was just a prototype and it was great for that. But over the we've done like so far, four rounds of usability testing. And the thing is that it wasn't just an issue that we had open and we were using that merge request. We actually used Tugboat itself, a project where we actually created a master main branch. And we spin up different environments, each of them with a specific changes to do some A/B testing to do to do several user testing. So it was great. And as I was we were saying before, there was a lot of people helping out running the tests that didn't have any Drupal experience. It was great to just throw a link to them and admin, admin and you're in and you're in Drupal. So it was great. It was really helpful to, to run the tests because otherwise paying for a platform where you can actually do that, it's mind blowing.

Chris Albrecht: Now, these tests weren't running through GitLab CI. They were actually running through Tugboat?

Cristina Chumillas: Yes, exactly.

Cristina Chumillas: We actually yeah, we we actually started from because we wanted to test several things, like with and without the, the old toolbar, what people thought about each of the different. So we needed to test with the old toolbar. We needed another environment with the new toolbar. And we needed to switch from one to another. So we really needed like different links, different environments. And we were actually doing like five tests in one day. So we needed a lot of links and a lot of completely different environments because people were actually creating content type, creating content, deleting content, and it would have messed up with other environments. So we were like preparing that the day before we created all the links for all of the the tests with the good practice that we had, like the main branch. And from there we just spent all the other ones with all the contents and everything created. So it was really helpful beyond the, the Drupal contrib integration itself.

Chris Albrecht: That's awesome.

Morgan Eck: So when would you use GitLab CI versus using Tugboat for automated tests?

Chris Albrecht: See Cristina walking away from this one.

[Laughter]

Chris Albrecht: Well, because normally we don't recommend that people use Tugboat to run their automated tests while you can. I mean, it's Tugboat is very flexible. You can do just about anything with it. When you're setting up your config file, you're really just giving it a set of instructions to run. So sure, you can run whatever test you want to on there. Now, it's not architected to be extremely performant in that sense. So that's why we would say you're going to get a better bang for your buck using something like GitLab CI, GitHub actions, circle, Travis, whatever is out there these days. But I think what we've just what Cristina just described is a great case for using it in moderation, like the tests you are running. Cristina were not overly complex. It was not like running full coverage unit tests across your PHP application. They could be done a little more quickly. How long would you say those tests ran on the Tugboat site? Like each one a couple minutes, a couple hours?

Cristina Chumillas: So we don't have, like, when I was talking about testing, was actually really testing with people, like, with real people.

Chris Albrecht: Actual functional testing.

Cristina Chumillas: Screens. Exactly. Yeah, yeah. Automatic testing we don't have that on the navigation itself yet, so that's why I have no idea how that would happen. But I was like, literally testing with people sharing screens.

Chris Albrecht: Gotcha. Okay. That makes more sense then. Yeah, that's I mean, that that's the perfect example of that. Put your QA team, give it to your, your usability or accessibility testers to actually have them run through it. So from the automated side, then I guess you could probably put a few onto Tugboat and it would, it would, it would hold up for that. You could get some basic results, but generally. Yeah, we recommend using for automated testing those other tools that are sort of built for that, your GitLab CI, etc. put them off on a separate environment, let it run that way. That said, though, one of one of the key features that we built into Tugboat was, is the ability to do basic visual regression testing. So while it's it's kind of like a hybrid form of automated testing a little bit, you give it a set of URLs, Tugboat will go and look at your base preview, which is kind of like the main branch of your site of your repository, and compares that to your your merge request or your pull request preview. You give it the URLs, it'll do some snapshots, compare them 1 to 1 so you can get some kind of basic automated testing that way as far as the visual regression goes. But if you really want to have it go in and run end to end tests automated tests like that, we would say that's when you really want to start integrating some of the other tool sets out there.

Matt Kleve: Morgan, you're the newest Lullabot been around for a couple of years on on Tugboat projects. What do you think about visual regression testing and and how that works out.

Morgan Eck: Oh, it's a love hate. You know, sometimes those snapshots just, you know, you die a little bit inside when you see a ton of them that you have to update. But I've caught so many things in my snapshots, just things that I would never have seen otherwise. So while they can be a little bit annoying in my workflow, they're actually extremely amazing. I can't imagine working on a project without Tugboat. In fact, I did where we had to pull everything locally and, you know, run all of our checks manually. And it was so messy. And I was I was just really missing Tugboat. So now I just push that whenever I can.

Matt Kleve: Cool. I have a question with the integration on Drupal.org. One of my favorite Tugboat things is that when you have, you know, your Tugboat preview, it's essentially that you have a login to a Linux box and you can log in and look at it and, you know, see the files that are actually running and get access to the database directly, that kind of thing. Can you do that on Drupal.org? Like is that open or no?

James Sansbury: Unfortunately you can't, yet.

Matt Kleve: Okay.

James Sansbury: I'll say yet. But it is something that I would like to see. And I'd be curious from Cristina, if that, if she thinks the team would find value in that. So the the reason just to back up a little bit, the reason that we don't have some of those features, including like visual diffs, is not something that we have access to on Drupal.org either, right now, is that Drupal.org has its authentication system where we, you know, on Drupal.org you're logging into the, the Drupal website there and you have access to certain things, and Tugboat has its own authentication system, and we don't want to just open up all of these things to anybody. Like, we don't want to give everybody a Linux shell on the internet, you know.

Matt Kleve: Install send mail, right?

James Sansbury: Yeah.

Matt Kleve: Yeah.

James Sansbury: But we do want the actual, you know core maintainers and module maintainers to have access to those things. So what I would love to see is an integration where if you're logged in to your account on Drupal.org, you could access the Tugboat dashboard for your for your module, your theme, or your core issues that you're working on. And so then you have access to so much more. You could see all the logs from all the different services you can with a click of a button, pop up a shell window where you can start just in your browser, you could start typing commands in there to see start debugging on the command line, something that doesn't work, and you would actually be able to see those visual regression testing visual regression tests or the Google Lighthouse reports and those things. So I would love to see that.

Matt Kleve: Sounds like we're kind of going in the direction of something we teased. Cristina, what else is on your wish list of things that would be great in Tugboat when you're doing your work on Drupal?

Cristina Chumillas: That's one of them. Probably. Yeah. If you get to that page, you actually have the power that I was looking for, because one of the small things that I was wishing for is, like, not have to go and close a merge request and open it again to actually see the link to the Tugboat, because it makes so much sense to just delete the Tugboat instance after two months of nobody working on an issue. But if I go there back and I want to, like, check something, even if the link is going to just leave for, I don't know, four hours, at least I can check that. So I would love to have a button somewhere to actually spin up another test to, to to check on our environment. And related to that, I think it would be great to have some way on the project page or somewhere to actually say, hey, this is the main release and you can see the link in there, and I can throw that link to people that want to check the accessibility. And we would have a lot of people testing that already with the latest release. So I would love to have some way to say this is the last one, the last release. Go. And here is the link to that.

Morgan Eck: And your standard accessibility tools all work on these Tugboat instances like it would, you know on any other environment?

Cristina Chumillas: I wish. That would be awesome. Yeah.

Chris Albrecht: Well, tools like any, any of the internet tools that you feed it a URL and then it can go and evaluate things like wave and stuff, that'll all work, right? You can give it a Tugboat preview URL. It will go through and run its tests for you.

Cristina Chumillas: Yeah. Login. If you have to log in for the admin interface, not but if you have to, if it's. Yeah, I don't know about that. Yeah.

Matt Kleve: Oh that's a good point Cristina, because that's the admin interface is a lot of the work you were doing. So. That makes good sense. It would be a little more tricky to to I guess you could pass it a cookie. I mean, that would be the old. I mean, if you could pass it the, the cookie from the, from the session maybe? I don't know. It depends on how the how the tool works. Right?

Cristina Chumillas: Yeah, exactly. Yeah. If it's a browser thing, you can just log it and pass the test in there manually. I guess it depends. It depends a lot on the on the tool also and what you want to achieve. But definitely it could be super helpful, especially for things that are going to be applied to the whole admin interface in Drupal. So yeah.

Matt Kleve: So it sounds like Tugboat on Drupal.org isn't, you know, 100% of what you could get out of Tugboat. And that's not necessarily that we're holding anything back. It's just that technically it's hard, hard to get everything to everyone.

Chris Albrecht: Yeah. And the Tugboat team here at Lullabot is, you know, a relatively small team. And we're focused on maintaining the the product that we've got, and making improvements where we can, keeping up with the latest technologies, and security, and stability. And then, yeah, to think about how we use it for our own projects versus how we are providing it as a service for Drupal.org. As James was saying, we don't want to just give shell access to everybody. We want to be very deliberate about the the features that we put out there to make sure that we're keeping all those things in mind the security, stability, maintainability. So yeah, you don't get all of the features that Tugboat has to offer just using it through Drupal.org. But you can get a free account on Tugboatqa.com if you wanted to go test it out and play with it for yourself. We have a free entry level account over there. You can then bump that up for, I think the next one after that is like $25 a month, James? And you get a nice boost in the storage space and the resources on your server. And, you know, we'll do everything up through, you can even host Tugboat on your own servers on premise. If you've got security restrictions or firewalls you need to work around. But then you get up to those and you can actually use the visual diffs and the lighthouse reporting against your site.

Chris Albrecht: You can spin up, you're only restricted by the amount of resources on your server at that point. So if you have a very, very small project, a few developers, the cost is really small to upgrade to one of those. But then you get everything that Tugboat comes with the ability to open up a shell like a command line shell through the web interface, through the browser to go in and debug things like we were talking about. So yeah, if you wanted to play around with a little bit more and see if it fits for your personal project or your company to go right along with what you've been using on Drupal.org, then we've got it all set up right there on TugboatQA, and we've got a great documentation site too. If you need some help figuring out how to customize your config file, get it running for whatever platform you're using. And that's a great place too if you got Tugboats set up on something we're not supporting right now, if we don't have a tutorial for your particular CMS or instance, or you've got some cool tricks that you use to sync a database or set something up that's kind of unique. That can be all contributed back to our docs to help out the community as well. Keeping in that vein.

Matt Kleve: I know you probably just went through this, but I wanted to say it again, just for clarity. Tugboat is not just Drupal. It will integrate with anything that runs on a Linux box, right?

Chris Albrecht: Exactly. Yeah. I mean, Lullabot got started as a Drupal development company. That's how we're known. That's what we do. That's our sweet spot. So we focus around Drupal a lot, but no Tugboat runs on a Unix box. So if you can run it on Unix, you can run Tugboat.

Matt Kleve: Very good.

Morgan Eck: And you said folks can help contribute to the documentation. How might somebody do that?

Chris Albrecht: So if you go to docs.tugboatqa.com you'll find our documentation site. And there should be I think there's links right in the documentation site about how to contribute back to that. It opens up a GitHub repository. And from there it's the usual process. In fact, you could even use Tugboat to preview your documentation before you finish your PR.

Matt Kleve: That's pretty meta.

Morgan Eck: Inception [laughter].

Chris Albrecht: We actually do have Tugboat running on Tugboat to do our best to prove it out.

Matt Kleve: That's pretty handy.

James Sansbury: Yeah.

Matt Kleve: Cristina, do you have any final thoughts as we kind of point towards wrapping things up?

Cristina Chumillas: Well, my magic button, but thank you for all the help so far.

Matt Kleve: I know the people that could make it happen.

Cristina Chumillas: Yeah?

James Sansbury: We'll get you your magic button we're going to work on it.

Chris Albrecht: I filed, like, 18 tickets while Cristina was talking, James, so we're good.

Matt Kleve: [Laughter] Chris, do you have any final thoughts?

Chris Albrecht: No. Not really. I think we covered pretty much everything I was thinking about. I'm excited to see this tool as a part of the community, so I hope everyone is getting some good use out of it. And we'd love your feedback. If if you're running into issues or if you're really happy with it, you let us know. You can find Lullabot on all of the social things, I guess. And and you know where to find us online.

Cristina Chumillas: I want to add something else, and it's that you can find them on tag on slack. On the Drupal slack, on Tugboat and the time of response, on American time obviously not when you are sleeping, but it's incredible. I it's and it's been said for people that it's not from Lullabot. It's like they answer super fast. So if you have any question, just ping them on slack.

Matt Kleve: Very good. James?

James Sansbury: Yeah I was going to say the same thing, Cristina. So we're on we're on the Drupal Slack. So if you're already in Drupal slack, there is a Tugboat, just search for Tugboat in the channels and it'll pop up. So and that's, that's more dedicated to folks that are maintaining modules, themes or working on core on Drupal.org. So if you have questions about how to get your module configured, we're happy to help in there. We also have our own Tugboat community, slack that if you're working on other projects we're very responsive in there. Come join us over there and we'll post a link to how to join that in the in the show notes. And and we, we do have this list going of things that we want to do to improve the Drupal.org integration. So if you have ideas please hit us up on any of those any of those channels to let us know what your ideas are on how to improve it. We're hoping to work with the Drupal Association later in this year, 2024, to start getting that list ready of what we want to work on. And then we're going to coordinate with them on the timing for taking that drupal.org integration to the next level for the community.

Matt Kleve: Does anyone ever call you the captain of the Tugboat?

James Sansbury: I do need a hat I think.

[Laughter]

James Sansbury: If I wore a hat, I think I would get I would get that more often. But no, not very often.

Morgan Eck: We'll have to start calling you that.

Matt Kleve: How about like like a a Captain Blazer type like I, I think we could that.

James Sansbury: Yeah and a pipe.

Matt Kleve: Oh!

Chris Albrecht: Oh, yeah. Now we're talking.

[Laughter]

Matt Kleve: Morgan, welcome to the podcast.

Morgan Eck: Thanks for having me. It's been great to be here. Happy to be here.

Chris Albrecht: Great job Morgan.

Morgan Eck: Thank you.

Chris Albrecht: I like the alliteration with the names too. We got Matt and Morgan.

Matt Kleve: There you go.

Morgan Eck: Oh!

Matt Kleve: I didn't think about that. Thanks, everybody.

Morgan Eck: Thank you.

James Sansbury: Thank you.

Cristina Chumillas: Thanks!

Chris Albrecht: Bye, all.