From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mp10.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by ms9.migadu.com with LMTPS id aKr6Cy0FQWRkZwEASxT56A (envelope-from ) for ; Thu, 20 Apr 2023 11:26:05 +0200 Received: from aspmx1.migadu.com ([2001:41d0:8:6d80::]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits)) by mp10.migadu.com with LMTPS id KMUgCy0FQWT9dQEAG6o9tA (envelope-from ) for ; Thu, 20 Apr 2023 11:26:05 +0200 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by aspmx1.migadu.com (Postfix) with ESMTPS id BC9E1193D6 for ; Thu, 20 Apr 2023 11:26:04 +0200 (CEST) Received: from localhost ([::1] helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1ppQXS-00034I-Hw; Thu, 20 Apr 2023 05:25:14 -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 ) id 1ppQXQ-0002xF-Vn for emacs-orgmode@gnu.org; Thu, 20 Apr 2023 05:25:13 -0400 Received: from mout01.posteo.de ([185.67.36.65]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1ppQXO-0008KP-9p for emacs-orgmode@gnu.org; Thu, 20 Apr 2023 05:25:12 -0400 Received: from submission (posteo.de [185.67.36.169]) by mout01.posteo.de (Postfix) with ESMTPS id A7FFB2402D7 for ; Thu, 20 Apr 2023 11:25:06 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=posteo.net; s=2017; t=1681982706; bh=E1IyPJEad484iMSxk48n593o7MBeY4qdM87plAd2UAo=; h=From:To:Cc:Subject:Date:From; b=DWTszjnxrZtmeSPhcJgBIboRdmY3Cc6ewGdP3jYdk0kAetdEHMfo7RCjN0vtvGuYQ +szWG54yCf0zG//xaI1ykN2o2cWGX/smDC3LEvNbozTw7kQLAdhXzqwtV8N6WR/Qkb jA0lXyKM4Kh5OS2PSoB56/SG8vT2u1a8IUX9gToFTcmuIvQjb/ghulCV8Q0QRZBMD9 G74iQ10+MdVwcBYc4MfX5lyiJrY5Rg81s8tqGzrMUUCB6WCWSMDZ2osYOJsOoqfLFL ivva+ATiINvg/NS/cvxp1WV/u9bFqln5JII4TWfmdhY54Yn41aC+PQ4q29KpA9qlN5 9yEV6V5cgic7Q== Received: from customer (localhost [127.0.0.1]) by submission (posteo.de) with ESMTPSA id 4Q2C1G0m1Jz6txZ; Thu, 20 Apr 2023 11:25:06 +0200 (CEST) From: Ihor Radchenko To: Max Nikulin Cc: emacs-orgmode@gnu.org Subject: Re: [PATCH v2] Add compat.el support to Org (was: [POLL] Use compat.el in Org? (was: Useful package? Compat.el)) In-Reply-To: References: <87sfx7degz.fsf@gmail.com> <87v8ks6rhf.fsf@localhost> <87r0t3gahd.fsf@localhost> <87wn2ujk27.fsf@localhost> <87jzymk3dq.fsf@localhost> <87o7nsdkcw.fsf@localhost> Date: Thu, 20 Apr 2023 09:27:45 +0000 Message-ID: <878remykby.fsf@localhost> MIME-Version: 1.0 Content-Type: text/plain Received-SPF: pass client-ip=185.67.36.65; envelope-from=yantar92@posteo.net; helo=mout01.posteo.de X-Spam_score_int: -43 X-Spam_score: -4.4 X-Spam_bar: ---- X-Spam_report: (-4.4 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_MED=-2.3, RCVD_IN_MSPIKE_H2=-0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action X-BeenThere: emacs-orgmode@gnu.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: emacs-orgmode-bounces+larch=yhetil.org@gnu.org Sender: emacs-orgmode-bounces+larch=yhetil.org@gnu.org X-Migadu-Country: US X-Migadu-Flow: FLOW_IN ARC-Authentication-Results: i=1; aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=DWTszjnx; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net ARC-Seal: i=1; s=key1; d=yhetil.org; t=1681982764; a=rsa-sha256; cv=none; b=YQTwC5hEoMLUT62QXI8UG+Sf6A/m45hJuqKbNJvaFpK1NkXjmBFPcfU8cFeVPyDnyIFtQT 5u3XhiOS8+UTF7YdyxsCPd3UpAezRXNU64nLYZpLZzeNjbXkWEAoVxqIyrPt8MH0Ta94V0 WAaLvSjdcnvuhtlVF3EXc1JaBEBJ9uQ75hF8ckMg9IWn2z+6HoAwRZTajHAp7ogww4cPCn ABzS8RbWnbnojj6Hi4JHJC7LTwDt0EsAYjkeMZE90DGDdh4O5jqf7RRpRbp/hCAnK3enmL rAb0kk494BMfoRN016226fwy+fJ6Zw7sHwPHIv49jVz/YHBY8v/jML4eG5SIAA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=yhetil.org; s=key1; t=1681982764; h=from:from:sender:sender: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:list-id:list-help:list-unsubscribe: list-subscribe:list-post:dkim-signature; bh=8kku2cF4VnZzHnKVxt5W45t1aUJAg/EXw2oZy0kOoLU=; b=Glv5sClHPhHFOjGIQoZITJ+Xc3Y88jzf6ZIhqej2ztRh/DEG1VZGNkZHmrQ1p8gwYn6EX+ LRwbd6Lzp2kYc4bRlMedJeKUOntiTdYsm3ShBX1TjhE5kI99nxghENYXDR808hPaN9uAOh AngHTAfp4Afyr+Q89JTLffyz+IyyzfhQjzpKMGT3G0dn9gXHx/iyaXSjDrN2lmXahgHz67 M0qvG5L8NSvin2PL2uNyXK9Gzf/36jZhC5ARl6cZcxxlbRz9MDIqZKMH2Ctw6/TQj+4Zd8 ikBk9ofo2cvxl75ZDS5s4WAWva1bdfbu8jO690wJlw4R4tWWMk/4vqcHpiOggA== X-Migadu-Spam-Score: -6.00 X-Spam-Score: -6.00 X-Migadu-Queue-Id: BC9E1193D6 X-Migadu-Scanner: scn0.migadu.com Authentication-Results: aspmx1.migadu.com; dkim=pass header.d=posteo.net header.s=2017 header.b=DWTszjnx; spf=pass (aspmx1.migadu.com: domain of "emacs-orgmode-bounces+larch=yhetil.org@gnu.org" designates 209.51.188.17 as permitted sender) smtp.mailfrom="emacs-orgmode-bounces+larch=yhetil.org@gnu.org"; dmarc=pass (policy=none) header.from=posteo.net X-TUID: 9xDMvRcrX2O0 Max Nikulin writes: >> Sure. And you will have such option (EFLAGS). >> However, I decided to enable auto-downloading by default to not break >> the previous working compilation instructions. > > For me adding external dependencies is strong enough reason to change > compiling instructions. My vote is for clear separation of dependency > management (even if performed through make targets) and > compiling/testing/etc. > ... > In my opinion, ideally there should be 3 options for dependency management: > 1. Completely disabled. If load from default paths failed than it is a > fatal error. I have no problem with this approach when using system packages. However, it is almost guaranteed that compat.el is absent in global load-path as long as compat.el is not built-in. > 2. Use specified directory outside of Org tree (~/.emacs.d/elpa by > default) or any other directory that you named pkgdir. Only dedicated > target may clean this directory. This is mostly an equivalent of -L switch. I do not like the idea of using ~/.emacs.d/elpa default. It is fragile if this default ever changes. > 3. Install packages to Org source/build directory. > > You decided to make 3 the default variant. I believe, it should be > activated by a variable, e.g. AUTODEP = 1 in local.mk or from command > line "make compile AUTODEP=1 It is now activated by EPACKAGES being non-empty. > I think, it is better to require an additional command > > make autoloads > make fetch-dependencies > make compile Maybe. Then, also make doc and make install? And make repro, which is dislike in particular - make repro is supposed to be easy to use for users unfamiliar with Emacs internals or typical GNU make conventions. >> +package-install = --eval '(unless (require '"'"'$(package) nil t) (message "%s" load-path) (package-install '"'"'$(package)))' > > I do not like that versions of dependencies are ignored. I have noticed > `package-install-from-buffer'. Perhaps it can be used to generate a stub > package (e.g. org-build-deps) with Package-Requires line obtained from > org.el. The only purpose of this package is to pull dependencies. It is > just an idea, I have not tried such approach. This sounds fragile. I see no reason to go this far and using so complex approach. >> +EMACS_VERSION := $(shell $(EMACS) -Q --batch --eval '(message "%s" emacs-version)' 2>&1) > > Ideally $(BATCH) should be used, but it is defined below. (princ > emacs-version) is an alternative, but I have not idea which variant is > better. I used $(EMACS) on purpose. $(BATCH) may contain more things, which we do not want (on purpose) here. >> Subject: [PATCH 3/7] Use compat.el library instead of ad-hoc compatibility >> function set >> >> * mk/default.mk (EPACKAGES): Demand compat library during compile time. > > when I asked for more granular commits I expected this change in > >> Subject: [PATCH 2/7] org-compat: Enable compat.el > > To separate adding dependency and replacing org-compat functions to compat. For me, PATCH 3/7 grouping is more reasonable. So, I disagree. Splitting EPACKAGES modification would create transient commit with non-working Org. -- Ihor Radchenko // yantar92, Org mode contributor, Learn more about Org mode at . Support Org development at , or support my work at