Subject: bug#75526: python.el uses treesit-declare-unavailable-functions despite requiring emacs >v24.4

From: Philip Kaludercic <[email-masked]>
Date: Fri, 28 Feb 2025 08:34:04 +0000

JD Smith <[email-masked]> writes:

>> On Jan 28, 2025, at 10:00 PM, Yuan Fu <[email-masked]> wrote:
>> 
>> 
>> 
>>> On Jan 27, 2025, at 10:55 PM, Daniel Mendler <[email-masked]> wrote:
>>> 
>>> Yuan Fu <[email-masked]> writes:
>>> 
>>>>> On Jan 12, 2025, at 10:19 PM, Yuan Fu <[email-masked]> wrote:
>>>>> 
>>>>> 
>>>>> 
>>>>>> On Jan 12, 2025, at 3:58 PM, Daniel Mendler via Bug reports for GNU Emacs, the Swiss army knife of text editors <[email-masked]> wrote:
>>>>>> 
>>>>>> Stefan Kangas <[email-masked]> writes:
>>>>>> 
>>>>>>> JD Smith <[email-masked]> writes:
>>>>>>> 
>>>>>>>> The TS support in python.el breaks versions of emacs prior to
>>>>>>>> v30, since it calls the recently introduced macro
>>>>>>>> `treesit-declare-unavailable-functions`.  The header still
>>>>>>>> notes:
>>>>>>>> 
>>>>>>>> ;; Version: 0.28
>>>>>>>> ;; Package-Requires: ((emacs "24.4") (compat "29.1.1.0") (seq "2.23"))
>>>>>>>> ;; Maintainer: [email-masked]
>>>>>>> 
>>>>>>> Maybe this could be fixed in compat?
>>>>>> 
>>>>>> Yes, we can add the macro `treesit-declare-unavailable-functions` to
>>>>>> Compat. But python.el needs to `(require 'treesit nil 'noerror)` instead
>>>>>> of `(require 'treesit)`.
>>>>> 
>>>>> Oops, sorry about that. I didn’t know python.el is on ELPA. Let me know if there’s anything needed from me.
>>>>> 
>>>>> Yuan
>>>> 
>>>> Any progress on this? I can add it to compat.el if no one is available right now. Compat.el is on savannah, right?
>>> 
>>> No, this is too early. Compat-31 is still far away.
>> 
>> Thanks. I reverted the change in python.el
>> 
>
> Thanks.  Unfortunately there are now new changes to python.el which again break Emacs < 30.  The file still mentions: 
>
>> Package-Requires: ((emacs "24.4") 
>
>
> It now uses the Emacs 30 only `derived-mode-add-parents'.  If
> python.el is going to be developed primarily on master, it should
> probably be removed from MELPA or at least use compat.  I'll take this
> up with them.

python.el is on MELPA? (and it /does/ use Compat!)  But note that Compat
doesn't implement everything, IIRC this includes
derived-mode-add-parents.

> JD