Daniel Sahlberg wrote on Mon, 18 Nov 2024 08:52 +00:00: > backport.pl is a heavy user of "given ... when ..." and given that these > constructs will be removed[1] when Perl 5.42 is released (pun intended), we > need to take some action. I'm guessing we have about one year before > hitting a brick wall. > > backport.pl is "considered deprecated" according README.backport, but it > seems danielsh added this on his own - I can't find a discussion or > decision on dev@.
IIRC, I told dev@ I figured it was time to deprecated backport.pl and no one objected. There wouldn't have been much discussion; the Perl and interactive parts of the backport scripts never received much attention. Substantively, the .pl is deprecated in favour of the .py because the .py's internals are much cleaner. > Both scripts can handle the nightly backport job (running on svn-qavm) as > well as the backport conflict detection (currently on ci2.apache.org). > backport.pl also has an interactive mode where it can review existing > nominations and create new ones in the correct format. Some more differences: - There's an old bugfix, r1765903, that may have never been ported to backport.pl. - 'release.py write-changelog' reuses backport.py library functions: https://svn.apache.org/viewvc/subversion/trunk/tools/dist/release.py?revision=1921278&view=markup#l1626 > I see two options: > * Rewrite backport.pl to use if/else blocks instead. This should be quite > easy but I don't think we have a test suite to verify the result Have you seen https://svn.apache.org/viewvc/subversion/trunk/tools/dist/README.backport?revision=1911928&view=markup#l55 ? > so we might find regressions further down the line. > * Bite the bullet, delete backport.pl and officially switch to backport.py. > > The first option seems like the simplest here-and-now, but we are still in > the position where we have two different scripts doing more or less the > same. > > For the second option, we would loose the interactive features but I > believe we have more developers fluent in Python so we can better support > it going forward. If we select this option, we either need to decide that > the interactive features can go away, or we need to spend the resources > rebuilding them in Python. We also need to do changes on svn-qavm, I can > volunteer to do this. > Thank you. :) > I'm leaning towards the second option. The interactive features are nice > but I usually don't use them so I wouldn't mind loosing them - I think the > advantage of a more widely used language is more important. > > Thought and comments? > I don't follow development closely nowadays, but when I did, I was +1 to switch to .py for the automated functions, for whatever that may be worth. (Opinions depreciate.) As to the interactive functions: they don't have a Python equivalent, and I don't think they ever had many users, but for what users they have they do make it much easier to contribute to maintenance of stable branches. So: A. Would removing these functions break any maintainer's proverbial spacebar heating? B. Would more maintainers use the interactive functions if they [the interactive functions] were implemented in Python? The goal I have in mind here is to make it as easy as possible for maintainers to contribute. To graft hwright@'s phrasing, the steps for a maintainer to edit STATUS should be "1. Profit!". :) Cheers, Daniel > Kind regards, > Daniel > > > [1] https://perldoc.perl.org/perldeprecation#Perl-5.42