Re: Term::ANSIColor v6.0.0 TRIAL release available
Russ Allbery <[email protected]> Sat, 01 Aug 2026 12:53:52 -0700
| Newsgroups | gmane.comp.lang.perl.perl5.porters |
|---|---|
| Organization | The Eyrie |
| Message-ID | <[email protected]> |
Scott Baker <[email protected]> writes: > This seems like a reasonable approach to me. Can you elaborate a little > on why you're dropping support for older Perls? I struggle to support > old Perl's with my modules, so maybe I can borrow some insight for your > experience. The immediate reason for "why this specific set of versions" is that I want to use semantic versioning for all of my Perl modules and have been slowly converting them in that direction. Perl 5.12 is the first version at which one can use: package Term::ANSIColor v6.0.0; and get semantic versioning for the module without a bunch of boilerplate to manipulate the $VERSION variable or worries about some weird behavior in early versions of the version pragma. The more general answer is that I maintain my packages as a hobby and I want to have fun working on my hobby. Continuing to be limited to Perl from 25 years ago isn't as much fun. I enjoy modernizing code and I like many of the new features that have been added to the language, and I don't want to promise to never use them. I'm therefore prioritizing my own happiness over backwards compatibility to some extent, but trying to stay within the Perl community's tolerance for change (which is very low). Eventually, I would like to be able to use function prototypes without having to think about them. I'd like to be able to use ->@* instead of the more irritating @{ ... } syntax. In general, I'd like to take advantage of all of the hard work that people have put in over the subsequent 25 years into improving the language. Having to only make minimal changes because my modules are core modules feels like a recipe for burnout to me. I've given this a lot of thought since this was a very controversial decision and a couple of people were quite upset that I dropped Perl 5.8 support in podlators v6.0.0 a couple of years ago. This makes me sad, since I don't want to make people upset, but I also realized that honoring their desire for stability to that degree was destroying my motivation to work on Perl at all. So I've decided on a very slow and gradual approach where I'm going to keep pushing the minimum supported version forward but try to give people a lot of warning. My personal feeling is that once we're talking about software released more than 15 years ago, we're talking about historical preservation and retrocomputing more than what I would consider software maintenance, and those tasks should expect to need different tools and a different workflow so that they can pin historical versions. Unfortunately, CPAN doesn't have some of the facilities of the software package infrastructure that came after it, so it's more disruptive to increase the minimum Perl version in a CPAN module than it is to increase the minimum Python version in a Python module. In the Python ecosystem, users on old versions of Python just pull old versions of modules that have updated their minimum version. It would be nice if CPAN would also support something like this, but I certainly understand the resource constraints. There's also unfortunately a bit of a community split and not everyone uses the mailing lists and won't see threads like this, so I'm afraid I'm still going to catch some people by surprise. In an ideal world, I'd have the time and energy to reach out to other forums and write Reddit threads or blog posts or whatever. I did consider that, but decided that trying to reach forums that I don't use and am not personally interested in was enough effort that it was going to undermine my desire to work on Perl modules at all, so I'm hoping that a TRIAL release and some email threads, and a much longer delay before I upload an indexed version, will be enough. (If anyone wants to pass this news on to other forums, please do so! I have no objections, I just have neither the time nor the energy to figure out other community communication methods.) -- #!/usr/bin/perl -- Russ Allbery, Just Another Perl Hacker $^=q;@!>~|{>krw>yn{u<$$<[~||<Juukn{=,<S~|}<Jwx}qn{<Yn{u<Qjltn{ > 0gFzD gD, 00Fz, 0,,( 0hF 0g)F/=, 0> "L$/GEIFewe{,$/ 0C$~> "@=,m,|,(e 0.), 01,pnn,y{ rw} >;,$0=q,$,,($_=$^)=~y,$/ C-~><@=\n\r,-~$:-u/ #y,d,s,(\$.),$1,gee,print