From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: URGENT - which-key FSF contributor status Date: Sat, 15 Jun 2024 09:05:52 +0000 Message-ID: <87sexelgnj.fsf@posteo.net> References: <87le4r98m9.fsf@jeremybryant.net> <86le4rjv9p.fsf@gnu.org> <87a5l78kc0.fsf@posteo.net> <87msp6o9o4.fsf@jeremybryant.net> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="25215"; mail-complaints-to="usenet@ciao.gmane.io" Cc: Eli Zaretskii , Justin Burkett , emacs-devel@gnu.org To: Jeremy Bryant Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Jun 15 11:06:53 2024 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1sIPN5-0006J2-UA for ged-emacs-devel@m.gmane-mx.org; Sat, 15 Jun 2024 11:06:52 +0200 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1sIPMJ-0003P2-Ai; Sat, 15 Jun 2024 05:06:03 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sIPMH-0003OT-SH for emacs-devel@gnu.org; Sat, 15 Jun 2024 05:06:01 -0400 Original-Received: from mout02.posteo.de ([185.67.36.66]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1sIPMF-00044C-8s for emacs-devel@gnu.org; Sat, 15 Jun 2024 05:06:01 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id 0A795240103 for ; Sat, 15 Jun 2024 11:05:53 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1718442354; bh=6ENdoyGGijO94dD7iQInL8Uap7vZ6O4AumLh7QrapIs=; h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=In5pKNjclsYHOorO29k3Q0enX1g/+fvS6+dCji1ySnAr2Tfk5YIZ8649hE8mA9aF/ e9i9u6iBf4FiICqbQeJINYCkOKE44jgPpH3dlYZa/z4OGRHRhttO6gzxa1MwN8Y75G HOwBgYIHCsv5TcVAkPOSdKXCBOcd2q2PT/FtI6SkdMUO2rZaIjUyLgoAWmx2HBhlsI 5uM2UKuj1d6OQNGbgHOKHwyFn9K1kAxYl4UAOJY22ehlFYkghxAD42fY9uwzLUnzy6 QFMuENdmJwHQGKgDCv+0TFYYkck+ZR5jI/8KAaSEkfdX5L5wuCKxaU9gXqav5OgIrv ivXeKLNo4uAEA== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4W1VcK2FQdz6tmv; Sat, 15 Jun 2024 11:05:53 +0200 (CEST) In-Reply-To: <87msp6o9o4.fsf@jeremybryant.net> (Jeremy Bryant's message of "Fri, 03 May 2024 22:41:31 +0100") OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Received-SPF: pass client-ip=185.67.36.66; envelope-from=philipk@posteo.net; helo=mout02.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H3=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=unavailable autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:320119 Archived-At: Jeremy Bryant writes: > Philip Kaludercic writes: > >> Eli Zaretskii writes: >> >>>> From: Jeremy Bryant >>>> CC: Eli Zaretskii , Philip Kaludercic >>>> 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 >>>> 1 Author: Yunhao Zhao >>>> 1 Author: Uros Perisic >>>> 1 Author: N V <44036031+progfolio@users.noreply.github.com> >>>> 1 Author: Hariharan R >>>> 1 Author: Frank Terbeck >>>> 1 Author: Duncan Burke >>>> 1 Author: D.K >>>> 1 Author: Colin Yates >>>> 1 Author: Chris Perkins >>>> 1 Author: Celestial Nebula <41875671+CelestialNebula@users.noreply.github.com> >>>> 1 Author: BlaCk_Void >>>> 1 Author: anis-semmar <78486514+anis-semmar@users.noreply.github.com> >>>> 1 Author: Amory Meltzer >>> >>> 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