Back from the PTS 2025
I’m just back from the Perl Toolchain Summit 2025!
It was fantastic!
“The Perl Toolchain Summit (PTS) is an annual event where we bring together the volunteers who work on the tools and modules at the heart of Perl and the CPAN ecosystem” (source: sponsor prospectus)
Its characteristics is to be a private event (“invite only”) that is sponsored by companies. (at least that’s the successful recipe for the most recent years)
During 4 days, vital maintainers of Perl toolchain are grouped together in order to exchange, know each others, speed up implementation of some important changes or agree on “consensus” (e.g. LTS or metadatas).
People joining the event are active outside the event all along the year, recharging battery and motivation during event. They go back home with a TODO list well filled :)
The conference/hackathon
I got a bit of a shock during my first hours.
First about the brilliant people there and how reachable they were.
The previous picture was taken before it goes more into a messy “hackathon” style with 5 or 6 tables
^ One of the “tables”, here the “table PAUSE” on Thursday.
Second about the geekiness: I never seen so many geek per square meter :D
The stickers
And goodies
People brought so great setups (multiple screens, various devices…) where I use to travel the most empty as possible… It impressed me.
Also, if not all people had the same level of knowledge, almost everyone was very experimented and have a minimum common base even out of their area of expertise. It made the discussions always valuable up to sometimes epic.
My personal planned focus for this summit was like this:
But I wanted to focus on networking and brainstorming rather than purely technical delivery. It’s something that was advised to me by veteran PTS folks (NEILB and BOOK).
Day 1
On the first day, we did a “presentation” standup, where people expressed their plans for the summit.
I choosed to pick the first “presentation” slot and later on the day I delivered 3 talks:
- Hello I’m Tib
- Answering questions about CPAN that nobody asked
- Answering questions about CPAN that nobody asked - the sequel
Retrospectively, I think:
- It allowed me to do my introduction, and to share a bit of my vision
- Items presented were totally in scope of PTS
- It spread topics to everyone to think about (with or without me) for the rest of the summit
It also means I isolated for some time before (final preparations) which was not great (but I had to).
After my presentations, I preempted quickly OALDERS for a quick sync to get his insights on some “indexes” oddities (being related to MetaCPAN API or MetaDB).
I went outside to synchronize with SJN from CPANSec and speak about SBOM.
I reached the “PAUSE table” (ANDK, ISHIGAKI and SREZIC) for “pushing” some issues/PRs.
- GET URL: HTTPS is now supported (related to PAUSE uploads)
- Update PAUSE Operating Model for giving up first-come permissions (related to namespace vacuum)
- Do not index Local:: namespace (nor Local) (related to reserved namespaces)
I discussed the “Admin permission” and we decided to keep the statu quo on that.
I demoed my local PAUSE (dockerized) that makes handy the dev/audit/test of PAUSE and also avoid hurting production PAUSE for testing purposes.
The next day, all my pull requests were merged, the PTS did its magic! :)
Day 2
Everything accelerated on this day.
First we brainstormed with GARU to find an improvement (if possible) to the river algorithm to be sent to NEILB
I worked with ELBEHO and BOOK on polishing the PTS prospectus.
CPAN Patch Tooling was one of my other big topic of the day. I sat aside TINITA to get insights on cpan-meta and slurp its overall expertise in packaging and “layer of patches”.
Later, I paired with ATOOMIC to look at CPAN::Distroprefs (that I plan to use for a CPAN Patch Tooling “Proof Of Concept”). Several people intervened (e.g. LEONT, TODDR), it was great!
PEVANS delivered a talk about signatures, classes and roles in Perl. It was complex, in term of syntax and object oriented concepts. But some people were more confortable than me and it triggered several questions and discussions.
Then we did 2 CPANSec meetings:
- One about organization things
- Second with external people (with other CNAs, Greg Kroah-Hartman from Linux Kernel was there)
We ended the day with a “sponsored meal” being altogether in a private restaurant room. It was probably the most typical german diner and a very lively one. I was sit close to ARISTOTLE, TIMLEGGE (my “twin brother of the day”!) and SIMBABQUE to only cite some of them.
Day 3
Saturday started with Test::Smoke, finally!
I’m the maintainer after ABELTJE passed away and it is actually one of my priorities.
With HMBRAND (creator of Test::Smoke and perl core porter) we initiated the discussion about deprecating dual testing of PerlIO/StdIO in core smoke testing. Having LEONT right there, we were able to clarify and reach a consensus about that: “it will happen”.
I demoed also quickly my start of a (Linux focused) Test::Smoke farm.
Later I joined the MetaCPAN table for discussion with MICKEY and HAARG around indexes and in particular Acme::Not::Indexed.
INGY delivered a talk about YamlScript, again several questions and discussions.
I tested the merge of my change Do not index Local:: namespace (nor Local) by PAUSE table. I did it with Local::No::Longer::Indexable. I discovered that it has a connection with Acme::Not::Indexed discussion.
Day 4
On Sunday, I wanted to continue on Test::Smoke and do more “hacking”.
I discussed quickly with HMBRAND since he’s doing some Proof Of Concept to send reports to future CPANTesters infrastructure.
I started to implement a patching facility (using an hypothetical smokecurrent.patches
and a patches/
directory) inside Test::Smoke. Right now, you can already emulate that use case easily for instance with fork+branches (syncer “git” or “snapshot”) or patching first (syncer “copy”)… But TIMTOWTDI and local patching can be slightly more handy for some use cases.
In parallel, I spent some time on Perl logo, changing the logo of perlres.
Then proposing the 081 (“gradient without medallion”) to the official repository of assets.
I also spent some time pushing more websites to use the new logo (e.g. PR#2169 for action-setup-perl)
Or PR#192 for exercism.io that was quickly merged).
On sunday, BOOK and SJN did record a podcasts and I was interviewed by BOOK with HMBRAND to talk about Test::Smoke. I think we well covered the topic :)
PJCJ came to me (thank you!) and we discussed Devel::Cover, gcov in perl core and the (defunct) kritika.io and Devel::Cover::Report::Kritika.
Finally, STIGTSP and LEONT shared with me some hardening TODO items or WIP pull request for PAUSE and I accepted to handle some and help for others.
/me and the venue
When I arrived on site on Wednesday 30 april, it was late (around midnight), but I was immediately welcomed by some night owls in the lobby.
I did not know that at that time, but the lobby was about to become a very important place of the summit where people would gather before going outside for lunch or for long discussions around Perl technical or social stuff.
It’s the next day that I discovered the conference/hack rooms where we would spend 9AM to 7PM (at least).
From the outside, it looked like very much a peaceful environment.
A little hedgehog seemed to have the same positive opinion and was visiting us regularly.
Back to commodities, we got a great breakfast offer to start.
All along the days, catering was at disposal, which allowed us to (re)charge energy for intense brainstormings!
Side effect, it enabled the possibility to skip lunch if we wanted to.
But we also had opportunities to lunch altogether (e.g. it happened on Thursday).
Walking around the venue
During the summit, in little groups, we did some quick exploration around the venue.
And
I pictured a few random buildings that I considered nice
Or again
I went for quick shopping at Red Bull Leipzig store to make gifts to family and friends.
Or our Saturday evening restaurant
As a constant, portions were very generous and we enjoyed that they have their brewery
Proof of the good atmosphere, people frequently switched from one group to another.
There’s folks (that I did not cite so far) and that I enjoyed the company like FERKI, INGY and MITHALDU without actually not that much interacting on technical topics in the end.
And sometimes, like on Sunday, we ate altogether. For the record, we choose a Doner where Angela Merkel did visit in the past!
Also, for the record, German people were friendly with us all during the summit.
Conclusion
I had a fantastic time at PTS.
There were 33 attendees with 5 first-timers (I was one of them).
Everyone was very nice and available. I learned a lot, made connections and tried to speak to everyone. Now, I even more consider this event vital for Perl sustainability and all companies using the language.
I had a great time well beyond the primary focus of technical work.
A huge thank you to organizers BOOK, ELBEHO, TINITA, GARU, DBOEHMER
Monetary Sponsors
Booking.com, WebPros, CosmoShop, Datensegler, OpenCage, SUSE, Simplelists Ltd, Ctrl O Ltd, Findus Internet-OPAC, plusW GmbH
In-kind sponsors
Grant Street Group, Fastmail, shift2, Oleeo, Ferenc Erki
Community Sponsors
The Perl and Raku Foundation, Japan Perl Association, Harald Joerg, Alexandros Karelas PerlModules.net, Matthew Persico, Michele Beltrame Sigmafin, Rob Hall, Joel Roth, Richard Leach, Jonathan Kean, Richard Loveland, Bojan Ramsa