unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Philip Kaludercic <philipk@posteo.net>
To: Jeremy Bryant <jb@jeremybryant.net>
Cc: Eli Zaretskii <eliz@gnu.org>,  Justin Burkett <justin@burkett.cc>,
	emacs-devel@gnu.org
Subject: Re: URGENT - which-key FSF contributor status
Date: Sat, 15 Jun 2024 09:05:52 +0000	[thread overview]
Message-ID: <87sexelgnj.fsf@posteo.net> (raw)
In-Reply-To: <87msp6o9o4.fsf@jeremybryant.net> (Jeremy Bryant's message of "Fri, 03 May 2024 22:41:31 +0100")

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	other threads:[~2024-06-15  9:05 UTC|newest]

Thread overview: 22+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <87le4r98m9.fsf@jeremybryant.net>
     [not found] ` <86le4rjv9p.fsf@gnu.org>
     [not found]   ` <87a5l78kc0.fsf@posteo.net>
     [not found]     ` <87msp6o9o4.fsf@jeremybryant.net>
2024-06-15  9:05       ` Philip Kaludercic [this message]
2024-06-15 12:30         ` URGENT - which-key FSF contributor status Eli Zaretskii
2024-06-15 12:58           ` Philip Kaludercic
2024-06-15 14:36             ` Stefan Kangas
2024-06-18 19:06               ` Stefan Kangas
2024-06-18 19:23                 ` Philip Kaludercic
2024-06-18 19:30                   ` Stefan Kangas
2024-06-18 19:41                     ` Philip Kaludercic
2024-06-18 19:42                       ` Stefan Kangas
2024-06-18 21:41                         ` Philip Kaludercic
2024-06-20 14:26                           ` Justin Burkett
2024-06-20 18:25                             ` Stefan Kangas
2024-06-20 19:22                               ` Philip Kaludercic
2024-06-20 21:16                               ` Justin Burkett
2024-06-20 21:45                                 ` Stefan Kangas
2024-06-15 15:19             ` Eli Zaretskii
2024-06-15 17:09               ` Philip Kaludercic
2024-06-15 17:42                 ` Justin Burkett
2024-06-15 17:50                   ` Eli Zaretskii
2024-06-18  8:49                 ` Philip Kaludercic
2024-06-18 17:37                   ` Eli Zaretskii
2024-06-16 19:07             ` Jeremy Bryant

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sexelgnj.fsf@posteo.net \
    --to=philipk@posteo.net \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    --cc=jb@jeremybryant.net \
    --cc=justin@burkett.cc \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).