PTS 2023
I am writing this on my flight home from the PTS as I am terrible at writing things as they happen. :-)
The PTS proved to be a very valuable event, as it always has in the past. I am glad it is able to occur again in the wake of covid. One of the first things the group discussed was the lack of motivation in recent years when we could not meet, and how simply coming together again solved that problem for most of us.
This year my employer Grant Street Group paid for me to go to the PTS!
The first day largely became about important discussions for the toolchain group. Some included a majority of attendees, others were composed of smaller subsets depending on the topic.
Legacy Target Burden
The first discussion was over the legacy burden that toolchain developers must bare. Since the Lancaster accords we have agreed to target perl 5.8.1.These releases are well over 10 years old, and are used by less and less people as time goes on. In addition, perl continues to get better and introduce useful constructs that we have been unable to use.
In previous years the idea of raising the target perl version was very contentious. One of the main reasons for legacy support is to avoid driving away perl users who do not upgrade perl, but find stuff breaking if they upgrade cpan modules. One of the stronger points of perl is that it does not break things on a whim, and code written years, or even decades ago often works with little or no modification even on the newest perl versions.
Much to everyone's surprise, there was very little disagreement that the target could and even should be raised. Further we all agreed there should be a policy that regularly raises the target so that this discussion does not have to occur again.
The final decision was that we will set the target to be whatever version of perl was released 12 years ago this year, 11 years ago next year, and 10 years ago moving forward. This decision was because we all agreed 10 years was the ideal target, but we wanted to make a one-time exception for a version of Redhat/Centos that is still in common use, and supported, but will end its support window in 2 years.
EU Regulations for software
This discussion was about 2 regulations the EU is passing (or may have passed at this point) that effect companies that write software. You should read someone else's blog if you want a detailed explanation. My summary is this: It makes writing software risky in the EU. It is not supposed to effect Open Source Developers, but everyone is suspicious of that. It does not effect non-EU countries like the USA, UK, Canada etc, but there is some concern of indirect effects.
Yath Discussions
Several members of the PTS came to me to discuss yath, and how they use it either in open source projects, or at their workplaces. I was surprised to find out how wide-spread yath has become. I helped a few people get some bugs fixed and minor features added. I also talked through some upcoming plans I have for yath to improve its efficiency. As it stands yath gets inefficient when you use it on a very powerful machine with many cpus. The IPC system, scheduler, and most notably the collector become significant bottlenecks.
My Plan is to try to release Yath 2.0 in the not too distant future, with a revamped IPC system, and a more streamlined pipeline system without the current bottlenecks. I managed to do some work on this while at the PTS, but not anything that is ready for release yet.
Additional Notes
My second day at the PTS was largely spent working on Test-Simple and Test2-Suite bugs.
I also had discussions, and worked with Paul Evans (LeoNerd) on adding some refcount tools to Test2::Suite.
I also participated in a discussion around cpan overlays, alternate indexes, etc. that would make it possible for people who are on perls older than what the toolchain supports to continue to function. Ultimately the goal is to have a way to tell cpan, cpanm, and other cpan clients to use an alternate index that does not include any cpan package that requires a higher perl than the one that is installed. My chief contributions to this discussion are as follows:
- We should have an easy 1-line command, like the one cpanm has to download+install that will add the functionality to an old perl, making it extremely easy for anyone to opt-in and get moving.
- We should add an optional meta-data field that distribution authors can add which allows them to specify which version should be downloaded on older perls that the latest does not support. This allows authors to canonically say which versions should be in which indexes without needing to guess based on upload history. This was expanded to include the idea of having a dist link to a map file the author can upload to cpan, and replace as needed. But the implementation details are not important to this blog post. It is not 100% certain this path will be taken.
Most of day 3 was spent working on bugfixes, the changes for refcount, and yath. There were also further discussions about cpan indexing.
Travel Issues
Day 4 was a little crazy because several members of the PTS had their flights canceled due to the French protests. Everyone was scrambling to make new travel plans, or have backup plans ready. Several people ended up adding extra hotel days. I spent a couple hours checking plain, train, and bus options to get to Amsterdam, or alternatively Geneva in case my flight from Lyon to Amsterdam was canceled. All indicators said my flight was not canceled, but I was not able to check-in, the system refused and said I needed to do it at the airport.
Ultimately I decided to check out of my room early that evening (too late for a refund) and get a room at the hotel at the airport. That allowed me to go check-in in person before going to bed. I had a bit of a panic as the first kiosk I tried took all my info, then said "please wait" until it timed out. The second kiosk made me start over and asked me to pick my next hop (Amsterdam) but unlike the first kiost it refused to let me pick it! I grudgingly tried a third kiosk, and it worked flawlessly and let me check in and printed my
boarding pass.
Between all that Chaos I was able to have a few more productive discussions about various parts of the perl toolchain. I was also able to get some more work done on yath.
Parting Thoughts
It was really good to be back at the PTS. We were able to accomplish a lot, and we all got a serious moral/motivation boost. We managed to discuss some very important topic, and even better reach agreements on how to handle them moving forward. This was an extremely valuable event for perl, and for any person or organization that depends on perl.
Leave a comment