From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Richard Kim Newsgroups: gmane.emacs.devel Subject: Re: Adding the `prescient` packages to NonGNU ELPA? Date: Fri, 09 Dec 2022 20:10:57 -0800 Message-ID: <87fsdngapa.fsf@gmail.com> References: <16193c73-ab80-04c9-558f-d5e6142f38f3@protonmail.com> <871qpydllo.fsf@posteo.net> <4a52210d-3e39-ed34-a7c9-c3ee6e2a7a68@protonmail.com> <11680a2c-b082-cfce-e075-9694ed06dae0@protonmail.com> <6cda848d-07da-9d8c-fd40-75727915ba3c@protonmail.com> Reply-To: emacs18@gmail.com Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15851"; mail-complaints-to="usenet@ciao.gmane.io" User-Agent: Gnus/5.13 (Gnus v5.13) To: emacs-devel@gnu.org Cancel-Lock: sha1:zXtThjl+xLQSO8hJ1HbfSp75FEY= Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Dec 10 08:15:51 2022 Return-path: Envelope-to: ged-emacs-devel@m.gmane-mx.org Original-Received: from lists.gnu.org ([209.51.188.17]) by ciao.gmane.io with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.92) (envelope-from ) id 1p3u5O-0003xc-V7 for ged-emacs-devel@m.gmane-mx.org; Sat, 10 Dec 2022 08:15:50 +0100 Original-Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1p3u4l-0002dH-Dd; Sat, 10 Dec 2022 02:15:11 -0500 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p3rCm-0005Sk-SJ for emacs-devel@gnu.org; Fri, 09 Dec 2022 23:11:16 -0500 Original-Received: from ciao.gmane.io ([116.202.254.214]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1p3rCl-0005uA-2H for emacs-devel@gnu.org; Fri, 09 Dec 2022 23:11:16 -0500 Original-Received: from list by ciao.gmane.io with local (Exim 4.92) (envelope-from ) id 1p3rCg-0003qo-Kc for emacs-devel@gnu.org; Sat, 10 Dec 2022 05:11:10 +0100 X-Injected-Via-Gmane: http://gmane.org/ Received-SPF: pass client-ip=116.202.254.214; envelope-from=ged-emacs-devel@m.gmane-mx.org; helo=ciao.gmane.io X-Spam_score_int: 8 X-Spam_score: 0.8 X-Spam_bar: / X-Spam_report: (0.8 / 5.0 requ) BAYES_00=-1.9, DKIM_ADSP_CUSTOM_MED=0.001, FORGED_GMAIL_RCVD=1, FREEMAIL_FORGED_FROMDOMAIN=0.248, FREEMAIL_FROM=0.001, FREEMAIL_REPLYTO_END_DIGIT=0.25, HEADER_FROM_DIFFERENT_DOMAINS=0.25, NML_ADSP_CUSTOM_MED=0.9, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=no autolearn_force=no X-Spam_action: no action X-Mailman-Approved-At: Sat, 10 Dec 2022 02:15:09 -0500 X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Xref: news.gmane.io gmane.emacs.devel:301097 Archived-At: Stefan Monnier writes: > Ah, so `straight` relies on linking/copying the files. > Do things like `C-h f` still jump to the actual VCS-controlled source? > > How does it make sure the copies are updated/sync'd when you edit the > VCS-controlled sources? As far as I know straight does not do any copying at least not *.el files. It creates symlinks to *.el and other files so that `C-h f' jumps to VCS-controlled source. Following is how straight installs use-package to a directory which is added to load-path and Info-directory-list. The "install" directories are distinct from git repos. It shows that all *.el are symlinks to the git repo. All files that are not symlinks are generated files. $ file * | head -5 dir: data use-package-autoloads.el: Lisp/Scheme program, ASCII text use-package-bind-key.el: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/use-package/use-package-bind-key.el use-package-bind-key.elc: Emacs/XEmacs v28 byte-compiled Lisp data use-package-core.el: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/use-package/use-package-core.el Another example is magit shown below. Note that *.el files are located in "lisp" sub-directory of the git repo. If I understood package-vc correctly, it requires :lisp-dir to be set correctly for packages such as magit which house lisp files in sub-directories. straight.el places all *.el symlinks in the top level directory where packages are installed. $ file * | head -7 AUTHORS.md: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/magit/docs/AUTHORS.md dir: data git-rebase.el: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/magit/lisp/git-rebase.el git-rebase.elc: Emacs/XEmacs v28 byte-compiled Lisp data LICENSE: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/magit/LICENSE magit-apply.el: symbolic link to /home/kimr/.emacs.d/sm-ms/.local/straight/repos/magit/lisp/magit-apply.el magit-apply.elc: Emacs/XEmacs v28 byte-compiled Lisp data https://github.com:emacs18/spacemacs is my fork of spacemacs. The branch named sm-straight modifies spacemacs to use straight.el rather than package.el. I've been using this for quite some time. I'm curious whether I can share all my git clones of emacs packages for both straight.el and package-vc. I'll probably git this a shot soon. Also a while ago I converted two more emacs setups to use straight.el rather than package.el although I have not used either of these in a while. https://github.com/emacs18/purcell.git is a fork of https://github.com/purcell/emacs.d. Branch named 'straight' uses straight.el instead of package.el. https://github.com/emacs18/scimax.git is a fork of https://github.com/jkitchin/scimax. Branch named 'straight' uses straight.el instead of package.el