published on in MetaCPAN Perl Programming Perl Toolchain Summit

How I Spent My Perl Toolchain Summit v2023

⬅️ Previous post: Autocorrecting my Git Commands

❤️ It's great to see you here! I'm currently available on evenings and weekends for consulting and freelance work. Let's chat about how I can help you achieve your goals.



PTS 2023 in Lyon

The Perl Toolchain Summit (PTS) is an annual event, held in Europe, where work on improving the Perl toolchain takes place.

After a long Covid19 break, I was fortunate to be able to attend PTS again this year. We gathered in the wonderful city of Lyon, France. This was my 3rd trip to Lyon for the PTS and my 9th PTS in total.

the MetaCPAN team

Photo © Salve J. Nilsen, 2023, CC-BY-NC-4.0

[Left to right Graham Knop, Mickey Nasriachi, Olaf Alders and Leo Lapworth (reclining)]

I took the trip to France as an opportunity to visit some family in Germany and also to bring along my 12 year old daughter, who had only met a couple of her German relatives up to this point. We flew in to Frankfurt on the Friday before PTS. As it happens there was a rail strike that day, so our plans for taking an ICE from Frankfurt to Saarbrücken didn’t work out. We got picked up by my cousin instead. We spent the weekend in Germany visiting, with some stops in France and Luxembourg (Schengen) along the way.

Chateau Malbrouck

Chateau Malbrouck

We also happened to make a brief stop in Perl. (When I mentioned this to my mother, she told me that early on in her career she actually lived in Perl.) Despite the name’s connection to the language, there were no camels, onions or velociraptors on display.

On a sort of related note, From Perl to Rust is well worth the read. I highly recommend it if you’re a Perl hacker thinking of dabbling in Rust.

The following Monday, we took a TGV from Saarbrücken to Paris. We were delayed by several hours in Germany when our train was cancelled due to a strike on the French section of the route.

From the Arc de Triomphe

From the Arc de Triomphe

After a couple of days of sightseeing in Paris, we took a train from Paris to Lyon. We arrived around 10 pm, so we missed the arrival dinner, but still saw a few familiar faces in the lobby.

On Thursday morning I was able to get reacquainted with many old friends in the hotel restaurant, and PTS was essentially underway.

the MetaCPAN team

Photo © Salve J. Nilsen, 2023, CC-BY-NC-4.0

The Sponsors

This event wouldn’t take place without the financial backing of our wonderful sponsors. I’d like to thank the following donors for making this event a reality:

Booking.com, Deriv, Grant Street Group, Fastmail, cPanel, Perl Careers, MaxMind, Fastly Inc., Perl Maven, OpenCage, Perl Services, Oetiker+Partner, Procura

The Attendees

As pictured below, this year we had Leo Lapworth, Graham Knop, Olaf Alders and Mickey Nasriachi in attendance to work on MetaCPAN. We missed Shawn Sorichetti very much, as he was unable to attend.

the MetaCPAN team

Photo © Salve J. Nilsen, 2023, CC-BY-NC-4.0

The Goals

At our last meeting in 2019, we were working on moving our development environment from Vagrant to Docker and moving the production environment from Puppet to Docker + Ansible. In the intervening time we were successful with the dev environment move and we had partially moved to Docker deployments in production but not for the MetaCPAN API or web site. There has been some work on MetaCPAN since 2019, but things tend to slow down without these face to face meetings. Since 2019 Shawn Sorichetti has been working on his own on deploying Docker containers to production using k3s. A lot of that work was finished, but nobody else really understood enough about the new system to be able to start deploying containers. Our hope for PTS was to get the project into a position where we could begin deploying more applications without relying on our old Puppet configuration.

The Achievements

Leo took it upon himself to test drive the k3s documentation and figure out how everything works. This was also the perfect opportunity to close down our presence at Hivelocity and move to some cloud instances at Hetzner. After a long 4 days of learning a lot of new technology, Leo was able to deploy grep.metacpan.org to Hetzner. It is now up and running in its new home. Hopefully this means we can begin moving more of our core infrastructure to containers. There is also a long-term plan to bring some 3rd party applications (like cpancover.com) on board and begin hosting that as well. This will raise our monthly costs, so having new sponsors come on board will be key.

Welcome to Our New Sponsor

On that note, Sonic recently joined us as a sponsor. I took a few minutes at PTS to add them to our sponsor page. If your company would like to help us continue to make finding Perl modules enjoyable, please do have a look at our sponsorship opportunities and reach out to us at noc@metacpan.org with any questions.

Updating Dependencies

