X-Loop: help-debbugs@HIDDEN Subject: bug#71789: 29.3; Handling of nested directories of ELPA packages Resent-From: Xiyue Deng <manphiz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Wed, 26 Jun 2024 23:28:02 +0000 Resent-Message-ID: <handler.71789.B.171944446718758 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: report 71789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: 71789 <at> debbugs.gnu.org X-Debbugs-Original-To: bug-gnu-emacs@HIDDEN Received: via spool by submit <at> debbugs.gnu.org id=B.171944446718758 (code B ref -1); Wed, 26 Jun 2024 23:28:02 +0000 Received: (at submit) by debbugs.gnu.org; 26 Jun 2024 23:27:47 +0000 Received: from localhost ([127.0.0.1]:40581 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sMc3G-0004sT-S3 for submit <at> debbugs.gnu.org; Wed, 26 Jun 2024 19:27:47 -0400 Received: from lists.gnu.org ([209.51.188.17]:60784) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <manphiz@HIDDEN>) id 1sMc3F-0004sL-5w for submit <at> debbugs.gnu.org; Wed, 26 Jun 2024 19:27:46 -0400 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 <manphiz@HIDDEN>) id 1sMc3C-0005KX-6f for bug-gnu-emacs@HIDDEN; Wed, 26 Jun 2024 19:27:42 -0400 Received: from mail-pj1-x1031.google.com ([2607:f8b0:4864:20::1031]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from <manphiz@HIDDEN>) id 1sMc30-0005HE-0G for bug-gnu-emacs@HIDDEN; Wed, 26 Jun 2024 19:27:41 -0400 Received: by mail-pj1-x1031.google.com with SMTP id 98e67ed59e1d1-2c8517aab46so3529386a91.1 for <bug-gnu-emacs@HIDDEN>; Wed, 26 Jun 2024 16:27:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719444445; x=1720049245; darn=gnu.org; h=mime-version:message-id:date:subject:to:from:from:to:cc:subject :date:message-id:reply-to; bh=u7ziq711/Y0TkG/OfJXtCcgsj8NLbn1z30VRS7ZFlZI=; b=RiRza3Q/8DlXzX075QJcK5Yw2b/WhpM7aKEQvbE3xmhA6upmQBbh15A0WX+FiqLZGW qsK+aMAod+iThk4hMJ4tLjtn3Cc9RcUDBQ3c2lBb0+aSQ58BBW7DElFeUQGCxBCwip7m Vk+b5mXa3x0TwfvQqjBDRPfzGJ4j4wtKux8w8rIssW0PTLkafpJTVHieYAGi/Zf0PIke mOpT89QMT+VCx+eFNSKxBhXb1+LRj+BJpmxy/NH28JZo9lreSoprKpo+hfubzeBphNSb kUQ6iF1NHY+4uHhVEueCW+q5ZO3kgVnf4sWaRHnhnb2mbJFov5NVX4YBz/7lJRM/eZSG 2gnQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719444445; x=1720049245; h=mime-version:message-id:date:subject:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=u7ziq711/Y0TkG/OfJXtCcgsj8NLbn1z30VRS7ZFlZI=; b=kLRj3tVNkjBC30doTdGBlPXRSsJBC2ZlfQDV1PrR2UoIf/g2gYN+WPXAl2WHNUx5hH LukEclqoTWd2kVXBmLmcsvtqeWuOYvOFpm/nJC3ZjalQ/BjojVnN95uk3qHMvyx4uTqr p0veCsVzJfXSPqQVvwy1+9MgepMF9V7TIpBt1C4Yg74QUC83U5C1igG3u50zqSWirZQK wFOTBUA5etyvKqcqeUglrAX+is8t9VyM4v6Oz/lui6RTBNNUrPNYALTAHTnh01ZZgT8C nk5yg2A9gax/ct/nJI5iGDIA4RSfZeXdN33SYBrnQumqCPlD7HjVhqGx7kw/uyeVtb+8 pk2Q== X-Gm-Message-State: AOJu0Yykom16qCcfLiyqTZYUFYdwdIXsLHSmK0NVoTuHMdkgVOb+Ibjg eCLG5i7BkMIvN1o52RgI7v6qvgdKBnQVUxkPcXBNmyfVdLznBf9u+phigsmlFnc= X-Google-Smtp-Source: AGHT+IEkFSQEjHqwQJSq9LX00Q6YY+iR6AGeVmKQV9INGguGtmeU9qfqZPq8vfVOSPNa3eZvrY31TA== X-Received: by 2002:a17:90b:38c5:b0:2c8:50cc:8571 with SMTP id 98e67ed59e1d1-2c8581e7076mr11525254a91.22.1719444444880; Wed, 26 Jun 2024 16:27:24 -0700 (PDT) Received: from debian-hx90 (syn-104-172-240-218.res.spectrum.com. [104.172.240.218]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2c8d7e546a4sm2297858a91.6.2024.06.26.16.27.24 for <bug-gnu-emacs@HIDDEN> (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 26 Jun 2024 16:27:24 -0700 (PDT) From: Xiyue Deng <manphiz@HIDDEN> Date: Wed, 26 Jun 2024 16:25:12 -0700 Message-ID: <8734oz478n.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=2607:f8b0:4864:20::1031; envelope-from=manphiz@HIDDEN; helo=mail-pj1-x1031.google.com X-Spam_score_int: -20 X-Spam_score: -2.1 X-Spam_bar: -- X-Spam_report: (-2.1 / 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, FREEMAIL_FROM=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-Spam-Score: -1.3 (-) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -2.3 (--) Hi, I'm opening a bug to follow up the discussion at [1]. Given an ELPA package `elpafoo' that contains another directory `elpabar' that also holds source files, e.g. like the structure below: ,---- | ~/.config/emacs/elpa/elpafoo/ | ~/.config/emacs/elpa/elpafoo/elpafoo.el | ~/.config/emacs/elpa/elpafoo/elpabar | ~/.config/emacs/elpa/elpafoo/elpabar/elpabar.el `---- When installing through package.el, both elpafoo.el and elpabar/elpabar.el will be byte-compiled, but only the root source path `~/.config/emacs/elpa/elpafoo' is added to `load-path', without any of the nested directories. I wonder whether this is the intended behavior regarding `load-path' handling. If nested directories are added, it has the advantage to allow more fine-grained source organization; as a downside, it may unnecessarily add more unneeded stuff and processing overhead (as Michael pointed out at [2]), and potentially break existing code, e.g. auctex, which seems to vendor stuff in the `style/' directories but not loaded so it's not causing any trouble yet. So I wonder what is the stance of the Emacs maintainer on this subject, or whether this is documented anywhere. Also one more step: whether there is a recommended layout for source code organization for ELPA packages. [1] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00658.html [2] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg01039.html In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, cairo version 1.16.0) of 2024-05-20, modified by Debian built on sbuild Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 System Description: Debian GNU/Linux 12 (bookworm) Configured using: 'configure --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-native-compilation --build x86_64-linux-gnu --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/libexec --localstatedir=/var/lib --infodir=/usr/share/info --mandir=/usr/share/man --with-libsystemd --with-pop=yes --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp --with-sound=alsa --without-gconf --with-mailutils --with-native-compilation --with-cairo --with-x=yes --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 -ffile-prefix-map=/build/reproducible-path/emacs-29.3+1=. -fstack-protector-strong -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' Configured features: ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 XPM GTK3 ZLIB Important settings: value of $LANG: en_US.UTF-8 value of $XMODIFIERS: @im=ibus locale-coding-system: utf-8-unix Major mode: Lisp Interaction Minor modes in effect: global-git-commit-mode: t magit-auto-revert-mode: t shell-dirtrack-mode: t windmove-mode: t rcirc-track-minor-mode: t server-mode: t subword-mode: t bug-reference-prog-mode: t whitespace-mode: t yas-minor-mode: t xclip-mode: t global-treesit-auto-mode: t treemacs-project-follow-mode: t treemacs-follow-mode: t treemacs-git-mode: t treemacs-fringe-indicator-mode: t corfu-terminal-mode: t corfu-popupinfo-mode: t corfu-echo-mode: t global-corfu-mode: t corfu-mode: t activities-tabs-mode: t activities-mode: t fido-vertical-mode: t icomplete-vertical-mode: t icomplete-mode: t fido-mode: t override-global-mode: t global-display-line-numbers-mode: t display-line-numbers-mode: t global-auto-revert-mode: t tooltip-mode: t global-eldoc-mode: t eldoc-mode: t show-paren-mode: t electric-indent-mode: t mouse-wheel-mode: t tool-bar-mode: t tab-bar-mode: t file-name-shadow-mode: t global-font-lock-mode: t font-lock-mode: t blink-cursor-mode: t column-number-mode: t line-number-mode: t transient-mark-mode: t auto-composition-mode: t auto-encryption-mode: t auto-compression-mode: t Load-path shadows: /usr/share/emacs/site-lisp/elpa/debian-el-37.13/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section Features: (shadow emacsbug git-rebase tabify ert-x python etags fileloop generator java-ts-mode c-ts-common sh-script smie executable debian-copyright debian-changelog-mode noutline outline shortdoc completion debian-control-mode cl-print help-fns radix-tree tramp-cmds gitignore-mode conf-mode tramp-container tramp-sh tramp-cache time-stamp dockerfile-ts-mode yaml-ts-mode reporter debian-bts-control debian-bug reveal mailalias goto-addr vterm tramp tramp-loaddefs trampver tramp-integration files-x tramp-compat term ehelp vterm-module misearch multi-isearch shr-color flow-fill matlab matlab-scan matlab-syntax matlab-compat qp url-http url-gw url-auth url-queue url-cache mm-archive sort gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml magit-extras eglot external-completion array jsonrpc ert ewoc debug backtrace find-func xref pcase perl-mode face-remap magit-bookmark magit-submodule magit-obsolete magit-blame magit-stash magit-reflog magit-bisect magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit magit-sequence magit-notes magit-worktree magit-tag magit-merge magit-branch magit-reset magit-files magit-refs magit-status magit magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert magit-margin magit-transient magit-process with-editor shell pcomplete magit-mode transient format-spec magit-git magit-section magit-utils crm dired-aux mule-util jka-compr gnus-topic cursor-sensor utf-7 nnfolder gnus-demon nnml ezgnus gnus-delay gnus-draft gnus-agent gnus-srvr gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku url-file svg dom nndraft nnmh gnus-group gnus-undo smtpmail gnus-start gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader gnus-util mail-utils range mm-util mail-prsvr windmove flyspell ispell gnutls network-stream puny nsm epa-file epa derived epg rfc6068 epg-config rcirc parse-time iso8601 time-date term/xterm xterm comp comp-cstr server cap-words superword subword vc-hg vc-git diff-mode vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc vc-dispatcher bug-reference disp-table whitespace yasnippet-snippets yasnippet cus-edit cus-start wid-edit init zenburn-theme xclip treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils treemacs-logging treemacs-customization pfuture inline ht s hl-line dash keychain-environment exec-path-from-shell corfu-terminal popon corfu-popupinfo corfu-echo corfu compat activities-tabs activities persist bookmark pp edmacro kmacro advice icomplete cus-load flymake-proc flymake project compile text-property-search comint ansi-osc ansi-color ring warnings icons thingatpt cl-extra help-mode use-package use-package-ensure use-package-delight use-package-diminish use-package-bind-key bind-key easy-mmode use-package-core display-line-numbers autorevert filenotify keychain-environment-autoloads treesit-auto-autoloads xclip-autoloads rx info debian-el dired dired-loaddefs finder-inf package browse-url url url-proxy url-privacy url-expand url-methods url-history url-cookie generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe tabulated-list replace newcomment text-mode lisp-mode prog-mode register page tab-bar menu-bar rfn-eshadow isearch easymenu timer select scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors frame minibuffer nadvice seq simple cl-generic indonesian philippine cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech european ethiopic indian cyrillic chinese composite emoji-zwj charscript charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp files window text-properties overlay sha1 md5 base64 format env code-pages mule custom widget keymap hashtable-print-readable backquote threads dbusbind inotify lcms2 dynamic-setting system-font-setting font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty make-network-process native-compile emacs) Memory information: ((conses 16 4151836 235820) (symbols 48 38894 35) (strings 32 186143 40188) (string-bytes 1 6165556) (vectors 16 121009) (vector-slots 8 3140568 287319) (floats 8 1184 5120) (intervals 56 274782 3076) (buffers 984 145))
Content-Disposition: inline Content-Transfer-Encoding: quoted-printable MIME-Version: 1.0 X-Mailer: MIME-tools 5.505 (Entity 5.505) Content-Type: text/plain; charset=utf-8 X-Loop: help-debbugs@HIDDEN From: help-debbugs@HIDDEN (GNU bug Tracking System) To: Xiyue Deng <manphiz@HIDDEN> Subject: bug#71789: Acknowledgement (29.3; Handling of nested directories of ELPA packages) Message-ID: <handler.71789.B.171944446718758.ack <at> debbugs.gnu.org> References: <8734oz478n.fsf@HIDDEN> X-Gnu-PR-Message: ack 71789 X-Gnu-PR-Package: emacs Reply-To: 71789 <at> debbugs.gnu.org Date: Wed, 26 Jun 2024 23:28:02 +0000 Thank you for filing a new bug report with debbugs.gnu.org. This is an automatically generated reply to let you know your message has been received. Your message is being forwarded to the package maintainers and other interested parties for their attention; they will reply in due course. Your message has been sent to the package maintainer(s): bug-gnu-emacs@HIDDEN If you wish to submit further information on this problem, please send it to 71789 <at> debbugs.gnu.org. Please do not send mail to help-debbugs@HIDDEN unless you wish to report a problem with the Bug-tracking system. --=20 71789: https://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D71789 GNU Bug Tracking System Contact help-debbugs@HIDDEN with problems
X-Loop: help-debbugs@HIDDEN Subject: bug#71789: 29.3; Handling of nested directories of ELPA packages Resent-From: Jeremy Bryant <jb@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Fri, 28 Jun 2024 18:04:01 +0000 Resent-Message-ID: <handler.71789.B71789.171959782321626 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 71789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Xiyue Deng <manphiz@HIDDEN> Cc: Philip Kaludercic <philipk@HIDDEN>, 71789 <at> debbugs.gnu.org Received: via spool by 71789-submit <at> debbugs.gnu.org id=B71789.171959782321626 (code B ref 71789); Fri, 28 Jun 2024 18:04:01 +0000 Received: (at 71789) by debbugs.gnu.org; 28 Jun 2024 18:03:43 +0000 Received: from localhost ([127.0.0.1]:46324 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sNFwk-0005ck-O7 for submit <at> debbugs.gnu.org; Fri, 28 Jun 2024 14:03:43 -0400 Received: from out-185.mta0.migadu.com ([91.218.175.185]:27417) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <jb@HIDDEN>) id 1sNFwh-0005cQ-I2 for 71789 <at> debbugs.gnu.org; Fri, 28 Jun 2024 14:03:41 -0400 X-Envelope-To: philipk@HIDDEN DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=jeremybryant.net; s=key1; t=1719597812; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=AbJW8RrIHSe/MSSeeU61ez0S9r3Q5h+OHK6LLJaYfqg=; b=IUYdXrSDW/3crvycSj5C3YU1VLlLI/LA15FWsTOSyIf2BRXoElYv7JyPbWB67Fa30HY07F RvkcHRIoaOUqERNLREzPyGovyuApe3qTxdqe8Lr6Tjf3jQLyfC2ty4V4GFyNq3ygJXkG0T CcBXW1qIvK0XDMhlHpWZN9MVcuXEiNanYVDWaZ7+xDWIsw67YPMhxq7BmHZmuUQ2OI5XNh iakQ+tSRLTSlEAsWpMZgCKjLGgT5fUARjOMur+Y55ML2rb4A/9cX+bV/sCbctTN79nlMAd n2puuxFdzpSJHj6dT1l2IUkckXn1PrpuwHDFLn6YUTwT0MHYEmeO6wp+XqDMGg== X-Envelope-To: 71789 <at> debbugs.gnu.org X-Envelope-To: manphiz@HIDDEN X-Report-Abuse: Please report any abuse attempt to abuse@HIDDEN and include these headers. From: Jeremy Bryant <jb@HIDDEN> In-Reply-To: <8734oz478n.fsf@HIDDEN> (Xiyue Deng's message of "Wed, 26 Jun 2024 16:25:12 -0700") References: <8734oz478n.fsf@HIDDEN> Date: Fri, 28 Jun 2024 19:03:30 +0100 Message-ID: <87ikxthrm5.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT X-Spam-Score: -0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Xiyue Deng <manphiz@HIDDEN> writes: > Hi, > > I'm opening a bug to follow up the discussion at [1]. Given an ELPA > package `elpafoo' that contains another directory `elpabar' that also > holds source files, e.g. like the structure below: > > ,---- > | ~/.config/emacs/elpa/elpafoo/ > | ~/.config/emacs/elpa/elpafoo/elpafoo.el > | ~/.config/emacs/elpa/elpafoo/elpabar > | ~/.config/emacs/elpa/elpafoo/elpabar/elpabar.el > `---- > > When installing through package.el, both elpafoo.el and > elpabar/elpabar.el will be byte-compiled, but only the root source path > `~/.config/emacs/elpa/elpafoo' is added to `load-path', without any of > the nested directories. > > I wonder whether this is the intended behavior regarding `load-path' > handling. If nested directories are added, it has the advantage to > allow more fine-grained source organization; as a downside, it may > unnecessarily add more unneeded stuff and processing overhead (as > Michael pointed out at [2]), and potentially break existing code, > e.g. auctex, which seems to vendor stuff in the `style/' directories but > not loaded so it's not causing any trouble yet. > > So I wonder what is the stance of the Emacs maintainer on this subject, > or whether this is documented anywhere. Also one more step: whether > there is a recommended layout for source code organization for ELPA > packages. > > [1] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00658.html > [2] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg01039.html > > > > In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, > cairo version 1.16.0) of 2024-05-20, modified by Debian built on sbuild > Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 > System Description: Debian GNU/Linux 12 (bookworm) > > Configured using: > 'configure --build x86_64-linux-gnu --prefix=/usr > --sharedstatedir=/var/lib --libexecdir=/usr/libexec > --localstatedir=/var/lib --infodir=/usr/share/info > --mandir=/usr/share/man --with-libsystemd --with-pop=yes > --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp > --with-sound=alsa --without-gconf --with-mailutils > --with-native-compilation --build x86_64-linux-gnu --prefix=/usr > --sharedstatedir=/var/lib --libexecdir=/usr/libexec > --localstatedir=/var/lib --infodir=/usr/share/info > --mandir=/usr/share/man --with-libsystemd --with-pop=yes > --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp > --with-sound=alsa --without-gconf --with-mailutils > --with-native-compilation --with-cairo --with-x=yes > --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 > -ffile-prefix-map=/build/reproducible-path/emacs-29.3+1=. -fstack-protector-strong > -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time > -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' > > Configured features: > ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG > JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES > NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 > THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 > XPM GTK3 ZLIB > > Important settings: > value of $LANG: en_US.UTF-8 > value of $XMODIFIERS: @im=ibus > locale-coding-system: utf-8-unix > > Major mode: Lisp Interaction > > Minor modes in effect: > global-git-commit-mode: t > magit-auto-revert-mode: t > shell-dirtrack-mode: t > windmove-mode: t > rcirc-track-minor-mode: t > server-mode: t > subword-mode: t > bug-reference-prog-mode: t > whitespace-mode: t > yas-minor-mode: t > xclip-mode: t > global-treesit-auto-mode: t > treemacs-project-follow-mode: t > treemacs-follow-mode: t > treemacs-git-mode: t > treemacs-fringe-indicator-mode: t > corfu-terminal-mode: t > corfu-popupinfo-mode: t > corfu-echo-mode: t > global-corfu-mode: t > corfu-mode: t > activities-tabs-mode: t > activities-mode: t > fido-vertical-mode: t > icomplete-vertical-mode: t > icomplete-mode: t > fido-mode: t > override-global-mode: t > global-display-line-numbers-mode: t > display-line-numbers-mode: t > global-auto-revert-mode: t > tooltip-mode: t > global-eldoc-mode: t > eldoc-mode: t > show-paren-mode: t > electric-indent-mode: t > mouse-wheel-mode: t > tool-bar-mode: t > tab-bar-mode: t > file-name-shadow-mode: t > global-font-lock-mode: t > font-lock-mode: t > blink-cursor-mode: t > column-number-mode: t > line-number-mode: t > transient-mark-mode: t > auto-composition-mode: t > auto-encryption-mode: t > auto-compression-mode: t > > Load-path shadows: > /usr/share/emacs/site-lisp/elpa/debian-el-37.13/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads > /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section > > Features: > (shadow emacsbug git-rebase tabify ert-x python etags fileloop generator > java-ts-mode c-ts-common sh-script smie executable debian-copyright > debian-changelog-mode noutline outline shortdoc completion > debian-control-mode cl-print help-fns radix-tree tramp-cmds > gitignore-mode conf-mode tramp-container tramp-sh tramp-cache time-stamp > dockerfile-ts-mode yaml-ts-mode reporter debian-bts-control debian-bug > reveal mailalias goto-addr vterm tramp tramp-loaddefs trampver > tramp-integration files-x tramp-compat term ehelp vterm-module misearch > multi-isearch shr-color flow-fill matlab matlab-scan matlab-syntax > matlab-compat qp url-http url-gw url-auth url-queue url-cache mm-archive > sort gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize > uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml magit-extras > eglot external-completion array jsonrpc ert ewoc debug backtrace > find-func xref pcase perl-mode face-remap magit-bookmark magit-submodule > magit-obsolete magit-blame magit-stash magit-reflog magit-bisect > magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit > magit-sequence magit-notes magit-worktree magit-tag magit-merge > magit-branch magit-reset magit-files magit-refs magit-status magit > magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff > smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert > magit-margin magit-transient magit-process with-editor shell pcomplete > magit-mode transient format-spec magit-git magit-section magit-utils crm > dired-aux mule-util jka-compr gnus-topic cursor-sensor utf-7 nnfolder > gnus-demon nnml ezgnus gnus-delay gnus-draft gnus-agent gnus-srvr > gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu > mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku > url-file svg dom nndraft nnmh gnus-group gnus-undo smtpmail gnus-start > gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo > gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml > mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 > ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader > gnus-util mail-utils range mm-util mail-prsvr windmove flyspell ispell > gnutls network-stream puny nsm epa-file epa derived epg rfc6068 > epg-config rcirc parse-time iso8601 time-date term/xterm xterm comp > comp-cstr server cap-words superword subword vc-hg vc-git diff-mode > vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc > vc-dispatcher bug-reference disp-table whitespace yasnippet-snippets > yasnippet cus-edit cus-start wid-edit init zenburn-theme xclip > treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode > treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals > treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom > treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils > treemacs-logging treemacs-customization pfuture inline ht s hl-line dash > keychain-environment exec-path-from-shell corfu-terminal popon > corfu-popupinfo corfu-echo corfu compat activities-tabs activities > persist bookmark pp edmacro kmacro advice icomplete cus-load > flymake-proc flymake project compile text-property-search comint > ansi-osc ansi-color ring warnings icons thingatpt cl-extra help-mode > use-package use-package-ensure use-package-delight use-package-diminish > use-package-bind-key bind-key easy-mmode use-package-core > display-line-numbers autorevert filenotify > keychain-environment-autoloads treesit-auto-autoloads xclip-autoloads rx > info debian-el dired dired-loaddefs finder-inf package browse-url url > url-proxy url-privacy url-expand url-methods url-history url-cookie > generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse > auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x > map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc > iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook > vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win > term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe > tabulated-list replace newcomment text-mode lisp-mode prog-mode register > page tab-bar menu-bar rfn-eshadow isearch easymenu timer select > scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors > frame minibuffer nadvice seq simple cl-generic indonesian philippine > cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao > korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech > european ethiopic indian cyrillic chinese composite emoji-zwj charscript > charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure > cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp > files window text-properties overlay sha1 md5 base64 format env > code-pages mule custom widget keymap hashtable-print-readable backquote > threads dbusbind inotify lcms2 dynamic-setting system-font-setting > font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty > make-network-process native-compile emacs) > > Memory information: > ((conses 16 4151836 235820) > (symbols 48 38894 35) > (strings 32 186143 40188) > (string-bytes 1 6165556) > (vectors 16 121009) > (vector-slots 8 3140568 287319) > (floats 8 1184 5120) > (intervals 56 274782 3076) > (buffers 984 145)) Adding Philip who may have thoughts regarding ELPA structure.
X-Loop: help-debbugs@HIDDEN Subject: bug#71789: 29.3; Handling of nested directories of ELPA packages Resent-From: Philip Kaludercic <philipk@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sun, 30 Jun 2024 10:18:02 +0000 Resent-Message-ID: <handler.71789.B71789.17197426353751 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 71789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Jeremy Bryant <jb@HIDDEN> Cc: 71789 <at> debbugs.gnu.org, Xiyue Deng <manphiz@HIDDEN> Received: via spool by 71789-submit <at> debbugs.gnu.org id=B71789.17197426353751 (code B ref 71789); Sun, 30 Jun 2024 10:18:02 +0000 Received: (at 71789) by debbugs.gnu.org; 30 Jun 2024 10:17:15 +0000 Received: from localhost ([127.0.0.1]:55167 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sNrcQ-0000yR-6y for submit <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:17:15 -0400 Received: from mout02.posteo.de ([185.67.36.66]:59323) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <philipk@HIDDEN>) id 1sNrcN-0000yC-U0 for 71789 <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:17:13 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout02.posteo.de (Postfix) with ESMTPS id A144A240104 for <71789 <at> debbugs.gnu.org>; Sun, 30 Jun 2024 12:17:03 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1719742624; bh=YumT78QxXMjDv9M40oPYZdrpC9ujHLM6cwV8SE5ezd0=; h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=I0sSs51BzzQNiYqh+KVIjBNhWGPUt4i1d+54iP8urii2RpvPv0GPgfeuMSv8RnJIM YCcjDiEBGFhdz6rdwdrrTVt0iExKmXNtcj0VE1yvKIx8AJEQ9bAd6cQJG7k+DeZfIs zgj4SBse7UcqUcKhXx0FkKgkfRSddXsXySBEiq/gzRlAfJEnib8VF5ITUSXAdexaWi lNJzzZrTztMqvZXaej8mazAlEdv1M8e7irDLRqRWCi7afAt5K1TbHzY98aD7GiCqUk UTKAGnE+2R56zsTLkYf8JEbq4dIF8Zp8lQyT1tZrWIDYq++KHL0quEB9ss7+3BJatC cbA3Z+FrsQY5w== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4WBlTV3z1zz9rxD; Sun, 30 Jun 2024 12:17:02 +0200 (CEST) From: Philip Kaludercic <philipk@HIDDEN> In-Reply-To: <87ikxthrm5.fsf@HIDDEN> (Jeremy Bryant's message of "Fri, 28 Jun 2024 19:03:30 +0100") References: <8734oz478n.fsf@HIDDEN> <87ikxthrm5.fsf@HIDDEN> OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Sun, 30 Jun 2024 10:17:01 +0000 Message-ID: <87wmm6lopu.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Jeremy Bryant <jb@HIDDEN> writes: > Xiyue Deng <manphiz@HIDDEN> writes: > >> Hi, >> >> I'm opening a bug to follow up the discussion at [1]. Given an ELPA >> package `elpafoo' that contains another directory `elpabar' that also >> holds source files, e.g. like the structure below: >> >> ,---- >> | ~/.config/emacs/elpa/elpafoo/ >> | ~/.config/emacs/elpa/elpafoo/elpafoo.el >> | ~/.config/emacs/elpa/elpafoo/elpabar >> | ~/.config/emacs/elpa/elpafoo/elpabar/elpabar.el >> `---- >> >> When installing through package.el, both elpafoo.el and >> elpabar/elpabar.el will be byte-compiled, but only the root source path >> `~/.config/emacs/elpa/elpafoo' is added to `load-path', without any of >> the nested directories. >> >> I wonder whether this is the intended behavior regarding `load-path' >> handling. If nested directories are added, it has the advantage to >> allow more fine-grained source organization; as a downside, it may >> unnecessarily add more unneeded stuff and processing overhead (as >> Michael pointed out at [2]), and potentially break existing code, >> e.g. auctex, which seems to vendor stuff in the `style/' directories but >> not loaded so it's not causing any trouble yet. >> >> So I wonder what is the stance of the Emacs maintainer on this subject, >> or whether this is documented anywhere. Also one more step: whether >> there is a recommended layout for source code organization for ELPA >> packages. I think it is intentional, because the approach is simple but functional enough in most instances. If you need to load a sub-directory, you can add an autoloaded `add-to-list' expression in elpafoo.el. >> [1] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00658.html >> [2] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg01039.html >> >> >> >> In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, >> cairo version 1.16.0) of 2024-05-20, modified by Debian built on sbuild >> Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 >> System Description: Debian GNU/Linux 12 (bookworm) >> >> Configured using: >> 'configure --build x86_64-linux-gnu --prefix=/usr >> --sharedstatedir=/var/lib --libexecdir=/usr/libexec >> --localstatedir=/var/lib --infodir=/usr/share/info >> --mandir=/usr/share/man --with-libsystemd --with-pop=yes >> --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp >> --with-sound=alsa --without-gconf --with-mailutils >> --with-native-compilation --build x86_64-linux-gnu --prefix=/usr >> --sharedstatedir=/var/lib --libexecdir=/usr/libexec >> --localstatedir=/var/lib --infodir=/usr/share/info >> --mandir=/usr/share/man --with-libsystemd --with-pop=yes >> --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp >> --with-sound=alsa --without-gconf --with-mailutils >> --with-native-compilation --with-cairo --with-x=yes >> --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 >> -ffile-prefix-map=/build/reproducible-path/emacs-29.3+1=. -fstack-protector-strong >> -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time >> -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' >> >> Configured features: >> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG >> JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES >> NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 >> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 >> XPM GTK3 ZLIB >> >> Important settings: >> value of $LANG: en_US.UTF-8 >> value of $XMODIFIERS: @im=ibus >> locale-coding-system: utf-8-unix >> >> Major mode: Lisp Interaction >> >> Minor modes in effect: >> global-git-commit-mode: t >> magit-auto-revert-mode: t >> shell-dirtrack-mode: t >> windmove-mode: t >> rcirc-track-minor-mode: t >> server-mode: t >> subword-mode: t >> bug-reference-prog-mode: t >> whitespace-mode: t >> yas-minor-mode: t >> xclip-mode: t >> global-treesit-auto-mode: t >> treemacs-project-follow-mode: t >> treemacs-follow-mode: t >> treemacs-git-mode: t >> treemacs-fringe-indicator-mode: t >> corfu-terminal-mode: t >> corfu-popupinfo-mode: t >> corfu-echo-mode: t >> global-corfu-mode: t >> corfu-mode: t >> activities-tabs-mode: t >> activities-mode: t >> fido-vertical-mode: t >> icomplete-vertical-mode: t >> icomplete-mode: t >> fido-mode: t >> override-global-mode: t >> global-display-line-numbers-mode: t >> display-line-numbers-mode: t >> global-auto-revert-mode: t >> tooltip-mode: t >> global-eldoc-mode: t >> eldoc-mode: t >> show-paren-mode: t >> electric-indent-mode: t >> mouse-wheel-mode: t >> tool-bar-mode: t >> tab-bar-mode: t >> file-name-shadow-mode: t >> global-font-lock-mode: t >> font-lock-mode: t >> blink-cursor-mode: t >> column-number-mode: t >> line-number-mode: t >> transient-mark-mode: t >> auto-composition-mode: t >> auto-encryption-mode: t >> auto-compression-mode: t >> >> Load-path shadows: >> /usr/share/emacs/site-lisp/elpa/debian-el-37.13/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads >> /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section >> >> Features: >> (shadow emacsbug git-rebase tabify ert-x python etags fileloop generator >> java-ts-mode c-ts-common sh-script smie executable debian-copyright >> debian-changelog-mode noutline outline shortdoc completion >> debian-control-mode cl-print help-fns radix-tree tramp-cmds >> gitignore-mode conf-mode tramp-container tramp-sh tramp-cache time-stamp >> dockerfile-ts-mode yaml-ts-mode reporter debian-bts-control debian-bug >> reveal mailalias goto-addr vterm tramp tramp-loaddefs trampver >> tramp-integration files-x tramp-compat term ehelp vterm-module misearch >> multi-isearch shr-color flow-fill matlab matlab-scan matlab-syntax >> matlab-compat qp url-http url-gw url-auth url-queue url-cache mm-archive >> sort gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize >> uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml magit-extras >> eglot external-completion array jsonrpc ert ewoc debug backtrace >> find-func xref pcase perl-mode face-remap magit-bookmark magit-submodule >> magit-obsolete magit-blame magit-stash magit-reflog magit-bisect >> magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit >> magit-sequence magit-notes magit-worktree magit-tag magit-merge >> magit-branch magit-reset magit-files magit-refs magit-status magit >> magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff >> smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert >> magit-margin magit-transient magit-process with-editor shell pcomplete >> magit-mode transient format-spec magit-git magit-section magit-utils crm >> dired-aux mule-util jka-compr gnus-topic cursor-sensor utf-7 nnfolder >> gnus-demon nnml ezgnus gnus-delay gnus-draft gnus-agent gnus-srvr >> gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu >> mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku >> url-file svg dom nndraft nnmh gnus-group gnus-undo smtpmail gnus-start >> gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo >> gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml >> mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 >> ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader >> gnus-util mail-utils range mm-util mail-prsvr windmove flyspell ispell >> gnutls network-stream puny nsm epa-file epa derived epg rfc6068 >> epg-config rcirc parse-time iso8601 time-date term/xterm xterm comp >> comp-cstr server cap-words superword subword vc-hg vc-git diff-mode >> vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc >> vc-dispatcher bug-reference disp-table whitespace yasnippet-snippets >> yasnippet cus-edit cus-start wid-edit init zenburn-theme xclip >> treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode >> treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals >> treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom >> treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils >> treemacs-logging treemacs-customization pfuture inline ht s hl-line dash >> keychain-environment exec-path-from-shell corfu-terminal popon >> corfu-popupinfo corfu-echo corfu compat activities-tabs activities >> persist bookmark pp edmacro kmacro advice icomplete cus-load >> flymake-proc flymake project compile text-property-search comint >> ansi-osc ansi-color ring warnings icons thingatpt cl-extra help-mode >> use-package use-package-ensure use-package-delight use-package-diminish >> use-package-bind-key bind-key easy-mmode use-package-core >> display-line-numbers autorevert filenotify >> keychain-environment-autoloads treesit-auto-autoloads xclip-autoloads rx >> info debian-el dired dired-loaddefs finder-inf package browse-url url >> url-proxy url-privacy url-expand url-methods url-history url-cookie >> generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse >> auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x >> map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc >> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook >> vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win >> term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe >> tabulated-list replace newcomment text-mode lisp-mode prog-mode register >> page tab-bar menu-bar rfn-eshadow isearch easymenu timer select >> scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors >> frame minibuffer nadvice seq simple cl-generic indonesian philippine >> cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao >> korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech >> european ethiopic indian cyrillic chinese composite emoji-zwj charscript >> charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure >> cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp >> files window text-properties overlay sha1 md5 base64 format env >> code-pages mule custom widget keymap hashtable-print-readable backquote >> threads dbusbind inotify lcms2 dynamic-setting system-font-setting >> font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty >> make-network-process native-compile emacs) >> >> Memory information: >> ((conses 16 4151836 235820) >> (symbols 48 38894 35) >> (strings 32 186143 40188) >> (string-bytes 1 6165556) >> (vectors 16 121009) >> (vector-slots 8 3140568 287319) >> (floats 8 1184 5120) >> (intervals 56 274782 3076) >> (buffers 984 145)) > > Adding Philip who may have thoughts regarding ELPA structure. > > > > -- Philip Kaludercic on peregrine
X-Loop: help-debbugs@HIDDEN Subject: bug#71789: 29.3; Handling of nested directories of ELPA packages Resent-From: Xiyue Deng <manphiz@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sun, 30 Jun 2024 10:30:02 +0000 Resent-Message-ID: <handler.71789.B71789.17197434004978 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 71789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Philip Kaludercic <philipk@HIDDEN> Cc: Jeremy Bryant <jb@HIDDEN>, 71789 <at> debbugs.gnu.org Received: via spool by 71789-submit <at> debbugs.gnu.org id=B71789.17197434004978 (code B ref 71789); Sun, 30 Jun 2024 10:30:02 +0000 Received: (at 71789) by debbugs.gnu.org; 30 Jun 2024 10:30:00 +0000 Received: from localhost ([127.0.0.1]:55190 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sNrol-0001ID-7A for submit <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:30:00 -0400 Received: from mail-oo1-f47.google.com ([209.85.161.47]:51684) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <manphiz@HIDDEN>) id 1sNroi-0001Ht-5K for 71789 <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:29:57 -0400 Received: by mail-oo1-f47.google.com with SMTP id 006d021491bc7-5c21f1bb810so1048859eaf.3 for <71789 <at> debbugs.gnu.org>; Sun, 30 Jun 2024 03:29:56 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1719743330; x=1720348130; darn=debbugs.gnu.org; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:from:to:cc:subject:date:message-id:reply-to; bh=NmplGAY3CWpvByh6zasLMD+cXhm0AYc69Q8+SjT0VJE=; b=GL0qcxSWJIUQz74q7tmd2lYGGr75zLpNROi1gQImUZ4C1VlS/5FWjwBLTHdnwfuE+B BZO2fzenXuP3Lfcw1fAh1AKuGLzzh83oOphtVIwyyZeqsw2PblPZ93OEOr/2TXH1WLaZ RugFUigBLuIj1asYpqamZ8T5BALOj86Pef0C2jqVlVpI/fubgikbbGfjEjDk6gcXJ6MJ ps7FJTiy3hOh6barke4emlxJNt6HHhO48Dhyr1NNlFtC5ZjB0ybeeidtDy0+CY3SMs74 XCnYWEYSS3YjertMn+1yOfBibMDMeME3NHYutG97jyisiNRk0MAsbRhKv7IjUUziRnd1 cS9g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1719743330; x=1720348130; h=mime-version:user-agent:message-id:date:references:in-reply-to :subject:cc:to:from:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=NmplGAY3CWpvByh6zasLMD+cXhm0AYc69Q8+SjT0VJE=; b=RCrRpPSdOoTrcEWTpAmLWw58nanNAga5AH2zYbr1I38zSXUespHZ0IZoAAEpyPZSzK V07L1tYK09bW0cSVK4adGdfUSnlJX59uQ/avl5A0CiC2U6Wqjj3ei+tXmIC9bR0w7cG6 sfJWynHk5Cf/tPQJldFc51Ejjij8UzEPiAyT0eqZ5nmu6pCuDZmy38HhCFhk5Fz5OmsX sAgjnUvKdmbCNgFBU/jtD3bAVQKroHYzSaNU2aYa0X/hS7B8VgEJnMfluNdXWyrUBKbe rXOIhHK4wKyx5JP93UJB9nf1Ue/ZFnrwmU8dYilKmIm9Un42RAXsNbqeZlQK8SoxjdMg mwEw== X-Forwarded-Encrypted: i=1; AJvYcCV3gkwC+uGzlAd8TrB2GP1Mec4/Djy+ACfN6SIedRFMJyuPg0xbeHsDnbFPBSTAVpegbsyVI6vAphfLIQEvJHj/bbIUrSo= X-Gm-Message-State: AOJu0YzOaneKMfLeFI3TyE4DElyBCF3B4DCXHeAMYS/xhQiceLmlC8rD azyp0PDMhD31blU2UajCafF3VLN1KAonZS5FXRfRtWk+bWYWByliRAtjzwaA X-Google-Smtp-Source: AGHT+IGLqDfnblVqvkXAdv5CJvjMsB93LG3hohLy4nZy5LV0vyZtVeItOVgsGw8BWdJ/IawXTKdXgw== X-Received: by 2002:a05:6358:4327:b0:19f:6adf:b5a5 with SMTP id e5c5f4694b2df-1a6acc6ca91mr234703755d.8.1719743330171; Sun, 30 Jun 2024 03:28:50 -0700 (PDT) Received: from debian-hx90 ([2603:8000:a400:cdc:e85d:4867:ca13:260a]) by smtp.gmail.com with ESMTPSA id 98e67ed59e1d1-2c91d3bf20dsm4562542a91.39.2024.06.30.03.28.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sun, 30 Jun 2024 03:28:49 -0700 (PDT) From: Xiyue Deng <manphiz@HIDDEN> In-Reply-To: <87wmm6lopu.fsf@HIDDEN> (Philip Kaludercic's message of "Sun, 30 Jun 2024 10:17:01 +0000") References: <8734oz478n.fsf@HIDDEN> <87ikxthrm5.fsf@HIDDEN> <87wmm6lopu.fsf@HIDDEN> Date: Sun, 30 Jun 2024 03:28:48 -0700 Message-ID: <87o77i207z.fsf@HIDDEN> User-Agent: Gnus/5.13 (Gnus v5.13) MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: 0.0 (/) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -1.0 (-) Philip Kaludercic <philipk@HIDDEN> writes: > Jeremy Bryant <jb@HIDDEN> writes: > >> Xiyue Deng <manphiz@HIDDEN> writes: >> >>> Hi, >>> >>> I'm opening a bug to follow up the discussion at [1]. Given an ELPA >>> package `elpafoo' that contains another directory `elpabar' that also >>> holds source files, e.g. like the structure below: >>> >>> ,---- >>> | ~/.config/emacs/elpa/elpafoo/ >>> | ~/.config/emacs/elpa/elpafoo/elpafoo.el >>> | ~/.config/emacs/elpa/elpafoo/elpabar >>> | ~/.config/emacs/elpa/elpafoo/elpabar/elpabar.el >>> `---- >>> >>> When installing through package.el, both elpafoo.el and >>> elpabar/elpabar.el will be byte-compiled, but only the root source path >>> `~/.config/emacs/elpa/elpafoo' is added to `load-path', without any of >>> the nested directories. >>> >>> I wonder whether this is the intended behavior regarding `load-path' >>> handling. If nested directories are added, it has the advantage to >>> allow more fine-grained source organization; as a downside, it may >>> unnecessarily add more unneeded stuff and processing overhead (as >>> Michael pointed out at [2]), and potentially break existing code, >>> e.g. auctex, which seems to vendor stuff in the `style/' directories but >>> not loaded so it's not causing any trouble yet. >>> >>> So I wonder what is the stance of the Emacs maintainer on this subject, >>> or whether this is documented anywhere. Also one more step: whether >>> there is a recommended layout for source code organization for ELPA >>> packages. > > I think it is intentional, because the approach is simple but functional > enough in most instances. If you need to load a sub-directory, you can > add an autoloaded `add-to-list' expression in elpafoo.el. > Thanks Jeremy and Philip! I had a router issue a few days ago and didn't got a confirmation about this bug so I filed a similar bug at bug#71817, where Stefan offered a similar explanation there as well. Also please feel free to merge this bug with bug#71817 to reduce duplications. Thanks! >>> [1] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg00658.html >>> [2] https://lists.gnu.org/archive/html/emacs-devel/2024-05/msg01039.html >>> >>> >>> >>> In GNU Emacs 29.3 (build 1, x86_64-pc-linux-gnu, GTK+ Version 3.24.38, >>> cairo version 1.16.0) of 2024-05-20, modified by Debian built on sbuild >>> Windowing system distributor 'The X.Org Foundation', version 11.0.12101007 >>> System Description: Debian GNU/Linux 12 (bookworm) >>> >>> Configured using: >>> 'configure --build x86_64-linux-gnu --prefix=/usr >>> --sharedstatedir=/var/lib --libexecdir=/usr/libexec >>> --localstatedir=/var/lib --infodir=/usr/share/info >>> --mandir=/usr/share/man --with-libsystemd --with-pop=yes >>> --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp >>> --with-sound=alsa --without-gconf --with-mailutils >>> --with-native-compilation --build x86_64-linux-gnu --prefix=/usr >>> --sharedstatedir=/var/lib --libexecdir=/usr/libexec >>> --localstatedir=/var/lib --infodir=/usr/share/info >>> --mandir=/usr/share/man --with-libsystemd --with-pop=yes >>> --enable-locallisppath=/etc/emacs:/usr/local/share/emacs/29.3/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/29.3/site-lisp:/usr/share/emacs/site-lisp >>> --with-sound=alsa --without-gconf --with-mailutils >>> --with-native-compilation --with-cairo --with-x=yes >>> --with-x-toolkit=gtk3 --with-toolkit-scroll-bars 'CFLAGS=-g -O2 >>> -ffile-prefix-map=/build/reproducible-path/emacs-29.3+1=. -fstack-protector-strong >>> -Wformat -Werror=format-security -Wall' 'CPPFLAGS=-Wdate-time >>> -D_FORTIFY_SOURCE=2' LDFLAGS=-Wl,-z,relro' >>> >>> Configured features: >>> ACL CAIRO DBUS FREETYPE GIF GLIB GMP GNUTLS GPM GSETTINGS HARFBUZZ JPEG >>> JSON LCMS2 LIBOTF LIBSELINUX LIBSYSTEMD LIBXML2 M17N_FLT MODULES >>> NATIVE_COMP NOTIFY INOTIFY PDUMPER PNG RSVG SECCOMP SOUND SQLITE3 >>> THREADS TIFF TOOLKIT_SCROLL_BARS TREE_SITTER WEBP X11 XDBE XIM XINPUT2 >>> XPM GTK3 ZLIB >>> >>> Important settings: >>> value of $LANG: en_US.UTF-8 >>> value of $XMODIFIERS: @im=ibus >>> locale-coding-system: utf-8-unix >>> >>> Major mode: Lisp Interaction >>> >>> Minor modes in effect: >>> global-git-commit-mode: t >>> magit-auto-revert-mode: t >>> shell-dirtrack-mode: t >>> windmove-mode: t >>> rcirc-track-minor-mode: t >>> server-mode: t >>> subword-mode: t >>> bug-reference-prog-mode: t >>> whitespace-mode: t >>> yas-minor-mode: t >>> xclip-mode: t >>> global-treesit-auto-mode: t >>> treemacs-project-follow-mode: t >>> treemacs-follow-mode: t >>> treemacs-git-mode: t >>> treemacs-fringe-indicator-mode: t >>> corfu-terminal-mode: t >>> corfu-popupinfo-mode: t >>> corfu-echo-mode: t >>> global-corfu-mode: t >>> corfu-mode: t >>> activities-tabs-mode: t >>> activities-mode: t >>> fido-vertical-mode: t >>> icomplete-vertical-mode: t >>> icomplete-mode: t >>> fido-mode: t >>> override-global-mode: t >>> global-display-line-numbers-mode: t >>> display-line-numbers-mode: t >>> global-auto-revert-mode: t >>> tooltip-mode: t >>> global-eldoc-mode: t >>> eldoc-mode: t >>> show-paren-mode: t >>> electric-indent-mode: t >>> mouse-wheel-mode: t >>> tool-bar-mode: t >>> tab-bar-mode: t >>> file-name-shadow-mode: t >>> global-font-lock-mode: t >>> font-lock-mode: t >>> blink-cursor-mode: t >>> column-number-mode: t >>> line-number-mode: t >>> transient-mark-mode: t >>> auto-composition-mode: t >>> auto-encryption-mode: t >>> auto-compression-mode: t >>> >>> Load-path shadows: >>> /usr/share/emacs/site-lisp/elpa/debian-el-37.13/debian-autoloads hides /usr/share/emacs/site-lisp/elpa/gnuplot-0.8.1/debian-autoloads >>> /usr/share/emacs/site-lisp/elpa/magit-3.3.0/magit-section hides /usr/share/emacs/site-lisp/elpa/magit-section-3.3.0/magit-section >>> >>> Features: >>> (shadow emacsbug git-rebase tabify ert-x python etags fileloop generator >>> java-ts-mode c-ts-common sh-script smie executable debian-copyright >>> debian-changelog-mode noutline outline shortdoc completion >>> debian-control-mode cl-print help-fns radix-tree tramp-cmds >>> gitignore-mode conf-mode tramp-container tramp-sh tramp-cache time-stamp >>> dockerfile-ts-mode yaml-ts-mode reporter debian-bts-control debian-bug >>> reveal mailalias goto-addr vterm tramp tramp-loaddefs trampver >>> tramp-integration files-x tramp-compat term ehelp vterm-module misearch >>> multi-isearch shr-color flow-fill matlab matlab-scan matlab-syntax >>> matlab-compat qp url-http url-gw url-auth url-queue url-cache mm-archive >>> sort gnus-cite mail-extr textsec uni-scripts idna-mapping ucs-normalize >>> uni-confusable textsec-check gnus-async gnus-bcklg gnus-ml magit-extras >>> eglot external-completion array jsonrpc ert ewoc debug backtrace >>> find-func xref pcase perl-mode face-remap magit-bookmark magit-submodule >>> magit-obsolete magit-blame magit-stash magit-reflog magit-bisect >>> magit-push magit-pull magit-fetch magit-clone magit-remote magit-commit >>> magit-sequence magit-notes magit-worktree magit-tag magit-merge >>> magit-branch magit-reset magit-files magit-refs magit-status magit >>> magit-repos magit-apply magit-wip magit-log which-func imenu magit-diff >>> smerge-mode diff git-commit log-edit add-log magit-core magit-autorevert >>> magit-margin magit-transient magit-process with-editor shell pcomplete >>> magit-mode transient format-spec magit-git magit-section magit-utils crm >>> dired-aux mule-util jka-compr gnus-topic cursor-sensor utf-7 nnfolder >>> gnus-demon nnml ezgnus gnus-delay gnus-draft gnus-agent gnus-srvr >>> gnus-score score-mode nnvirtual nntp gnus-cache gnus-msg gnus-art mm-uu >>> mml2015 mm-view mml-smime smime dig gnus-sum shr pixel-fill kinsoku >>> url-file svg dom nndraft nnmh gnus-group gnus-undo smtpmail gnus-start >>> gnus-dbus dbus xml gnus-cloud nnimap nnmail mail-source utf7 nnoo >>> gnus-spec gnus-int gnus-range message sendmail yank-media rfc822 mml >>> mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231 rfc2047 rfc2045 >>> ietf-drums mailabbrev gmm-utils mailheader gnus-win gnus nnheader >>> gnus-util mail-utils range mm-util mail-prsvr windmove flyspell ispell >>> gnutls network-stream puny nsm epa-file epa derived epg rfc6068 >>> epg-config rcirc parse-time iso8601 time-date term/xterm xterm comp >>> comp-cstr server cap-words superword subword vc-hg vc-git diff-mode >>> vc-bzr vc-src vc-sccs vc-svn vc-cvs vc-rcs log-view pcvs-util vc >>> vc-dispatcher bug-reference disp-table whitespace yasnippet-snippets >>> yasnippet cus-edit cus-start wid-edit init zenburn-theme xclip >>> treesit-auto treesit treemacs-project-follow-mode treemacs-follow-mode >>> treemacs-rendering treemacs-annotations treemacs-async treemacs-visuals >>> treemacs-fringe-indicator pulse color treemacs-workspaces treemacs-dom >>> treemacs-icons treemacs-themes treemacs-scope treemacs-core-utils >>> treemacs-logging treemacs-customization pfuture inline ht s hl-line dash >>> keychain-environment exec-path-from-shell corfu-terminal popon >>> corfu-popupinfo corfu-echo corfu compat activities-tabs activities >>> persist bookmark pp edmacro kmacro advice icomplete cus-load >>> flymake-proc flymake project compile text-property-search comint >>> ansi-osc ansi-color ring warnings icons thingatpt cl-extra help-mode >>> use-package use-package-ensure use-package-delight use-package-diminish >>> use-package-bind-key bind-key easy-mmode use-package-core >>> display-line-numbers autorevert filenotify >>> keychain-environment-autoloads treesit-auto-autoloads xclip-autoloads rx >>> info debian-el dired dired-loaddefs finder-inf package browse-url url >>> url-proxy url-privacy url-expand url-methods url-history url-cookie >>> generate-lisp-file url-domsuf url-util mailcap url-handlers url-parse >>> auth-source cl-seq eieio eieio-core cl-macs password-cache json subr-x >>> map byte-opt gv bytecomp byte-compile url-vars cl-loaddefs cl-lib rmc >>> iso-transl tooltip cconv eldoc paren electric uniquify ediff-hook >>> vc-hooks lisp-float-type elisp-mode mwheel term/x-win x-win >>> term/common-win x-dnd tool-bar dnd fontset image regexp-opt fringe >>> tabulated-list replace newcomment text-mode lisp-mode prog-mode register >>> page tab-bar menu-bar rfn-eshadow isearch easymenu timer select >>> scroll-bar mouse jit-lock font-lock syntax font-core term/tty-colors >>> frame minibuffer nadvice seq simple cl-generic indonesian philippine >>> cham georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao >>> korean japanese eucjp-ms cp51932 hebrew greek romanian slovak czech >>> european ethiopic indian cyrillic chinese composite emoji-zwj charscript >>> charprop case-table epa-hook jka-cmpr-hook help abbrev obarray oclosure >>> cl-preloaded button loaddefs theme-loaddefs faces cus-face macroexp >>> files window text-properties overlay sha1 md5 base64 format env >>> code-pages mule custom widget keymap hashtable-print-readable backquote >>> threads dbusbind inotify lcms2 dynamic-setting system-font-setting >>> font-render-setting cairo move-toolbar gtk x-toolkit xinput2 x multi-tty >>> make-network-process native-compile emacs) >>> >>> Memory information: >>> ((conses 16 4151836 235820) >>> (symbols 48 38894 35) >>> (strings 32 186143 40188) >>> (string-bytes 1 6165556) >>> (vectors 16 121009) >>> (vector-slots 8 3140568 287319) >>> (floats 8 1184 5120) >>> (intervals 56 274782 3076) >>> (buffers 984 145)) >> >> Adding Philip who may have thoughts regarding ELPA structure. >> >> >> >> -- Xiyue Deng
Received: (at control) by debbugs.gnu.org; 30 Jun 2024 10:45:34 +0000 From debbugs-submit-bounces <at> debbugs.gnu.org Sun Jun 30 06:45:34 2024 Received: from localhost ([127.0.0.1]:55245 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sNs3q-0001lG-0i for submit <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:45:34 -0400 Received: from mout01.posteo.de ([185.67.36.65]:54507) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <philipk@HIDDEN>) id 1sNs3o-0001l0-3X for control <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:45:32 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 4346B240027 for <control <at> debbugs.gnu.org>; Sun, 30 Jun 2024 12:45:25 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1719744326; bh=YC/CyR7PwC6x3KKsgwJhoa8hi8qFiFKQa3dkC+WYOr0=; h=Date:Message-Id:To:From:Subject:From; b=oL8tmc7Ghu36MRn1smsOyuySDH7XqDia1BuBJe2BWhfq4y3GM/2+CFUUj5nG1g0tX e3pVdnME/H/qUsLO3Y5dfj7l5fBz6kmwAGFfI2bmZkrdOQtH3YPaqt+3vk4+CxwMe9 BKbF+qHnuYyTphGJnWEvMxIvYCXhX046vaHBXlcD76mfwNxV7l8uWm+Sx0g61lXLUY KTSPBC9pkUlc91SZRLUMpEEd2oUcP7FX4LT8U5gkmg4CqjIY8NyzFaWuPUt6Nc4L7G l3Bq2arsAblCw/SywGY/NH0h0kzZahjqJaLJOa0aI5dQ3omTebGAw6fPMD3OklMnYE Uo12lwHioLCFA== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4WBm6F1j8gz6tsg for <control <at> debbugs.gnu.org>; Sun, 30 Jun 2024 12:45:25 +0200 (CEST) Date: Sun, 30 Jun 2024 10:45:24 +0000 Message-Id: <87ikxqlnej.fsf@HIDDEN> To: control <at> debbugs.gnu.org From: Philip Kaludercic <philipk@HIDDEN> Subject: control message for bug #71789 X-Spam-Score: -2.3 (--) X-Debbugs-Envelope-To: control X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) merge 71789 71817 quit
X-Loop: help-debbugs@HIDDEN Subject: bug#71789: 29.3; Handling of nested directories of ELPA packages Resent-From: Philip Kaludercic <philipk@HIDDEN> Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> Resent-CC: bug-gnu-emacs@HIDDEN Resent-Date: Sun, 30 Jun 2024 10:48:01 +0000 Resent-Message-ID: <handler.71789.B71789.17197444357064 <at> debbugs.gnu.org> Resent-Sender: help-debbugs@HIDDEN X-GNU-PR-Message: followup 71789 X-GNU-PR-Package: emacs X-GNU-PR-Keywords: To: Xiyue Deng <manphiz@HIDDEN> Cc: Jeremy Bryant <jb@HIDDEN>, 71789 <at> debbugs.gnu.org Received: via spool by 71789-submit <at> debbugs.gnu.org id=B71789.17197444357064 (code B ref 71789); Sun, 30 Jun 2024 10:48:01 +0000 Received: (at 71789) by debbugs.gnu.org; 30 Jun 2024 10:47:15 +0000 Received: from localhost ([127.0.0.1]:55252 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>) id 1sNs5T-0001pr-C0 for submit <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:47:15 -0400 Received: from mout01.posteo.de ([185.67.36.65]:33599) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from <philipk@HIDDEN>) id 1sNs5R-0001pW-MX for 71789 <at> debbugs.gnu.org; Sun, 30 Jun 2024 06:47:14 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 7963E240027 for <71789 <at> debbugs.gnu.org>; Sun, 30 Jun 2024 12:47:07 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1719744427; bh=Ohd9v9DSXtR8lxyJsioDrt9TrmWjsbB9DmAvcL+tBXs=; h=From:To:Cc:Subject:OpenPGP:Date:Message-ID:MIME-Version: Content-Type:From; b=VBhvVOctq1JYURDKyI4L8ZWVjoq8NE4WcQ0gBZd47pDIaH9UVt5Hvht5Z3UUpetRf SOsd9pwgq7zrGUL4ecKHQQZBb4/V4FuP8ZE8yyFvC0t7IWhKB14esVsO1hdvPC3QyT X80LXBtn7QDCtXvSHm/gQdOisAAGFVnRelQEM7mNrWTk4tEY3g/S7pfaYvtAOWuSNx lNzg1w/i7mL0RhkX1BCqXUDJjADIXCWShbPCCMK9l3ByUiagwGp6mUp5t+SqjtjBZR lJJCcei2R8CDEyEVhkZhVPNbBIq2sWlL7NAWjUgB3jIrx8hRbj3PUkeyiegtNRM5LS ZBd/z7+9b1tBQ== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4WBm8C0mWWz9rxB; Sun, 30 Jun 2024 12:47:06 +0200 (CEST) From: Philip Kaludercic <philipk@HIDDEN> In-Reply-To: <87o77i207z.fsf@HIDDEN> (Xiyue Deng's message of "Sun, 30 Jun 2024 03:28:48 -0700") References: <8734oz478n.fsf@HIDDEN> <87ikxthrm5.fsf@HIDDEN> <87wmm6lopu.fsf@HIDDEN> <87o77i207z.fsf@HIDDEN> OpenPGP: id=7126E1DE2F0CE35C770BED01F2C3CC513DB89F66; url="https://keys.openpgp.org/vks/v1/by-fingerprint/7126E1DE2F0CE35C770BED01F2C3CC513DB89F66"; preference=signencrypt Date: Sun, 30 Jun 2024 10:47:06 +0000 Message-ID: <87ed8elnbp.fsf@HIDDEN> MIME-Version: 1.0 Content-Type: text/plain X-Spam-Score: -2.3 (--) X-BeenThere: debbugs-submit <at> debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list List-Id: <debbugs-submit.debbugs.gnu.org> List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe> List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/> List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org> List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help> List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe> Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org> X-Spam-Score: -3.3 (---) Xiyue Deng <manphiz@HIDDEN> writes: > Philip Kaludercic <philipk@HIDDEN> writes: > >> Jeremy Bryant <jb@HIDDEN> writes: >> >>> Xiyue Deng <manphiz@HIDDEN> writes: >>> >>>> Hi, >>>> >>>> I'm opening a bug to follow up the discussion at [1]. Given an ELPA >>>> package `elpafoo' that contains another directory `elpabar' that also >>>> holds source files, e.g. like the structure below: >>>> >>>> ,---- >>>> | ~/.config/emacs/elpa/elpafoo/ >>>> | ~/.config/emacs/elpa/elpafoo/elpafoo.el >>>> | ~/.config/emacs/elpa/elpafoo/elpabar >>>> | ~/.config/emacs/elpa/elpafoo/elpabar/elpabar.el >>>> `---- >>>> >>>> When installing through package.el, both elpafoo.el and >>>> elpabar/elpabar.el will be byte-compiled, but only the root source path >>>> `~/.config/emacs/elpa/elpafoo' is added to `load-path', without any of >>>> the nested directories. >>>> >>>> I wonder whether this is the intended behavior regarding `load-path' >>>> handling. If nested directories are added, it has the advantage to >>>> allow more fine-grained source organization; as a downside, it may >>>> unnecessarily add more unneeded stuff and processing overhead (as >>>> Michael pointed out at [2]), and potentially break existing code, >>>> e.g. auctex, which seems to vendor stuff in the `style/' directories but >>>> not loaded so it's not causing any trouble yet. >>>> >>>> So I wonder what is the stance of the Emacs maintainer on this subject, >>>> or whether this is documented anywhere. Also one more step: whether >>>> there is a recommended layout for source code organization for ELPA >>>> packages. >> >> I think it is intentional, because the approach is simple but functional >> enough in most instances. If you need to load a sub-directory, you can >> add an autoloaded `add-to-list' expression in elpafoo.el. >> > > Thanks Jeremy and Philip! I had a router issue a few days ago and > didn't got a confirmation about this bug so I filed a similar bug at > bug#71817, where Stefan offered a similar explanation there as well. Right, I noticed that too late. But good to have two independent responses coincide in their suggestion. > Also please feel free to merge this bug with bug#71817 to reduce > duplications. Thanks! I should have merged the reports. -- Philip Kaludercic on peregrine
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997 nCipher Corporation Ltd,
1994-97 Ian Jackson.