emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: URGENT - which-key FSF contributor status


From: Philip Kaludercic
Subject: Re: URGENT - which-key FSF contributor status
Date: Sat, 15 Jun 2024 09:05:52 +0000

Jeremy Bryant <jb@jeremybryant.net> writes:

> Philip Kaludercic <philipk@posteo.net> writes:
>
>> Eli Zaretskii <eliz@gnu.org> writes:
>>
>>>> From: Jeremy Bryant <jb@jeremybryant.net>
>>>> CC: Eli Zaretskii <eliz@gnu.org>, Philip Kaludercic <philipk@posteo.net>
>>>> Date: Thu, 02 May 2024 23:01:02 +0100
>>>> 
>>>> Hi Justin,
>>>> 
>>>> Prior to merging which-key and its history into Emacs core we need to
>>>> confirm that the contributors have indeed signed the FSF paperwork.
>>>> While this is a requirement of being ELPA it's up to the maintainer of
>>>> the package to check.
>>>> 
>>>> Can you confirm?
>>>
>>> I can easily check who has an assignment on file and who doesn't.  See
>>> below.  Where I need help is with the contribution of those who do NOT
>>> have assignments.  For each one of those, we need the total line count
>>> of non-trivial code changes they contributed, so we can decide whether
>>> their contributions present a copyright problem.
>>>
>>> Here's the list of contributors to which-key for whom I found no
>>> copyright assignment on file:
>>>
>>>>      16 Author: Bar Magal <barmagal@gmail.com>
>>>>       1 Author: Yunhao Zhao <yunhaozhaots@gmail.com>
>>>>       1 Author: Uros Perisic <uros.m.perisic@gmail.com>
>>>>       1 Author: N V <44036031+progfolio@users.noreply.github.com>
>>>>       1 Author: Hariharan R <hariharanrangasamy@gmail.com>
>>>>       1 Author: Frank Terbeck <ft@bewatermyfriend.org>
>>>>       1 Author: Duncan Burke <duncankburke@gmail.com>
>>>>       1 Author: D.K <beerandhot@gmail.com>
>>>>       1 Author: Colin Yates <colin@colinyates.co.uk>
>>>>       1 Author: Chris Perkins <chrisperkins99@gmail.com>
>>>>       1 Author: Celestial Nebula 
>>>> <41875671+CelestialNebula@users.noreply.github.com>
>>>>       1 Author: BlaCk_Void <alstjr7375@daum.net>
>>>>       1 Author: anis-semmar <78486514+anis-semmar@users.noreply.github.com>
>>>>       1 Author: Amory Meltzer <Amorymeltzer@gmail.com>
>>>
>>> If the notion of "line count of non-trivial code changes" presents a
>>> problem, feel free to email the diffs, and I will make the call.
>>
>> To my estimation, the above git log is suggestive and there are no
>> significant contributors besides Bar Magal (the others have 1-5 lines of
>> changes in the current code base).
>>
>> Here is an Occur buffer of the whitespace-insensitive vc-annotate buffer
>> with Bar's attributed lines:
>>
>> 111 matches for "Bar Magal" in buffer: *Annotate which-key.el (rev 1e89fa0)*
>>      57:2df42e2d (Bar Magal          2015-07-10   57) (defcustom 
>> which-key-idle-delay 1.0
>>     267:2df42e2d (Bar Magal          2015-07-10  267)   :type '(radio (const 
>> :tag "Show in minibuffer" minibuffer)
>>     268:2df42e2d (Bar Magal          2015-07-10  268)                 (const 
>> :tag "Show in side window" side-window)
>>     290:2df42e2d (Bar Magal          2015-07-10  290)   :type '(radio (const 
>> right)
>>     291:2df42e2d (Bar Magal          2015-07-10  291)                 (const 
>> bottom)
>>     292:2df42e2d (Bar Magal          2015-07-10  292)                 (const 
>> left)
>>     321:d9a9bd5a (Bar Magal          2015-07-09  321) This variable can also 
>> be a number between 0 and 1. In that case, it denotes
>>     687:02140265 (Bar Magal          2015-07-06  687) (defvar 
>> which-key--frame nil
>>    1122:688ba7ee (Bar Magal          2015-07-09 1122) 
>>    1131:688ba7ee (Bar Magal          2015-07-09 1131)   (let ((char-width 
>> (frame-char-width)))
>>    1132:688ba7ee (Bar Magal          2015-07-09 1132)     (+ text-width
>>    1133:688ba7ee (Bar Magal          2015-07-09 1133)        (/ 
>> (frame-fringe-width) char-width)
>>    1134:688ba7ee (Bar Magal          2015-07-09 1134)        (/ 
>> (frame-scroll-bar-width) char-width)
>>    1136:315eeca5 (Bar Magal          2015-07-09 1136)        ;; add padding 
>> to account for possible wide (unicode) characters
>>    1137:315eeca5 (Bar Magal          2015-07-09 1137)        3)))
>>    1138:688ba7ee (Bar Magal          2015-07-09 1138) 
>>    1141:688ba7ee (Bar Magal          2015-07-09 1141) TOTAL-WIDTH is the 
>> desired total width of the window.  The function calculates
>>    1142:688ba7ee (Bar Magal          2015-07-09 1142) what text width fits 
>> such a window.  The calculation considers possible fringes
>>    1143:688ba7ee (Bar Magal          2015-07-09 1143) and scroll bars.  This 
>> function assumes that the desired window has the same
>>    1144:688ba7ee (Bar Magal          2015-07-09 1144) character width as the 
>> frame."
>>    1145:688ba7ee (Bar Magal          2015-07-09 1145)   (let ((char-width 
>> (frame-char-width)))
>>    1146:688ba7ee (Bar Magal          2015-07-09 1146)     (- total-width
>>    1147:688ba7ee (Bar Magal          2015-07-09 1147)        (/ 
>> (frame-fringe-width) char-width)
>>    1148:688ba7ee (Bar Magal          2015-07-09 1148)        (/ 
>> (frame-scroll-bar-width) char-width)
>>    1150:315eeca5 (Bar Magal          2015-07-09 1150)        ;; add padding 
>> to account for possible wide (unicode) characters
>>    1151:315eeca5 (Bar Magal          2015-07-09 1151)        3)))
>>    1152:688ba7ee (Bar Magal          2015-07-09 1152) 
>>    1156:688ba7ee (Bar Magal          2015-07-09 1156) 
>>    1160:688ba7ee (Bar Magal          2015-07-09 1160) 
>>    1164:688ba7ee (Bar Magal          2015-07-09 1164) 
>>    1166:d9a9bd5a (Bar Magal          2015-07-09 1166)   "Return window total 
>> width.
>>    1167:d9a9bd5a (Bar Magal          2015-07-09 1167) If WIDTH-OR-PERCENTAGE 
>> is a whole number, return it unchanged.  Otherwise, it
>>    1168:d9a9bd5a (Bar Magal          2015-07-09 1168) should be a percentage 
>> (a number between 0 and 1) out of the frame's width.
>>    1169:d9a9bd5a (Bar Magal          2015-07-09 1169) More precisely, it 
>> should be a percentage out of the frame's root window's
>>    1170:d9a9bd5a (Bar Magal          2015-07-09 1170) total width."
>>    1172:d9a9bd5a (Bar Magal          2015-07-09 1172)       
>> width-or-percentage
>>    1173:d9a9bd5a (Bar Magal          2015-07-09 1173)     (round (* 
>> width-or-percentage (window-total-width (frame-root-window))))))
>>    1174:d9a9bd5a (Bar Magal          2015-07-09 1174) 
>>    1176:d9a9bd5a (Bar Magal          2015-07-09 1176)   "Return window total 
>> height.
>>    1177:d9a9bd5a (Bar Magal          2015-07-09 1177) If 
>> HEIGHT-OR-PERCENTAGE is a whole number, return it unchanged.  Otherwise, it
>>    1178:d9a9bd5a (Bar Magal          2015-07-09 1178) should be a percentage 
>> (a number between 0 and 1) out of the frame's height.
>>    1179:d9a9bd5a (Bar Magal          2015-07-09 1179) More precisely, it 
>> should be a percentage out of the frame's root window's
>>    1180:d9a9bd5a (Bar Magal          2015-07-09 1180) total height."
>>    1182:d9a9bd5a (Bar Magal          2015-07-09 1182)       
>> height-or-percentage
>>    1183:d9a9bd5a (Bar Magal          2015-07-09 1183)     (round (* 
>> height-or-percentage (window-total-height (frame-root-window))))))
>>    1184:d9a9bd5a (Bar Magal          2015-07-09 1184) 
>>    1195:67065197 (Bar Magal          2015-07-05 1195) 
>>    1208:02140265 (Bar Magal          2015-07-06 1208) 
>>    1225:67065197 (Bar Magal          2015-07-05 1225)   (when (buffer-live-p 
>> which-key--buffer)
>>    1226:02140265 (Bar Magal          2015-07-06 1226)     ;; in case 
>> which-key buffer was shown in an existing window, `quit-window'
>>    1227:02140265 (Bar Magal          2015-07-06 1227)     ;; will re-show 
>> the previous buffer, instead of closing the window
>>    1233:02140265 (Bar Magal          2015-07-06 1233) 
>>    1236:02140265 (Bar Magal          2015-07-06 1236)   (when (frame-live-p 
>> which-key--frame)
>>    1237:02140265 (Bar Magal          2015-07-06 1237)     (delete-frame 
>> which-key--frame)))
>>    1259:67065197 (Bar Magal          2015-07-05 1259) 
>>    1267:315eeca5 (Bar Magal          2015-07-09 1267)     (apply 
>> #'fit-window-to-buffer window params)))
>>    1268:315eeca5 (Bar Magal          2015-07-09 1268) 
>>    1302:02140265 (Bar Magal          2015-07-06 1302) 
>>    1306:35a171ef (Bar Magal          2015-07-06 1306)          (frame-height 
>> (+ (car act-popup-dim)
>>    1307:35a171ef (Bar Magal          2015-07-06 1307)                        
>>    (if (with-current-buffer which-key--buffer
>>    1308:35a171ef (Bar Magal          2015-07-06 1308)                        
>>          mode-line-format)
>>    1309:35a171ef (Bar Magal          2015-07-06 1309)                        
>>        1
>>    1310:35a171ef (Bar Magal          2015-07-06 1310)                        
>>      0)))
>>    1311:35a171ef (Bar Magal          2015-07-06 1311)          ;; without 
>> adding 2, frame sometimes isn't wide enough for the buffer.
>>    1312:35a171ef (Bar Magal          2015-07-06 1312)          ;; this is 
>> probably because of the fringes. however, setting fringes
>>    1313:35a171ef (Bar Magal          2015-07-06 1313)          ;; sizes to 0 
>> (instead of adding 2) didn't always make the frame wide
>>    1314:35a171ef (Bar Magal          2015-07-06 1314)          ;; enough. 
>> don't know why it is so.
>>    1315:35a171ef (Bar Magal          2015-07-06 1315)          (frame-width 
>> (+ (cdr act-popup-dim) 2))
>>    1316:02140265 (Bar Magal          2015-07-06 1316)          (new-window 
>> (if (and (frame-live-p which-key--frame)
>>    1317:02140265 (Bar Magal          2015-07-06 1317)                        
>>        (eq which-key--buffer
>>    1324:35a171ef (Bar Magal          2015-07-06 1324)     (when new-window
>>    1325:35a171ef (Bar Magal          2015-07-06 1325)       ;; display 
>> successful
>>    1326:02140265 (Bar Magal          2015-07-06 1326)       (setq 
>> which-key--frame (window-frame new-window))
>>    1327:35a171ef (Bar Magal          2015-07-06 1327)       new-window)))
>>    1328:02140265 (Bar Magal          2015-07-06 1328) 
>>    1331:35a171ef (Bar Magal          2015-07-06 1331)   (let* ((frame-params 
>> `((height . ,frame-height)
>>    1332:35a171ef (Bar Magal          2015-07-06 1332)                        
>>   (width . ,frame-width)
>>    1333:35a171ef (Bar Magal          2015-07-06 1333)                        
>>   ;; tell the window manager to respect the given sizes
>>    1334:35a171ef (Bar Magal          2015-07-06 1334)                        
>>   (user-size . t)
>>    1335:35a171ef (Bar Magal          2015-07-06 1335)                        
>>   ;; which-key frame doesn't need a minibuffer
>>    1336:35a171ef (Bar Magal          2015-07-06 1336)                        
>>   (minibuffer . nil)
>>    1337:35a171ef (Bar Magal          2015-07-06 1337)                        
>>   (name . "which-key")
>>    1338:35a171ef (Bar Magal          2015-07-06 1338)                        
>>   ;; no need for scroll bars in which-key frame
>>    1339:35a171ef (Bar Magal          2015-07-06 1339)                        
>>   (vertical-scroll-bars . nil)
>>    1340:35a171ef (Bar Magal          2015-07-06 1340)                        
>>   ;; (left-fringe . 0)
>>    1341:35a171ef (Bar Magal          2015-07-06 1341)                        
>>   ;; (right-fringe . 0)
>>    1342:35a171ef (Bar Magal          2015-07-06 1342)                        
>>   ;; (right-divider-width . 0)
>>    1343:35a171ef (Bar Magal          2015-07-06 1343)                        
>>   ;; make sure frame is visible
>>    1344:35a171ef (Bar Magal          2015-07-06 1344)                        
>>   (visibility . t)))
>>    1345:35a171ef (Bar Magal          2015-07-06 1345)          (alist 
>> `((pop-up-frame-parameters . ,frame-params)))
>>    1346:35a171ef (Bar Magal          2015-07-06 1346)          (orig-frame 
>> (selected-frame))
>>    1347:35a171ef (Bar Magal          2015-07-06 1347)          (new-window 
>> (display-buffer-pop-up-frame which-key--buffer alist)))
>>    1348:35a171ef (Bar Magal          2015-07-06 1348)     (when new-window
>>    1349:35a171ef (Bar Magal          2015-07-06 1349)       ;; display 
>> successful
>>    1350:35a171ef (Bar Magal          2015-07-06 1350)       
>> (redirect-frame-focus (window-frame new-window) orig-frame)
>>    1351:35a171ef (Bar Magal          2015-07-06 1351)       new-window)))
>>    1352:02140265 (Bar Magal          2015-07-06 1352) 
>>    1355:35a171ef (Bar Magal          2015-07-06 1355)   (let ((window
>>    1358:35a171ef (Bar Magal          2015-07-06 1358)     (when window
>>    1359:35a171ef (Bar Magal          2015-07-06 1359)       ;; display 
>> successful
>>    1360:35a171ef (Bar Magal          2015-07-06 1360)       (set-frame-size 
>> (window-frame window) frame-width frame-height)
>>    1361:35a171ef (Bar Magal          2015-07-06 1361)       window)))
>>    1362:67065197 (Bar Magal          2015-07-05 1362) 
>>    1383:67065197 (Bar Magal          2015-07-05 1383)    (if (floatp 
>> max-mini-window-height)
>>    1384:67065197 (Bar Magal          2015-07-05 1384)        (floor (* 
>> (frame-text-lines)
>>    1385:67065197 (Bar Magal          2015-07-05 1385)                  
>> max-mini-window-height))
>>    1409:d9a9bd5a (Bar Magal          2015-07-09 1409)                  
>> which-key-side-window-max-width))
>>    1419:02140265 (Bar Magal          2015-07-06 1419)   (cons 
>> which-key-frame-max-height which-key-frame-max-width))
>>    1420:02140265 (Bar Magal          2015-07-06 1420) 
>>    2313:67065197 (Bar Magal          2015-07-05 2313)           
>> (with-current-buffer which-key--buffer
>>    2314:02140265 (Bar Magal          2015-07-06 2314)             
>> (erase-buffer)
>>
>>
>> What concerns me is that at least according to his GitHub profile[0],
>> there has been no activity since 2022, and almost no regular activity
>> since 2016-2017, so I cannot estimate how reliably we can contact him.
>>
>> Setting aside the issue of adding this to Emacs, the package should not
>> be in GNU ELPA if this is the case.
>>
>> [0] https://github.com/bmag
>>
>>> But please let's do this ASAP, as I don't want to delay the release
>>> branch creation, if possible.
>>>
>>> Thanks.
>
> Philip, thanks for checking - yes it appears to be a problem, I'll try and 
> chase
> this 1 contributor.

(Adding emacs-devel)

We have found out that Bar has completed the CA.  That means we can
proceed with adding which-key, perhaps even by Emacs 30 (Eli?)?

I think the best thing right now would be to collect all the patches in
a single message for a final review.

-- 
        Philip Kaludercic on peregrine



reply via email to

[Prev in Thread] Current Thread [Next in Thread]