The metacpan-web repo has an automated process which updates its cpanfile.snapshot once per week and auto merges the code if a human signs off on it. We had wanted something similar for metacpan-api, but for years now we have not been able to update all of the dependencies at once. I had updated a number of them by hand in the past, but always got testing errors which I tried to upgrade them all at once. Graham had a look at this and found the culprit. So, one module has now been pinned to an earlier version and we can once again keep all of the other CPAN dependencies for the API up to date with a weekly, automated process.

Goodbye Travis CI

In 2019 we had begun the Dockerization of some of our sites and automated pushing images to Docker Hub via Travis. Since Travis is no longer a great option, I spent some time this year moving Travis-based logic to GitHub Actions. I also Dockerized the remaining sites, which I for some reason had just assumed were already done. 🤷‍♂️

Goodbye Unused Repositories

Leo and I spent some time going over the massive list of repositories in the MetaCPAN GitHub org. He deleted or archived around 25 repositories, making it much easier to get an overview of our repositories.

Goodbye Inactive Org Members

There were a number of people in our GitHub org who have not contributed over the last couple of years and some who have possibly never done so. I took a moment to remove clearly inactive members in order to have a better overview of whom we are dealing with.

Goodbye Twitter?

On the first morning of PTS we got an email from Twitter saying that our app had been suspended. I think it has to do with changes to their API terms. I know that Graham followed the instructions to re-activate it, but I haven’t tested Twitter OAuth logins to see if they’re back. I don’t know how many people might rely on this. Twitter seems like such a dumpsterfire that I’m not interested in spending a lot of time on it, unless it’s strictly necessary. So, that probably needs someone to verify that it’s working.

On a related note, the MetaCPAN Twitter account is mostly dead. I think I’m the only one who ever tweeted from it. Every day I don’t spend on Twitter is a better day for me, so I don’t anticipate much happening with that account moving forward.

Hello Mastodon

Some time ago, Graham set up a Mastodon account for us at https://fosstodon.org/@metacpan Since we’re done with Tweeting, hopefully we’ll have lots of time for Tooting.

Hello CVEs

Mickey did some work to add an index of CVEs to the MetaCPAN API. Among other things, we’ll be able to use this in future to bring attention to code which may be affected by CVEs.

Other OSS

libwww-perl

Some of the libwww-perl org. Left to right Olaf Alders, Graham Knop, Karen Etheridge and Julien Fiegehenn.

Some of the libwww-perl org

Photo © Salve J. Nilsen, 2023, CC-BY-NC-4.0

I’ve been part of the libwww-perl org for quite some time now. I had managed to rope Julien in a while back and he spent a good deal of his PTS dealing with open issues, reworking open pull requests and generally helping to clear out the backlog. I was able to do some code review on his work. He got a lot of work done over the 4 days and even released updated versions of some libwww-perl modules.

Other Fun Stuff

Hello Bouldering

Bouldering

[Breno tackles a route as Julien looks on.]

I let myself get talked into going bouldering with Julien, Tux, Leo, Breno and my daughter on the Saturday morning of PTS. I’ve never gone bouldering before and last attempted some rock wall climbing over 20 years ago. I had a lot of fun and got some particularly good mentoring from the other climbers, who are all experienced in the sport. I was able to tackle much more than I thought, didn’t pick up an injury and was still able to move the next day, so it felt like a pretty big win.

Hello Body Mass Index

Some of the libwww-perl org

Photo © Salve J. Nilsen, 2023, CC-BY-NC-4.0

The meals in Lyon were, as is to be expected, excellent. The Thursday and Friday evening restaurant visits, which were organized by the organizers, were fantastic. At the local bouchon I feel like I pushed the envelope on what my body could manage to pack away, but I emerged victorious. Having hopefully learned my lesson, I didn’t try to set any records at subsequent meals, but they were also very enjoyable.

😭 We Missed You, Neil

Although Neil Bowers help to organize this event, he wasn’t able to make it down. We missed him very much. He’s a real diamond geezer.

Not an actual photo of Neil Bowers.

That’s a Wrap

PTS was, as always, great. It was particularly nice to be back this year after such a long pause and see so many familiar faces again. As someone who was worked 100% remotely for the last 10+ years, I believe that you can do quality work without being in the same room as your colleagues. I also believe that for these kinds of volunteer projects, it’s hard to create the kind of momentum that an event like this brings, without getting everyone in the same room together.

Some of the libwww-perl org

Heading home, by way of Geneva.

An event like this doesn’t happen without sponsors, but it also doesn’t happen without organizers. I want to thank Neil, Philippe and Laurent for all of their work in organising this event. As per usual, they did a fantastic job. They were also very supportive of me bringing my daughter along and made her feel completely welcome, as did the other attendees. This allowed me to get some OSS work done, see my PTS friends, visit some family and spend some one on one time with my little one. All in all, it was an unforgettable time.