From mboxrd@z Thu Jan 1 00:00:00 1970 Path: news.gmane.io!.POSTED.blaine.gmane.org!not-for-mail From: Philip Kaludercic Newsgroups: gmane.emacs.devel Subject: Re: feature/package+vc 04c4c578c7 3/4: Allow for packages to be installed directly from VCS Date: Sat, 08 Oct 2022 15:47:20 +0000 Message-ID: <87bkqmqpvb.fsf@posteo.net> References: <164484721900.31751.1453162457552427931@vcs2.savannah.gnu.org> <20220214140020.04438C00891@vcs2.savannah.gnu.org> Mime-Version: 1.0 Content-Type: text/plain Injection-Info: ciao.gmane.io; posting-host="blaine.gmane.org:116.202.254.214"; logging-data="15493"; mail-complaints-to="usenet@ciao.gmane.io" Cc: emacs-devel@gnu.org To: Stefan Monnier Original-X-From: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Sat Oct 08 17:49:42 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 1ohC57-0003mK-GA for ged-emacs-devel@m.gmane-mx.org; Sat, 08 Oct 2022 17:49:41 +0200 Original-Received: from localhost ([::1]:54644 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ohC55-0004nE-V6 for ged-emacs-devel@m.gmane-mx.org; Sat, 08 Oct 2022 11:49:39 -0400 Original-Received: from eggs.gnu.org ([2001:470:142:3::10]:37958) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohC33-00044f-48 for emacs-devel@gnu.org; Sat, 08 Oct 2022 11:47:33 -0400 Original-Received: from mout01.posteo.de ([185.67.36.65]:35937) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ohC30-0002Lz-AF for emacs-devel@gnu.org; Sat, 08 Oct 2022 11:47:32 -0400 Original-Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id 2BDB1240027 for ; Sat, 8 Oct 2022 17:47:26 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1665244047; bh=dDeNtgjNW3jxEPUvxmjc94LWrb4StxZpzFKPZ+P7nGA=; h=From:To:Cc:Subject:Autocrypt:Date:From; b=kG3R0UJKSF5SVZ6Tjg+yhOYfBC864r9R5cHCkrhTeHJlJrhBWgR6M8faQ0fRmpbfL uOTzJPckCuhfVj5Uc5JhYYwf4IPBML+cZAEaCG+XADZefW/SOG7dafGIAQsxIJy62E gTiRgNPvBz6XTe+T42Dgn+bQCe9pwR1wzQSQc6C5Sn3FkbfiPy3/6kiMIoFWrokPBO Vpys2Qk2PgjI/bL+zs8wQihC4WZSqEPiTQw2x1uLiMTDhCTomaMuIdzmU0KxLwAphd 1xDOIeJ9Vz0/DLCPb+3zreS5b5XFUTF3qgT5bFPGiLDI5U47tD+v8PVdKJ0wcxf3qf CsmO9ahSnIkTw== Original-Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Ml8gy1h99z9rxQ; Sat, 8 Oct 2022 17:47:25 +0200 (CEST) In-Reply-To: (Stefan Monnier's message of "Mon, 14 Feb 2022 11:20:32 -0500") Autocrypt: addr=philipk@posteo.net; prefer-encrypt=nopreference; keydata= mDMEYHHqUhYJKwYBBAHaRw8BAQdAp3GdmYJ6tm5McweY6dEvIYIiry+Oz9rU4MH6NHWK0Ee0QlBo aWxpcCBLYWx1ZGVyY2ljIChnZW5lcmF0ZWQgYnkgYXV0b2NyeXB0LmVsKSA8cGhpbGlwa0Bwb3N0 ZW8ubmV0PoiQBBMWCAA4FiEEDM2H44ZoPt9Ms0eHtVrAHPRh1FwFAmBx6lICGwMFCwkIBwIGFQoJ CAsCBBYCAwECHgECF4AACgkQtVrAHPRh1FyTkgEAjlbGPxFchvMbxzAES3r8QLuZgCxeAXunM9gh io0ePtUBALVhh9G6wIoZhl0gUCbQpoN/UJHI08Gm1qDob5zDxnIHuDgEYHHqUhIKKwYBBAGXVQEF AQEHQNcRB+MUimTMqoxxMMUERpOR+Q4b1KgncDZkhrO2ql1tAwEIB4h4BBgWCAAgFiEEDM2H44Zo Pt9Ms0eHtVrAHPRh1FwFAmBx6lICGwwACgkQtVrAHPRh1Fw1JwD/Qo7kvtib8jy7puyWrSv0MeTS g8qIxgoRWJE/KKdkCLEA/jb9b9/g8nnX+UcwHf/4VfKsjExlnND3FrBviXUW6NcB Received-SPF: pass client-ip=185.67.36.65; envelope-from=philipk@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, SPF_HELO_NONE=0.001, SPF_PASS=-0.001 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-devel@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "Emacs development discussions." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-devel-bounces+ged-emacs-devel=m.gmane-mx.org@gnu.org Original-Sender: "Emacs-devel" Xref: news.gmane.io gmane.emacs.devel:297204 Archived-At: Stefan Monnier writes: >> Allow for packages to be installed directly from VCS > > Yay! I would to bring up the "feature/package+vc" branch once more and ask if it would be possible for the feature to be merged before Emacs 29 is cut off. To recapitulate: The current set of features this branch would add are as follows: - The ability to install a package directly from source using `package-vc-fetch' (aliased to `package-checkout'). This functionality is ideally VC generic. - The ability to update a package using `package-upgrade'[0] - Package metadata can either be inferred from the package URL (see `package-vc-heusitic-alist') or via explicit hints from an ELPA server. I plan to add the necessary features to GNU and NonGNU ELPA in time so that the heuristics can be avoided. - The ability to (i) contact, (ii) send bug reports and (iii) patches (using the new `vc-patch-prepare') to package maintainers. Some changes had to be made to package.el for these features to work, but most of the heavy-lifting is done in package-vc.el. Features I have thought about implementing but haven't gotten around /managed to are: - Checking if local modifications have been made to the tarball-based installation and offering to transpose these into the source installation, making it easier to submit these as patches. - Offering some way of detecting revisions that bump the package version and to switch between these. - Better integration with package specifications that modify the package before bundling it into a tarball (e.g. moving files around or running custom commands). There is a conflict here between providing packages that work just like their tarballs while also trying to avoid situations where arbitrary code is executed on installing a package -- though that has arguably always been an issue in general. If it is imaginable for the branch to be merged, I'd like to ask anyone interested in testing the features and giving feedback on what could be added. Given some ack, I'd also like to start writing some documentation for the manual. [0] This feature is currently broken because it tries to use `vc-pull' which refuses to work if any changes have been made. This is an issue as package-vc-fetch tries to modify the list of ignored files in a repository (think of .gitignore). It will either be necessary to change how vc-pull works or try to do something with vc-log-incoming + vc-merge.