GNU logs - #71789, boring messages


Message sent to bug-gnu-emacs@HIDDEN:


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))




Message sent:


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


Message sent to bug-gnu-emacs@HIDDEN:


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.




Message sent to bug-gnu-emacs@HIDDEN:


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




Message sent to bug-gnu-emacs@HIDDEN:


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




Message received at control <at> debbugs.gnu.org:


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





Message sent to bug-gnu-emacs@HIDDEN:


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





Last modified: Sun, 30 Jun 2024 11:00:01 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.